Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - revast

QuoteCould you please change the .pro file like this

Yeah, works.
except the fact its qmake-qt5 on ubuntu :)
I figured it out, looks like linuxdeployqt did not set the paths right,
there is a line:


in qt.conf, which should point to the prefix dir (usr..) of the appimage. But that does not work, even if my lib folder is in APPimageDIR/usr/

Nevertheless, that is easily fixed with a little script which replaces the default AppRun symlink :

#! /bin/bash
export APPDIR="$(dirname "$(readlink -f "$0")")"  #get the path inside the appimage
export LD_LIBRARY_PATH=lib:LD_LIBRARY_PATH #set libray path
export QT_PLUGIN_PATH=plugins:QT_PLUGIN_PATH #setting this explicitly as well, just for safety
export QT_QPA_PLATFORMTHEME="fusion"  #set theme path (does not work so far)

./MLVApp -style=fusion

As you can see, the fix I had in mind regarding the theme issues did not work out so well so far.
I explicitly set the style to the built-in fusion style for now, via the -style=fusion argument and will figure out the theme details later.

At least the appimage works now..
hmmm all dependencies should be bundled in the one file, yes.
Sorry, I haven't tried it out on vanilla ubuntu till now. I am downloading a xubuntu 17.10 daily image and try for myself

all I can say right now is that that library definitely is inside the .AppImage, I checked that.

try this version

if that does not help,  sudo apt-get install libqt5multimedia5 for now..

Can you please build this this version? Then I could add it to the latest release page
ok, done :). But bear in mind: the older the libc version is the more compatible the package. The appimage creator uses centos 6 for example...
QuoteJust one note: it's almost 2 times bigger (~43mb) then it would be as statically linked binary (~24mb).
Thats because its bundled with ffmpeg static binary, which is about 14mb with upx compression applied, without it, the AppImage would have around 30mb.

QuoteBut anyway I think in this form it could be released as Linux version.

Yeah, I think so, too :). Using an older base system (like ubuntu 12.04, depends on the minimum qt5 version I guess) to compile MLVApp and make the AppImage would be better though.

I now uploaded another version which should respect the theming of the Linux Distribution the AppImage is run on
I have now made an AppImage.
Just download, make executeable, launch.

Turned out to be quite easy, thanks to linuxdeployqt
./linuxdeployqt  m/MLVApp -appimage -bundle-non-qt-libs -verbose=2
where in folder m is the a MLVApp.png, a static FFMpeg executeable, the MLVApp executeable,  as well as a MLVApp.desktop file with 

[Desktop Entry]

To see how it looks like inside, use: ./MLVApp-x86_64.AppImage --appimage-extract

What it actually does is to grab all libs which are needed to run the executeable, and deploys that in a compressed package which is built like an ISO file - you can even mount it - which is also executeable via fuse.
The wiki has more info, the one thing that has to be considered for a release package is that the older the platform where the appimage was made, the better in terms of compatibility to different linux distributions.

QuoteThank you, but it's gonna make more sense if you make the binary static.

show me how.
Linux compile howto & 64bit build

sudo apt-get install libpng16-dev qtmultimedia5-dev qt5-qmake qtbase5-dev

ubuntu 16.04 with kubuntu backports ppa activated, so qt 5.6.1

I had to change line 22 of MainWindow.cpp to

#include <libpng16/png.h>

and line 55 of to
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng16

then the ususal

MLVApp + static FFMpeg, 64bit
Raw Video Postprocessing / Re: ML RAW-tools for Linux
December 26, 2016, 09:32:51 AM
download is possible right now, no server problems I know of..
yeah you need at least glfw 3.1.
thanks! - I am trying to stick together some loose parts - I made an indicator applet for mlvfs, its just a dropdown menu with menu items like mount/unmount, start webinterface, configure mount path, mlvfs command; open mount folder in filebrowser and terminal... and want to make it possible to run scripts from there - custom ones (like a please enter script popup, which autosaves last versions entered), and something like yours, as fixed menu item. Seems to work fine so far -it's using python and is completely self-explanatory - all actual functions are external and are written in shellscript. If you're interested I can post it.
Something to check out is how to handle the folders - I mount all .mlv files contained in a folder right now - so I would have to stick the scripts into a for loop working through the Folders..
working pad - maybe useful

dcraw -a -c -H 0 -6 -W -q 3 *.dng | ffmpeg -f image2pipe -vcodec ppm -r "$FPS" -i pipe:0 -vcodec prores_ks -profile:v 3 -vendor ap10 -pix_fmt yuv444p10 -y -r "$FPS"

