Fast CinemaDNG Processor

High performance software for CinemaDNG processing on GPU

Fast CinemaDNG Processor on CUDA

Fast CinemaDNG interoperability with FFmpeg

FFmpeg doesn't work directly with DNG, CinemaDNG, CinemaDNG RAW, MLV files, so we can do that with Fast CinemaDNG Processor software on NVIDIA GPU. Nevertheless, at the very end of raw image processing pipeline we usually need to do video encoding to save processed data for further editing. Such a functionality could be done via external FFmpeg application which offers just increadible number of possible compression algorithms and formats. That's why we've implemented interoperability of Fast CinemaDNG Processor software with FFmpeg application. Full version of FFmpeg software you can download from www.zeranoe.com. Then you need to install it to your PC and set path to ffmpeg.exe in Options dialog of Fast CinemaDNG Processor software.

Now you are ready to utilize the power of FFmpeg for various encoding options. We start from raw processing with Fast CinemaDNG and then the software sends processed data to FFmpeg for final encoding. For majority of compression algorithms from FFmpeg, the whole job could be done in realtime. To start video encoding to MP4 with external FFmpeg, you can utilize the following command line:
 -c:v mpeg4 -q:v 2 -r 25 "$OUTPUT_PATH$/$OUTPUT_BASE_NAME$.MP4"
where "-r 25" stands for output frame rate 25 fps. If audio file reside in the current folder, FFmpeg will include it automatically.

One can utilize h264 encoding as well, and user can choose either CPU-based or GPU-based versions of such a compression. Please bear in mind, that there are some limitations for output resolution, so you won't be able to do that encoding for arbitrary resolution of your footage.

Below you can see examples of command line for external FFmpeg. You can utilize them with Fast CinemaDNG Processor to get output compression via external FFmpeg.

MPEG 4
To adjust output quality, change q parameter from 2 (best) to 31 (worst). Reasonable good range is 2.0 - 3.5
-c:v mpeg4 -q:v 2 "$OUTPUT_PATH$\$OUTPUT_FILE_NAME$"

Motion JPEG
-c:v mjpeg -q:v 2 "$OUTPUT_PATH$\$OUTPUT_FILE_NAME$"

H.264
The crf value range (the quantizer scale) is 0 - 51, where 0 is lossless, 23 is default, and 51 is worst possible. A lower value is a higher quality and a subjectively sane range is 18 - 28. Consider 18 to be visually lossless or nearly so: it should look the same or nearly the same as the input, but it isn't technically lossless.
-c:v libx264 -preset slow -crf 22 "$OUTPUT_PATH$\$OUTPUT_BASE_NAME$.mp4"

Lossless Example (fastest encoding)
-c:v libx264 -preset ultrafast -qp 0 "$OUTPUT_PATH$\$OUTPUT_BASE_NAME$.mp4"

Lossless Example (good compression, slow speed)
-c:v libx264 -preset veryslow -qp 0 "$OUTPUT_PATH$\$OUTPUT_BASE_NAME$.mp4"

Lossless Example (best compression, extremly slow speed)
-c:v libx264 -preset medium -qp 0 "$OUTPUT_PATH$\$OUTPUT_BASE_NAME$.mp4"

Lossless Example (best compression, extremly slow speed)
-c:v libx264 -preset veryslow -qp 0 "$OUTPUT_PATH$\$OUTPUT_BASE_NAME$.mp4"