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.

escho

Quote from: bouncyball on August 23, 2017, 12:04:37 PM
And where are compiled libpng16 and zlib1 in your case?

libpng16-16 - Library for the Portable Network Graphics Format (PNG)

/usr/lib64/libpng16.so.16
/usr/lib64/libpng16.so.16.8.0



libpng16-devel - Development Tools for applications which will use the Libpng

/usr/bin/libpng16-config
/usr/include/libpng16
/usr/include/libpng16/png.h
/usr/include/libpng16/pngconf.h
/usr/include/libpng16/pnglibconf.h
/usr/lib64/libpng16.so
/usr/lib64/pkgconfig/libpng16.pc
/usr/share/doc/packages/libpng16-devel
/usr/share/doc/packages/libpng16-devel/ANNOUNCE
/usr/share/doc/packages/libpng16-devel/CHANGES
/usr/share/doc/packages/libpng16-devel/LICENSE
/usr/share/doc/packages/libpng16-devel/README
/usr/share/doc/packages/libpng16-devel/TODO
/usr/share/doc/packages/libpng16-devel/libpng-manual.txt


zlib-devel - Development files for zlib, a data compression library

/usr/include/zconf.h
/usr/include/zlib.h
/usr/include/zutil.h
/usr/lib64/libz.so
/usr/lib64/pkgconfig/zlib.pc
/usr/share/doc/packages/zlib
/usr/share/doc/packages/zlib-devel
/usr/share/doc/packages/zlib-devel/ChangeLog
/usr/share/doc/packages/zlib-devel/README
/usr/share/doc/packages/zlib/examples
/usr/share/doc/packages/zlib/examples/README.examples
/usr/share/doc/packages/zlib/examples/enough.c
/usr/share/doc/packages/zlib/examples/fitblk.c
/usr/share/doc/packages/zlib/examples/gun.c
/usr/share/doc/packages/zlib/examples/gzappend.c
/usr/share/doc/packages/zlib/examples/gzjoin.c
/usr/share/doc/packages/zlib/examples/gzlog.c
/usr/share/doc/packages/zlib/examples/gzlog.h
/usr/share/doc/packages/zlib/examples/zlib_how.html
/usr/share/doc/packages/zlib/examples/zpipe.c
/usr/share/doc/packages/zlib/examples/zran.c
/usr/share/man/man3/zlib.3.gz


I can compile with QT creator without problems and don´t have to chance anything. Maybee, QT Creator adds the paths itself?

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

Another thing

I use MLV-videos for nothing else than my astronomical stuff. Autostakkert, the program, which I use to stack the videoframes, need uncompressed avi-files as input. It does not run with prores. It would be nice to can export such avi-files with MLVApp sometime in the future.

For my needs I did a workaround, quick and very dirty. Looks like that:

I changed MainWindow.cpp line 636 ff

QString program = QCoreApplication::applicationDirPath();
    program.append( QString( "/ffmpeg\"" ) );
    program.prepend( QString( "\"" ) );
    program.append( QString( " -r %1 -i \"%2\" -c:v rawvideo -pix_fmt %3 \"%4\"" )
                    .arg( getMlvFramerate( m_pMlvObject ) )
                    .arg( numberedFileName )
                    .arg( "yuv420p" )
                    .arg( output ) );

                   
And I replaced all .mov strigs, i found in MainWindow.cpp with .avi.

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

masc

Quote from: escho on August 23, 2017, 02:30:37 PM
I can compile with QT creator without problems and don´t have to chance anything. Maybee, QT Creator adds the paths itself?
I don't think Qt adds paths (at least it does not do that for me ;D). But maybe there is set a system variable with that path.

Quote from: escho on August 23, 2017, 03:06:20 PM
For my needs I did a workaround, quick and very dirty. Looks like that:
That does not look so quick and dirty. That patch should do the job. Maybe I add this in future to the other codecs. What does this codec "rawvideo" exactly? Does it convert the png to tiff and adds it to the avi?
5D3.113 | EOSM.202

