MLV App 1.14 - All in one MLV Video Post Processing App [Windows, Mac and Linux]

Started by ilia3101, July 08, 2017, 10:19:19 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

masc

Quote from: hjfilmspeed on April 07, 2018, 02:18:16 AM
Hmm I am not able to extract the windows 64bit version after downloading.
Same for me. Some posts before we had this topic already and someone got it opened:
Quote-News....
Tried many times, always error , also with 7zip.
Then I tried 7-zip, open, opens ok. In that view of 7-zip, MLVApp.exe don't show compressed size.
Atm bouncyball is in holiday. When he's back, maybe he can compress with standard zip and upload again...
5D3.113 | EOSM.202

hjfilmspeed

Oh gotcha!!! Sorry I just love this app! Can't wait to play with the new release! Thank you!

masc

Ha! Now I got it unzipped and compressed it again with standard zip. It is uploaded for everybody who also had problems before... ;)
5D3.113 | EOSM.202

dariSSight

Quote from: Ilia3101 on April 02, 2018, 05:47:42 PM
@dariSSight masc's advice is good I agree with all of it. However I always use a 10/12 bit build for the 5D2, it's surprisingly stable, the reduced bits saves space when recording in crop mode(however it corrupts normal shots because it's not fully working yet). mlv_lite also gives a bit more horizontal resolution: 1880x1056 vs 1856x1044, but I don't use it.

I love to test out the lower bit but Where can i get the 10/12 bit build you're using, also which build do you recommend for mlv_lite for 1880x1056?
Thanks for the Advice
Also are you guys looking at the new ProRes RAW Codec from Apple?
Canon 5D Mark II

masc

Quote from: dariSSight on April 08, 2018, 02:59:13 PM
Also are you guys looking at the new ProRes RAW Codec from Apple?
Until now I don't know if it is/will be supported by AVFoundation or ffmpeg. But from what I understood it is also RAW, in principle near to what cdng is. So what will bring it for this processing application? All parameters set in the app will get lost on export... you can't use the AMaZE debayer and all the other stuff. So the benefit would only be transcoding...
5D3.113 | EOSM.202

zims

Super noob here! First of all this app is baked into my work flow at this point and I wanted to say how thankful I am!

In the section to the right side of the app where you can apply different logs (ex: Alexa Log C) it doesn't seem to actually write to the file after export. I import all of my clips into the app, "apply" Alexa Log to them and then hit export, however when I pop them into Premiere CC they look as if they don't have the log applied to them. What am I doing wrong?

Thanks a ton for the help guys :)

Kharak

What format are you exporting to?

Cinemadng is a raw format and will not bake in log gammas or looks
once you go raw you never go back

zims

Quote from: Kharak on April 09, 2018, 05:44:23 PM
What format are you exporting to?

Cinemadng is a raw format and will not bake in log gammas or looks

Hah, of course. Yeah I'm exporting to CDNG. I shot ML Raw using my 5D2 and I want to work in Premiere with my CDNG's that look like Alexa Log C. Essentially what do I have to do to get those CDNG's to look like a basic Log?

Thanks a lot for replying! :) @kharak

ilia3101

Quote from: dariSSight on April 08, 2018, 02:59:13 PM
I love to test out the lower bit but Where can i get the 10/12 bit build you're using, also which build do you recommend for mlv_lite for 1880x1056?
Thanks for the Advice
You have to compile the 10/12bit branch yourself (it is the one that allows 1880x1056), I'll see if i can find a build on my computer, if not I'll compile it.
I'll send it to you.

Quote from: dariSSight on April 08, 2018, 02:59:13 PM
Also are you guys looking at the new ProRes RAW Codec from Apple?
Seems like its 100% proprietary and will take a while before anyone except big companies can put it to use. So not yet (possibly not for ages who knows).

Also download the new version everyone!!!
I see it has very few downloads compared to the old one. Improvements and bugfixes are important.

bouncyball

Quote from: masc on April 07, 2018, 10:26:58 PM
Ha! Now I got it unzipped and compressed it again with standard zip. It is uploaded for everybody who also had problems before... ;)
Thanks, I was in a hurry and possibly archived it with .7z by default but named as .zip.

bouncyball

