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 5 Guests are viewing this topic.

ilia3101

I haven't implemented lossless yet, but I looked at the lj92 library yesterday, and it looks kind of understandable actually.

I'll try to send a commit to github with lossless today.

@Danne Soon we'll add options for ouput curve, featuring a few different variations of log. I think I've found a seemingly good explanation of how to generate a log curve: http://renderstory.com/log-color-in-depth/

Quote from: Danne on August 04, 2017, 02:06:15 AM
You can make a "log"-like prores with corrected white balance in no time.
Enabling Reinhard + using the lighten adjustment actually shold give a similar curve to log, except for the shadows probably.

pc_bel

Oh!!! Sorry. I didn't notice that lossless is a To Do think.

ilia3101

Good morning!!!1!!!!!!!

Lossless is added. Have fun, 5D mark III users :D

Download New Release

The LJ92 decompression library is fast af.

Or wait for @masc to make a release of the Qt version if you want a more stable and featurefull app :-X


Danne

hehe, great work Ilia.
By the way. If anybody wants to unhide hidden folders I found a short command for this:
Hold down CMD Shift . (dot)
Just redo it to go back to hidden again.

I did this to delete the png folder after interrupting processing.

masc

Quote from: Ilia3101 on August 05, 2017, 06:18:16 AM
Or wait for @masc to make a release of the Qt version if you want a more stable and featurefull app :-X

Thanks to @Ilia3101! Here comes the Qt version, at least for OSX (Windows version has to be compiled, but atm I have no PC nearby):

https://github.com/ilia3101/MLV-App/releases/tag/QTv0.4alpha

New in this version:
- Lossless support
- Reinhard tone mapping
- Full bit depth ProRes 422 Proxy, LT, Standard, HQ and 4444 export
- Multithread export
5D3.113 | EOSM.202

Wayne H

Excellent work @masc and @Ilia, superb progress, just ran a lossless file, and exported to prores 4444 really well, quick question though, you say it supports full bit depth, does that mean prores 4444 is exported to 4444 12bit??

Danne kindly pointed out that you really can't see any quality difference between 10bit and 12bit prores files, which for the most part i agree, but i use colour finale within FCPX alot, so every extra (bit) help's,

so i just wanted to know, if the 4444 files are 12bit, or did you just mean the exported prores files are all now 10bit, as previously this app was only producing 8bit 4444 files.

Many thanks.

Danne

Big difference between 10bit and 12bit prores4444. What I pointed out was the quality between 12bit prores4444 and 12bit prores4444XQ.
What is the winning deal in this app is that you retain scene referred dynamic range prior to export. This can't be done in apple compressor for instance. I'd take FFmpeg 10bit prores4444 scene referred log before display referred apple compressor XQ files any day of the week.

Wayne H

Hi Danne, thank's for correcting me once again :), you was indeed referring to 4444 12bit vs 4444XQ 12bit,my bad lol, so does this app spit out 4444 12bit files or 10bit 4444 files?? I always seem to get confused with some magic lantern apps, as some only support 4444 10bit, (or so i've read) get's a little confusing.

Danne

It's 10bit from FFmpeg. You can get 12bit from AE, not from FFmpeg.

ilia3101

@Danne Thanks for the shortcut, that's amazing :o

The Cocoa version will soon get 12bit ProRes export (I hope).. once I switch to using AVFoundation instead of FFMpeg.

And credit to those who did the real work in this case(lj92): Andrew Baldwin and Martin Herring