Danne

Nice progress all.
I wanted to ask about HDR implementation. Since you´re in FFmpeg domain there´s something called tblend filter that, at least when I run real life footage, yields very good results. It´s more or less same speed as transcoding regular prores and it also keeps the original framerate.
Example footage:
http://www.magiclantern.fm/forum/index.php?topic=13512.msg160592#msg160592
averaged footage at around 1:05.

It works with an average filter. I think it will work nicely in Mlv app since we now can tweak output. Here´s a syntax example from Switch:
find . -maxdepth 1 -iname '*.dng' -print0 | xargs -0 dcraw +M $h2 $o $S -c -6 -W $qual $gam $wb $pix $br | ffmpeg $wav1 -f image2pipe -vcodec ppm -r $fps -i pipe:0 $sd -vcodec prores -pix_fmt yuv422p10le -n -r $fps -vf tblend=all_mode=average Output.mov
What it boils down to is the simple filter syntax added:
-vf tblend=all_mode=average Output.mov

The idea is that the HDR PNG files gets averaged of course.


ilia3101

If that HDR using ffmpeg will be implemented, it will be in the qt version, as Cocoa version will leave ffmpeg soon.

I would like to implement HDR internally though... it seems simple.

Also new release of Cocoa version (v0.17) This time it show's the sliders value.
... sessions like Qt GUI will be implemented soon

Danne

I would like to implement HDR internally though... it seems simple.
Great.

masc

Quote from: escho on August 23, 2017, 03:06:20 PM
Another thing

I use MLV-videos for nothing else than my astronomical stuff. Autostakkert, the program, which I use to stack the videoframes, need uncompressed avi-files as input. It does not run with prores. It would be nice to can export such avi-files with MLVApp sometime in the future.

For my needs I did a workaround, quick and very dirty. Looks like that:

I changed MainWindow.cpp line 636 ff

QString program = QCoreApplication::applicationDirPath();
    program.append( QString( "/ffmpeg\"" ) );
    program.prepend( QString( "\"" ) );
    program.append( QString( " -r %1 -i \"%2\" -c:v rawvideo -pix_fmt %3 \"%4\"" )
                    .arg( getMlvFramerate( m_pMlvObject ) )
                    .arg( numberedFileName )
                    .arg( "yuv420p" )
                    .arg( output ) );

                   
And I replaced all .mov strigs, i found in MainWindow.cpp with .avi.

Edgar

I added export to uncompressed AVI in my latest commit. Hope it works :-) Thanks for your code!
5D3.113 | EOSM.202

escho

Quote from: masc on August 24, 2017, 04:30:52 PM
I added export to uncompressed AVI in my latest commit. Hope it works :-) Thanks for your code!

Works like a charm. Exactly, what I needed. Thankyou very much :)

Rawvideo
Im not sure, but as far as I understand this, it should work like this:
The inputfiles are moved as a bitstream into the avi-container. No changes, no compression.

Edit: I updated my installation-guide for openSUSE :)

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

ilia3101

As many requested, the app has Log now.

There is 4 processing image profile options:

  • Standard
    Gamma corrected, harsh clipping.
  • Tonemapped
    Gamma corrected + Tonemapped (Smooth highlights)
  • Alexa Log
    Alexa Log-C curve based on this specification. ISO 800 version of curve is used. The Alexa Log profile ignores saturation and contrast settings to achieve an accurate Log image. To avoid any clipping, set exposure to -1.2, or lower if you want to use it with highlight reconstruction.
  • Linear
    If for any reason you don't want gamma correction :D

More profiles and Log options to be added... any links to formulas for other Log profiles are very welcome


(Tone mapped vs Log profile comparison)

AWPStar

I did some changes in lj92 sources. it's about 46% faster than original.(30 -> 44fps decoding on 1920x720)
I will test stability. If everything will be ok - i will send you the sources.