If MLV App spits error like File Is Corrupted this means that the block size in the last read block header is wrong and when actual data is read and next block header offset calculated it did not start with "VIDF" signature. Hence unknown "X$5^" block can be printed out. Files like this actually also give address error in mlv_dump and it quits but all pre-error DNGs are leaved exported. MLV App indexes MLV in the beginning (to access all data by index) and if any block is corrupted just gives up to open it and spits error.

There is a way to heuristically search next VIDF header and try to go on extracting from it but this is wholly different story (try to handle corrupted MLVs) and is not implemented in the MLV App.

Edit: However it could be done this way: just stop indexing on corrupted bock and pretend this is the end of the MLV clip.

masc

Quote from: zims on April 09, 2018, 05:46:11 PM
Hah, of course. Yeah I'm exporting to CDNG. I shot ML Raw using my 5D2 and I want to work in Premiere with my CDNG's that look like Alexa Log C. Essentially what do I have to do to get those CDNG's to look like a basic Log?
CDNG (and MLV) export is incompatible to any log look, because it is RAW. You'll have to export using another non-RAW codec or you'll have to configure your NLE to make them look like log.
5D3.113 | EOSM.202

Kharak

@zims

As masc says, and I said in my first reply. CinemaDNG is a RAW format, you can not bake in a look or a Log Gamma. What you can do, is interpret the RAW data to Log-C. But I highly doubt Premiere can do that. I stopped using Premiere when they released 2015 version, so I am not familiar with what it offers today, but from every post about RAW and Premiere, it seems like the worst NLE at handling RAW files, Colour and in my experience, sound.

If you really need to work in Premiere, then you have to import the DNG's in After Effects and either buy Cinelog-C and follows its route of operation, or download Danne's Log-C DCP for Adobe Camera RAW(which I believe is only for 5D3). Then Dynamic Link your DNG's to Premiere, which in return then will run like shit in Premiere, which most likely will make you render Proxies of the Log-C footage.
Or perhaps, if possible, import DNGs in Premiere, finish the edit, dynamic link to AE change DCP to Log-C in ACR, and grade it back in Premiere (if that is your thing). I dont remember how the DNG's act when Dynamic Linked from Pr to AE, I think they behaved funky going that route. In my opinion, the entire Dynamic Link thing is not a functioning way with RAW footage, as ACR is CPU based and will completely hog down your edit, unless you are 100% done with the edit and only wants to apply the look/log in AE and dont touch any edit again in Pr, just render to final product, then yes... maybe..

In Resolve you can "interpret" the RAW data and set to your preferred Log Gamma and target Colour space. I don't think Premiere even knows the word 'Colour Space'.

once you go raw you never go back

zims

Quote from: Kharak on April 10, 2018, 12:26:06 AM
@zims

As masc says, and I said in my first reply. CinemaDNG is a RAW format, you can not bake in a look or a Log Gamma. What you can do, is interpret the RAW data to Log-C. But I highly doubt Premiere can do that. I stopped using Premiere when they released 2015 version, so I am not familiar with what it offers today, but from every post about RAW and Premiere, it seems like the worst NLE at handling RAW files, Colour and in my experience, sound.

If you really need to work in Premiere, then you have to import the DNG's in After Effects and either buy Cinelog-C and follows its route of operation, or download Danne's Log-C DCP for Adobe Camera RAW(which I believe is only for 5D3). Then Dynamic Link your DNG's to Premiere, which in return then will run like shit in Premiere, which most likely will make you render Proxies of the Log-C footage.
Or perhaps, if possible, import DNGs in Premiere, finish the edit, dynamic link to AE change DCP to Log-C in ACR, and grade it back in Premiere (if that is your thing). I dont remember how the DNG's act when Dynamic Linked from Pr to AE, I think they behaved funky going that route. In my opinion, the entire Dynamic Link thing is not a functioning way with RAW footage, as ACR is CPU based and will completely hog down your edit, unless you are 100% done with the edit and only wants to apply the look/log in AE and dont touch any edit again in Pr, just render to final product, then yes... maybe..

In Resolve you can "interpret" the RAW data and set to your preferred Log Gamma and target Colour space. I don't think Premiere even knows the word 'Colour Space'.