When run in the same folder with MLV and RAW files it will convert and apply exiftool information including correct fps to ffmpeg to transcode to ProRes. Many of the script calls needs the binares from cr2hdr-r but should work with just Mlv_dump, Raw2dng, exiftool, dcraw and ffmpeg.


I run an old ffmpeg called ffmpegx86 in the script so if running a newer release rename accordingly.

Part of the code. When filming slowmotion ffmpeg will scale the file to correct aspect ratio.

raw2dng *.RAW ${BASE}_1_$(date +%Y-%m-%d)_0001_C0000_ | awk '/FPS/ { print $3; }' > /tmp/fps

FPS=$(cat /tmp/fps) ;

exiftool -tagsfromfile ${BASE}_1_$(date +%Y-%m-%d)_0001_C0000_000000.dng -FrameRate="$FPS" *.dng -FrameRate="$FPS" -overwrite_original ;
01_C0000_000000.DNG "-FrameRate="$FPS"" -overwrite_original ;

if grep -q '40.000\|48.000\|50.000\|60.000' /tmp/fps
dcrawx86 -a -c -H 0 -6 -W -q 3 *.dng | ffmpeg -f image2pipe -vcodec ppm -r "$FPS" -i pipe:0 -vcodec prores_ks -profile:v 3 -vendor ap10 -pix_fmt yuv444p10 -y -r "$FPS" -vf scale=iw:ih*1.61 ../${BASE}_1_$(date +%Y-%m-%d) ;


dcrawx86 -a -c -H 0 -6 -W -q 3 *.dng | ffmpeg -f image2pipe -vcodec ppm -r "$FPS" -i pipe:0 -vcodec prores_ks -profile:v 3 -vendor ap10 -pix_fmt yuv444p10 -y -r "$FPS" ../${BASE}_1_$(date +%Y-%m-%d) ;

For MLV (Part of the code)

exiftool and awk grabbing the framerate

exiftool ${BASE}_1_$(date +%Y-%m-%d)_0001_C0000_000000.dng | awk '/Frame Rate/ { print $4; }' > /tmp/fps

   FPS=$(cat /tmp/fps)

When I take those DNGs and pipe them through the script, the ProRes result is very Rec709-ish. Means, colors and contrast look already pretty normal which doesn't leave awfully much space to work with. Is it possible to get a result more towards the direction of C-Log or Cinestyle?
Report to moderator   Logged

You could work with gamma settings but more efficient would be to implement a lut. I just got a log lut from Andy600 that fits really good here but with dual iso files.

I,d also recommend using find when piping bigger amounts of files since ls won,t list endless amount of files. I changed my code to this.

find . -name '*.DNG' -print0 | xargs -0 dcraw -c -H 0 -6 -W -q 3 -r $Wtemp | ffmpeg -f image2pipe -vcodec ppm -r "$FPS" -i pipe:0 -vcodec prores_ks -pix_fmt yuv444p10 -n -r "$FPS" -vf lut3d=/usr/bin/bmcc_ixml_luts/Andy600_cr2hdr-r_luts/Andy600_lin_to_log.cube ../${BASE}_1_$(date +%Y-%m-%d) ;

-r $Wtemp (white balance) and $FPS" (frames per second). THese are settings used with awk and not to be used as is.

Log lut implementation

-vf lut3d=/usr/bin/bmcc_ixml_luts/Andy600_cr2hdr-r_luts/Andy600_lin_to_log.cube

Create the fuse.conf file and add the 'user_allow_other' value into it

Code: [Select]

echo "user_allow_other" | sudo tee -a /etc/fuse.conf

If everything is ok, you can create 2 folders (eg. mlv-in and mlv-out)

Code: [Select]

mkdir /home/<YOUR_NAME_HERE>/mlv-in
mkdir /home/<YOUR_NAME_HERE>/mlv-out

and now, you can launch mlvfs !

Code: [Select]

mlvfs -f /home/<YOUR_NAME_HERE>/mlv-out --mlv_dir=/home/<YOUR_NAME_HERE>/mlv-in -o allow_other

Don't close the terminal, open a browser and type : ''

Magic as a lantern !  :)


# Roba da convertire