Very promising application. I have no MacOS and windows gui cannot be ported to it. So mlvp is only for windows (
If you need some features form mlvp - feel free to ask.
MLVProducer. p.s. sorry for my bad english.

Danne

@AWPStar
Very interesting about the speed optimisation. Probably beneficial to have access to your changes even if it´s not stable.

@Ilia3101
Logs. Check bottom at this post from Baldavenger. Especially linear to .... Think he got them from nuke. I always liked working with cineon and logC.
http://www.magiclantern.fm/forum/index.php?topic=15801.msg158145#msg158145

s-log formula on page 10 here:
https://pro.sony.com/bbsccms/assets/files/mkt/cinema/solutions/slog_manual.pdf

Would be nice to have bmdfilm but havn´t seen any official formula here.

DeafEyeJedi

Quote from: Danne on August 26, 2017, 07:35:39 AM
@AWPStar
Very interesting about the speed optimisation. Probably beneficial to have access to your changes even if it´s not stable.

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

Teamsleepkid

really cool app guys. having it faster sounds like a really great idea. sounds like its windows only though right awpstar? also focus pixel correction would be useful.
EOS M

AWPStar

>Very interesting about the speed optimisation. Probably beneficial to have access to your changes even if it´s not stable.
I dont use git's.
https://sourceforge.net/projects/mlvproducer/files/src/lj92.c/download

Some curves. 256 points, int32
https://sourceforge.net/projects/mlvproducer/files/src/curves.zip/download
MLVProducer. p.s. sorry for my bad english.

Danne



ilia3101

@AWPStar Thanks a lot for the speed optimisation!

@Danne @flostro Thanks for the Log info, I literally couldn't find any formulas myself. Will add all the log curves.

ilia3101

Added many more Log profiles and eliminated clipping in Log. Download

Added Cineon and S-Log3, however couldn't get Canon-Log formula right.

Quote from: Ilia3101 on August 26, 2017, 03:26:07 AMTo avoid any clipping, set exposure to -1.2
Ignore this advice now.

I had a thought: Log == tonemaping, so now that is how the log functions are treated, like a form of tonemapping function, so there is no longer any clipping!!!

Adjust exposure as much as you want, and it will be Log-ically correct.

Quote from: Danne on August 05, 2017, 03:55:27 PMWhat is the winning deal in this app is that you retain scene referred dynamic range prior to export.
This is now the case with Log^^^

Please don't ruin any footage by using the previous version (maybe that's exaggeration).

Might avoid developing MLV App for some time, to actually create (edit) a video ;)

Danne


escho

MLV App on Linux openSUSE, actual version

Looks like tonemapping is applied on the first run of MLV App, but not marked as applied. I have to press the button "apply tonemapping" twice to turn off tonemapping.

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

masc

I hope I'll find some time to add it also to the cross platform version in the next days... Started my 3 weeks holidays today. But internet connection seems to work :-D
5D3.113 | EOSM.202

escho

https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

masc

Thx :-) It was not to complicated. It is added to the repos. But there is a tiny bug... Ilia, please check my log :-)
But in general it seems to work fine. Good work Ilia!
5D3.113 | EOSM.202

escho

https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

IDA_ML

Unfortunately, version MLV.App.v0.6.alpha.x64.Win crashes when I try to export a 14-bit MLV clip from the EOS 100D.  Here is what it says:

------------------------------------------
Problem signature:
  Problem Event Name:   APPCRASH
  Application Name:   MLV App.exe
  Application Version:   0.0.0.0
  Application Timestamp:   599d3f51
  Fault Module Name:   MLV App.exe
  Fault Module Version:   0.0.0.0
  Fault Module Timestamp:   599d3f51
  Exception Code:   c000001d
  Exception Offset:   000000000001247b
  OS Version:   6.1.7601.2.1.0.256.48
  Locale ID:   1033
  Additional Information 1:   e2e5
  Additional Information 2:   e2e5dca40ff74952f8dea9391c49a9c1
  Additional Information 3:   9c18
  Additional Information 4:   9c18eac52f9d534f72d434fbdb235140