Fast MLV Player and Viewer on GPU
Magic Lantern is capable to add 4K RAW mode to Canon 5D Mark III. Basically, it's raw 14-bit format, uncompressed or with lossless JPEG compression. At the moment 5D Mark III has the following modes: 4096 × 1440 at 25 fps; 4096 × 2560 at 12.5 fps and 3840 × 1600 at 24 fps. There are also some additional HD video options like 1920 × 800 at 60 fps and square-crop-video mode.
What are main disadvantages of current solutions to play MLV files?
- One have to convert MLV to DNG, which is time consuming
- One can utilize mlvrawviewer / mlvfs / mlv_dump, but these methods are quite complicated and slow
- Full raw video processing pipeline on CPU is slow, even at MLVP and MLV App
- Smooth playback is mostly limited by insufficient debayer performance (Amaze demosaicing algorithm on CPU is good, though not fast)
- One can utilize Davinci Resolve for debayering on GPU, but it can't work with MLV files directly
- Long time to prepare video (ProRes / MP4) out of MLV / RAW
Fast CinemaDNG Processor can process Magic Lantern raw video files directly, there is no need in MLVFS or any other software. On NVIDIA GPU we can work with MLV very fast due to parallel implementation of all raw image processing algorithms. To load MLV file, you just need to click with right button on the file at Windows Explorer and run Fast CinemaDNG Processor software via context menu or you can drag-n-drop .MLV file to player / viewer window. We can get smooth MLV playback, as soon as we perform realtime processing on NVIDIA GPU. To solve the task of high quality grading with 3D LUT, there is an interoperability with external 3DLUT Creator software. Lots of options for output video encoding are available at Fast CinemaDNG Processor due to external FFmpeg.
What we can do for fast MLV processing on GPU
- MLV file import, parsing, decoding for single MLV and audio, including spanned files support (multi-file option)
- Focus pixels removal
- MLV viewer and MLV player with full processing pipeline on GPU
- Wavelet-based denoising for MLV files
- MLV post processing with DCP profiles
- Undistortion with LCP profiles
- Realtime MLV grading with 3D LUT
- Smooth video output to the monitor
- Export MLV to DNG (uncompressed DNG or CDNG, lossless JPEG compression, lossy BMD RAW 3:1, 4:1 and 5:1)
- MLV converter: MLV to TIFF/JPG/EXR export, MLV to MP4 export with external FFmpeg, MLV to MJPG (AVI)
- Export MLV to ProRes 422 LT, 422, 422 HQ, 4444, 4444 XQ
- Export of processed video from MLV (mlv to movie)
To summarize, one can emphasize the most important features of Fast CinemaDNG Processor software for realtime MLV video processing on NVIDIA GPU: native support of MLV file format, fast MLV decoding on CPU, high quality debayering, realtime denoising, DCP and LCP profiles support, 3D LUT (RGB and HSV), smooth MLV playback up to 4K, export options (MLV to cDNG or MLV to ProRes), etc. Here you can find more info about licensing.
Instead of conventional MLV workflow, where we need to convert .MLV file to DNG sequence, then to create proxies for further processing and color grading, now we can do all these actions at the same pipeline, because we don't need neither DNG nor proxies for MLV processing, everything could be done on NVIDIA GPU in realtime, starting from RAW MLV to final color corrected video.
Third-party software for better MLV processing
You can download and install that third-party software, then set correct path (dialog Options) and interoperability with FFmpeg and 3DLUT Creator will be established.
P.S. To read MLV files we have utilized mlv_structure.h which is licensed under LGPL 2.1.