Thanks a ton for the reply. Essentially my thought process is this: "Why go through all the trouble of capturing MLV if when I take it into my color grade it still has contrast and 'sweeteners' ". I cannot run Davinci on my current hardware. I was doing a project for a client on Davinci using 5D2 MLV and it was working great until it just refused to open the program. I researched for several days trying to find a fix or if this was a common issue. As of today, even after re-installing Davinci (after going in and deleting hidden archives and such) I still can't even open the program.

What you're saying about Dynamic Link is right, and that shit takes a ton of time ingesting and then making proxies and baking in that C-Log that you're talking about. That also isn't an option.

So my overall question is this: my MLV raw converted to CDNG is still going to have all the "information" of a raw it will just appear to have been sweetened? In other words, I will be able to adjust exposure and regain information in my shadows and highlights? If not then I see no point in shoot Magic Lantern Raw and might just bite the bullet and buy a Black Magic camera for the native log that it shoots.

Thanks again for your swift replies, guys.

masc

@zims: MLV and CDNG is more or less the same - it is RAW. Just "the bits and bytes look a little different". The only adjustments exported into CDNG over MLV is RAW-Correction. All other adjustments is for all the other export codecs - such as ProRes - but not for CDNG.
Note: if you have ML on your EOS or buy a BlackMagic Camera doesn't change anything here. You'll have the same problem: it always depends on how your grading/RAW-processing tool interprets RAW. Therefor you can use Davinci, ACR, ... or MLV App. 
5D3.113 | EOSM.202

zims

Quote from: masc on April 10, 2018, 04:30:29 PM
@zims: MLV and CDNG is more or less the same - it is RAW. The only adjustments exported into CDNG over MLV is RAW-Correction. All other adjustments is for all the other export codecs - such as ProRes - but not for CDNG. Note: if you have ML on your EOS or buy a BlackMagic Camera doesn't change anything here. You'll have the same problem: it always depends on how your grading tool interprets RAW. Therefor you can use Davinci, ACR, ... or MLV App.

@masc -> Is there a way I can get the MLV App to convert to CDNG while interpreting without sweetening? You say my software is going to interpret all of these files the same, Premiere, Davinci etc but you mention MLV App, how is this going to interpret my footage? When I try to make the adjustments in MLV App it doesn't apply the Alexa Log or whatever log I try and slap on there. Are you saying the sliders will actually bake into the file though? I haven't tried that yet.

masc

@zims: Yes, all these apps interpret RAW data. Each app does it a little different, but they do. And MLV App applies AlexaLog and all other sliders into the exported file: For all codecs, except CDNG and MLV, because they are RAW! Chose another codec and all settings are visible in the exported files.
5D3.113 | EOSM.202

zims

Quote from: masc on April 10, 2018, 04:41:47 PM
@zims: Yes, all these apps interpret RAW data. Each app does it a little different, but they do. And MLV App applies AlexaLog and all other sliders into the exported file: For all codecs, except CDNG and MLV, because they are RAW! Chose another codec and all settings are visible in the exported files.

Okay thanks so much for your help. I'm getting the understanding that no matter how the codec is interpreted, all the rich information is still intact if you are working with a RAW format. Even if it looks like a bunch of things are applied to the footage from step 1 it doesn't matter because you can just slide it up and down for exposure and other things as the information will still be there.

50mm1200s

This software is so good. Thanks a lot @ilia3101 @masc4ii and @bouncyball . Absolutely fantastic. I'll see if I can donate some money soon.

50mm1200s

So, here's some ideas/opinions that could (or not) help. I wish I could help with code, but I never really got into C/C++ prog. If there's anything other than coding I can do, I'll do my best (could compile and test the git code at least). Been thinking about training a new Film look, based on Vision3 50D negative (from ImpulZ - don't know if it's legal either).

Here it goes:

1- The ProRes 4:4:4 exported is 12-bit? Would be cool to have the control over bit depth in configs

2- 3D LUT support, as @masc4ii suggested

3- Color space options would also be useful. Maybe a ACES implementation? This discussion have some information from @Andy600 :^)

4- The highlight reconstruction uses also considers color? Rawtherapee has this method called "Color Propagation" that has better results on HL reconstruction.

5- A option for monochrome demosaicing would be useful for people working on b&w projects