# Inizio del ciclo
for file in /home/gigi/Videos/Mjpeg/Convertire/*; do `ffmpeg -i $file -r 30 -s hd1080 -vcodec mjpeg  -qmax 1 -qmin 1 -acodec copy $` ;done

exit 0;#!/bin/bash

# Roba da convertire

# Inizio del ciclo
for file in /home/gigi/Videos/Mjpeg/Convertire/*; do `ffmpeg -i $file -r 30 -s hd1080 -vcodec mjpeg  -qmax 1 -qmin 1 -acodec copy $` ;done

exit 0;

First of all, as I explain more thoroughly some lines later, it's not necessary to compile anything - MlRawViewer will run as it is, as Python is an interpreted Language - As long as all necessary python libs are installed - and their dependencies - maybe there has to be compiled something..

I have made a basic tutorial how to make it happen in (Debian-based) Linux, which I find is a good start to find out what we will need-  Its not so straightforward as I thought (the program changed alot during last year) but its a start.

open a terminal , and enter:

sudo apt-get install build-essential python-opengl python-numpy python-dev python2.7-dev python-tk python-pyaudio git
This will install nearly all dependencies. You will have to enter your user's password here.

python-pyaudio is optional, python-tk needed for GUI.

Now I found out that a recently added dependency is missing and not available in Debian/Ubuntu: scandir
I have made a package for that :


get it.

sudo dpkg -i python-scandir_0.9-1_amd64.deb

install it.

git clone

This will make a mlrawviewer folder in your home directory, and puts the latest source-code in it.

with git pull, (you don't have to run this now) you will be able to update your code to the newest version in git. So every time you want the newest version, just do a   git pull  , and you have the newest code.

cd mlrawviewer

Go into that folder.

Also, glfw3.1 is needed, which is not available in ubuntu 14.04, 14.10 nor 15.04  ( !!!!!!!!!!! )
but, no fear, you just need to get it from me:


I am doing this here so that these two already sit in the right directory...

python build

This optionally compiles the bitunpack module; Remember, Python is an interpreted language, no need to compile,
but playback will be faster if you do compile this module written in C.

cp build/lib.linux-*/ .

copy the binary from the build/lib.linux-* subfolder to the same place where is.

chmod +x
chmod +x

make these executeable is mentioned at webpage and in README, but it's not found? strange...


run the GUI interface.


run the commandline interface.

ln -s ~/Desktop

make a link to the Desktop to run it from there.

This are the basics of getting it run - no menu entry, no packaging. Maybe this is not good for convenience, but good for testing. As explained before, if you skip the part to build the bitunpack[.so/.dll/dylib], MlRawViewer is still fully functional.

Remember: git pull will give you instantly the newest version of the code, and if you take this tutorial and make a script out of this (basically just writing everything into a text file), have a symlink / shortcut / alias to that script to run it from e.g. Desktop, you will always have the newest version available - and baldand can do what he's best in.

