GithubHelp home page GithubHelp logo

cineencoder / cine-encoder Goto Github PK

View Code? Open in Web Editor NEW
97.0 10.0 12.0 7.19 MB

Cine Encoder is an application that allow to convert media files while preserving HDR metadata.

License: GNU General Public License v3.0

Makefile 0.15% C++ 64.89% QMake 0.40% CSS 32.99% HTML 0.14% Shell 0.18% Roff 0.10% Inno Setup 0.76% CMake 0.39%

cine-encoder's Introduction

Cine Encoder

Cine Encoder is an application, uses the FFmpeg, MKVToolNix and MediaInfo utilities, that allows to convert media files while preserving HDR metadata. Supported hardware encoding NVENC and Intel QSV (for Windows and experimental for Linux). The following encoding modes are implemented: H265, H264, VP9, MPEG-2, XDCAM, XAVC, DNxHR, ProRes.

View

By default, there are several categories of presets. You can change existing or add your own presets.

View

Installation

Supported operating system: Linux x86_64, Windows 8.1/10 x86_64.

Make sure that the NVIDIA drivers are installed in accordance with the following requirements: Using FFMPEG with NVIDIA.

- Arch Linux / Manjaro Linux:
- Debian 10.6 / Ubuntu 20.04 / Linux Mint 20:
  • install file cine-encoder-(ver)_amd64.deb from release