6- For denoising, definetly check out the KNLMeansCL. It's quite fast (about 7fps in my testing using 1080p). There's also Deathray, that seem to be the same algorithm. Although I've read some papers showing NL-Bayes, Shrinkage Fields, and Nonlinear difusion getting better results

6- Sharpen. Would be very cool to have a high-res sharpen tool, such as Plum, using deconvolution instead of wavelet edge-constrast.

7- Aliasing and moire removal. People from Doom9 recomended this Tlsophote AVISynth script.

8- Lens correction through LCP profiles. The code from Rawtherapee could help (CA auto-correction too), or the OpenFX code from Natron too (it's in C++, though)...

9- Better demosaicing. As I said here, Bart Goossens have some really interesting research on this: he gest better image quality doing efficient pre-demosaicing manipulation (better than AMaZE)

10- Improved tone mapping with Fattal method. There's a implementation here

masc

@50mm1200s: many thanks for your long message. I really liked that you gave us links to papers and code. Maybe the one or the other link could really help us - who knows?! ;)

Some comments to some of your points:

1: ffmpeg offers 10bit (and indirectly 8bit) ProRes4444, AVFoundtion offers 12bit ProRes4444. So controlling the bitdepth is very limited and tricky.

3: with AVFoundation there is some color space control possible. Using ffmpeg it is again very limited and hard to understand. If you have an idea how to control color space in ffmpeg, let us know!

9: On github we have 2 more branches: "OpenCL-Processing" and "better-demosaic". This is the issue page for it. There we tested two other demosaic algorithms. One should be faster (but wasn't in our implementation), the other should be better than AMaZE (maybe was - note that in this stage AMaZE was not working right), but was waaaay to slow (around 5min per picture). In the end we got AMaZE working correctly, and we were so satisfied, that we stopped working on the other solutions. But maybe the link you posted helps improving again...
5D3.113 | EOSM.202

70MM13

Wow, the "denoisaicing" from that linked paper is quite incredible.  The example image of the zebras is phenomenal.

If you guys can utilise that method, mlv app would be other worldly in its greatness!

Please try!!!

reddeercity

Sorry for the long post  :D
Quote from: masc on April 11, 2018, 09:07:17 PM
....... Using ffmpeg it is again very limited and hard to understand. If you have an idea how to control color space in ffmpeg, let us know!
https://trac.ffmpeg.org/wiki/Encode/VFX#Prores
good info on the prores encoder , before I add more info does the Win. Version use cmd line to encode or is it feed to ffmpeg.exe to encode with a preset string ?

There a lot you can do with ffmpeg , it even support .mlv (that right magic lantern raw video files) I play with it on win7 had a issue with black level (green cast) I could play back in real time
with ffmpeg play . From what I could understand about color space is it's base on the input file . ffmpeg prores conforms to the apple prores white paper ,
expect the max bit depth is 10 in stead of 12bit on 4444 .
The 2 color space it supports is full range(0-255) & limited (rec709/BT.709 16-235) as long as it conform to apple as they say .
So more great info on prores , I bet you didn't know you can now encode to 4444XQ
https://www.ffmpeg.org/ffmpeg-codecs.html#toc-ProRes
profile integer
Select the ProRes profile to encode
'proxy'
'lt'
'standard'
'hq'
'4444'
'4444xq'

https://www.ffmpeg.org/ffmpeg-codecs.html#toc-Private-Options-for-prores_002dks
quant_mat integer
Select quantization matrix
'auto'
'default'
'proxy''lt'
'standard'
'hq'
If set to auto, the matrix matching the profile will be picked. If not set, the matrix providing the highest quality, default, will be picked.

Color space integers ( If you use cmd. line then you add these values)
color_primaries integer (decoding/encoding,video)
Possible values:
'bt709'
BT.709
'bt470m'
BT.470 M
'bt470bg'
BT.470 BG
'smpte170m'
SMPTE 170 M
'smpte240m'
SMPTE 240 M
'film'
Film
'bt2020'
BT.2020
'smpte428''smpte428_1'
SMPTE ST 428-1
'smpte431'
SMPTE 431-2
'smpte432'
SMPTE 432-1
'jedec-p22'
JEDEC P22


color_trc integer (decoding/encoding,video)
Possible values:
'bt709'
BT.709
'gamma22'
BT.470 M
'gamma28'
BT.470 BG
'smpte170m'
SMPTE 170 M
'smpte240m'
SMPTE 240 M
'linear'
Linear
'log''log100'
Log
'log_sqrt''log316'
Log square root
'iec61966_2_4''iec61966-2-4'
IEC 61966-2-4
'bt1361''bt1361e'
BT.1361
'iec61966_2_1''iec61966-2-1'
IEC 61966-2-1
'bt2020_10''bt2020_10bit'
BT.2020 - 10 bit
'bt2020_12''bt2020_12bit'
BT.2020 - 12 bit
'smpte2084'
SMPTE ST 2084
'smpte428''smpte428_1'
SMPTE ST 428-1
'arib-std-b67'
ARIB STD-B67


colorspace integer (decoding/encoding,video)
Possible values:
'rgb'
RGB
'bt709'
BT.709
'fcc'
FCC
'bt470bg'
BT.470 BG
'smpte170m'
SMPTE 170 M
'smpte240m'
SMPTE 240 M
'ycocg'
YCOCG
'bt2020nc''bt2020_ncl'
BT.2020 NCL
'bt2020c''bt2020_cl'
BT.2020 CL
'smpte2085'
SMPTE 2085


https://www.ffmpeg.org/ffmpeg-devices.html#toc-Options-2
pixel_format <FORMAT>
monob,
rgb555be,
rgb555le,
rgb565be,
rgb565le,
rgb24,
bgr24,
0rgb,
bgr0,
0bgr,
rgb0,
bgr48be,
uyvy422,
yuva444p,
yuva444p16le,
yuv444p,
yuv422p16,
yuv422p10,
yuv444p10,
yuv420p,
nv12,
yuyv422,
gray

https://www.ffmpeg.org/ffmpeg-codecs.html#toc-vc2
If you wonder how to encode to 12bit in ffmpeg  , SMPTE VC-2 (previously BBC Dirac Pro).
QuoteThis codec was primarily aimed at professional broadcasting but since it supports yuv420, yuv422 and yuv444 at 8 (limited range or full range), 10 or 12 bits,

50mm1200s

Quote from: masc on April 11, 2018, 09:07:17 PM
@50mm1200s: many thanks for your long message. I really liked that you gave us links to papers and code. Maybe the one or the other link could really help us - who knows?! ;)