Also what does 'scene referred dynamic range' mean? Does it just mean you can use the whole range of the raw data? (I don't know all the technical video terms)

Also, everyone seems to love using log here... just wondering, what are the technical reasons for that? Do you linearise it and somehow edit it like raw again? or just grade it with plugins in other apps? I personally find I get better results when I use the raw converter to add all the main effects like contrast and saturation, it just feels more flexible than dealing with colour too much once it is no longer in RAW

kyrobb

Thank to Ilia and Masc! This is truly incredible. I think the reason people want LOG so bad may be to apply LUTS later on more easily. I can't say for certain. I would agree with you that it is awesome to be able to tune your look right in the raw processor. Maybe built-in LUT support would satisfy everyone? Thanks again though you guys this is already amazing for my use!

Danne

QuoteDoes it just mean you can use the whole range of the raw data?
Yes. Check a dng and it´s all rec709 clipping whites. Clipping applies to ProRes in apple compressor and then a lot of information is gone.
Logs are perfect for batch encoding. Export for instance cineon based log ProRes4444 and then apply any additional color correction in a NLE. Another workflow would be to apply a log as a base and then color correct in MLV app. If it could add several logs in a row even better. So there is 1D luts and 3D luts and colorspace stuff. These are just thoughts Ilia and masc. I see you´re app as a great tool even without any lut adding...

Built in logs would be great.
cineon
logC
Bmdfilm

masc

Full bit depth means, we use the maximum FFmpeg supports (via 3x16bit PNG). Before we had only 8 bit, now it is 10 bit I think. I heard FFmpeg can also export 12 bit ProRes 4444 XQ, but I had no luck until now. I found that for 4444 XQ:
ffmpeg -i input.mov -codec prores_ks -pix_fmt yuva444p10le -alpha_bits 16 -profile:v 4444 -f mov output.mov
But when I tried the file size was half from 10 bit 4444, and VLC was not able to play the file :D Anyone tried that before?

Edit: -pix_fmt yuva444p10le means 10bit, or?! Really confusing!
5D3.113 | EOSM.202

Danne

I've been down that road with dfort. Not tested that one in particular masc but a lot of other settings. Nothing topped 10bit prores4444. Well maybe RAW export but those files are humongous and nothing can edit those whale files natively :).

ilia3101

Quote from: Danne on August 05, 2017, 06:48:39 PM
Built in logs would be great.
cineon
logC
Bmdfilm

This is exactly what I aim for ;D An output curve(and or colourspcae) selector with options such as those. One of the next steps.

Quote from: kyrobb on August 05, 2017, 06:45:27 PM
Maybe built-in LUT support would satisfy everyone?
Sounds like a good idea, might be one of the more difficult ones to do though. Might happen little later down the line.

DeafEyeJedi

Can't disagree w @Danne's suggestions. So far a pretty solid foundation. Looking forward to it's further development and much thanks to @Ilia3101 & @masc...

5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

Danne

That app is getting pretty cool, histogram and progress bar.
I see you use darkframe averaged MLV files Deafeyejedi. Never though about it but it will yield even nicer results regarding vertical stripes in shadows and better color rendering.
Are those files compressed or uncompressed? * nevermind "Lossless".
Is the pinkish areas coming from lossless files? Could you try the same file decompressed Deafeyejedi? You can decompress in Switch by selecting (11) in the mlv_dump menu. Then select (d) and (r) to get the file decompressed.


reddeercity

@ Ilia3101 --this may help clear up color space , LOG and ProRes4444QX (which is up to 16bit linear with alpha  BT2020 (9-1-9) color space/profile and Rec 709 (HD1-1-1) color space/ profile
https://images.apple.com/final-cut-pro/docs/Apple_ProRes_White_Paper.pdf

FFmeg is 10bit no matter 444 or 422hq , 422 , etc. ..... and at rec709 so (HD 1-1-1) color profile and yes still clipping hi-lights .

ProRes 4444XQ(AVFoundation) in Apple Compressor& Motion ,  Resolve  is the only way to retain Full D.R. in Linear Space So No Clipping.

I first uses to backup all my MLV's to ProRes 4444XQ LOG Space to rec709 , now I backup to Linear LOG ProRes 4444XQ+Alpha(16bit) in BT2020 Wide Gamut .

using FFmpeg there's a quality loss compared to OSX AVFoundation , especially with heavy grading & or FX (green screen etc...) breaks down quickly when push were
10bit does not have the gradation needed --only Billions of Color Vs Trillions+ Color in XQ or even plain old 4444 from AVFoundation.

That's what stops me from using any App that exports FFMpeg ProRes .
My 2 Cents worth





Danne

How can going from 14 to 12 bit be lossless? 2 bits are gone, even with 16bit alpha.
Also linear? How? Last I tried it was still the same srgb curve output in ac.

ilia3101

I'll have to look in to colour spaces and stuff more, but tell me if I'm wrong... I think it works like this: in most processing software, the processing is done in floating point, meaning the values can be in a massive range, and deciding where to clip them for encoding a video is difficult. In my app however, this range is limited to 0-1 (0-65535 really), so it does lots of tricks to avoid clipping highlights(values reaching the limit), and as far as I know anything that remains in that range, will be kept in the image, no matter if the accuracy is reduced to 8 bit or 10 bit.

Unless the software (ffmpeg) is doing something horrific, I don't see why there's a big problem. Definitely going to use AVFoundation in the future, as it is faster and makes sense for the cocoa app.

Gone for 2 weeks...

DeafEyeJedi

Quote from: Danne on August 05, 2017, 11:44:42 PM
Is the pinkish areas coming from lossless files? Could you try the same file decompressed Deafeyejedi? You can decompress in Switch by selecting (11) in the mlv_dump menu. Then select (d) and (r) to get the file decompressed.

Done. Seems to be slightly better if not the same? Maybe it's cuz I ETTR'd a bit too much. Or could this be related to the 3.5k experimental stuff? I wanted to get the most details as possible in shadows @ ISO 6400 regardless during this test clip especially after DF process.  8)



Also here's a second example in 12-bit lossless 1080p @ ISO 800 with the Reinhard tonemapping comparisons below. Even opens up large MLV files w ease such as this one was over 61 GB's.



Notice when using Waveform Monitor which shows pretty good details and as accurate as possible whereas if you go back to the Histogram Monitor which shows a complete under exposed diagram when clearly it isn't. Is this a bug? Does this happen on your end as well?
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

kyrobb

Is there any way to adjust values by typing the desired value? Or is it slider only? That feature would be very useful for more precise adjustment.

masc

Quote from: DeafEyeJedi on August 07, 2017, 09:31:47 PM
Notice when using Waveform Monitor which shows pretty good details and as accurate as possible whereas if you go back to the Histogram Monitor which shows a complete under exposed diagram when clearly it isn't. Is this a bug? Does this happen on your end as well?
Thanks for testing! I am impressed that it handles such big files... The histogram is the same on my side. But I don't see a underexposed picture, I see an extremly overexposed picture when you disable the Tonemapping. The histogram normalizes all values to the maximum value. On the very right the histogram shows a very huge value, that all other values seems to be very small. I don't know how other applications handle that... Photoshop for example shows exactly the same on my computer, but cuts of such peaks... however they are doing that.
What you could try: when exporting, MLV App creates all frames as PNG first. If you are fast enough (I think so if you handle big files  ;D) get one of these PNGs and open in another application offering a histogram. You can compare then.

Quote from: kyrobb on August 07, 2017, 09:59:50 PM
Is there any way to adjust values by typing the desired value? Or is it slider only? That feature would be very useful for more precise adjustment.
It is slider only for now. On windows you can use the arrow keys for the most precise steps supported. On OSX that seems not to work. On OSX you can scroll on the slider, but system default is 3 steps, so scrolling once on exposure changes by 0.03. Typing the value is a bigger change to the software, because it is not supported by default.
5D3.113 | EOSM.202

masc

In the last days (or nights) I found a solution for the value adjustment: Is it okay to doubleclick the value label and a small spinbox pops up? There it is possible to enter the value and the slider will be set. That works for all sliders but saturation... there we have a log curve behind the slider, so the precision is not the best  ;D

For the histogram I was playing a lot around, but found no solution so far. If anyone has an idea how to cut peaks without cutting half of the histogram, let me know please. I tried a log-y-axis, but it was not really better with that.

I prepared nearly everything for batch export. I created "sessions", what means you can open many clips to the app, adjust the sliders independant for each clip, you can open and save these sessions. Now I am working on the export. I hope I have that implemented until the weekend.
5D3.113 | EOSM.202