- Fedora 33:
  • to satisfy ffmpeg dependency Fedora users have to use rpmfusion (https://rpmfusion.org/)
  • install file cine-encoder-(ver)_fedora33_x86_64.rpm from release
- CentOS 7.8:
  • to satisfy ffmpeg dependency CentOS users have to use rpmfusion (https://rpmfusion.org/)
  • install file cine-encoder-(ver)_centos7_x86_64.rpm from release

*ver - current version

Buid instruction for Linux

Install dependencies:

- Arch Linux / Manjaro Linux:
gcc
qt5-base
qt5-multimedia
qt5-svg
qt5-x11extras
libmediainfo
libxext

ffmpeg
mkvtoolnix-cli
intel-media-driver
libva-intel-driver
- Debian / Ubuntu / Linux Mint:
gcc
qt5-qmake
qtbase5-dev
qtmultimedia5-dev
libqt5svg5-dev
libqt5x11extras5-dev
libmediainfo-dev
libxext-dev

ffmpeg
mkvtoolnix
i965-va-driver
- Fedora / CentOS:
gcc-c++
qt5-qtbase-devel
qt5-qtmultimedia-devel
qt5-qtsvg-devel
qt5-qtx11extras-devel
libmediainfo-devel
libXext-devel

ffmpeg
mkvtoolnix
intel-media-driver
libva-intel-driver

Buld package:

mkdir build
cd build
git clone https://github.com/CineEncoder/cine-encoder.git
cd cine-encoder
qmake-qt5 -o builddir/Makefile app/cine_encoder.pro -spec linux-g++ CONFIG+=qtquickcompiler (or for Debian:  /usr/lib/qt5/bin/qmake -o builddir/Makefile app/cine_encoder.pro -spec linux-g++)
cd builddir
make

Run:

./cine_encoder -platform xcb

Buid instruction for Windows

mkdir build
cd build
git clone https://github.com/CineEncoder/cine-encoder.git
cd cine-encoder
mkdir builddir

Install dependencies to builddir folder:

imageformats/qsvg.dll
platforms/qwindows.dll
plugins/audio/qtaudio_windows.dll
plugins/mediaservice/qtmedia_audioengine.dll
styles/qwindowsvistastyle.dll
ffmpeg.exe
libgcc_s_seh-1.dll
libstdc++-6.dll
libwinpthread-1.dll
MediaInfo.dll
MediaInfo_InfoTip.dll
mkvpropedit.exe
Qt5Core.dll
Qt5Gui.dll
Qt5Multimedia.dll
Qt5Network.dll
Qt5Svg.dll
Qt5Widgets.dll
cine-encoder.ico

Buld package:

cd builddir
<path_to_qmake>/qmake.exe ../app/cine_encoder.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
<path_to_make>/mingw32-make.exe

Tracking the development of the project

Next release version: 3.5.5. Estimated release date: Dec 15 2022. To tracking the development of the project see Project page

Licence

GNU GPL v.3 See LICENSE.md

Donate

If you wish to support this project, you can make a donation. Your contributions will help keep the project alive and support future development.

PayPal

cine-encoder's People

Contributors

cineencoder avatar philstopford avatar wcxu21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cine-encoder's Issues

.deb package depends on libmediainfo-dev

Debian/Ubuntu package cine-encoder-3.1_amd64.deb has a dependency on libmediainfo-dev. -dev packages should be build dependencies, but not runtime dependencies.

AttributeError: 'QComboBox' object has no attribute 'setPlaceholderText'

  • OS: openSUSE 15.2, Ubuntu 20.04, Fedora 32
  • Cine-encoder: 2.2
  • Python: 3.6-8
  • Qt: 5.11-14
$ python3 -m cine_encoder.main
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3/dist-packages/cine_encoder/main.py", line 946, in <module>
    main()  # run main()
  File "/usr/lib/python3/dist-packages/cine_encoder/main.py", line 941, in main
    window = ExampleApp()
  File "/usr/lib/python3/dist-packages/cine_encoder/main.py", line 34, in __init__
    self.setupUi(self)
  File "/usr/lib/python3/dist-packages/cine_encoder/ui_main.py", line 787, in setupUi
    self.comboBox_9.setPlaceholderText("")
AttributeError: 'QComboBox' object has no attribute 'setPlaceholderText'

I couldn't find PyQt5 documentation older than 5.15, so I'm not sure if it even should to work.

Installation ERROR: make: command not found

OS: Manjaro Linux x86_64
Kernel: 5.16.11-arch1-g14-2
DE: GNOME 41.4

Command : yay -S cine-encoder

Output:

Info: creating stash file ~/.cache/yay/cine-encoder/src/cine-encoder-3.5.2/builddir/.qmake.stash
~/.cache/yay/cine-encoder/PKGBUILD: line 18: make: command not found

[X11, Qt 5.15.3] Spinner animation takes 100% CPU

First of all thanks for this encoder. It is the only open source GUI available for Linux that meets my goals!!

I have found that the spinner animation takes 100% of one CPU core during encoding. This breaks the benefits of being energy efficient when using hardware encoders. I have found that this is because of a bug in the QMovie class when playing GIF animations:

https://bugzilla.redhat.com/show_bug.cgi?id=61928
https://bugreports.qt.io/browse/QTBUG-2441
(although it says it is closed, it's not fixed for me)

My current workaround is to comment out both "animation->start();" lines in the mainwindow.cpp files. So, I'm ok with this fix. I just wonder if you know about any other alternatives to GIF animations?

Join videos?

Hello and thank you for this beautiful piece of software! HDR support currently is really lacks in most video editors, and this software was like a jewel when i found about it.

Can you please look at ability to join all videos in task queue into one final video file?

Thanks for the program

Thanks for the nice converter under the free GNU GPL license! Added a program to a Russian-language site about free software - here's the link.

Big request, make the application of presets by double-clicking the left mouse button. This will greatly simplify the lives of users.

Subtitles from external file

In the GUI 'streams' panel, I see two tabs, one for audio and one for subtitles. Switching to subtitle tab, the 'add external stream' button does not allow me to add an external subtitle file (.srt, for example). It seems that the tool currently only supports audio for external streams.

Would it be possible to allow for external subtitles to be added? If so, having the option to either retain them as a separate stream in the output, or to burn them into the video would be very welcome.

For the burning into video, it would be helpful to have a preview option so that the burn-in could be configured according to the user's needs (e.g. to avoid white text over white in the frame, having a background translucent dark box is often helpful)

H.265/HEVC 8 bit encoding error

Hello
I am trying to reencode PRORES 422 HQ 2336x1080 files to H.265 8bit. I have tried all the presets in High Quality H265 8 bit and I get the same error below:


Preset pass 1: -hide_banner -i <input file> -map 0:v:0? -map 0:a:0? -map_metadata -1 -map_metadata:s:v:0 -1 -metadata:s:a:0 language= -metadata:s:a:0 title= -pix_fmt yuv420p -c:v libx265 -profile:v main -preset slow -b:v 0 -cq 19 -qmin 19 -qmax 19 -x265-params pass=1 -an -sn -f null /dev/null

Preset pass 2: -hide_banner -i <input file> -map 0:v:0? -map 0:a:0? -map_metadata -1 -map_metadata:s:v:0 -1 -metadata:s:a:0 language= -metadata:s:a:0 title= -pix_fmt yuv420p -c:v libx265 -profile:v main -preset slow -b:v 0 -cq 19 -qmin 19 -qmax 19 -x265-params pass=2 -c:a aac -b:a 256k -c:s mov_text -y <output file>

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/run/media/admin/LOWDEN_TRAN/211211_COSTA_RICA_HOLIDAY/COSTA RICA DIARY/211209-12.mov':
 Metadata:
 major_brand : qt 
 minor_version : 512
 compatible_brands: qt 
 encoder : Lavf58.29.100
 Duration: 00:16:17.17, start: 0.000000, bitrate: 143481 kb/s

 Stream #0:0: Video: prores (apcn / 0x6E637061), yuv422p10le, 2336x1080, 141947 kb/s, SAR 1:1 DAR 292:135, 30 fps, 30 tbr, 90k tbn, 90k tbc (default)
 Metadata:
 handler_name : DataHandler
 Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
 Metadata:
 handler_name : DataHandler
Codec AVOption cq (Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control) specified for output file #0 (/dev/null) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
 Stream #0:0 -> #0:0 (prores (native) -> hevc (libx265))
Press [q] to stop, [?] for help

[libx265 @ 0x25455c0] [Eval @ 0x7ffdc9c6adc0] Undefined constant or missing '(' in 'main'
[libx265 @ 0x25455c0] Unable to parse option value "main"
[libx265 @ 0x25455c0] Error setting option profile to value main.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Conversion failed!

The main menu is greyed out. When I try the High Quality H265 HDR 10 bit presets, I don't get the main error but the export crashes in the last second.
What I am looking for is the highest quality to smallest file ratio so I figure the H.265 8bit best for me. Do you have an idea how I can troubleshoot this?
Thanks

Opus audio option

Hi.

I finally found a viable alternative to handbrake. Cine Encoder seems to do that task. One thing I'm missing is the Opus encoding option. Could you implement it please?

Thank you for this amazing software.

Setting 2-pass seems to yield an error during conversion

I'm finding that there mere act of switching to 2-pass breaks the encode.

This works:

HEVC, Res: Source, Fps: Source, YUV, 4:2:0, 8 bit, CRF 25, Preset: Fast, 1 Pass, Audio: AAC, 256k, MP4

This fails:

HEVC, Res: Source, Fps: Source, YUV, 4:2:0, 8 bit, CRF 25, Preset: Fast, 2 Pass, Audio: AAC, 256k, MP4

The error message seems to be truncated, so doesn't give any information to report.

Subtitle validation with mediainfo is problematic

From what I can see in the code, subtitles that are not recognized as such by mediainfo are rejected. This affects 'ass' subtitle files, which mediainfo doesn't seem to return text count for. Using the command line mediainfo against 'srt' files, the text is reported. For valid 'ass' files, there is no usable return from mediainfo.

In cine-encoder, this means that while the file requester allows for 'ass' files to be selected, they are rejected as invalid by the tool.

Rocky 8.5 - Crashing

Hello
I have migrated from Centos 7.9 to Rocky 8.5 which mirrors Centos 8.5. I install the Centos 7.9 Cine encoder with out issue. But when I try to open a file in the cine encoder, the app crashes instantly. Below is the terminal log:

sudo rpm -ivh cine-encoder-3.5.3_centos7_x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:cine-encoder-3.5-1.el7 ################################# [100%] [admin@lowrocky Downloads]$ cine_encoder libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP: cHRM chunk does not match sRGB libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP: cHRM chunk does not match sRGB Window Activated ... Number of thumbnails: 2 39 x 35 Desktop env.: gnome cine_encoder: symbol lookup error: cine_encoder: undefined symbol: _ZN12MediaInfoLib9MediaInfo4OpenERKSbIwSt11char_traitsIwESaIwEE
Would you have any ideas?
Many thanks

Error "Specified rc mode is deprecated." with newer FFMPEG application

Hello,

i replace the existing ffmpeg application with a newer one and get the following error:

[h264_nvenc @ 000001abf9b4d640] Specified rc mode is deprecated.
[h264_nvenc @ 000001abf9b4d640] Use -rc constqp/cbr/vbr, -tune and -multipass instead.
[h264_nvenc @ 000001abf9b4d640] InitializeEncoder failed: invalid param (8): Presets P1 to P7 are not supported with older 2 Pass RC Modes(CBR_HQ, VBR_HQ) and cbr lowdelay.
Enable NV_ENC_RC_PARAMS::multiPass flag for two pass encoding a
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

According to
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cde3c080338154cc73103939f6ab26ae5bb718cd

these ffmpeg option is dropped out / has been changed ("Use -rc constqp/cbr/vbr, -tune and -multipass instead")

i have attached my preset.

Could you fix these option in the next version ?

Thank you.

presets.zip

Youtube HDR

Hello, I have a question: I always used adobe premiere to upload some videos that were created in SDR to youtube HDR, but its very slow program, so I was reading about your software, just did a test but the colors look very strange super saturated and hdr option doesnt activate, is there a way I can do this?

Support more aspect ratios (or custom aspect ratios)

Today I was trying to downscale a 4k (4096x1716, 2.39 aspect ratio) video to 1080p (1920x804), and I found that the options available are too limited:

image

image

image

I guess this AR is uncommon, but it would be great to add it in the dropdown.
Better yet, the ability to set custom width/height would be more future-proof and probably a bit easier to use, the current UI is a bit unwieldy.

GUI: Close, Expand and Hide button not visible

After compiling Cinecoder from actual source there is no close, expand and hide button visible.

Close, Expand and Hide button not visible

Compile environment:
Windows 10
MinGW x64
Qt version 5.15.3

is this a "known" issue ?

Regards,
Mark.

Centos 7.8 - Installation errors

Hello
I am trying to install on centos 7.8 but I am getting the errors below.
GLIBC seems to be a touchy lib to install so i am reticent
https://serverfault.com/questions/894625/safely-upgrade-glibc-on-centos-7
Any thoughts are most welcome

[admin2@centoslowdell App]$ sudo ./CineEncoder.run [sudo] password for admin2: ./CineEncoder.run: /lib64/libm.so.6: version GLIBC_2.29' not found (required by ./CineEncoder.run)
./CineEncoder.run: /lib64/libm.so.6: version GLIBC_2.29' not found (required by /home/admin2/Downloads/cine-encoder-2.4_other_linux_x86_64/App/libpython3.8.so.1.0) ./CineEncoder.run: /lib64/libc.so.6: version GLIBC_2.28' not found (required by /home/admin2/Downloads/cine-encoder-2.4_other_linux_x86_64/App/libpython3.8.so.1.0)
./CineEncoder.run: /lib64/libc.so.6: version GLIBC_2.25' not found (required by /home/admin2/Downloads/cine-encoder-2.4_other_linux_x86_64/App/libpython3.8.so.1.0) ./CineEncoder.run: /lib64/libc.so.6: version GLIBC_2.26' not found (required by /home/admin2/Downloads/cine-encoder-2.4_other_linux_x86_64/App/libpython3.8.so.1.0)
./CineEncoder.run: /lib64/libc.so.6: version GLIBC_2.27' not found (required by /home/admin2/Downloads/cine-encoder-2.4_other_linux_x86_64/App/libpython3.8.so.1.0) ./CineEncoder.run: /lib64/libc.so.6: version GLIBC_2.25' not found (required by /home/admin2/Downloads/cine-encoder-2.4_other_linux_x86_64/App/libexpat.so.1)
`

Ability to clear the list?

The list doesn't seem to have a way to empty it out; it would be neat to have a way to clear it (e.g. after a batch conversion), to avoid having to re-start the tool or remove each of the entries one-by-one

Support AV1 Codec

AV1 is a new and upcoming Codec that improves image quality on the same bitrate (or allows for lower bitrates at similar image quality).
Current Nightly builds of Hand Break already support AV1 in Software and through Intel QSV (for Intel Arc GPUs). Would be great if we can have the better HDR handling on CineEncoder while also making use of the much better AV1 codec :)

The boss wants to add features

Please add filter visualization and command line operations, such as - filter_ complex "[0:0]bwdif=1[out0]" .

Add x264, x265 parameters, custom parameters and command line parameters, such as - x265 params: 0 "no open GOP = 1: bframes = 8"

Finally, add ass subtitle recording function

Linux : unable to add from a network location

This isn't an issue on Windows, but trying to add in a file from the file browser from a network share (e.g. smb://user@myserver/share/myfile.mp4) yields an error that the file could not be found.

The only way to avoid this seems to be a direct mount into the file system, which is inconvenient in many cases and often requires super user rights.

I lost my personal preset when I upgraded

Yes, I unpacked the zipfile into my current folder and lost my preset. Where are they stored and why won't the newer version read it?

Thanks! Keep up the good work here!

Current code only appears to support adding 32 files in a drag-and-drop manner

Shift select more than 32 files and drag and drop them into the tool. Only 32 appear to be added. The GUI appears to only handle 32 items for drag-and-drop, requiring batches to be added. My primary desktop is Cinnamon, but I also see this with Cosmic under Pop_OS 22.04. I've not yet tried under KDE or similar.

batch encoding

Maybe I am doing something wrong. When I add more than 1 file it only encodes the first one but not the second.

Increase multi-language request

Hi, I'm from China, thank you for the application you published.
Can you add multiple language options? I can help you translate the Chinese language for free.
:-)

I guess this is not portable

Nice application. I want to install it as a portable app but after looking on VirusTotal, there seems to be lots of registry entries during installation. I can't seem to unpack the Inno installer either. Can you supply a .zip file to make it portable?

Incorrect program window title

I've left two comments to the commit 540bc30 which broke it, but they went unanswered, so I guess I have to open an issue instead. Consider the following patch:

@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="windowTitle">
-   <string>Form</string>
+   <string>Cine Encoder 2021</string>
   </property>
   <property name="windowIcon">
    <iconset resource="files.qrc">

Q_OS_LINUX -> Q_OS_UNIX

The program should not assume that any non-Windows, Unix-like system is GNU/Linux, yet currently, in version 3.4, there are three #ifdef Q_OS_LINUX in app/mainwindow.cpp and app/settings.cpp files. Consider using more appropriate Q_OS_UNIX macro instead.

'already_running' shown when trying to run more than one instance, even of different version

I tried to launch the development code whilst having the stable release also running and got this complaint; I also see it for trying to run two instances of the same version.

It would be useful to be able to run two instances because adding jobs in batch mode isn't possible whilst the tool is running. Alternatively, being able to work in the GUI whilst the tool is running would be neat.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.