Yeah, who knows. I'm by no means a academic on the subject.

Quote
3: with AVFoundation there is some color space control possible. Using ffmpeg it is again very limited and hard to understand. If you have an idea how to control color space in ffmpeg, let us know!

I'll if I can get some info about that.

Quote
9: On github we have 2 more branches: "OpenCL-Processing" and "better-demosaic". This is the issue page for it. There we tested two other demosaic algorithms. One should be faster (but wasn't in our implementation), the other should be better than AMaZE (maybe was - note that in this stage AMaZE was not working right), but was waaaay to slow (around 5min per picture). In the end we got AMaZE working correctly, and we were so satisfied, that we stopped working on the other solutions. But maybe the link you posted helps improving again...

Oh, that's nice. I'll get more information about this, trying to read as many papers as possible and summarize everything here later.


Quote from: reddeercity on April 12, 2018, 05:10:08 AM
[/code]
Color space integers ( If you use cmd. line then you add these values)
color_primaries integer (decoding/encoding,video)
Possible values:
'bt709'
BT.709
'bt470m'
BT.470 M
'bt470bg'
BT.470 BG
'smpte170m'
SMPTE 170 M
'smpte240m'
SMPTE 240 M
'film'
Film
'bt2020'
BT.2020
'smpte428''smpte428_1'
SMPTE ST 428-1
'smpte431'
SMPTE 431-2
'smpte432'
SMPTE 432-1
'jedec-p22'
JEDEC P22


Well, there's at least bt2020, that's a improvement. Maybe hack ffmpeg to use OpenColorIO functions? Natron seems to have something working already, perhaps we could ask them on git...

masc

@reddeercity: did you try this parameters with success? I tried them out and in current MLVApp version we also use that (set to bt709). But in my tests I can set whatever I want - the exported file looks identical. The only difference seems to be metadata inside the exported file (tested with MediaInfo).
I found another parameter, e.g. -vf scale=in_color_matrix=bt601:out_color_matrix=bt709, this is visible in output.
5D3.113 | EOSM.202