Author Topic: MLV App 1.8 - All in one MLV Video Post Processing App [Windows, Mac and Linux]  (Read 247972 times)

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
5D2.212 | EOSM.202

ngemu

  • New to the forum
  • *
  • Posts: 15
Re: Making a New MLV Processing App! [Windows, Mac and Linux]
« Reply #3051 on: July 16, 2019, 06:19:59 PM »
Yeah MLV aAPP is just useless for colour isn\'t it

Edit: Lol sorry for the passive aggressive reply. But my point is that MLV App is perfectly capable of producing a cinematic image out of a good shot, and in my opinion this video is a better result than many people get with davinci resolve etc. It just takes effort and practice to get nice images, not the best software. The main thing for good looking images is having smooth highlights, in my opinion and MLV App can do that pretty perfectly. And you can add a lut in MLV App if you like that style of colour. And I admit MLV App is still not colour accurate, also the that video is not very detailed (it's more about colour).

An external recorder will still give you cr4p 8 bit colour depth the prores doen't help.

Would love if you could make a tutorial. This is absolutely beautiful. I've been playing around with mlvapp but cant seem to get my footage to look anywhere close.

jonkjon

  • New to the forum
  • *
  • Posts: 23
Attempting to compile with latest changes for EOSM2 and getting lots of errors from QT on windows 10 pro using QT Creator 4.9.1 based on 5.12.3 and MinGW 7.3.0 64 bit....here is a brief list:

Code: [Select]
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4c5): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4e2): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3e8e): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3e9a): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3f05): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3f11): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3f63): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3f6f): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3fba): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x3fc6): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x42fb): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4307): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x431f): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x432b): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4f4a): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4f56): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4fec): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x4ff8): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x5440): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x544c): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x5469): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x5475): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x5489): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x5495): undefined reference to `max'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x54ac): undefined reference to `min'
release/amaze_demosaic.o:amaze_demosaic.c:(.text+0x54b8): undefined reference to `max'
release/patternnoise.o:patternnoise.c:(.text+0x39f): undefined reference to `min'
release/patternnoise.o:patternnoise.c:(.text+0x3a9): undefined reference to `max'
release/patternnoise.o:patternnoise.c:(.text+0x433): undefined reference to `min'
release/patternnoise.o:patternnoise.c:(.text+0x43c): undefined reference to `max'
release/patternnoise.o:patternnoise.c:(.text+0x75a): undefined reference to `max'
release/patternnoise.o:patternnoise.c:(.text+0x1116): undefined reference to `min'
release/patternnoise.o:patternnoise.c:(.text+0x1161): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x644): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x64f): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x6bf): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x6ca): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x73a): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x745): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x7d9): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x7e4): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xa56): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xa6b): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xacd): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xad9): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xd18): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xd23): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xee6): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xef1): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xf58): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xf68): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xf86): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0xf92): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x115f): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1170): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x11cb): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x11dc): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1224): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1235): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1283): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1294): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x142b): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1437): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x145b): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x146c): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1491): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x14a2): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x14bb): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x14c7): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x168e): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x169f): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x16fa): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x170b): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1753): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1764): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x17b2): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x17c3): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x195a): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x1966): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x198b): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x199c): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x19c1): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x19d2): undefined reference to `max'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x19eb): undefined reference to `min'
release/igv_demosaic.o:igv_demosaic.c:(.text+0x19f7): undefined reference to `max'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [Makefile.Release:418: release/MLVApp.exe] Error 1
mingw32-make: *** [Makefile:38: release] Error 2
mingw32-make[1]: Leaving directory 'C:/Users/jonkj/Downloads/MLV-App-master/platform/build-MLVApp-Desktop_Qt_5_13_0_MinGW_64_bit-Release'
14:46:33: The process "C:\Qt\Qt5.13.0\Tools\mingw730_64\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project MLVApp (kit: Desktop Qt 5.13.0 MinGW 64-bit)
When executing step "Make"
14:46:33: Elapsed time: 00:54.

Thanks for any help...

--Jon

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
Ah okay... you use 64bit MinGW. I never tried that. And bouncyball cross compiled the windows 64bit version using Linux. I always compiled with 32bit MinGW version, because it was the only compiler until last Qt version, if I remember right.

In these files (the compiler tells) you'll find some defines "#ifdef/ifndef WIN32". I bet this is the problem. We should find a define for 32bit and 64bit at the same time. No idea if Q_OS_WIN would do the jub (it would in c++ part, but not sure if also in C part of the app).

Edit: puh... the problem starts already in project file MLVApp.pro ... Windows version is defined with "win32" there. I really wonder how this works with Win64 crosscompiler on Linux.
5D2.212 | EOSM.202

Ilia3101

  • Contributor
  • Hero Member
  • *****
  • Posts: 544
@ngemu Shoot your shots in golden hour light and the colours will look similar to that video. also don't overdo processing, I didn't do much more than saturation white balance and contrast.

@jonkjon@masc all the errors just look like min max function does not exist while being linked. You could try fixing that by adding your own min and max functions to any of the mlv app source files. It's a hack but why not try.

ALso since when does amaze use  a MIN fumtiom instead of the macro !?!??
5D2

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
Did a quick change for the MIN MAX problem. I can compile here with MinGW64 now. Please check out and try to compile again (@jonkjon).

Edit: Qt >=5.12 has a bug, where icons in menus are wrong. And font-sizes in docks are wrong too. So... here we can't do anything. Wait until Qt fixes and live with it as is, or use an older version of Qt. In Qt 5.9.2 I did not see any GUI bugs, but there is no offical 64bit build.
Menu icon bug will be fixed in Qt 5.12.5 and 5.13.1, Qt plans 27. august 2019 and 15. august 2019. (https://bugreports.qt.io/browse/QTBUG-74655)
5D2.212 | EOSM.202

jonkjon

  • New to the forum
  • *
  • Posts: 23
Did a quick change for the MIN MAX problem. I can compile here with MinGW64 now. Please check out and try to compile again (@jonkjon).

Edit: Qt >=5.12 has a bug, where icons in menus are wrong. And font-sizes in docks are wrong too. So... here we can't do anything. Wait until Qt fixes and live with it as is, or use an older version of Qt. In Qt 5.9.2 I did not see any GUI bugs, but there is no offical 64bit build.
Menu icon bug will be fixed in Qt 5.12.5 and 5.13.1, Qt plans 27. august 2019 and 15. august 2019. (https://bugreports.qt.io/browse/QTBUG-74655)

Thanks....compiled just now and it is working. There were some warnings but nothing that stopped the compile. Thanks again.....

--Jon

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
Thanks for the feedback. Nice to hear it works. I also could fix the size of the dock label font now.
5D2.212 | EOSM.202

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
MLVApp v1.8 is out now! New in v1.8:
- Added vignette shape slider
- Added chromatic abberation correction
- Added export preset list (to save your own presets)
- Added a third interpolation method for focus and bad pixels (thanks to Rewind)
- Added more support for EOS M2 (focus pixel fix and camera matrix)
- Faster WB picker
- Scopes are resizeable now
- Some bug fixes and some minor changes
https://github.com/ilia3101/MLV-App/releases/tag/QTv1.8
5D2.212 | EOSM.202

jimiz

  • Freshman
  • **
  • Posts: 53
THANKS MASC !!!!   
5D3-123

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
Wasn't just me. Thanks also to Ilia, Bouncyball, Escho, Rewind, Danne, and many more...
5D2.212 | EOSM.202

andy kh

  • Hero Member
  • *****
  • Posts: 513
fastastic. the white balance picker works great and the scopes looks amazing and easier to work with now
5D Mark III - 70D

KirbyLikes525

  • New to the forum
  • *
  • Posts: 48
  • Think like a videographer, not a photographer.
I've stuck with 1.3 because of reasons after trying later versions but the resizable scopes has my interest!
5D Mark II
10 bit 12 bit Experimental Build

Ilia3101

  • Contributor
  • Hero Member
  • *****
  • Posts: 544
could you tell us why you were staying at 1.3? did something get worse or break?
5D2

Stousen

  • New to the forum
  • *
  • Posts: 6
Love this app! :-*

But is there anyway to regulate what frames that should be exported?
Lets say I have som unstable frames in the beginning of a recording, would be great to trim that away to save export time:)
//Chris

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
Love this app! :-*
But is there anyway to regulate what frames that should be exported?
Lets say I have som unstable frames in the beginning of a recording, would be great to trim that away to save export time:)
Thank you. Yes, there is a way to trim: use CutIn / CutOut (2nd box in edit panel). After doing this, only the trimmed part is exported.
5D2.212 | EOSM.202

Kharak

  • Hero Member
  • *****
  • Posts: 893
Re: Making a New MLV Processing App! [Windows, Mac and Linux]
« Reply #3066 on: July 21, 2019, 11:24:46 PM »
Would love if you could make a tutorial. This is absolutely beautiful. I've been playing around with mlvapp but cant seem to get my footage to look anywhere close.

I don’t use MLV App to grade my projects, but on my travel laptop I always use MLV app to play with colours of my footage to see what I got.

I don’t remember who told me this trick, think illia or masc, but this helped me get past the “stale” look.

Basically you wanna use the Exposure slider to win back your highlights, by decreasing the slider -0.5 to -1.5 and then use Light Strenght and dark strenght to expose your shots, ofcourse together with the Range Sliders, but Dark Range I always have max and after pulling exposure the footage usually does not need any increase in Dark strenght. Lighten also helps brighten your midtones, but more often than so, too much Lighten will wash out your contrast. Then play with saturation. Ofcourse the Camera Matrix tick box changed the entire “colour science” for the better aswell, so leave that on.

And always manually WB your shots.

I look forward to 1.8 :)
once you go raw you never go back

Dmytro_ua

  • Member
  • ***
  • Posts: 108
  • Canon 5d mark III ML
Hi,
Is there a way to compare before and after editing? Smth like bypass editing to show the original shot?

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1215
Hi,
Is there a way to compare before and after editing? Smth like bypass editing to show the original shot?
Hm... what is "the original shot"? The original shot is B/W and bayered. I think you don't want to see this. The settings when importing a clip are some default parameter (which we defined) but has nothing to do with "original" something. This is why there is no option for that. Anyway... if you want to see the difference between importing and final, you can use the shortcuts: Ctrl+C (activate all checkboxes), Ctrl+Alt+R for the default, and then again Ctrl+V for the final.
5D2.212 | EOSM.202

Stousen

  • New to the forum
  • *
  • Posts: 6
Thank you. Yes, there is a way to trim: use CutIn / CutOut (2nd box in edit panel). After doing this, only the trimmed part is exported.

Ahh, the app just got even better :)! Great, thanks!

//Chris

Dmytro_ua

  • Member
  • ***
  • Posts: 108
  • Canon 5d mark III ML
what is "the original shot"?

It's like in ACR. Sometimes you do a subtle correction and it's nice to see before/after. In Adobe Camera Raw it is a "P" key.

you can use the shortcuts: Ctrl+C (activate all checkboxes), Ctrl+Alt+R for the default, and then again Ctrl+V for the final.

Not a one key, but can do the trick. Thanks, will try ;)

histor

  • New to the forum
  • *
  • Posts: 38
Is there anything of interest for reconstructing skipped lines?
Bayer Interpolation with Skip Mode
Are we stretching debayered data in the MLV App for now?

Ilia3101

  • Contributor
  • Hero Member
  • *****
  • Posts: 544
Well it would be nice, but that document seems to show a different kind of skipping to what canon DSLRs do
5D2

histor

  • New to the forum
  • *
  • Posts: 38
...but that document seems to show a different kind of skipping to what canon DSLRs do
Yes. Plus we have different skipping modes, plus the pattern changes depending of the offset (in crop modes). But the variants aren't innumerable.
The task in paper was much easier. We have shifting/alternating pattern. Weights will change, as the block needs to be non-square. The idea is that we know (well, guess) so much about the type of line skipping but it's not used in processing. Current dabayering algorithms are not intended to be used on squeezed images. And all that "pattern mess". Aren't they?
I had a fantasy about such interpolation on the pre-debayer stage. So that we might fill in the missing pixels with a "simple" shifting block algorithm (like in the paper - rough but fast) and then feed it to the common dabayering processor. We can even output interpolated DNG for use in other software.

Stousen

  • New to the forum
  • *
  • Posts: 6
Hey Guys,

Has anyone tried to compare superscale in resolve with scaling in mlv app?
Anyone can get me through the basics of what the differences there might be and is it worth the extra time in workflow with scaling in resolve?

Thanks!

//Chris