Now with Windows and Mac - its a bit more complicated to set up (that's why I love my Linux).

How do you get MlRawViewer ? - Git 
So installing git is the first thing everyone should do.

What do you need to run MlRawViewer ?
- Python. 
As I said, I recommend to use virtualenv.

QuoteThe playback will be faster if you build the included bitunpack module.

This means compiling the C part of MlRawViewer is only (please tell me if I am wrong) needed if you want to have faster playback - otherwise  run it like it is -

Mac also has package systems like apt: homebrew and port . so these could be used to install external dependencies needed by the virtualenv stuff.

Windows .. there are different ways, I do not know which libraries are available in which form (via pip in virtualenv, or via setup.exe... we have to check this out - it are not so many dependencies so I have hope that we find an elegant solution..

ok, looks like people have to jump over their shadow and try to use Linux ;-)

OR people are willing to setup / compile for their platform - which is not a big thing, but you have to jump through some hoops - if people devote some time to it, it should be no problem to make a nice tutorial with a partly-scripted workflow.

I understand baldand loosing interest - making such a cool app, and then hanging in mac and windows issues others should cope with -
let the master code, guys!!

How do you get MlRawViewer ? - Git 
So installing git is the first thing everyone should do.

What do you need to run MlRawViewer ?
- Python. 
I recommend to use virtualenv.

what do you need to compile a (part of a) program - a compiler.
On Win, that is either Visual Studio (Microsoft) or Mingw (basically all the tools from Linux ported to Windows), on Mac there is Xcode.

And what do you need for packaging?
on Windows there is py2exe, on the mac there is an equivalent to make an .app package

Now to make it a more streamlined process to get an up-and running MlRawViewer, one could make different things. You have to deal with the python part for shure, and eventually with the compiler part.

- for the Python part, one can use virtualenv - that is a self-contained python version which resides in one folder. With this, it's very easy to install all the python things which are needed - and all the things MlRawViewer needs are in one folder. One could ship a full virtualenv (remember, it;s just a folder) with everything in it to run MlRawViewer, and just have an accompanying launcher script to start it and automatically update it.

- one could provide precompiled binary versions of the C parts of MlRawViewer - If you really need that accelerated playback - that would be the easiest way I guess. just drop the newest .dll or .dylib into the Python folder and that's it. Or make the start script do that for you - plus searching for the newest version of the precompiled binary.

- compiling things on Mac/Win can be daunting, compared to Linux, but still, it's no rocket science. Making a quick tut for every platform should be no problem. Automating it neither. on Mac, you just have to install Xcode, then the compilation part should already work, on Win, MinGW.

- Having an alias (shortcut) to, place that  on Dsktop, into dock (taskbar), one which opens a terminal (cmd window) ready to use - this should be enough for you guys! remember it's about testing a software which can have bugs and changes often! I can understand the everybody wants convenience - but magiclantern is DIY -  so people will have to deal with it.

- Another Idea is to have virtual machines of mac & windows which have everything put in place  - just click a button and newest mlrawviewer gets compiled and packed for your platform;  you will only have to learn how to start the virtual machine - which works on every platform  - and how to get the built file out of the vm. Further this could serve as a kind of virtual automated build server for the different platforms, which could be made reachable over the internet, e.g via vnc, teamviewer. (that would be real fun - and overkill!)

Someone willing to help (or help by donating?, if allowed?)

you can try my version, its older, but should work
see ML RAW-tools for Linux, I tried to collect all the options available
QuoteGreat job, chmee! Now if only I could make it work under Wine.
here you go:

Quote[linux, wine] do you have some info for me?

Plenty of infos about raw and linux here collected by me..
also how to run your program via wine...

WINE is acutally and opensource implementation of the windows api, thus a layer of windows libraries upon linux. That has the advantage to be able to run stuff in native speed, as it's not emulated. The disadvantage against a crossplatform raw2cdng aparrt from the obvious is that it needs plenty of space, 600+mb with dependecies, and then in wineprefix ( a bottled environment where a windows system is presented to the application) is annother 500mb, with dontnet4 installed etc, just for running a little program like yours; also, it is not guaranteed that programs will work at all or with every version of wine, or possible that changes you make to your program would then also break it in wine.

One can ship around this by using a dedicated wine version from playonlinux, just for one app, and set it up so that everything a windows program needs to run is selfcontained in one folder, but it's quite a job to do that.

Hence my question - Would it be possible to go crossplatform with raw2cdng, if it's just to build against mono? I have not looked at your code if it's that easy..

QuoteI dont have any Linux based pc here.. 
In terms of developing, I guess you don't have to...
If you would go for crossplatform and build raw2cdng against mono, the .exe build for windows should run on Linux/Mac, too
g3gg0 with MLVViewSharp e.g. does it that way.

Normally, a virtual machine would suffice, e.g Virtualbox as portable solution: (portable has the advantage that you are not polluting your system at all)
and a ready to use image:
(username/password): xubuntu/reverse

Thats only one solution, as Linux also runs form usb-stick, and it even saves the changes you do on the stick then (e.g install mono, in terminal, enter "sudo apt-get install mono-runtime, libmono-corlib2.0-cil libmono-winforms2.0-cil" ) ...
If you want to try that, I would recommend unetbootin, quite bulletproof thing (check persistence)

I figured I missed python-docutils
after I installed it, it worked.

thanks for fast response though!

will alter my raw linux post accordingly, and get a binary up there.
cr2hdr should work out of the box:
In terminal enter:

sudo apt-get install build-essential
hg clone -r unified
cd magic-lantern/modules/dual_iso
make cr2hdr
sudo cp cr2hdr /usr/local/bin

hmm doesn't work... am I missing something?

make cr2hdr
../../modules/Makefile.modules:22: warning: overriding commands for target `delete_if_failed'
../../modules/Makefile.modules:22: warning: ignoring old commands for target `delete_if_failed'
../../modules/Makefile.modules:39: warning: overriding commands for target `module_strings.h'
../../modules/Makefile.modules:39: warning: ignoring old commands for target `module_strings.h'
../../modules/Makefile.modules:42: warning: overriding commands for target `README.rst'
../../modules/Makefile.modules:42: warning: ignoring old commands for target `README.rst'
../../modules/Makefile.modules:45: warning: overriding commands for target `'
../../modules/Makefile.modules:45: warning: ignoring old commands for target `'
../../modules/Makefile.modules:50: warning: overriding commands for target `dump_asm'
../../modules/Makefile.modules:50: warning: ignoring old commands for target `dump_asm'
../../modules/Makefile.modules:69: warning: overriding commands for target `hgstamp'
../../modules/Makefile.modules:69: warning: ignoring old commands for target `hgstamp'
[ gcc      ]   cr2hdr
cr2hdr.c: In function 'module_get_string':
cr2hdr.c:344:34: error: '__module_strings_MODULE_NAME' undeclared (first use in this function)
cr2hdr.c:344:34: note: each undeclared identifier is reported only once for each function it appears in
cr2hdr.c: At top level:
module_strings.h:1:13: warning: '__module_string_a_name' defined but not used [-Wunused-variable]
module_strings.h:2:13: warning: '__module_string_a_value' defined but not used [-Wunused-variable]
module_strings.h:3:13: warning: '__module_string_b_name' defined but not used [-Wunused-variable]
module_strings.h:4:13: warning: '__module_string_b_value' defined but not used [-Wunused-variable]
module_strings.h:5:13: warning: '__module_string_c_name' defined but not used [-Wunused-variable]
module_strings.h:6:13: warning: '__module_string_c_value' defined but not used [-Wunused-variable]
module_strings.h:7:13: warning: '__module_string_d_name' defined but not used [-Wunused-variable]
module_strings.h:8:13: warning: '__module_string_d_value' defined but not used [-Wunused-variable]
module_strings.h:9:13: warning: '__module_string_e_name' defined but not used [-Wunused-variable]
module_strings.h:10:13: warning: '__module_string_e_value' defined but not used [-Wunused-variable]
make: *** [cr2hdr] Error 1

gcc version 4.6.4 (Ubuntu/Linaro 4.6.4-1ubuntu1~12.04) 64bit

how about a build for the Linux guys?

as its qt, it should be just a matter of getting the linux verisons of the underlying commandline tools, and a qmake && make...

QuoteBut if there is demand for just CinemaDNG playback
There is.... but does that mean I cannot (right now) play back a folder with ( non-cinema) DNG's that I converted with mlv_dump or raw2dng?

So right now I must use raw2cdng via wine or your new commandline converter (I guess its tests/  to convert to CinemaDNG to be able to play them back?

QuoteDirectories containing "CinemaDNG" sequences can be played the same as RAW and MLV files
and how do I specify that? best would be if it would work when I give the path to one DNG and also if I give the path to the surrounding folder

Quote./ ../Canon_5D_Mark_III_Magic_Lantern_Raw_Video_files/
MlRawViewer v1.0.3 alpha
(c) Andrew Baldwin & contributors 2013
Using GLUT instead of GLFW. Some features may be disabled.
outfilename for CDNG: ../Canon_5D_Mark_III_Magic_Lantern_Raw_Video_files.MOV
Opening CinemaDNG ../Canon_5D_Mark_III_Magic_Lantern_Raw_Video_files/
Could not open file ../Canon_5D_Mark_III_Magic_Lantern_Raw_Video_files/. Error:51044
does that mean it generates a .mov for playing back the DNG's?

QuoteUsing GLUT instead of GLFW. Some features may be disabled.
what am I missing there? I just have glfw2 ( in ubuntu 12.04...,even 14.04 just has 2.7.2-1 would that be also sufficient?

nevertheless, thanks for MlRawViewer! May it live long and prosper
Raw Video Postprocessing / ML RAW-tools for Linux
November 15, 2013, 03:05:58 PM
ML RAW-tools & more how to deal with .raw/mlv & cDNG files in Linux

Updated on 05-2017

MLFVS (MLV files can now be simply mounted thanks to MLFVS. 64bit binary; thread; homepage; It's fast and efficient, real-time playback possible with fast storage. I made a Python-based MLVFS-AppIndicator, which allows to control MLVFS from systray)

Installation & Usage

QuoteA MLV "converter" that provides a virtual file system of converted data 'on the fly' using Filesystem in Userspace (FUSE). It allows you to "mount" an MLV file(s) which shows up as a directory of converted CDNGs. The data for these CDNGs is provided 'on the fly' by MLFVS as the data is being requested by whatever raw editor or post processing software you are using. It's fast and efficient, and allows for real-time playback.

- You don't have to convert first, you more or less "instantly" have "converted" DNGs
- You don't have to choose between keeping the original MLVs or converted DNGs or doubling disk usage to keep both.
- There's no need for a GUI, there already is one provided by the OS (i.e. the OS's file browser).
- Possible to vary the quality, pre-processing, bit depth, etc, of the DNGs on the fly, via webinterface.

convmlv (convmlv + required tools; thread; homepage, written in Bash. A featurefull converter from ML formats (RAW, MLV, DNG sequences) to many formats (EXR, DPX, 10bit Prores). You have to install libc6:i386 to get its dependencies run on 64bit systems.)

-Bash script, based on mlv_dump, raw2dng,
-Uses mlv/raw files as arguments
-Create image sequences/movies in EXR, DPX, Prores
-Develop specific frame range easily, making MLRawViewer an ideal companion
-Complete control over RAW development: Highlight reconstruction, demosaicing, color space, chroma smoothing, white balance...
-100% colormanaged, output gamma/gamut (including Cineon, S-Log3, DCI-P3, Rec709...), no quality loss from sensor --> output
-Create/use darkframe subtraction, temporal denoising, wavelet denoising for noise reduction
-HDR Dual ISO processing
-Easy bad pixel removal
-Autom. applies lossless compression
-Option to create jpg/mp4 proxies
-Apply ffmpeg-supported filters
-Optional Auto White Balance
-Sound is available as a .wav file
-Metadata dumped from MLV or DNG files to settings.txt or terminal
-Config file interface lets you automate all, saving time

documentation: convmlv -h, pdf

Usage (excerpt)
    -i: output full-quality EXR sequence
    -m: output high-quality Prores 4444 file
    -p 3: generate proxies both JPG seq, H.264 video.
    -C: local config file
    -s %: denotes proxy scale, in %
    -b: seamlessly removes focus pixels,
    -k: keep DNGs
    -d 3: hq AHD demosaicing
    -g 0: Standard Gamma
    -G 2: Rec.709 Gamut
    -o ./output: One folder per converted file, each containing all materials
All options must go before the MLV/RAW files.

MLVApp (MLVApp+static FFMpeg, 64bit; thread; homepage, written in qt/C++. A RAW player/converter for MLV files with ProRes export.)

-Free and Open Source!
-Fast (The main goal), Fast playback as well.
-Develop your raw video files like in Adobe Camera Raw (Exposure, Temperature, Tint, Saturation, Dark Strength, Dark Range, Light Strength, Light range, Lighten, Highlight reconstruction)
-Gamma curves: Tonemapping, Alexa Log-C, Cineon Log, Sony S-Log3
-Correct ML Raw files issues (Focus dots, Bad Pixel, Chroma Smooth, Pattern noise, Vertical Stripes, Deflicker target)
-Support for Lossless compressed MLV
-Support for 10/12 bit
-Batch export
-ProRes (and other formats) export (Prores 4444, 422 Proxy, 422 LT, 422 HQ, 422, uncompressed AVI so far)

Linux compile howto

ubuntu 16.04 with kubuntu packports ppa activated, so qt 5.6.1:

sudo apt-get install libpng16-dev qtmultimedia5-dev qt5-qmake qtbase5-dev libz-dev

I had to change line 22 of MainWindow.cpp to: 

#include <libpng16/png.h>

and line 55 of to:   

linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng16

then the ususal:

ffmpeg binary must be in the same directory as MLVApp for working export.

[UNMAINTAINED]MlRawViewer ( 64bitBinary2016-08-15; thread; homepage) .mlv/raw Player (no 10/12 bit .mlv support); converter; GUI & command-line; written in Python. Needs python-opengl python-numpy python-tk python-pyaudio libglfw 3.1+ python-scandir; While unmaintaind, works, particularly for previewing/playing footage, also has powerful LUT support. Prores export 10bit only (ffmpeg). Great for quickly going through a card full of MLVs as you can preview and export only what you need very easily. mostly keyboard controlled

Quotesupports RAW MLV in both single and multi-file versions, sound playback from MLV_SND audio, external WAV, playback of directories containing sequences of "CinemaDNG" .DNG files; BSD-style license.

    RAW, MLV and CinemaDNG playback in real-time (if you have fast file read and modest GPU), single and multi-file
    Progress bar and timestamp overlay. Click to jump in file
    Pause playback: SPACE key or play/pause icon.
    Toggle fullscreen and windowed mode: TAB key or fullscreen icon
    Jump to next/previous RAW or MLV files in same directory as current file using O/P keys.
    Drag a RAW/MLV/DNG file onto the window to view that file. Drag a WAV file to play with the current video.
    Step forward and backward through frames by one second (LEFT/RIGHT cursor keys) or one frame (,/. keys) while playing or paused
    Brightness control while playing: UP/DOWN cursor keys. Or click/drag in brightness box.
    Fast GPU Bilinear demosaicing for playback
    High-quality (but slow) CPU demosaicing (AMaZE) when paused or enabled (Q key)
    Export current marked range with audio: E key or red button.
    Choose export folder: W key.
    Choose MOV (ProRes) or DNG sequence as export type using D key.
    White Balance adjustments. Keys: 1=WhiteFluoro,2=Daylight,3=Cloudy,0=None, 4/7=Red down/up, 5/8=Green down/up, 6/9=Blue down/up. Or click/drag in Red/Blue box.
    sRGB colour output
    sRGB or Rec.709 gamma, global (HDR) tone mapping, Linear mapping, Log mapping toggle "T" key or mapping icon
    Drop-frame+audio and non-drop-frame modes. Toggle "F" key
    Slide audio sync -0.5,-0.05,+0.05,+0.5 seconds with V/B/N/M keys.
    Mark IN/OUT, Jump to PREV/NEXT mark with J/K and H/L keys.
    Loop or one play mode: I key or loop icon.
    Exit viewer: ESC key

1D and 3D LUTs can be used.

Keyboard shortcuts


             ./  [<path_to_ML_RAW_or_MLV_base_file>] [<wav_file_to_play_along_with_video>] [<output_file_name_for_encoding>]  (if no argument given, a file-open dialog pops up)

raw2cdng (download latest on website) ML .raw to cinemaDNG ConverterGUI; (10bit LOG, 12bit & 16bit), batch convert, 15% white level adjust; dotnet40 based, runs via Wine; .mlv support, supports audio from mlv


drag&drop works flawlessly, converting too.

now GPL open source, native MLV and RAW Support, AudioSupport, multithreaded, code at

MLVProducer (download, choose amd or intel optimizedthread; Converter; GUI (Visual Basic); runs via Wine. currently crashes at export, but export is fine)


-open Source, Visual Basic
-Correction, Curves, Filters
-Encode to  h264, ProRes, DNxHD, FFVH, JPEG, PNG, TIFF, CinemaDNG, DNG
-HDR Processing
-Dual-ISO(in progress)
-Focus Dots suppression
-Vertical Stripes suppression
-Horizontal noise reducing
-Apply 3DLut: .cube, .3dl
-Color Spaces: Linear, sRGB, AdobeRGB, ClogC, CanonLogC, AlexaLogC, REDLog, BMDFilm, Cineon, REC709, SLog, SLog2, SLog3, SLogF35, Panasonic V-Log,...
-Demosaic with different algorithms.
-Group\Global editing
-Cache frames almost like AE. 1.5GB Limit.
-Process MLV and RAW Files
-.M00,M01,Mxx.. Files
-.R00,R01,Rxx.. Files
-Process Huge files.
-Process some broken files.
-Video Import
-Audio Support
-16bit precessing
-measuring tools: Histogram, Waveform, RGBParade, RGB Balance

raw2dng (raw2dng2016-08-14; thread) Converter; reference implementation, commandline; 32bit; compiling for 64bit does NOT work, so you have to install libc6:i386 to get it run on 64bit systems; NO MLV SUPPORT


./raw2dng file.raw [prefix]

=> will create prefix000000.dng, prefix0000001.dng and so on.

mlv_dump (; thread) Converter; reference implementation, commandline; 32bit; libc6:i386 on 64bit. Unzip, rename mlv_dump.linux > mlv_dump, make it executeable (chmod +x ./mlv_dump)

- used for debugging and converting .mlv files
- can dump .mlv to legacy .raw files  + .wav files
- can dump .mlv to CinemaDNG  + .wav
- can compress and decompress frames using LZMA
- convert bit depth (any depth in range from 1 to 16 bits)
you can get a data reduction of ~60% with 12 bit files.
down-converting to 8 bits gives you about 90% data reduction.
this feature is for archiving your footage.
converting back to e.g. legacy raw doesn't need any parameters - it will decompress and convert transparently without any additional parameter.

[UNMAINTAINED]mlv2dng (mlv2dng2014-04-30; thread) ML .raw to DNG converter; commandline; 64bit; maybe still useful. NO MLV SUPPORT

[UNMAINTAINED]MLVViewSharp (; thread) ML .mlv Player; GUI written in c#, runs with mono-runtime, libmono-corlib2.0-cil libmono-winforms2.0-cil installed

Quotea _very_ simple and hackish MLV viewer to check your footage
will read uncompressed MLV files and display the frames with a few frames per second.

[UNMAINTAINED]Magic Lantern RAW (; thread) Converter GUI; written in QT; 32bit, so needs libc6:i386 and 32bit qt libs to run on 64bit systems;  NO MLV SUPPORT

cr2hdr / Dual ISO(cr2hdr2014-04-29; thread). commandline tool; 32bit; libc6:i386 @ 64bit systems.

Increases dynamic range by sampling the sensor at two different ISOs, switching ISO for every other line pair. This trick cleans up shadow noise, resulting in a dynamic range improvement of around 3 stops, at the cost of reduced vertical resolution, aliasing and moire.

Works for both raw photos (CR2) and raw videos (DNG sequences). You need to postprocess these files with a tool called cr2hdr.

After postprocessing, you will get a DNG that looks like a dark ISO 100 shot, but you can bring the exposure back up and be delighted by how little noise is present in those recovered shadows.



LC_ALL=C cr2hdr *.CR2

Linux Applications known to work on/with dng, cinemaDNG, respectively .raw/.mlv files support:

Digikam raw photo developer; open source; (ML .raw support via their kipi-plugins; tutorial)

Darktable raw photo developer; open source; (ML .raw import should already work ; also powerful commandline interface for processing frames; thread ; proof of concept tutorial of working with raw image sequences in Darktable )

Rawtherapee, Lightzone, Photivio, Rawstudio are open source raw (photo) developers which are also dealing with .dng, with Rawtherapee having the by far most feature-rich demosaicing possibilities and settings.

Natron opensource compositor modeled after Nuke; node-based; .dng support via openimageIO , exr, tiff dpx etc. supported, ofx-host;

Digital Fusion compositor; freeware(slightly less features)/commercial; now owned by BlackMagicDesign, native Linux version, .dng support; ofx-host;

The Foundry Nuke/NukeX compositor; crossplatform; node-based; free for noncommercial use Edition (watermarked, special file format, features disabled); from $4213; You can use J_Ops , tutorial which includes J_rawReader and allows direct reading of .dng (as well as other raw formats) into nuke. Widely used industry standard compositor, if big Shops do not use inhouse tools, they use this. ofx-host;

Mistika grading/compositing, editing/finishing; commercial; only available as a turnkey system, bundled with hardware $100000+; originally Runs on Suse/Novell Enterprise Linux; ofx-host;

MambaFX grading/compositing; commercial, crossplatform; cinemaDNG only; FREE FOR 1080p! MambaFX is derived from Mistika, without timeline and editing capabilities, so a single Shot based compositor, with most of the powerful compositing/grading features of the full Mistika, for ~ $300!!, with cheap and expensive plugin options ( codecs, 4k, DCP, 3D-rig=$9000) available; recent Nvidia card & proprietary drivers needed.

Ifxsoftware Piranha grading/compositing/editing; crossplatform; commercial, but free for 720p; $1000; EDL; supports cinemaDNG via gpu based plugin (FAST), or dng via DCRAW plugin (slow) screenshot

Davinci Resolve for Linux grading/compositing, editing/finishing; freeware(slightly less features)/commercial; $20000+;commercial version only available bundled with hardware console;  FCPX xml, EDL; Supports CinemaDNG and DNG; ofx-host;

Autodesk Flame Premium editing/conforming/finishing. compositing/grading; $10000+; originally runs on RedHat / CentOS
overview Training edition available. 16 GB ram & recent Nvidia (also geforce 8xx+ works now) card & proprietary drivers needed., Supports DNG, DPX, OpenEXR

Apple Shake compositing; commercial, abandonware; was $20,000 before EOL in 2006; supports DNGs through this openSource dcraw plugin: smshplugins; Very capable  RGBa-only node-based piece of Software from Apple, which is still used in some VFX shops; training material still available; ofx-host;

Speedgrade NX grading/compositing; commercial, abandonware; was $19,999; Abandonware on Linux (as now owned by Adobe, they dropped Linux Version);  cinemaDNG only;

The apertusProject is also dealing with DNG for their axiom, they also want to build an openSource DNGraw processing tool, Open Cine. This software is in the development. You can help out!

common errors:
- "command not found": you are on a 64bit system, but no 32bit C library installed:  install libc6:i386;
- NO you do NOT need wine, except for MLVProducer, raw2cdng
Normally I would get the sources and compile myself, but I failed so far... What do I have to do to get the raw2dng tool sources? I mean, the .c files are not enough. and when I download the whole ml mercurial tree as a zip folder, the makefile says it does not find the .mercurial folder, and when I hg clone the ml, it does not get the whole folder structure??? :o
hello, have tried your program in wine, under 1.5.31 with mono, it starts up perfectly, but the drag&drop seems to be disfuct. Really looking forward to the commandline version then.