Download the latest here! (https://mlv.app/) MLV App is the world's only software for raw video that combines native MLV support with a familiar photographic editing workflow! (https://www.magiclantern.fm/forum/proxy.php?request=https%3A%2F%2Fuser-images.githubusercontent.com%2F30245296%2F110171956-c4af8580-7dfc-11eb-81a9-769ddc2c879c.png&hash=fa0db741c11da3cc0341cc098195cb6e) Cinematic results are effortless in MLV App... Sample videos: (If anyone has suggestions of nice cinematic videos processed in MLV App that could be added here please tell me!!!) If you are new to MLV App, this will teach you almost everything about using it: |
I began doing this this due to general frustration with Adobe, having to convert to DNG, and not being able to run MLVProducer(or any all in one solution) on my Mac. I began doing it, then Footage came along (btw good work martin), which was really exciting, but that never fixed the black level issue on elcapitan, so I continued.
I've had a lot of help with figuring stuff out on here: http://www.magiclantern.fm/forum/index.php?topic=19270.0 (http://www.magiclantern.fm/forum/index.php?topic=19270.0)
Thanks g3gg0 and a1ex and Danne.
And thanks to everyone who is developing: masc, bouncyball... all who wrote GPL code used in the app
toshibai7:~ reddeercitytv$ /Users/reddeercitytv/Downloads/MLV\ App ; exit;
2017-07-08 19:10:29.036 MLV App[1708:29213] Screen width: 1920, height: 1080
2017-07-08 19:10:29.036 MLV App[1708:29213] Physical RAM: 16384 MB
2017-07-08 19:10:29.036 MLV App[1708:29213] CPU threads: 8
[ 2.3260, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.5108 ]
[ 2.3260, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.5108 ]
[ 2.3260, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.5108 ]
[ 5.3437, 0.0000, 0.0000 ]
[ 0.0000, 2.2974, 0.0000 ]
[ 0.0000, 0.0000, 3.4709 ]
2017-07-08 19:10:41.778 MLV App[1708:29213] unlockFocus called too many times. Called on <NSButton: 0x7fbd69c55b80>.
2017-07-08 19:11:42.953 MLV App[1708:29213] New MLV file: /Volumes/2TB Raid 0/Dans House Demo/CF Cards/Lexar1066x64GB/100EOS5D/M19-0957.MLV, strlen: 81
Block # 0 | MLVI | 52 Bytes
Block # 1 | RAWI | 180 Bytes
Block # 2 | INFO | 16 Bytes
Block # 3 | RTCI | 44 Bytes
Block # 4 | EXPO | 40 Bytes
Block # 5 | LENS | 96 Bytes
Block # 6 | IDNT | 84 Bytes
Block # 7 | WBAL | 44 Bytes
Block # 8 | STYL | 52 Bytes
Block # 9 | NULL | 36 Bytes
Block # 10 | RTCI | 44 Bytes
Block # 11 | EXPO | 40 Bytes
Block # 12 | LENS | 96 Bytes
Block # 13 | WBAL | 44 Bytes
Block # 14 | WAVI | 32 Bytes
Block # 15 | VIDF | 3070140 Bytes
Block # 16 | NULL | 1568 Bytes
Block # 17 | NULL | 36 Bytes
Block # 18 | LENS | 96 Bytes
Block # 19 | VIDF | 3070300 Bytes
Block # 20 | NULL | 1568 Bytes
Block # 21 | VIDF | 3070432 Bytes
Block # 22 | NULL | 1568 Bytes
etc. ........
Block #3013 | VIDF | 3070432 Bytes
Block #3014 | NULL | 1568 Bytes
Block #3015 | VIDF | 3070432 Bytes
Block #3016 | NULL | 1568 Bytes
Block #3017 | VIDF | 3070432 Bytes
Block #3018 | NULL | 1568 Bytes
MLV Info
MLV Version: v2.0
File Blocks: 3019
Lens Info
Lens Model: EF24-70mm f/2.8L USM
Serial Number:
Camera Info
Camera Model: Canon EOS 5D Mark II
Serial Number: ######## (I blanked the serial number)
Video Info
X Resolution: 1872
Y Resolution: 936
Total Frames: 1392
Frame Rate: 23.976
Exposure Info
Shutter: 1/46.8
ISO Setting: 100
Digital Gain: 0
RAW Info
Black Level: 1791
White Level: 15000
Bits / Pixel: 14
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
MLV.app [drag MLV files here] enter
The app is not mac specific... except the GUI, so there is potential to make it cross platform, if I (or anyone else) finds time.
mlv_dump -f 5 -o OUTPUT.MLV INPUT.MLV
Gives you a 5 frame MLV file.MLVapp [Bunch of MLV files] enterOnly for one file right now though. Download link in first post is up to date.
4444XQ would be amazing (12bit) rather than 4444 (10bit)Prores4444 is as much 12bit as XQ.
Looks interesting - but when I open an MLV file the GUI closes and I get something like this in Terminal:Hmmm, looks weird, its as if your video's frames repeat twice or something... Could you try with another MLV file, it should not happen... if it does, then we can investigate why it happens on your system, it it does not happen with other clips, you can send the MLV file that caused the problem... if you want... so I can try and understand why it happened. @Wayne H You get it too?, on all MLV files you try? If so, tell me what version of macOS you have and what era/what model of Mac you are on and @jpegmasterjesse please do that too if possible.
Tried the Wins version and no joy !
Win7 pro AMD FX8350 dual GPU's GTX580's
I'll try in on my dell laptop i5
Edit: Same thing on i5 Intel dell laptop Wins7 Pro , 8GB ram , gpu radeon HD 4300
Works here --but i have pink hi lights , are you using apple camera raw ?Could you please try again with with the same clip and this (https://github.com/ilia3101/MLV-App/releases/tag/v0.11-pre-alpha-white-level-repair) release? I've added auto white level repair, seeing if it helps. However I hear my GUI has problems with 10.12.5, so you may have to run it on a different Mac or wait for another Qt release, the mac you run it on makes zero difference... though it may in the future (once I figure out openCL and GPU ;))
I found it and updated the version on git. Some .dlls were missing...Great thanks --GUI fires up but crashes on loading mlv file , the same one i've being testing in the previous posts with my mac
MLV Info
MLV Version: v2.0
File Blocks: 728
etc. ......
RAW Info
Black Level: 1791
White Level: 15000
Bits / Pixel: 14
Are they blown highlights?Yes, they are blown highlights, but as reddeeercity said, pretty much every other piece of software showed less pink highlights, ACR, resolve, even footage. I have seen pink highlights in all of those softwares before, but it seems mine is particularly bad, so I'm wondering if there's an obvious/well known way of fixing them.
Dcraw get pinks when rebuilding blown highlights.Hmm, mine doesn't rebuild highlights at all, so is there something relatively simple that all raw converters do that I'm not aware of?
I couldn't test this because the app closes upon selecting a mlv file. Mac os sierra 12.3.Yea that's strange, I sometimes get that, I'm testing on Sierra 10.12.6 and 10.11, the way I've avoided it most of the time is either trying a different file, or opening files with a single click, then pressing open button in the dialog instead of double click, for some reason I've noticed it helps ::)
Are they blown highlights?
Yes, they are blown highlights .....No , they are not blown hi light --that was the point of all this
..... but as reddeeercity said, pretty much every other piece of software showed less pink highlights, ACR, resolve, even footage.No sorry I think you miss understood , I Do Not See any pink Hi lights in those apps at all just in your new app.
No sorry I think you miss understood , I Do Not See any pink Hi lights in those apps at all just in your new app.Ok I completely understand what you are saying now: the clip does not have blown out highlights (according to you)
I think maybe some how you are clipping the hi lights in the mlv raw decode ? or the conversion to 8bit color space ?
Just a thought ;)
Still looking for a high framerate/720p sample ;) ...anyone?
By the way. I can't open any mlv in your APP. Every time I try, APP crashes. I'm using v0.2 alpha (Cross platform version) on Windows 10.
How are prores exports in the cross platform version handled? Thought I read ffmpeg somewhere but I must have dreamt that.Yes, since version "Qt 0.2 alpha" we have prores export for Windows and Linux. I had problems to include a library version of FFmpeg. That's why I took the command line app to the package. So at the moment it is realized very easy: first a png sequence is rendered and then these pictures are converted to the mov. This is not optimal, because the pngs have only 3x8bit. For the future I plan to take the library of FFmpeg, because we get more than 8bits... ;)
2017-08-04 00:47:42.136 MLV App[85848:713418] Exported frame 143 to: /Users/dan/Desktop/MLV_files/test_Ilia/.temp_png/frame_00143.png
sh: (null): command not found
defaults write com.apple.finder AppleShowAllFiles YES.
but I can see... nothing. Just pink noise. I'm playing 14bit lossless files in the qt version of the app.
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.
Or wait for @masc to make a release of the Qt version if you want a more stable and featurefull app :-X
Does 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.
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?Built in logs would be great.
cineon
logC
Bmdfilm
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.
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.
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.
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.
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
Can you provide me with any Linux/GCC Makefile for easy kickstart?Great! You don't need a makefile. You just need Qt (with QtCreator), zlib and libpng (development version, I use 1.6.31). Then you open the .pro file in the folder platform/qt/ and with some luck you are able to compile. When I tried that on Linux, I had no luck, because my Ubuntu was to old. I had only a Qt4.x, but you need 5.x (I know that it works on 5.6 and later on Win&OSX).
I want to compile QT version on linux.
macx: INCLUDEPATH += /usr/local/include/libpng16/
macx: LIBS += -L/usr/local/lib/ -lz -lpng
You can write something starting withlinux-g++*: ....
and you won't break the Windows and Mac version.linux-g++*: QMAKE_CFLAGS_RELEASE += -msse2
the other files only with:linux-g++*: QMAKE_CFLAGS_RELEASE += -msse2 -std=c99
So activate the first line, compile (will end with errors), activate the second line, compile again and it should work. Maybe anyone knows how to set the flags independently for different source code files... I don't know ;)crashing everytime I try to open lj92 mlv :/ (OS X el capitan 10.11.6)Could you please provide such a file? (A small one please ;))
Could you please provide such a file? (A small one please ;))
# Linux
linux-g++*: QMAKE_CFLAGS_RELEASE += -O3 -msse4.1 -mssse3 -msse3 -msse2 -msse
linux-g++*: INCLUDEPATH += /usr/local/include/
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
Compiled/installed zlib and libpng and MLV App compiles smoothly on the very first pass. No other hoop jumping needed (with about 30 warnings though).void MainWindow::on_actionOpen_triggered()
{
//Stop playback if active
ui->actionPlay->setChecked( false );
//Open File Dialog
QStringList files = QFileDialog::getOpenFileNames( this, tr("Open one or more MLV..."),
m_lastSaveFileName.left( m_lastSaveFileName.lastIndexOf( "/" ) ),
tr("Magic Lantern Video (*.mlv *.MLV)") );
void MainWindow::openMlv( QString fileName )
{
//Set window title to filename
this->setWindowTitle( QString( "MLV App | %1" ).arg( fileName ) );
//disable drawing and kill old timer and old WaveFormMonitor
killTimer( m_timerId );
delete m_pWaveFormMonitor;
m_dontDraw = true;
/* Destroy it just for simplicity... and make a new one */
//freeMlvObject( m_pMlvObject );
/* Create a NEW object with a NEW MLV clip! */
m_pMlvObject = initMlvObjectWithClip( fileName.toLatin1().data() );
Could you please provide such a file? (A small one please ;))
@masc: I've managed to compile "MLV App" for linux with QT 5.9.1@bouncyball
1. Linux section in MLVApp.pro looks like this:Code: [Select]# Linux
Compiled/installed zlib and libpng and MLV App compiles smoothly on the very first pass. No other hoop jumping needed (with about 30 warnings though).
linux-g++*: QMAKE_CFLAGS_RELEASE += -O3 -msse4.1 -mssse3 -msse3 -msse2 -msse
linux-g++*: INCLUDEPATH += /usr/local/include/
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
2. I had to add "*.MLV" in dialog because file names are case sensitive here:Code: [Select]void MainWindow::on_actionOpen_triggered()
{
//Stop playback if active
ui->actionPlay->setChecked( false );
//Open File Dialog
QStringList files = QFileDialog::getOpenFileNames( this, tr("Open one or more MLV..."),
m_lastSaveFileName.left( m_lastSaveFileName.lastIndexOf( "/" ) ),
tr("Magic Lantern Video (*.mlv *.MLV)") );
3. Some more stuff: when "MainWindow::openMlv( QString fileName )" invoked first time there is no MLV object exists hence "freeMlvObject( m_pMlvObject )" causes immediate core dump. I don't actually understand why it works for mac or mingw :P. Commenting out "free" does a trick and MLV loads and can be processed. However If you need to import second MLV, dialog freeses. I guess it's expected. Can you collaborate on this issue?Code: [Select]void MainWindow::openMlv( QString fileName )
{
//Set window title to filename
this->setWindowTitle( QString( "MLV App | %1" ).arg( fileName ) );
//disable drawing and kill old timer and old WaveFormMonitor
killTimer( m_timerId );
delete m_pWaveFormMonitor;
m_dontDraw = true;
/* Destroy it just for simplicity... and make a new one */
//freeMlvObject( m_pMlvObject );
/* Create a NEW object with a NEW MLV clip! */
m_pMlvObject = initMlvObjectWithClip( fileName.toLatin1().data() );
4. When exporting to prores - everytime this process stops on 50% of PNGs files. Don't know why yet :)
regards
bb
3. Some more stuff: when "MainWindow::openMlv( QString fileName )" invoked first time there is no MLV object exists hence "freeMlvObject( m_pMlvObject )" causes immediate core dump. I don't actually understand why it works for mac or mingw :P. Commenting out "free" does a trick and MLV loads and can be processed. However If you need to import second MLV, dialog freeses. I guess it's expected. Can you collaborate on this issue?@bouncyball:
@bouncyball:
For 3.: I don't find a reason why that crashes on Linux. The pMlvObject exists, it comes from initLib(), which is called in the constructor. And freeMlvObject frees only the memory which initMlvObject() allocated. Can you try in which line it crashes?
@12georgiadis:
For me the app does not crash, but I get a clean darkred single colour picture for all frames. It seems to be a 14bit lossless file, is that right?
Edit: if I look into the code of your file, there is nearly everywhere the same data... are you sure this file is not currupted in any way? Do get it opened with another application?
Yes, I can open it with mlvfs + mlrawviewer/resolve/cliphouse etc.
For 3.: I don't find a reason why that crashes on Linux. The pMlvObject exists, it comes from initLib(), which is called in the constructor. And freeMlvObject frees only the memory which initMlvObject() allocated. Can you try in which line it crashes?Crash been caused by fclose(video->file) in freeMlvObject()
/* Free all memory and close file */
void freeMlvObject(mlvObject_t * video)
{
isMlvActive(video) = 0;
/* Close MLV file */
if(video->file) fclose(video->file);
if(video->is_active) fclose(video->file);
but, unfortunatelly as I understand, "is_active" field of "mlvObject_t" never used in code yet ;) (not used in openMlvClip() either)Okay. I can open it in mlvfs+resolve, too. But it looks 100% the same as in MLVApp (only white balance adapted to the result of resolve).
(https://www.magiclantern.fm/forum/proxy.php?request=https%3A%2F%2Fimage.ibb.co%2FgcG6cF%2FResolve_MLVApp.jpg&hash=32c4d824445e134dacbcfa9bb0cc1ba8)
Sorry, but I still think your file is corrupted!
Edit: MlRawViewer also shows the same.
This patch is working:Superb! Thank you so much! I changed that and commited it into the repos.Code: [Select]/* Free all memory and close file */
void freeMlvObject(mlvObject_t * video)
{
isMlvActive(video) = 0;
/* Close MLV file */
if(video->file) fclose(video->file);
BTW no slash "\ -> /" fixing in PATH needed.I don't get that. What did you do? \" is just a " in QString. It is for getting spaces in the paths and filenames to work, for example.
Excellent, now working with another clip without crashing ! Good app for preview ! Now I can get rid of mlrawviewer ;-) Do you think you'll add cdng export and fixing issues settings ?Hej, cool, fine that it works for you too now. Thanks. MlRawViewer is still better in performance, because it uses GPU - we don't do for now.
thx !
I don't get that. What did you do? \" is just a " in QString. It is for getting spaces in the paths and filenames to work, for example.Ah, I meant there is no need to handle Windows/Unix slash differences in paths separately. I guess QT lib does it for you.
But very cool, that you got it working on Linux! Is it possible to make a kind of package, or has it to be compiled always for using it on Linux? I'm not deep enough in Linux...Well if we link MLV App statically with libpng16 and zlib libraries It should run on any 64bit linux system.
[ 1.6808, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.3847 ]
[ 2.0365, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.0108 ]
[ 2.3260, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.5108 ]
[ 5.3437, 0.0000, 0.0000 ]
[ 0.0000, 2.2974, 0.0000 ]
[ 0.0000, 0.0000, 3.4709 ]
m_lastActiveClipInSession 0
Ah, I meant there is no reason to handle Windows/Unix slash differences in paths separately.
Well if we link MLV App statically with libpng16 and zlib libraries It should run on any 64bit linux system.
Also It's possible to make deb or rpm package from it, maybe I'll try if I have more time :). It's just have some dependencies: QT, libegl1-mesa, pthread, zlib1, libpng16.
Btw, when proggie's running every slider movement causes lots of debug info output on stdout like:Code: [Select][ 1.6808, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.3847 ]
[ 2.0365, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.0108 ]
[ 2.3260, 0.0000, 0.0000 ]
[ 0.0000, 1.0000, 0.0000 ]
[ 0.0000, 0.0000, 1.5108 ]
[ 5.3437, 0.0000, 0.0000 ]
[ 0.0000, 2.2974, 0.0000 ]
[ 0.0000, 0.0000, 3.4709 ]
m_lastActiveClipInSession 0
Ah okay. Did I handle that sparately anywhere?Nope, but I always have to do it when using plain C and I hate this so much, hahaha :P
Superb! Thank you so much! I changed that and commited it into the repos.
I don't get that. What did you do? \" is just a " in QString. It is for getting spaces in the paths and filenames to work, for example.
But very cool, that you got it working on Linux! Is it possible to make a kind of package, or has it to be compiled always for using it on Linux? I'm not deep enough in Linux...
Hej, cool, fine that it works for you too now. Thanks. MlRawViewer is still better in performance, because it uses GPU - we don't do for now.
Can cdng hold processed picture data? I thought it is also a kind of RAW, that is why I did not think about exporting cdng yet (don't know if Ilia3103 did).
What do you mean with "fixing issues settings"?
We just started developping this little app, we'll see where our way goes. ;D
Another question: can you open files bigger than 2GB on Linux? On OSX it is no problem, on Windows some while(..) will never end... It think the comparisons between uint64_t and long are the problem (see compiler warnings), but I did not get it fixed until now... maybe I'll wait for Ilia to let him fix that. :)Yes I noticed those warnings too.
win32: QMAKE_CFLAGS_RELEASE += -msse2 -std=c99 -D_FILE_OFFSET_BITS=64
or compile x64 binary with mingw.And yes, CDNG is a raw format (holds only Bayer data and almost identical to DNG), but it's ok to do some processing like removing vertical stripes or fixed pattern noise. I have thought about it, I like the idea of making a separate DNGing 'library', but I really have no idea how the dng format works.Here all latest stuff for ML raw data handling/processing ever written/modified by ML developers or me :) It's all structured in my version of mlv_dump on steroids:
Also audio_mlv.c might get done soon ;)
@bouncyball oh, I thought I had already put is_active to use... I'm probably going mad then. Maybe that's why I always had annoying problems trying to do certain things before.Maybe :D
@masc Sessions looks perfect, does it save it in a format yet? I'd like to be able to read that on the cocoa GUI in the future too (that needs lots of catching up).
See if you can fix any of the bugs easily, if you can, why wait for me :D
And yes, CDNG is a raw format (holds only Bayer data and almost identical to DNG)
As I see windows build is 32 bit thas is why "-D_FILE_OFFSET_BITS=64" switch needed to pass to the compiler to seek more than 2gb files.Try:Code: [Select]win32: QMAKE_CFLAGS_RELEASE += -msse2 -std=c99 -D_FILE_OFFSET_BITS=64
or compile x64 binary with mingw.
So if we only want MLV -> cDNG, why not just using mlv_dump?+1
maybe we could just add a menu item which "remote controlles" mlv_dump. Or did I missunderstood?Yup, would be right decision, the whole point of this app is to skip creation of intermediate files. This also concerns DNGs. When you implement ffmpeg vial lib, MLV App is gonna be truly end to end processing tool.
The processing stuff of mlv_dump looks really interesting! Bad pixel fix, pattern noise and so on... would be great to have it in MLV App!If you'll have any questions regarding processing I'm ready to answer with pleasure :)
__inline float xmul2f(float d)
__inline float xdiv2f(float d)
__inline float xdivf( float d, int n)
gcc (under linux) or mingw-gcc (under windows) always complains and outputs error that they are not defined.If you'll have any questions regarding processing I'm ready to answer with pleasure :)
gcc (under linux) or mingw-gcc (under windows) always complains and outputs error that they are not defined.
changing "__inline" to "static INLINE" solves the issue.
How do you compile w/o applying these changes?
win32: QMAKE_CFLAGS_RELEASE += -msse2 -std=c99
so I did a compiler run with this beforewin32: QMAKE_CFLAGS_RELEASE += -msse2
some module(s?) compile, others with error, I switch the flag again and the other modules compile and link in the end. Not the best to do so... I know... but I found no other solution so far. Maybe your hint solves this issue. I'll try tomorrow! Do you think that's it?1) offload, visual check, apply LUT, color correct, fix settings, sync sound, export APR 444 12 XQ + APR Proxys in the same time (or CNDG + DPX/TIFF if necessary) ALL this steps in one app and one batch ;-)
:) I think Ilia or me, we will do that! Cool!
Okaay, I had always one big problem under windows, maybe this could solve it: I don't get everything compiled withCode: [Select]win32: QMAKE_CFLAGS_RELEASE += -msse2 -std=c99
so I did a compiler run with this beforeCode: [Select]win32: QMAKE_CFLAGS_RELEASE += -msse2
some module(s?) compile, others with error, I switch the flag again and the other modules compile and link in the end. Not the best to do so... I know... but I found no other solution so far. Maybe your hint solves this issue. I'll try tomorrow! Do you think that's it?
I think this is not so far away from what I think MLV App could do in the future ;)
@Ilia3101, @masc
I forgot one thing to ask
In amaze_demosaic.c there are 3 inline funcs:Code: [Select]__inline float xmul2f(float d)
gcc (under linux) or mingw-gcc (under windows) always complains and outputs error that they are not defined.
__inline float xdiv2f(float d)
__inline float xdivf( float d, int n)
changing "__inline" to "static INLINE" solves the issue.
How do you compile w/o applying these changes?
#define min(a,b) \
({ typeof ((a)+(b)) _a = (a); \
typeof ((a)+(b)) _b = (b); \
_a < _b ? _a : _b; })
#define MAX(a,b) \
({ typeof ((a)+(b)) _a = (a); \
typeof ((a)+(b)) _b = (b); \
_a > _b ? _a : _b; })
#define SQR(a) \
({ typeof (a) _a = (a); \
_a * _a; })
Do you have an idea why? The output is to long for a message in this forum :(win32: QMAKE_CFLAGS_DEBUG += -msse2 -D_FILE_OFFSET_BITS=64
In conjunction with replacing all "fseek" with "fseeko". Should resolve >2gb isuue.@masc..
1. Yes, it is a good idea to just use mlv_dump for dng export, to avoid unnecessary complexity.
2. The AMaZE code is a disgusting mess to be honest, I don't even know what language you could call it, but if I remember correctly it compiled with some c++ standards flags.
3. Also could you get me a nice screenshot of the Qt GUI that you like so I can put it in the first post?
4. About caching: I think it should work like this... When there is many clips open, the one being worked on should be allowed full cache (whatever we did when only one clip was supported), and others would be allowed 0 cache.. Of course this would need for me to rewrite the caching to actually work so it can be adjusted in size while running.
@bouncyball...
Could you possibly by any chance provide a Linux build for @masc to put on the release page?
@masc
Which QT and mingw versions do you use?
I use QT 5.9.1 with mingw 5.3.0 and able to compile on one pass :)
Btw under windows as well. However can not fix the MLV size >2GB issue yet.
When I try to open it my files from a complex folder structure (like I often use for editing) it crashes. But when I moved them to a simple one, like HDD root, it opens perfectly.
try:Wow, sounds good... I'll try that tomorrow when I'm back on my windows PC! Thanks!Code: [Select]win32: QMAKE_CFLAGS_DEBUG += -msse2 -D_FILE_OFFSET_BITS=64
In conjunction with replacing all "fseek" with "fseeko". Should resolve >2gb isuue.
...
Try yourself what I said abobe, I think it should help even for 32bit binary.
Could you possibly by any chance provide a Linux build for @masc to put on the release page?Can not compile all static binary yet. There is no chance to put libs side by side with binary in Linux. It's not gonna work.
I'm too lazy to compile libpng and zlib again for win32 MLV App testing. Try yourself what I said abobe, I think it should help even for 32bit binary.
HERE is a proof of concept ;) Win x64 MLV App with > 2GB support. Just exported mov for 4.2gb MLV.
HERE (https://bitbucket.org/bouncyball/mlv-tools/downloads/MLV_App_x64.zip) is a proof of concept ;) Win x64 MLV App with > 2GB support. Just exported mov for 4.2gb MLV.
uint32_t file_set_pos(FILE *stream, uint64_t offset, int whence)
{
#if defined(__WIN32)
return fseeko64(stream, offset, whence);
#else
return fseeko(stream, offset, whence);
#endif
}
I would like to try this version, but after start an error message appears: "This application fails to start because it could not find or load the Qt platform plugin "windows" in "". Reinstallating the application may fix this problem."Ah yes windows platform plugin for QT was missing.
@bouncyball if you want, I can add you with commit ability to the github repository if you have an account. Might speed up little things like getting the big files working.Would be very nice thank you.
Linux screenshot looks good, maybe I can switch to Linux sooner now :):)
Also why does fseeko and fseeko64 exist? How are they different from fseek?difference between fseek and fseeko is the offset type. fseeko offset type is "off_t" and fseek offset type is "long".
And if someone says it's not working again I'm not gonna believe him in no way :P@bouncyball --Really ! that very arrogant of you!! >:(
@bouncyball just tell me your github account name if/when you have one.My username is bouncyball-git
Did you try 64bit version though?? same question.
1. Exporting to prores results in png. The number of pngs is correct, but the progress bar stops at 50%.You gotta put ffmpeg binary to the same dir as MLV App and it's gonna pass the 50% :) (will encode to MOV and then delete PNGs)
@eschoYou gotta put ffmpeg binary to the same dir as MLV App and it's gonna pass the 50% :) (will encode to MOV and then delete PNGs)
@Ilia3101, @masc
Intermediate PNG export is a huuuge waste of space, for 1920x1080 one PNG frame is ~10MB (imagine size for 3K). Had to free some space on my SSD to make this export.
Succeeded to run it under Linux. A first feedback:Thanks for testing on Linux! I think the histograms are both right. The picture with the mars is really dark, so the black in the histogram is so huge, that you nearly can't see the rest. Atm we are anywhere between linear and log scaling on the y axis. Log would be good for pics like that, but "normal" pictures would result in a line. Linear is good for normal pics but if there is a peak, you'll see only the peak.
1. Exporting to prores results in png. The number of pngs is correct, but the progress bar stops at 50%.
2. I see nothing in histogramm, looking at a small object like the planet mars. Histogramm of the big moon looks fine:
Histogramm mars: https://seescho.files.wordpress.com/2017/08/mars1.jpg
Histogramm moon: https://seescho.files.wordpress.com/2017/08/mond.jpg
Edgar
UPDATE: New version still crashes - nothing change.Oh man... I can't believe this :D, then I guess it really depends on footage, I tried mostly 1080p/14bit/Uncompressed, any file size works here (on my four windows systems).
And... what did you change for your last upload? :)I saw that if file size is more than 2GB, info dialog always shows 591 or 592 frames. Then I remember that in addition to 'fseek' there are lots of 'ftell' used in 'video_mlv.c'. And of course they also should be replaced by 'ftello64' for mingw :P. That's what I changed last time and now info panel shows correct frame count.
@mascI forgot that in addition to 'fseek' there are lots of 'ftell' used in 'video_mlv.c'. And of course they also should be replaced by 'ftello64' for mingw :P.
I have to test this code also for Linux (if it works for Linux it should work on Mac without change) and then I will push changes to repo (thanx to Ilia, he gave me access).
Hey guys patched - frame number not reported correctly for 2GB+ MLVs in the info dialog.
Download 32bit (http://nic.caucasus.net/mlvapp/?dir=&download=MLV_App_x86.zip) and 64bit (http://nic.caucasus.net/mlvapp/?dir=&download=MLV_App_x64.zip) versions again.
Both 32/64bit versions should hopefully work for everyone now ;)
Terrific Progress guy's, amazing work, quick question though.... anyone know how to batch import?? i can only seem to import one clip at a time, or am i missing something???????I am not sure, if the latest version we uploaded as binary had already a filedialog for multiple files. Are you on Windows or OSX?
anyone know how to batch import?? i can only seem to import one clip at a time, or am i missing something???????
Hi Masc, i'm on MacOS, i'm currently using the 0.5 alpha version.. the latest version on the download page, just tried finder to select multiple MVLs to import, but when i go to "open with", the MLV app is grey'd out and won't let me select it, to open with, guess i'll wait for the app to be updated, again fantastic work, thanks.Yes, I have that on Mavericks too, on El Capitan it works for me, whyever. There is a option "Show only recommended" or something like that (have never seen the english version ;) ), and when you uncheck that, it also works on Mavericks.
I tested an MLV clip with sound last night. w10 64bit version.Audio is not implemented, that is the reason why it is still greyed out. Ilia wants to implement audio read out, I also wait for that :)
Video exported fine, however there is no sound and/or no separate audio file created.
When reviewing the app preferences Export Audio is ticked but greyed out.
I know two potential causes for slownessYes I also thought about the same two reasons you mentioned.
Btw I noticed that FPS, while playing MLV, differs for Win and Linux builds (no matter 32 or 64 bit):Haha... with Windows it is so slow... yes, I have seen that too, so I am not alone:
Win ~7-10 fps
Linux ~15-18 fps (even 20 sometimes)
Tested on the same PC with the same hardware and MLV files.
@masc: I pushed my latest stuff to repo. I think you'll appreciate commit 1aadb46 ;)I'll check that out this evening!
@masc I see you added mlv dump sources to the repository. I will try and implement them, although some of them will probably need to be moved from src/processing to src/mlv, as they work mostly with bayer data, not RGB which the processing module does.Oh yes! A nice icon would be cool. I just created this ugly thing for having anything... but I don't like it!
Caching rewrite still on the list :( ugh
I'm back and more stuff is coming.
We also need a really nice icon.
When do we have to call it? I thought before the debayering when I understood the code and the comments right. Is that right? But it works with integer and Ilia implemented float. Is that a problem?All processing routines, the original MLVFS/cr2hdr ones or the ones added/modified by me, work only on RAW bayer data. It's all done on any bit raw unpacked to uint16_t image buffers. I have to take closer look at Ilia's implementation before debayer. I think he also unpacks raw bits to 16bit and there won't be a problem, just performance/fps penalty of processing, bad pixels/focus pixels/stripes are less heavy, chroma smooth and pattern noise are slower.
Would you please compile and upload the windows version(s)?Done :)
#Linux
linux-g++*: INCLUDEPATH += /usr/local/include/
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
And where are compiled libpng16 and zlib1 in your case?Code: [Select]#Linux
linux-g++*: INCLUDEPATH += /usr/local/include/
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
/usr/local/include and /usr/local/lib are empty on my system.
The histogramm of Mars is now OK. I uploaded a comparition between MLV App and darktable on my website: https://seescho.wordpress.com/fotos/ml/Hey cool... the simple trick seems to work in the histogram.
btw. What is this for in MLVApp.pro?Code: [Select]#Linux
linux-g++*: INCLUDEPATH += /usr/local/include/
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
/usr/local/include and /usr/local/lib are empty on my system.
Edgar
Done :)Thanks!
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
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 ) );
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.
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?
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
I would like to implement HDR internally though... it seems simple.
Great.
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 ffCode: [Select]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!
@AWPStar
Very interesting about the speed optimisation. Probably beneficial to have access to your changes even if it´s not stable.
To avoid any clipping, set exposure to -1.2Ignore this advice now.
What 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^^^
It was not to complicated. It is added to the repos.Works fine
Unfortunately, version MLV.App.v0.6.alpha.x64.Win crashes when I try to export a 14-bit MLV clip from the EOS 100D.How do you export (setting & single file or batch) and when does it crash? Can you chose the file/folder name, crashes it just after pressing save, at 50%,... ? Can you provide a small file which provokes the error please (best if only some single frames inside)?
It is a single MLV file of about 300 MB size (109 frames). Regardless of the export format that I set in the Preferences, when I press Ctrl+E, it opens the export window and allows me to select the folder for export. When I press Save, the software crashes and I get a message saying: MLVApp.exe has stoped working.You can use mlv_dump to shorten the clip to some frames, then the file is only some MBs. Does this happen with any MLV file for you?
Unfortunately, I have a very slow internet connection and cannot send you the file now but if you wait until tomorrow, I can try to send it from work where the net is way faster.
Just shorten a file with mlv_dump:Code: [Select]mlv_dump -f 5 -o OUTPUT.MLV INPUT.MLV
Gives you a 5 frame MLV file.
masc,
I have now done what you requested and created a 5 frame MLV file (about 17 MB) from the original. It is called OUTPUT.MLV and the download link is:
https://we.tl/namZYCHTpp
It will be active for one week.
I also checked with other MLV files from other cameras (5D3 and 7D), also on different Win x 64 computers. The same behavior is observed. The software crashes on export as I described above.
I wish you a nice vacation!
Do you think this can be fixed? I would love to try out version 6 due to all the new features and faster speed.I really do not know what happens. So I don't know how to prevent the crash and can't say if it can be fixed. Sorry. This needs more research. But I can't do that here on my MacBook.
//FFMpeg export
QString program = "ffmpeg";
//QString program = QCoreApplication::applicationDirPath();
//program.append( QString( "/ffmpeg\"" ) );
//program.prepend( QString( "\"" ) );
...
Project ERROR: Unknown module(s) in QT: multimedia
rm -rf MLV-App && git clone https://github.com/ilia3101/MLV-App.git && cd MLV-App/platform/cocoa && make app && cd - && open MLV-App/platform/cocoa/ && open MLV-App/platform/cocoa/MLV\ App.app
... as I'm having some issues on macOS 10.13 beta
rm -rf MLV-App && git clone https://github.com/ilia3101/MLV-App.git && cd MLV-App/platform/cocoa && make app && cd - && open MLV-App/platform/cocoa/ && open MLV-App/platform/cocoa/MLV\ App.app
If that doesn't instantly work you might have to quickly do this: http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/ (http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/)@FBongcam (If you find time!) Could you please try and compile the app yourself:I ran this and the app still won't open. It says the app is damaged or incomplete.Code: [Select]git clone https://github.com/ilia3101/MLV-App.git && cd MLV-App/platform/cocoa && make app && cd - && open MLV-App/platform/cocoa/ && open MLV-App/platform/cocoa/MLV\ App.app
Initial app name: MLV App (Sep 14 2017 00:14:10)
rm: main.o: No such file or directory
gcc -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c main.m
main.m:80:40: error: use of undeclared identifier
'NSWindowStyleMaskFullSizeContentView'
| NSMiniaturizableWindowMask | NSWindowStyleMaskFullSizeContentView;
^
1 error generated.
make[2]: *** [main.o] Error 1
cp: MLV App: No such file or directory
cp: checkupdate.py: No such file or directory
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
The application cannot be opened because its executable is missing.
In the last weeks Ilia implemented many new features and I integrated them into the Qt version of MLV App. Here we also have the image profiles now and audio support: we can playback audio on preview, export and draw the audio track in the GUI (maybe audio is not perfectly in sync, but Ilia had already an idea how to fix that...).
Windows version will come if @bouncyball (or someone else) finds some time to build it for you. So here is first the OSX 10.9.5+ version:
https://github.com/ilia3101/MLV-App/releases/tag/QTv0.7alpha (https://github.com/ilia3101/MLV-App/releases/tag/QTv0.7alpha)
"Support for mlv_dump uncompressed MLV files seems to be broken", maybe that's what I'm experiencing :)..Hmmm, but does the app actually work? if you can see the clips and adjust them, then the problem is something else.
Terminal gives me this error (if it's of any help):Thanks! it was useful... figured out from it that Apple must have made a little lie about API support, because I remember reading them saying that was 10.10+, but seems its actually 10.11+, so I've changed it back to what I used before (older API). Could you test again if you find time? It should work now. I'm almost surprised that there was only one error :D
This new version (QTv0.7alpha) doesn't output the prores file for me. I can see the png files being created while it's rendering but when it's finished the folder is just empty. I've tried with different settings and also by leaving everything default without any luck.@FBongcam: Does someone else have this problem? For me that works. Does the progressbar jump from 50 to 100%? If you see pictures in the app it is not the issue I wrote about. It must be an issue with ffmpeg.
I'm on OSX 10.10.5.
Thanks! it was useful... figured out from it that Apple must have made a little lie about API support, because I remember reading them saying that was 10.10+, but seems its actually 10.11+, so I've changed it back to what I used before (older API). Could you test again if you find time? It should work now. I'm almost surprised that there was only one error :DYes it does work now, thanks :)
@FBongcam: Does someone else have this problem? For me that works. Does the progressbar jump from 50 to 100%? If you see pictures in the app it is not the issue I wrote about. It must be an issue with ffmpeg.Yes it seems to jump from about 50% straight to the notification that the export has finished, as you described. I can see pictures in the app, yes.
Yes it does work now, thanks :)Okay, if Ilias cocoa app crashes on export, and my Qt App jumps from 50..100% then I am nearly 100% sure that ffmpeg does not work on your machine (whyever). If you see the png files - could you please convert manually using ffmpeg in the application bundle? In the Qt app it is located under "MLV App/Contents/MacOS/ffmpeg". Go to this directory in terminal and type
However the app crashes every time it has finished exporting the prores, maybe it's something related to 10.10 or is it a known issue?
Yes it seems to jump from about 50% straight to the notification that the export has finished, as you described. I can see pictures in the app, yes.
./ffmpeg -i "<path to your pngs>/chosenFileName_\%05d.png" -c:v prores_ks -profile:v 2 "<path to your desktop>/test.mov"
Does that work? I think it will end with an error. But can you tell us what ffmpeg tells exactly?
Okay, if Ilias cocoa app crashes on export, and my Qt App jumps from 50..100% then I am nearly 100% sure that ffmpeg does not work on your machine (whyever). If you see the png files - could you please convert manually using ffmpeg in the application bundle? In the Qt app it is located under "MLV App/Contents/MacOS/ffmpeg". Go to this directory in terminal and typeThe png files also disappear when it's finished but I can see them while it's exporting and as soon as the export says it's finished, everything is gone.Code: [Select]./ffmpeg -i "<path to your pngs>/chosenFileName_\%05d.png" -c:v prores_ks -profile:v 2 "<path to your desktop>/test.mov"
Does that work? I think it will end with an error. But can you tell us what ffmpeg tells exactly?
./ffmpeg -i M12-1835_test_\%05d.png -c:v prores_ks -profile:v 2 "test.mov"
ffmpeg version 3.3.2-tessus Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-libzvbi --enable-version3 --disable-ffplay --disable-indev=qtkit
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, image2, from 'M12-1835_test_%05d.png':
Duration: 00:00:04.28, start: 0.000000, bitrate: N/A
Stream #0:0: Video: png, rgb48be(pc), 1920x1080, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (png (native) -> prores (prores_ks))
Press [q] to stop, [?] for help
Output #0, mov, to 'test.mov':
Metadata:
encoder : Lavf57.71.100
Stream #0:0: Video: prores (prores_ks) (apcn / 0x6E637061), yuv444p10le, 1920x1080, q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc57.89.100 prores_ks
frame= 3 fps=0.0 q=-0.0 size= 1889kB time=00:00:00.08 bitrate=193250.8kbitframe= 7 fps=6.3 q=-0.0 size= 4405kB time=00:00:00.24 bitrate=150313.2kbitframe= 11 fps=6.5 q=-0.0 size= 6922kB time=00:00:00.40 bitrate=141740.9kbitframe= 15 fps=6.5 q=-0.0 size= 9442kB time=00:00:00.56 bitrate=138109.9kbitframe= 19 fps=6.6 q=-0.0 size= 11959kB time=00:00:00.72 bitrate=136053.1kbitframe= 23 fps=6.6 q=-0.0 size= 14476kB time=00:00:00.88 bitrate=134747.5kbitframe= 27 fps=6.6 q=-0.0 size= 16992kB time=00:00:01.04 bitrate=133833.9kbitframe= 31 fps=6.6 q=-0.0 size= 19509kB time=00:00:01.20 bitrate=133176.1kbitframe= 35 fps=6.6 q=-0.0 size= 22025kB time=00:00:01.36 bitrate=132662.3kbitframe= 39 fps=6.6 q=-0.0 size= 24543kB time=00:00:01.52 bitrate=132265.1kbitframe= 43 fps=6.7 q=-0.0 size= 27060kB time=00:00:01.68 bitrate=131942.6kbitframe= 47 fps=6.7 q=-0.0 size= 29576kB time=00:00:01.84 bitrate=131673.7kbitframe= 51 fps=6.7 q=-0.0 size= 32094kB time=00:00:02.00 bitrate=131450.9kbitframe= 55 fps=6.7 q=-0.0 size= 34609kB time=00:00:02.16 bitrate=131253.6kbitframe= 59 fps=6.7 q=-0.0 size= 37128kB time=00:00:02.32 bitrate=131094.3kbitframe= 63 fps=6.7 q=-0.0 size= 39647kB time=00:00:02.48 bitrate=130957.6kbitframe= 67 fps=6.7 q=-0.0 size= 42164kB time=00:00:02.64 bitrate=130830.9kbitframe= 71 fps=6.7 q=-0.0 size= 44680kB time=00:00:02.80 bitrate=130716.8kbitframe= 75 fps=6.7 q=-0.0 size= 47197kB time=00:00:02.96 bitrate=130617.7kbitframe= 79 fps=6.7 q=-0.0 size= 49716kB time=00:00:03.12 bitrate=130532.0kbitframe= 83 fps=6.7 q=-0.0 size= 52231kB time=00:00:03.28 bitrate=130447.8kbit[png @ 0x7f8fbc013e00] chunk too big
[png @ 0x7f8fbc014a00] chunk too big
[png @ 0x7f8fbc015600] chunk too big
frame= 87 fps=6.7 q=-0.0 size= 54751kB time=00:00:03.44 bitrate=130380.2kbit[png @ 0x7f8fbc016200] chunk too big
[png @ 0x7f8fbc016e00] chunk too big
[png @ 0x7f8fbc017a00] chunk too big
[png @ 0x7f8fbc018600] chunk too big
frame= 91 fps=6.7 q=-0.0 size= 57267kB time=00:00:03.60 bitrate=130312.5kbit[png @ 0x7f8fbc019200] chunk too big
[png @ 0x7f8fbc010800] chunk too big
[png @ 0x7f8fbc010e00] chunk too big
[png @ 0x7f8fbc011a00] chunk too big
frame= 95 fps=6.7 q=-0.0 size= 59787kB time=00:00:03.76 bitrate=130256.6kbitError while decoding stream #0:0: Invalid data found when processing input
frame= 96 fps=6.6 q=-0.0 Lsize= 60420kB time=00:00:03.80 bitrate=130249.5kbits/s speed=0.263x
video:60418kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.002408%
*** Error in `/home/edgar/MLV App/MLV-App-master/platform/build-MLVApp-Desktop-Release/MLV App': malloc(): memory corruption: 0x0000000002e05730 ***
-i
in the command I made a -r 25
for 25 fps in the app. In my case it was always the "." (at 23.x fps), but that may be different from country to country. @FBongcam: thank you. So that works. Can you tell me the framerate of your clips? If there is a "." in the framerate, some qt librarys could make the "." to a "," and so ffmpeg does not run. BeforeClips are shot at 24p.Code: [Select]-i
in the command I made aCode: [Select]-r 25
for 25 fps in the app. In my case it was always the "." (at 23.x fps), but that may be different from country to country.
Does it work with a 25fps file in your case? Or, easier: check in the preferences menu framerate override and type 25! Does it export now?
Edit: tried it with another locale and have exactly your problem :-) Anyway... does 25fps work for you? Then I can fix it!
Clips are shot at 24p.Okay, thanks a lot! That really helped. I think I fixed the Qt version in the repos (don't know how to do in cocoa).
I can confirm, turning on framerate override to 25p did work :)
Edit:
Turning on framerate override to 24p worked as well.
I shoot with fps override set on Exact fps to 24 in magic lantern so the clips should be exactly 24 from the beginning. Just some extra info if it's relevant to your issues with the "." (at 23.x fps).
The download zip file is for MAC only. IS an x86 build on its way?You mean a Windows version? -> Windows version will come if @bouncyball (or someone else) finds some time to build it for you. I only have a mac here atm. But it will come... it just has to be compiled.
You mean a Windows version?
However the app crashes every time it has finished exporting the prores, maybe it's something related to 10.10 or is it a known issue?
BTW I noticed very annoying and strange bug under linux when using MLV App. When resizing main window if no MLV is imported yet, window can be enlarged horizontally but can not be made smaller again ;).Also had this on Mac
I found one thing: if vertical stripes is enabled, Highlight reconstruction does not work. And for the first clip opened, bad pixel does not work. If I switch to another clip, and switch back, all is fine. But those things we can debug later ;) It is a huge change!These kind of things are normally silly bugs by me, I'll have a look what is causing it today(or maybe this one is deeper?).
@bouncyball what are the default settings in your module already doing? Is stripe correction on by default?
typedef struct
{
/* flags */
int vertical_stripes; // fix vertical stripes, 0 - do not fix", 1 - fix, 2 - calculate for every frame
int focus_pixels; // fix focus pixels, 0 - do not fix, 1 - fix
int fpi_method; // focus pixel interpolation method: 0 - mlvfs, 1 - raw2dng
int bad_pixels; // fix bad pixels, 0 - do not fix, 1 - fix, 2 - makes algorithm aggresive to reveal more bad pixels
int bpi_method; // bad pixel interpolation method: 0 - mlvfs, 1 - raw2dng
int chroma_smooth; // chroma smooth, 2 - cs2x2, 3 - cs3x3, 5 - cs5x5
int pattern_noise; // fix pattern noise (0, 1)
int deflicker_target; // deflicker value
int first_time; // controls some events which should occur only once per object instance
int fpm_status; // focus pixel map status: 0 = not loaded, 1 = loaded, 2 = not exist
int bpm_status; // bad pixel map status: 0 = not loaded, 1 = loaded, 2 = not exist, 3 = no bad pixels found
int dual_iso; // is RAW data dualiso or not (0, 1, for correctly prosessing of bad/focus pixels, can be removed if DISO block parsing is implemented)
/* LUTs */
int * raw2ev;
int * ev2raw;
/* pixel maps */
pixel_map focus_pixel_map;
pixel_map bad_pixel_map;
/* stripe corrections */
stripes_correction stripe_corrections;
/* image buffer */
uint16_t * raw_image_buff;
size_t raw_image_size;
} llrawprocObject_t;
/* set defaults */
llrawproc->vertical_stripes = 1; // enabled
llrawproc->focus_pixels = 1; // enabled
llrawproc->fpi_method = 1; // raw2dng interpolation method
llrawproc->bad_pixels = 1; // enabled
llrawproc->bpi_method = 1; // raw2dng interpolation method
llrawproc->chroma_smooth = 0; // disabled
llrawproc->pattern_noise = 0; // disabled
llrawproc->deflicker_target = 0; // disabled
I'm ok with any gui you offer and will appreciate your help on implementing it (will look at your .ui file later) I'm still learning QT basics :).I help where I can! :) Or, just give me the interfaces and I'll do it - no problem ;)
I had to rewrite lot of my code to port this. ...Wow, good job. I see, it was even more work than I thought!
BTW I noticed very annoying and strange bug under linux when using MLV App. When resizing main window if no MLV is imported yet, window can be enlarged horizontally but can not be made smaller again ;). This issue disappears if MLV imported and window can be shrunk again. Have not tried this under windows though.Yes, my fault. I fixed that yesterday. See Ilias github. https://github.com/ilia3101/MLV-App/commit/76a727395e6f2c5bef4d559d76809806cb4046f8 (https://github.com/ilia3101/MLV-App/commit/76a727395e6f2c5bef4d559d76809806cb4046f8)
Will test out QTv0.7alpha and report my findings!Thx! Perfect! :)
Per-frame exposure compensation: 'ON'
Deflicker target: '3072'
Fixing pattern noise...
Using focus pixel map: '80000326_1808x726.fpm'
37440 pixels loaded
Searching for bad pixel types:
HOT - p = 2271, dark_min = 1949, dark_max = 2141
COLD - p = 1943, dark_min = 1949, dark_max = 2141
COLD - p = 1938, dark_min = 1949, dark_max = 2141
HOT - p = 2147, dark_min = 1949, dark_max = 2141
HOT - p = 2207, dark_min = 1949, dark_max = 2141
HOT - p = 2148, dark_min = 1949, dark_max = 2141
COLD - p = 1948, dark_min = 1949, dark_max = 2141
HOT - p = 2154, dark_min = 1949, dark_max = 2141
HOT - p = 2151, dark_min = 1949, dark_max = 2141
HOT - p = 2145, dark_min = 1949, dark_max = 2141
COLD - p = 1931, dark_min = 1949, dark_max = 2141
COLD - p = 1915, dark_min = 1949, dark_max = 2141
HOT - p = 2167, dark_min = 1949, dark_max = 2141
COLD - p = 1925, dark_min = 1949, dark_max = 2141
HOT - p = 2195, dark_min = 1949, dark_max = 2141
HOT - p = 2790, dark_min = 1949, dark_max = 2141
COLD - p = 1946, dark_min = 1949, dark_max = 2141
HOT - p = 2156, dark_min = 1949, dark_max = 2141
COLD - p = 1888, dark_min = 1949, dark_max = 2141
COLD - p = 1938, dark_min = 1949, dark_max = 2141
HOT - p = 2315, dark_min = 1949, dark_max = 2141
COLD - p = 1943, dark_min = 1949, dark_max = 2141
COLD - p = 1947, dark_min = 1949, dark_max = 2141
COLD - p = 1941, dark_min = 1949, dark_max = 2141
HOT - p = 2157, dark_min = 1949, dark_max = 2141
HOT - p = 2226, dark_min = 1949, dark_max = 2141
HOT - p = 2207, dark_min = 1949, dark_max = 2141
Using bad pixel revealing method: 'NORMAL'
27 bad pixels found (crop: 152, 132)
Using chroma smooth method: '2x2'
Vertical stripes correction: 'UNNEEDED'
1.00000 1.00000 1.00035 1.00047 0.99953 0.99930 0.99995 0.99875
I see you have to set internal properties on the llrawprocObject (raw_image_buff and raw_image_size), I know maybe it wouldn't be how you want it, but what do you think of making it an option to do something like applyLLRawProcObject() but with extra arguments for the image buffer and image size, as I think in the future(when cache is fixed), there will be a few threads caching separate frames at the same time, so the object having it's one image buffer internally could be an issue.Technically there is no problem with passing extra parameters at all. However I thought llrawproc object should be separate for each mlvObject instance in the future with all it's unique parameters. For example raw2ev and ev2raw LUTs are calculated every time for every MLV because of the black level and bit depth, also stripe corrections array and bad/focus pixel map arrays are specific to particular mlvObject. We should discuss this on github I guess.
Something approximately like: applyLLRawProcObjectToBuffer(mlvObject, buffer, size) ?
Thanks @bouncyball for yet bringing another life into this already remarkable app with so much potential. Will test out QTv0.7alpha and report my findings!It's nice to see you still watching and testing things like in a good old times :D
you can remove it and keep the original levels, and remove the whole 16 bit conversion bitshift, and simply pass the original 10/12/14 bit values to the processingObject, as it should be competely fine if you give it the right black and white levels that match the smaller range.Hmm... did you try this and it worked well? Why we need to convert data to 16 bits if debayering and processing code does not really need this? Did you have something different on your mind doing this? Or was it just for simplicity to not handle all 10/12/14 bit black correction separately?
@masc that looks pretty much like what I imagined! Although I don't think it's worth having a separate profile tab yet, as the customisability isn't that interestingly yet, I think it would be fine to keep it in the processing tab for now.Well guys, if you liked changes (and I can confirm that ~98% of it working correctly ;) ) then maybe I will do pull request before we start integrating it with GUI?
@masc that looks pretty much like what I imagined! Although I don't think it's worth having a separate profile tab yet, as the customisability isn't that interestingly yet, I think it would be fine to keep it in the processing tab for now.Cool. Yes, I also would like to have the profiles in the process tab for now. But because of the tab bar it was one element to high to work at 1280x800 with dock. So I was thinking about a 3rd tab... What we also could do: adding a scrolling area (instead or inside the tabs) Adobe Lightroom-like.
Cube luts are definitely something I want to add, just don't know how they work yet, although I think the LUT tool would go in with the final adjustments section.
Well guys, if you liked changes (and I can confirm that ~98% of it working correctly ;) ) then maybe I will do pull request before we start integrating it with GUI?The GUI is often the nice part. But I think the GUI should be the last thing to do. The non-Qt part of the app - all the processing stuff - is the most important and should work as good as possible before! This also makes implementing a nice GUI very easy ;)
What we also could do: adding a scrolling area (instead or inside the tabs) Adobe Lightroom-like.I've been also thinking about it. Scrolling area instead of tab.
I tried it recently, but I only tested briefly with 14 bit files, not 100% sure how AMaZE demosaic would react to a <1023 value range, as it already crushes the blacks a little too much (compare it with the bilinear some time), but most likely will be completely fine.Unfortunatelly with 10/12 bits just deleting black level correction code not working, e.g. all debayered image is light gray. For 14 bits it's working as expected. That is why, as a workaround, I introduced 2 variables in llrawprocObject to back up black/white levels right before altering them in openMlvClip.
Cool. Yes, I also would like to have the profiles in the process tab for now. But because of the tab bar it was one element to high to work at 1280x800 with dock. So I was thinking about a 3rd tab... What we also could do: adding a scrolling area (instead or inside the tabs) Adobe Lightroom-like.
The GUI is often the nice part. But I think the GUI should be the last thing to do. The non-Qt part of the app - all the processing stuff - is the most important and should work as good as possible before! This also makes implementing a nice GUI very easy ;)
And... I made PR :D
regards
bb
-(void)tintSliderMethod
{
double tintSliderValue = [self doubleValue] - 0.5;
/* Control should be more fine when its closer to zero... */
double tintValue = tintSliderValue;
if (tintValue < 0) tintValue = -tintValue;
tintValue = pow(tintValue, 1.7) * 20.0;
if (tintSliderValue < 0) tintValue = -tintValue;
processingSetWhiteBalanceTint(App->processingSettings, tintValue);
[App->tintValueLabel setStringValue: [NSString stringWithFormat:@"%6.3f", ([self doubleValue] - 0.5) * 2 ]];
}
I think it produces a good range and correct feel. (of course adapt for Qt's integer slider)6) I also like how when you select ColorSpace to a certain Log (most of the sliders become disabled not allowing you to affect the footage as expected) w the exception to Exposure, Temp and Tint which is plus. Is this a safety feature intended for rookies? Bold decision.I thought that might be better for accuracy of the profiles, although I haven't got colour spaces fully implemented so I can't talk too much ;)
I noticed my Mac didn't like having FCPX running in the background while running this app. It does this random quick restart.
1) I noticed the app doesn't seem to pick up from the end of MLV to the next spanning files (.M00, .M01, .M02, etc)
2)Will have to test this more thoroughly in terms of length of the audio file matching the length of video file.
3) I was bummed to see that I couldn't copy and paste the preferred settings from one file to ALL files at once. Seems the app only allows you to copy and paste one file at a time. Maybe this is intended for now until we progress further. Would be nice to be able to paste the entire batch at once w ease.
4) Maybe in the future we can add 200%-400% zoom in as options?
5) Maybe this is to be expected but regardless of how nice it is to be able to batch export ProRes into an output folder since it is still spitting out png files (not that big of a deal but seems unnecessary) however it does delete them automatically once the ProRes is rendered. So not complaining about disk space in here but rather than work amount being involved? Is it required to do the png route in order to spit out ProRes?
Hopefully once we get the AVFoundation installed within the app...
@masc Sorry for ignoring the post above, yeah I think eventually we might have to add a scroll area once more capability is added to processing, such as highlight reconstruction. Although it would be sad to add it now, as it would only be a small annoying amount of scrolling. Do you think there's any chance of compressing the sliders and labels a little more? Or is Qt layout at it's limit.
Also the tint slider in Qt GUI still seems to go wrong(image is blue) when fully to the green side, could you copy the Cocoa app's mehtod for doing it?
Also, important: can you add the "cHRM Chunk" to libpng files? From this documentation: http://www.libpng.org/pub/png/book/chapter10.html
Might begin filling it with values once actual gamut/space options are added(and hopefully ffmpeg won't ignore that info).
../../src/imageio/structs/imagestruct.h \
../../src/imageio/imageio.h \
../../src/imageio/README.md \
Since imageio doesn´t exist anymore in the src-folder, these lines are no longer needed in MLVApp.pro, I guess.Right. I changed it. Thank you!
Focus dots ON int 1
Bad pixels ON int 1
Chroma smooth OFF
Pattern noise OFF
Vertical stripes ON
Deflicker target 0
Undefined symbols for architecture x86_64:
"_applyLLRawProcObject", referenced from:
_getMlvRawFrameFloat in video_mlv.o
"_initLLRawProcObject", referenced from:
_initMlvObjectWithClip in video_mlv.o
_initMlvObject in video_mlv.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [build] Error 1
cp: MLV App: No such file or directory
cp: checkupdate.py: No such file or directory
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
dans-MBP:cocoa dan$ make clean
rm -rf "MLV App" "MLV App".app main.o video_mlv.o debayer.o amaze_demosaic.o raw_processing.o main_methods.o useful_methods.o background_thread.o matrix.o camera_matrices.o frame_caching.o lj92.o session_methods.o delegate.o mlv_view.o *.o
dans-MBP:cocoa dan$
Last login: Fri Sep 22 09:29:52 on ttys000
Seans-Mac-mini-385:~ DeafEyeJedi$ git clone https://github.com/ilia3101/MLV-App.git
Cloning into 'MLV-App'...
remote: Counting objects: 2031, done.
remote: Total 2031 (delta 0), reused 0 (delta 0), pack-reused 2031
Receiving objects: 100% (2031/2031), 40.37 MiB | 345.00 KiB/s, done.
Resolving deltas: 100% (1395/1395), done.
Seans-Mac-mini-385:~ DeafEyeJedi$ cd MLV-App/platform/cocoa
Seans-Mac-mini-385:cocoa DeafEyeJedi$ make app
rm "MLV App".app; \
gcc -mmacosx-version-min=10.10 -O3 -Ofast -m64 generate_info_plist.c -o generate_info_plist; \
./generate_info_plist "MLV App"; \
make main; \
rm -rf "MLV App".app; \
mkdir "MLV App".app; \
mkdir "MLV App".app/Contents; \
mkdir "MLV App".app/Contents/MacOS; \
mkdir "MLV App".app/Contents/Resources; \
cp -i "MLV App" "MLV App".app/Contents/MacOS/; \
cp -i info.plist "MLV App".app/Contents/; \
cp -i checkupdate.py "MLV App".app/Contents/Resources/; \
unzip ../qt/FFmpeg/ffmpegOSX.zip -d "MLV App".app/Contents/Resources; \
rm -rf "MLV App".app/Contents/Resources/__MACOSX; \
cp ../../src/icon/icon.icns "MLV App".app/Contents/Resources/MLV\ App.icns; \
rm generate_info_plist; \
rm info.plist; \
rm: MLV App.app: No such file or directory
ld: warning: object file (/var/folders/t9/v524s9d54pqd8920btl0zjch0000gn/T//ccnIPcw2.o) was built for newer OSX version (10.12) than being linked (10.10)
ld: warning: object file (/usr/local/Cellar/gcc/5.2.0/lib/gcc/5/gcc/x86_64-apple-darwin15.0.0/5.2.0/crtfastmath.o) was built for newer OSX version (10.11) than being linked (10.10)
gcc -mmacosx-version-min=10.10 -O3 -Ofast -m64 compile_time_code.m -o compile_time_code -framework Cocoa; \
./compile_time_code; \
rm main.o; \
make build; \
rm compile_time_code; \
rm app_defines.h
In file included from /usr/include/Availability.h:184:0,
from /usr/local/Cellar/gcc/5.2.0/lib/gcc/5/gcc/x86_64-apple-darwin15.0.0/5.2.0/include-fixed/math.h:46,
from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:24,
from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6,
from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12,
from compile_time_code.m:5:
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:53:34: error: expected ',' or '}' before '__attribute__'
kCFISO8601DateFormatWithYear API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 0),
^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:80:126: error: 'introduced' undeclared here (not in a function)
CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'deprecated' undeclared here (not in a function)
const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'message' undeclared here (not in a function)
const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:95:166: error: expected ')' before 'NSString'
- (instancetype)initWithFetchRequest:(NSFetchRequest<ResultType> *)fetchRequest managedObjectContext: (NSManagedObjectContext *)context sectionNameKeyPath:(nullable NSString *)sectionNameKeyPath cacheName:(nullable NSString *)name;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:95:207: error: unknown type name 'nullable'
- (instancetype)initWithFetchRequest:(NSFetchRequest<ResultType> *)fetchRequest managedObjectContext: (NSManagedObjectContext *)context sectionNameKeyPath:(nullable NSString *)sectionNameKeyPath cacheName:(nullable NSString *)name;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:95:216: error: expected ')' before 'NSString'
- (instancetype)initWithFetchRequest:(NSFetchRequest<ResultType> *)fetchRequest managedObjectContext: (NSManagedObjectContext *)context sectionNameKeyPath:(nullable NSString *)sectionNameKeyPath cacheName:(nullable NSString *)name;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:110:1: error: cannot find protocol declaration for 'ResultType'
@property(readonly) NSFetchRequest<ResultType> *fetchRequest;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:118:20: error: unknown property attribute before ',' token
@property (nullable, readonly) NSString *sectionNameKeyPath;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:118:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property (nullable, readonly) NSString *sectionNameKeyPath;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:122:20: error: unknown property attribute before ',' token
@property (nullable, readonly) NSString *cacheName;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:122:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property (nullable, readonly) NSString *cacheName;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:126:19: error: unknown property attribute before ',' token
@property(nullable, nonatomic, assign) id< NSFetchedResultsControllerDelegate > delegate;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:126:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property(nullable, nonatomic, assign) id< NSFetchedResultsControllerDelegate > delegate;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:131:30: error: unknown type name 'nullable'
+ (void)deleteCacheWithName:(nullable NSString *)name;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:131:39: error: expected ')' before 'NSString'
+ (void)deleteCacheWithName:(nullable NSString *)name;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:140:21: error: unknown property attribute before ',' token
@property (nullable, nonatomic, readonly) NSArray<ResultType> *fetchedObjects;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:140:21: error: cannot find protocol declaration for 'ResultType'
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:140:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property (nullable, nonatomic, readonly) NSArray<ResultType> *fetchedObjects;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:144:4: error: unknown type name 'ResultType'
- (ResultType)objectAtIndexPath:(NSIndexPath *)indexPath;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:148:3: error: unknown type name 'nullable'
-(nullable NSIndexPath *)indexPathForObject:(ResultType)object;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:148:12: error: expected ')' before 'NSIndexPath'
-(nullable NSIndexPath *)indexPathForObject:(ResultType)object;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:148:46: error: unknown type name 'ResultType'
-(nullable NSIndexPath *)indexPathForObject:(ResultType)object;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:161:4: error: unknown type name 'nullable'
- (nullable NSString *)sectionIndexTitleForSectionName:(NSString *)sectionName;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:161:13: error: expected ')' before 'NSString'
- (nullable NSString *)sectionIndexTitleForSectionName:(NSString *)sectionName;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:168:50: error: expected '>' before '*' token
@property (nonatomic, readonly) NSArray<NSString *> *sectionIndexTitles;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:168:50: error: cannot find protocol declaration for 'NSString'
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:177:20: error: unknown property attribute before ',' token
@property (nullable, nonatomic, readonly) NSArray<id<NSFetchedResultsSectionInfo>> *sections;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:177:53: error: expected '>' before '<' token
@property (nullable, nonatomic, readonly) NSArray<id<NSFetchedResultsSectionInfo>> *sections;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:177:53: error: cannot find protocol declaration for 'id'
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:195:19: error: unknown property attribute before ',' token
@property(nullable, nonatomic, readonly) NSString *indexTitle;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:195:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property(nullable, nonatomic, readonly) NSString *indexTitle;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:203:20: error: unknown property attribute before ',' token
@property (nullable, nonatomic, readonly) NSArray *objects;
^
main.m:34:25: fatal error: app_defines.h: No such file or directory
compilation terminated.
make[2]: *** [main.o] Error 1
rm: compile_time_code: No such file or directory
rm: app_defines.h: No such file or directory
make[1]: *** [main] Error 1
cp: MLV App: No such file or directory
cp: checkupdate.py: No such file or directory
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
Seans-Mac-mini-385:cocoa DeafEyeJedi$
Meanwhile, for testing you can try to compile QT version for Mac.Link please. What source exactly are you referring to?
@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?No problem.
Edit2: can you also implement mouse scroll wheel to zoom 100-400?This will not work, because we already have 2D scrolling for the position in the frame. I am not sure, if it could work with scrolling while holding down a button for example (never tried that).
@DeafEyeJedi: I also implemented some of your ideas: 200%&400% zoom and batch paste.
Sure 0.8 would be great. What do you think Ilia3101?
@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?
Edit: I really dig 200/400 zoom! used it for pixel peeping a lot when testing code :)
Edit2: can you also implement mouse scroll wheel to zoom 100-400?
Link please. What source exactly are you referring to?
@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?Implemented and working.
How about implmenting Command + I (Info) to be able to quickly see MLV information promptly without having to manualy scroll our mouse over every time?You can press Command+Shift+I.
This will not work, because we already have 2D scrolling for the position in the frame. I am not sure, if it could work with scrolling while holding down a button for example (never tried that).Really? Did not notice this as I'm just dragging zoomed screen by left mouse click and this is very convenient. Could we disable scrolling and use scroll wheel for zooming?
@bouncyball: could you please build the windows versions? If not I can do that sunday.Sure I'll do it tomorrow.
@bouncyball Will find one and upload!Thank you would be very nice :)
What is the difference between Method 1 and 2 in bad - focus pixel fix?Both averaging neighbor pixels but do it differently. Some footage looks good with 1 other with 2, try it yourself. Method 1 is used in MLVFS, method 2 is used in mlv_dump (raw2dng code) so your mileage may vary. Also when using it with chroma smooth at the same time results could be different, even ugly in some combination ;)
Is it possible to display the frame number, which ist actually shown, maybe in the field of Caching - Playback?
I don't know if they're string enough for your testing purposes ::)They are "OK" on the blue sky :D thank you.
@masc
I was testing the scrolling of zoomed image by scroll wheel.
Well, scrolling vertically when you can just drag it in any direction IMHO useless. So if QT mouse input handling will let us free the scroll wheel for other purpose (zooming) would be very cool :)
regards
bb
I always loved it using the trackpad.Hehe :) I didn't think about it. I'm using desktop PC at work most of the time.
On the other side I think I have to reimplement the whole zooming, because 3 zoom steps with scrolling makes no sense. I think we need a kind of "step-less" zoom then.+1 if that's not very hard to do.
Crash in importing (QTApp on linux). No pngs are created. App crashes.Jopp, same on OSX. Take the old raw_processing.c (before this commit) and it should work (at least for me it does).
The crash comes in with commit 82a3a5e (Fixed the very broken sharpening filter). Previous commit works without problem. I tried to import my moon-test-video, containing 21 frames.
Here ist the debug-output of qt-creator:
https://seescho.files.wordpress.com/2017/08/auswahl_004.jpg
@BB
after doing some test i found that i can import only 9 clips at once. if i try to import more than 9 mlv files the app crash
Some more information please. Which version, which OS,... I can import as many clips I want on OSX and MLVAPP [Qt] v0.8 or latest revision.
Jopp, same on OSX. Take the old raw_processing.c (before this commit) and it should work (at least for me it does).Yes, run with the old one on latest commit.
Crash in importing (QTApp on linux). No pngs are created. App crashes.
The crash comes in with commit 82a3a5e (Fixed the very broken sharpening filter). Previous commit works without problem. I tried to import my moon-test-video, containing 21 frames.
Here ist the debug-output of qt-creator:
https://seescho.files.wordpress.com/2017/08/auswahl_004.jpg
@masc:Both makes problems with Touchpad, because DoubleClick is used by tapping to select the drag mode and Click is used normaly to drag.
I've got one proposition though: the right click menu is very good for switching zoom and zebras, but it would be very nice to switch between zoom and fit also with just a left click of a mouse or maybe better double click. What do you think?
Edit: Surely double click. My bad, just a left click is busy with drag mode.
Is it possible to set the directory anywhere in the code (or at least printf the path)?Path not changeable at the moment. What the console output says on mac when "Using focus pixel map: 'path/id_xres_yres.fpm' " is displayed?
Path not changeable at the moment. What the console output says on mac when "Using focus pixel map: 'path/id_xres_yres.fpm' " is displayed?
Edit: fopen is done with file name without the path hence the dir always currentt dir.
Edit2: does ffmped calling work though QtCreator run?
In the console there is nothing with focus pixels...This means the maps are not found. I need to look at how you are calling ffmpeg. Specifying the dir can be implemented anyway.
chdir( QCoreApplication::applicationDirPath().toLatin1().data() );
First test on OSX: works! :-)Haven't followed the discussion much so not 100% sure whats going on :(Yes. And they must be located in the working dir. Maybe you have to set the working dir in the C code (at least in Qt I had to do that, otherwise it was at "/"). But you could do that from the cocoa classes using chdir().
Does the app need to contain focus pixel maps or something for the llrawprocobject to remove focus pixels?
@bouncyball: Any suggestion? Is it possible to implement a bypass to set the directory in the correction module?If you think this is the more correct approach we can pass the map directory as a parameter.
If you think this is the more correct approach we can pass the map directory as a parameter.Yes! Yes! Yes!
static int load_pixel_map(pixel_map * map, char * path, uint32_t camera_id, int raw_width, int raw_height, int dual_iso)
And have a parameter for it inside of llrawprocobject which it will pass to that(Is that how it works?)
I had a linking problem caused by "MLV App" space in the middle of TARGET name.Yea sure, why not rename the binary. On macOS this wouldn't even matter as the app bundle and binary can have any names at all.
Can we rename the app binary to "MLVApp" of maybe just to plain "mlvapp"?
@Ilia3101, @masc
I had a linking problem caused by "MLV App" space in the middle of TARGET name.
Can we rename the app binary to "MLVApp" of maybe just to plain "mlvapp"?
win32: TARGET = "MLV App"
linux-g++*: TARGET = "MLVApp"
osx: TARGET = "MLV App"
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find ./release/mlv
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find app_plugin_import.o
"mlv app_plugin_import.o" divided to "mlv" and remainder.
win32: TARGET = "MLVApp"
linux-g++*: TARGET = "mlvapp"
osx: TARGET = "MLV App"
did the trick.
qt5-qmake MLVApp.pro
make
linux-g++*: INCLUDEPATH += /usr/local/include/libpng16/
Thank you, but it's gonna make more sense if you make the binary static.
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 MLVApp.pro to
linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng16
then the ususalCode: [Select]qt5-qmake MLVApp.pro
Code: [Select]make
MLVApp + static FFMpeg, 64bit (http://openartisthq.org/magiclantern/mlvapp.tar.xz)
qmake-qt5
make
Yes! Yes! Yes!
I was just looking at the code, seeing how I could do that.
As the Cocoa API allows getting the path to the app bundle's resources directory, where they would be stored.
(It would be perfect!)
But would it be a problem to copy it to the resources directory and setting chdir to it? So (nearly) nothing has to be changed.I guess I could easily do that and it's completely fine.
This:Code: [Select]win32: TARGET = "MLVApp"
did the trick.
linux-g++*: TARGET = "mlvapp"
osx: TARGET = "MLV App"
show me how.Good question ;) (I hoped you know how to do it without me)
Is it necessary to have three different targets for the three OS? Why not one Target MLVApp for all?Yeah... right.
<widget class="QComboBox" name="comboBoxFocusPixelSwitch">
<property name="maximumSize">
<size>
<width>90</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<item>
<property name="text">
<string>Off</string>
</property>
</item>
<item>
<property name="text">
<string>On</string>
</property>
</item>
<item>
<property name="text">
<string>Croprec</string>
</property>
</item>
</widget>
Can you enlighten me what am I doing wrong?
./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]
Type=Application
Name=MLVApp
Exec=MLVApp
Icon=MLVApp
Just 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.
But anyway I think in this form it could be released as Linux version.
I have now made an AppImage (http://openartist.org/magiclantern/MLVApp-x86_64.AppImage).Very cool! That is exactly the same way I go on OSX, here it's called macdeployqt. Can you please build this this version (https://github.com/ilia3101/MLV-App/commit/56c8511739d3e5dda1fc01d2d2e0e9c2a7bb31ea)? Then I could add it to the latest release page.
Just download, make executeable, launch.
Turned out to be quite easy, thanks to linuxdeployqt (https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage)
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...
sudo apt-get install libqt5multimedia5
for now..
prefix=./
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/#! /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)
cd $APPDIR
./MLVApp -style=fusion
i like the darkstyle, but the playback buttons are a bit difficult to recognize.+1 :)
Some changes to the raw correction part:
Now focus pixel maps not needed in the working directory any more. MLV App will generate maps according to MLV metadata on the fly, including crop_rec mode MLVs (EOSM, 100D, 700D, 650D). If .fpm map intentionally placed to the working directory it will be used instead of internal generator (overriding possibility).
Fix focus dots combo box now has 3rd option, CropRec, which turns on the map generator for raw videos recorded with crop_rec module.
i like the darkstyle, but the playback buttons are a bit difficult to recognize.Yes, that is correct. So I created some new ones today. They are on github now. Hope you like them.
I created some new ones today. They are on github now. Hope you like them.Look nice :)
Edit: loop button is a bit vague.Yepp. New try.
#Linux (opensuse)
#linux-g++*: INCLUDEPATH += /usr/local/include/
#linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
#Linux (Ubuntu)
#linux-g++*: INCLUDEPATH += /usr/local/include/libpng16/
linux-g++*: LIBS += -lz -lpng16
make clean
qt5-qmake MLVApp.pro
make
Could you please change the .pro file like this
#Linux (opensuse)
#linux-g++*: INCLUDEPATH += /usr/local/include/
#linux-g++*: LIBS += -L/usr/local/lib/ -lz -lpng
#Linux (Ubuntu)
#linux-g++*: INCLUDEPATH += /usr/local/include/libpng16/
linux-g++*: LIBS += -lz -lpng16
to#Linux
linux-g++*: LIBS += -lz -lpng16
?
Thx. H264 audio? You record H264 and mlv at the same time and now you like to add the audio track from the H264 to the output of MLV App? Is that right? Hmmm... I never thought about that, but for now we do not decode H264 files, just MLV.
I am awfully sorry to report that v.08 does not work on either of my Win7x64 PCs. This time, it crashes when I try to import a MLV file. Is anybody else experiencing this? Is there anything I could do?Hm... we have so many Windows PCs where it does not crash and for you it does crash on every PC. Very strange. I could imagine that it could be an localization problem. Could you please tell us your Windows country (& maybe language) settings? I could simulate this on my computers... maybe I have luck and it does crash for me too :P
Don't be sorry ;) just tell us which version crashes - 32bit or 64bit?
Also provide additional details about MLV(s) which crashes program and upload it somewhere.
Hm... we have so many Windows PCs where it does not crash and for you it does crash on every PC. Very strange. I could imagine that it could be an localization problem. Could you please tell us your Windows country (& maybe language) settings? I could simulate this on my computers... maybe I have luck and it does crash for me too :P
@escho: sadly it's only german :)
@IDA_ML: ok, please upload sample.
Here we go:
https://we.tl/2TlV9r9I3u
A 2.5K 10-bit MLV file with sound (270 MB). The above link will be active for 7 days. Hope this helps and if yes, I will be looking forward to test MLVApp. Thanks.
$ make app
...
Initial app name: MLV App (Oct 1 2017 18:55:55 @cabian.local)
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c main.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/llrawproc.c
../../src/mlv/llrawproc/llrawproc.c:70:16: error: no member named 'raw2evf' in
'llrawprocObject_t'; did you mean 'raw2ev'?
llrawproc->raw2evf = NULL;
^~~~~~~
raw2ev
../../src/mlv/llrawproc/../llrawproc/llrawproc_object.h:55:11: note: 'raw2ev'
declared here
int * raw2ev;
^
1 error generated.
make[2]: *** [llrawproc.o] Error 1
cp: MLV App: No such file or directory
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
Please try one revision earlier. It seems as the second last commit of bouncyball does not compile. Before that it was working.
https://github.com/ilia3101/MLV-App/commit/1188472ee5eac5f65dc3a8454499b9bd7f36920e
This one can be compiled.
Guys sorry about that, just delete the line to which error's referring. I forgot to delete it after some experimenting. This commit has working full20bit mean32 interpolation mode dual iso processing. Amaze interpolation is not there yet. Will finish it tomorrow I think and gonna add some more widgets to the gui.
...
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 main.o video_mlv.o debayer.o amaze_demosaic.o raw_processing.o main_methods.o useful_methods.o background_thread.o matrix.o camera_matrices.o frame_caching.o lj92.o session_methods.o delegate.o mlv_view.o llrawproc.o pixelproc.o stripes.o patternnoise.o hist.o -o "MLV App" -framework Cocoa;
Undefined symbols for architecture x86_64:
"_diso_get_preview", referenced from:
_applyLLRawProcObject in llrawproc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [build] Error 1
cp: MLV App: No such file or directory
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
I fixed the error. Delete repository then clone the fresh copy of it and try to compile again.
...
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 main.o video_mlv.o debayer.o amaze_demosaic.o raw_processing.o main_methods.o useful_methods.o background_thread.o matrix.o camera_matrices.o frame_caching.o lj92.o session_methods.o delegate.o mlv_view.o llrawproc.o pixelproc.o stripes.o patternnoise.o hist.o -o "MLV App" -framework Cocoa;
Undefined symbols for architecture x86_64:
"_diso_get_full20bit", referenced from:
_applyLLRawProcObject in llrawproc.o
"_diso_get_preview", referenced from:
_applyLLRawProcObject in llrawproc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [build] Error 1
cp: MLV App: No such file or directory
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
The error happens because you try to compile the cocoa app. The newest stuff is only working in the Qt version, until Ilia makes some changes to the cocoa makefile. The new implemented files should be added there I think.
Ilia3101,What a shame... I first thought with this error message I can search... but it will only tell us MinGw (our Windows compiler) is not supported on WinXP :(
I tried MLVApp (x86) v.08 on a WinXP x32 machine but it will not even start. Here is what I get:
(https://www.magiclantern.fm/forum/proxy.php?request=https%3A%2F%2Fthumb.ibb.co%2FmpK2Qb%2FMLVApp_entry_point.png&hash=f9600e90cfa2d5f1965473c396333f9e) (https://ibb.co/mpK2Qb)
No luck for me with MLVApp. Will have to stick with other methods.
I already cloned git repository on my disk but was unable to use make in qt folder since there is no make file (i guess).I don't know how to compile the exe from Linux. But qmake creates automatically the makefile for a Qt project (.pro file).
I haven't given up or abandoned it ;)Cool to know!!! :D
I don't know how to compile the exe from Linux. But qmake creates automatically the makefile for a Qt project (.pro file).
Okay let me rephrase. Whats the best way to compile this for Windows ? The Git page only shows how to do it for cocoa and mac.To compile static x64 Windows binary on Linux I'm using MXE (http://mxe.cc). There is all information how to set it up. Also take a look at this (https://askubuntu.com/questions/656219/building-a-windows-executable-in-qt-on-a-linux-system) thread.
Maybe you know, that I have problems, importing files bigger than 4 Gbyte. The app crashes. These files are way to big for uploading somewhere.That is strange. Caching is deactivated for the Qt App. In which line does it crash?
So I startet QT Creator in debugging mode with a file with 7,6 GByte. With this file, MLV App always crashes in "frame_cashing.c" Is it possible to run MLV App without cashing for a test? What must I do to disable cashing?
Okay let me rephrase. Whats the best way to compile this for Windows ? The Git page only shows how to do it for cocoa and mac.Get QtCreator for Windows. Unzip ffmpeg. Start QtCreator. Open .pro. Click on Play-Icon. Have fun.
Seems everyone wants how to compile Qt app in the read me. I'll put one together this evening (unless masc or bouncyball beat me to it). shouldn't be too hard as I just installed QtThat would be cool! If you need help, let me know... but it is really not hard.
With this file, MLV App always crashes in "frame_cashing.c" Is it possible to run MLV App without cashing for a test?Does this MLV pass through other programs? mlv_dump, mlvfs?
Does this MLV pass through other programs? mlv_dump, mlvfs?I´m a bit busy at the moment, so sorry for only a short answer:
Seans-Mini-385:~ DeafEyeJedi$ cd MLV-App/platform/cocoa
Seans-Mini-385:cocoa DeafEyeJedi$ make app
rm "MLV App".app; \
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 generate_info_plist.c -o generate_info_plist; \
./generate_info_plist "MLV App"; \
make main; \
rm -rf "MLV App".app; \
mkdir "MLV App".app; \
mkdir "MLV App".app/Contents; \
mkdir "MLV App".app/Contents/MacOS; \
mkdir "MLV App".app/Contents/Resources; \
cp -i "MLV App" "MLV App".app/Contents/MacOS/; \
cp -i info.plist "MLV App".app/Contents/; \
mkdir "MLV App".app/Contents/Resources/pixelmaps; \
cp -i ../../src/mlv/llrawproc/pixelmaps/*.fpm "MLV App".app/Contents/Resources/pixelmaps; \
unzip ../qt/FFmpeg/ffmpegOSX.zip -d "MLV App".app/Contents/Resources; \
rm -rf "MLV App".app/Contents/Resources/__MACOSX; \
cp ../../src/icon/icon.icns "MLV App".app/Contents/Resources/MLV\ App.icns; \
rm generate_info_plist; \
rm info.plist; \
rm: MLV App.app: No such file or directory
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 compile_time_code.m -o compile_time_code -framework Cocoa; \
./compile_time_code; \
rm main.o; \
make build; \
rm compile_time_code; \
rm app_defines.h
Initial app name: MLV App (Oct 5 2017 10:37:16 @Seans-Mini-385)
rm: main.o: No such file or directory
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c main.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/video_mlv.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -pthread ../../src/debayer/debayer.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/debayer/amaze_demosaic.c
In file included from ../../src/debayer/amaze_demosaic.c:36:
../../src/debayer/sleefsseavx.c:27:9: warning: 'M_PI' macro redefined
[-Wmacro-redefined]
#define M_PI 3.14159265358979323846
^
/usr/include/math.h:703:9: note: previous definition is here
#define M_PI 3.14159265358979323846264338327950288 /* pi */
^
In file included from ../../src/debayer/amaze_demosaic.c:36:
../../src/debayer/sleefsseavx.c:28:9: warning: 'M_1_PI' macro redefined
[-Wmacro-redefined]
#define M_1_PI 0.31830988618379067154
^
/usr/include/math.h:706:9: note: previous definition is here
#define M_1_PI 0.318309886183790671537767526745028724 /* 1/pi */
^
In file included from ../../src/debayer/amaze_demosaic.c:36:
../../src/debayer/sleefsseavx.c:29:9: warning: 'M_2_PI' macro redefined
[-Wmacro-redefined]
#define M_2_PI 0.63661977236758134308
^
/usr/include/math.h:707:9: note: previous definition is here
#define M_2_PI 0.636619772367581343075535053490057448 /* 2/pi */
^
3 warnings generated.
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/processing/raw_processing.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c main_methods.m
main_methods.m:265:63: warning: null passed to a callee that requires a non-null
argument [-Wnonnull]
...[[App->rawBitmap representationUsingType: NSPNGFileType properties: nil...
^ ~~~
1 warning generated.
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c gui_stuff/useful_methods.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c background_thread.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/matrix/matrix.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/camera_matrices.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/frame_caching.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/liblj92/lj92.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c session_methods.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c delegate.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c -x objective-c mlv_view.m
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/llrawproc.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/pixelproc.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/stripes.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/patternnoise.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/hist.c
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 -c ../../src/mlv/llrawproc/dualiso.c
../../src/mlv/llrawproc/dualiso.c:34:9: warning: 'M_PI' macro redefined
[-Wmacro-redefined]
#define M_PI 3.14159265358979323846 /* pi */
^
/usr/include/math.h:703:9: note: previous definition is here
#define M_PI 3.14159265358979323846264338327950288 /* pi */
^
1 warning generated.
clang -mmacosx-version-min=10.10 -O3 -Ofast -m64 main.o video_mlv.o debayer.o amaze_demosaic.o raw_processing.o main_methods.o useful_methods.o background_thread.o matrix.o camera_matrices.o frame_caching.o lj92.o session_methods.o delegate.o mlv_view.o llrawproc.o pixelproc.o stripes.o patternnoise.o hist.o dualiso.o -o "MLV App" -framework Cocoa;
Archive: ../qt/FFmpeg/ffmpegOSX.zip
inflating: MLV App.app/Contents/Resources/ffmpeg
creating: MLV App.app/Contents/Resources/__MACOSX/
inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg
Seans-Mini-385:cocoa DeafEyeJedi$
When I'm compiling QTApp I got 63 warnings :P (of course someday all these warnings should be addressed, but mostly they are not harmful) I guess this is true for cocoa version too.
Quick question -- upon compiling and making app is it normal for me to receive all these warnings?Only one used to be there, but the new ones are harmless as far as I can tell.
Wont let me batch import.Ah yes, batch import isn't done yet in Cocoa app, that's on the way. Though Cocoa app is probably gonna take a little while to catch up with Qt.
@bouncyball we'll have to find a way of detecting LLRawProc changes to know when to re-cache, maybe we can add a flag?OK, I think the simplest way will be to introduce some "is_changed" variable in the llrawproc struct which will be set to true when gui widget handlers get called and then reset to false by caching module.
Anyway, first I'll commit it to the cache branch then we sort that out.
Quote from: escho on October 03, 2017, 10:17:28 AM
Maybe you know, that I have problems, importing files bigger than 4 Gbyte. The app crashes. These files are way to big for uploading somewhere.
So I startet QT Creator in debugging mode with a file with 7,6 GByte. With this file, MLV App always crashes in "frame_cashing.c" Is it possible to run MLV App without cashing for a test? What must I do to disable cashing?
That is strange. Caching is deactivated for the Qt App. In which line does it crash?
It crashes in line 61: https://seescho.files.wordpress.com/2017/10/screenshot_20171005_191349.jpgThank you! I'll have a look at that! That information really helps!
Any chance I can compile/make the QT version instead of the MLV App for me to try the latest Dual-ISO implementation?Sure, if you like, download Qt (free version, I think 5.9.1 is the latest), install, and do what I wrote somewhere above. The most difficult part is to compile and install libpng
It crashes in line 61: https://seescho.files.wordpress.com/2017/10/screenshot_20171005_191349.jpg
Edit: there are some bugs inside atm, that is (for me) the main reason why I don't like to build a next release for everybody. We are working on it.
Hm, okay, this function is called from MainWindow, openMlv(). For a quick test you could comment this function out there. For the future this may not be the solution...
edgar@localhost:~/test/frames> ls -l
insgesamt 8440240
-rw-r--r-- 1 edgar users 4319763492 6. Okt 20:57 1318frames.MLV
-rw-r--r-- 1 edgar users 4323038516 6. Okt 20:58 1319frames.MLV
I commented out line 461 in MainWindow.cpp. Now the app crashes in line 468 in MainWindow.cpp: https://seescho.files.wordpress.com/2017/10/2.jpg
I did another test. I cut the 7,6 G-file using "mlv_dump -fxxxx":
1318frames.MLV run with no problems
1319frames.MLV let the app crash.
Here are the filesizes of the two MLVs:Code: [Select]edgar@localhost:~/test/frames> ls -l
insgesamt 8440240
-rw-r--r-- 1 edgar users 4319763492 6. Okt 20:57 1318frames.MLV
-rw-r--r-- 1 edgar users 4323038516 6. Okt 20:58 1319frames.MLV
I cannot locate, where the crash with 1319frames.MLV appears, since QT Creator tells me, it cannot find binary debug informations for this stack frame.
Thx for your work! Unfortunately I can't test or debug that, because I can't create such a big file with my 5D2. But I created an issue on github for that problem and inserted your messages as quote.
Can you confirm that under Linux audio is not working as expected in the latest github version?
Which distribution do you use?
@masc
Importing a MLV. via menue
File - import mlv - irgendetwas.MLV: leftclick
This imports the MLV immedeately whithout pressing the open button. Is this expected behavior?
@bouncyball: could you please again compile and upload the windows versions on github release page?Yes sure :) 64bit very soon. 32 bit maybe later.
killall ffmpeg
-vf tblend=all_mode=average
http://www.magiclantern.fm/forum/index.php?topic=20025.msg189033;topicseen#msg189033Any plans on adding DNG as an export option in the future?
I downloaded 0.9 version in first post so probably not the latest. Would be nice if there was a description of dependencies for compiling on mac :).
The tblend filter can be applied to any footage but will only be useful when used with hdr material. Averaging filter will create ghosting so 48, 50 or 60 fps is better to use as opposed to slower fps.So if I test with a hdr mlv with my 5D2, it will be 25fps out of the cam. I export to 12.5fps then?
Code: [Select]-vf tblend=all_mode=average
Option vf (set video filters) cannot be applied to input url - -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file -.
Error opening input files: Invalid argument
(for example 1600/100 setting will result in a strange image) What did i miss?Try this MLV of yours with classic cr2hdr command line utility from a1ex. I think the result will be the same strange image because base iso should be smaller than recovery iso. That is how it designed to work.
Hi, Masc. This app really is starting to become fully featured, excellent. Been testing out this new alpha 0.10 version, first bug report is that when using chroma blur radius it crashes the app everytime, (only managed to get away with using it once without the app crashing) using macOS High sierra 10.13Thx. And thanks for testing! macOS 10.13 I could not test. It works well on 10.9 & 10.11, Win7, Win8.1 and some Linux. Ilia should also have a 10.13, maybe he has same problems in cocoa version of the app and can debug?!
Try this MLV of yours with classic cr2hdr command line utility from a1ex. I think the result will be the same strange image because base iso should be smaller than recovery iso. That is how it designed to work.Thanks for your reply. Will you consider adding an export mode to export DNG sequences? Because ACR has lens profiles and AE can export videos in many other formats. Think of it as a suggestion.
Think of it as a suggestion.I already thought about it here (https://github.com/ilia3101/MLV-App/issues/28). Just had no enough time yet.
sum += row[MIN(x+radius_x+3,limit_x)];
solves the problem for me. Would that be okay, Ilia? Should the other lines in these three for()... also be limited?for (int32_t x = radius_x; x < (limit_x-radius_x-3); x+=3)
also does the job...
int32_t limit_x = (imageX-radius-1)*3;
But won't that give a problem with lines 277 and following?
It only changes how far the 'fast' part of the code goes, as I assume it must have been going past the edge due to the lack of MIN/MAX protection. Shouldn't affect image at all.once i click on export, the alternating lines re-appear, and the final exported dual iso file is with the line's, exported un proccessed it would seem, i'm not sure whether you guy's are aware of this, or whether the dual iso feature is a work in progress, just thought i'd share my experiance with using it,Here, just a plain uncompressed dual iso mlv exports w/o problem. I never tried to do this with losless MLV though. Can you cut short clip of your mlv and post somewhere to test?
One side note, the dual ISO feature, i've tested this, Loaded dual ISO file (11-8bit lossless), raw corrections D_ISO enabled, everything is fine lines gone etc, However once i click on export, the alternating lines re-appear, and the final exported dual iso file is with the line's, exported un proccessed it would seem, i'm not sure whether you guy's are aware of this, or whether the dual iso feature is a work in progress, just thought i'd share my experiance with using it,
Can not upload win64 build. It crashes when exporting DNGs. Does 32 bit build work as expected?Woah... (nearly) always the Windows version which makes unexpected things... :P
Edit: nope :P it crashes too. Will check tomorrow.
Now that's amaze @Ilia [emoji2].
Great that you implemented cdng support mr B.
We are indeed a little proud to present our new release MLV App v0.11!
https://github.com/ilia3101/MLV-App/releases/tag/QTv0.11alpha
New in this release:
- better (corrected) AMaZE, artefacts are minimized to a minimum. Thanks to a1ex, giving Ilia the right input for this correction!
- Cinema DNG export (uncompressed, lossless & fast pass), first two also working with dual iso 20bit->16bit
- H.264 & H.265 export
- receipt file import / export
- many fixes and detail enhancements
Windows version is on the way...
Cannot find it :(
I think there will come an update. Ilia is busy in making it better too.
Note: Qt uses also cocoa and the same compilers on OSX.
rm -rf MLV-App && xcode-select --install || git clone https://github.com/ilia3101/MLV-App.git && cd MLV-App/platform/cocoa && make app -j4 && rm *.o && open ./
When it finishes, the folder with compiled app will open up.Cocoa looks better to me, But so glitchy. Not working.What's glitchy?
If you post problems, please write a bit more than "not working". Which exact version do you use, which OS, what special kind of MLV is it, what did you exactly do to come to the problem? Import and sliders for standard MLV were working in each of my tests in both - cocoa and Qt version.
@Ilia: on 10.9 it does not compile (since first revision), on 10.11 all is fine.
Ok. Now I can answer.
1. Sessions are not yet implemented for cocoa app. It is on its way.
2. Cocoa app can only export ProRes 4444, other codecs will be implemented here
3. Cocoa app has no playback, maybe Ilia will implement this in the future
4. Cocoa app has no zoom, maybe Ilia will implement this in the future
If you like to have this features now, simple use the Qt OSX version. The cocoa version is Ilias test app, to test new features in the decoding and processing library in the background easily. Therefor the cocoa version maybe a little faster here and there and compiles fast without all the chichi.
The 2 apps are 100% independent in terms of processes. You can install cocoa and delete as often you want and the Qt version won't recognize it. I think you made a mistake here... maybe you try to start the app in the trash or something like that.
And you start the Qt version from console?
The 2 apps are 100% independent in terms of processes. You can install cocoa and delete as often you want and the Qt version won't recognize it. I think you made a mistake here... maybe you try to start the app in the trash or something like that.
And you start the Qt version from console?
I am sorry, but here I can't help. I compiled, copied and deleted MLV App thousand times, and never had an issue like that.
What I can tell you: "Failed to start process notifications for pid 870 (16)" comes not from MLV App, this comes from OSX (google tells).
But here you must solve the problem yourself, or anyone else can help you with that. If you have a solution, I would be very interested!
Is there a crash report maybe?
I now have downloaded your files. I tried out with the actual revision and v0.10. In v0.10 it crashes when switching between these files - so I can reproduce. The last days bouncyball, Ilia and me, we were searching many bugs and also found+fixed many bugs. Good news: with the latest revision it does not crash. The bad news: we still have some small bugs on the list to fix before we release next version.
Could you please tell me, which horizontal stretch factor is needed to have M06-1260 in the correct aspect ratio? In the actual revision I build a combobox where you can select 1.0x, 1.33x, 1.5x and 2.0x as factor. I am not sure if it is 1.5x, 2.0x or something between...
Could you please tell me, which horizontal stretch factor is needed to have M06-1260 in the correct aspect ratio? In the actual revision I build a combobox where you can select 1.0x, 1.33x, 1.5x and 2.0x as factor. I am not sure if it is 1.5x, 2.0x or something between...
@a1ex: I think @OlegK uses a special lens for that...
@OlegK: 1.75x horizontal stretch looks right for my eyes. Yes, you can select the factor in the clip receipt now. So each clip can have another factor here. It is also exported with the factor (png & ffmpeg export, not dng). As I wrote, we still have some bugs to fix... when we have a solution here, we will make a release.
Is it a combination of anamorphic and high framerate stretch?
Is it a combination of anamorphic and high framerate stretch? We also need to be able to handle that together with anamorphic. I think best way is to have anamorphic ratio options: 1.33, 1.5, 1.75, 2.0, and an On/Off for additional vertical 1.67x (5:3) stretch
Is it a combination of anamorphic and high framerate stretch? We also need to be able to handle that together with anamorphic. I think best way is to have anamorphic ratio options: 1.33, 1.5, 1.75, 2.0, and an On/Off for additional vertical 1.67x (5:3) stretchExactly that I implemented.
Exactly that I implemented.
Edit: 1.8x is added too.
Is it a combination of anamorphic and high framerate stretch? We also need to be able to handle that together with anamorphic. I think best way is to have anamorphic ratio options: 1.33, 1.5, 1.75, 2.0, and an On/Off for additional vertical 1.67x (5:3) stretch
Is there any way to fix rolling shutter in MLV?Not yet. If you know how to do (image processing)... please help...
Would be nice to have all shoot info at the Botton like this:You can open the "Information" dialog and have it always at the side. I think that is sufficient...
And in Footage if your WB at the moment of the shooting was 5600, when you open the file it opens with same value it was shoot, very handy. than you can change if you want, or reset to defaults.Yeah, would be nice... but I have not found out how exactly to read that atm. When I understood the mlv header right, that won't work for automatic and custom mode.
If you can do "reset to default settings" for all buttons would be nice too!Edit->Reset Receipt.
Great App.. I tried it and it's awesome. The only feature that I think it needs is a Highlight slider, if you can implement that it would be awesome.Yes, I miss it too. But how you can get that indirectly: lower exposure and raise lighten. I use that atm and I am satisfied for now :-)
Great App.. I tried it and it's awesome. The only feature that I think it needs is a Highlight slider, if you can implement that it would be awesome.thxx... highlights are something I've been putting back, as it involves more than one pixel at a time and would be quite a big slow down, slower than the chroma blur. It is however getting closer, it will debut roughly the same time when OpenCL (GPU) processing mode is released (then everything will be really quick)... yes that's coming ;)
A lot of good ideas from @OlegK
Rolling shutter: With magic lantern we can estimate very precisely the rolling shutter interval, and if we track a few points' movement in the image, we can also figure out the (approximate) direction of movement... and in turn how much to skew the image. However that is something I'd rather do at a later stage of MLV App development, as it involves spatial transformations... :-\
thxx... highlights are something I've been putting back, as it involves more than one pixel at a time and would be quite a big slow down, slower than the chroma blur. It is however getting much closer, it will debut roughly the same time when OpenCL (GPU) processing mode is released (then everything will be really quick)... yes that's coming ;)
The whole internal processing is at 3x16bit in MLV App. If you like you also can export 16bit TIFF.
Upscale to any resolution you like on export.
Yay. that's awesome, really glad there's finally a release to use with all the new stuff.
I also apologize to masc and whoever else for not yet finishing the AVFoundation library that will allow for slightly better quality export on macs.
Also begun on OpenCL processing, nothing to show yet.
Hopefully OlegK will be a bit satisfied with this for a bit until I release the next Cocoa App version :/
Hopefully OlegK will be a bit satisfied with this for a bit until I release the next Cocoa App version :/
prorez 4444 Is 8bit?Who tells that? No, it is 10bit.
Who tells that? No, it is 10bit.
:) thank you @mesebar2!
Next we will change the apps code a little more, so we decided to release a version now... next version will need a little more time. So here comes v0.12:
- Support for spanned mlv
- TIFF export
- Force bilinear export
- Resize resolution on (batch) export (overrides any clip resolution)
- File error handling on import
- Horizontal and vertical stretch per clip
- Cut in & cut out
- New profile "Film"
- Auto load white balance, if mlv was filmed at sunny, shade, cloudy, thungsten, fluorescent, flash or kelvin
- MASXML saves relative path additionally, so a session can be ported easy to different computers/locations/...
- Changed single frame export to (3x)8bit PNG, so libpng & zlib is not needed anymore
- Many fixes and detail enhancements
https://github.com/ilia3101/MLV-App/releases/tag/QTv0.12alpha
There are some known bugs and maybe you'll find some new ones ;)
Windows version will be compiled and uploaded next. Have fun!
Really need 1.67x in width stretch menu.This aspect will be very unusual not 16:9, not even 16:10....( none of existing anamorphic lenses do these kind of squeezing). I wonder what are your settings during video recording :P
When i increase file resolution on export does the quality increasing? or its just stretched video file?Nope just plain ffmpeg upscale without any sophisticated before/after frame processing methods.
What difference between Amaze and Bilinear on export?I think your example pictures you posted above are bilinear ones. Try amaze, should be better.
@DoofiiSo sorry, it's win 10, and the MLV file is too large, I have no idea how to upload it...
Sorry but your feedback is "a bit" vague ;)
1. tell us it is win or mac version you are talking about
2. post the mlv which crashes during dng export
@ilia, @masc: hey am I missing something? When we implemented "edit palette"?
This aspect will be very unusual not 16:9, not even 16:10....( none of existing anamorphic lenses do these kind of squeezing). I wonder what are your settings during video recording :P
Lets start from first:The higher the resolution, the higher the quality, the slower the export. Did you ever render a video on your computer using another proggi? For me that is not way different.
The export is really long. 2 small( 16sec. and 10 sec.clips) files took like 7 min. to complete.
I was using my old iMac at home maybe thats why.
2nd. I cannot remove small colorful dots (weird like Moire) In Slow motion 50fps like twice more of them sharpness 100% so u can really see them.Nothing did change here. That is moiree. Specially in 50fps you'll get more moiree. If you use the sharpen slider you will amplify moiree.
Without sharpness is much better but still.:(
P.S. i didn't notice them in previous build.
3rd.May I ask what hardware you use? I heard about 1.33, 1.5 and 2.0 lenses.
Really need 1.67x in width stretch menu.
Questions:No it won't. From where shall come the quality? You may not lose so much quality when cutting and reencoding using a cutting tool like premiere or fcpx.
When i increase file resolution on export does the quality increasing? or its just stretched video file?
What difference between Amaze and Bilinear on export?It is the demosaic algorithm used. Mostly AMaZE looks better, but not always.
Its regular 2x lens. I am shooting in 3:2 mode. So when i choose 2x from menu i didn't get proper image, i think its because your 2x mode works with 16:9 or 3:2 footage?If you use a 2x lens, you use 2x width stretch! And nothing else! The 3:2/16:9 mode plays no role here. Pixels have an aspect ratio of 1:1. If you use 50/60fps, you additionally need height stretch 1.67x, because here the pixel aspect ratio is 5:3.
So i isn't works like its shoud:(
Just something wrong.
1.67 i know its wrong its what gets me final image with program.
If you use a 2x lens, you use 2x width stretch! And nothing else! The 3:2/16:9 mode plays no role here. Pixels have an aspect ratio of 1:1. If you use 50/60fps, you additionally need height stretch 1.67x, because here the pixel aspect ratio is 5:3.
Topic sharpness: the clips you sent me were really unsharp. Here you can't make it better using the sharpen slider. You need to focus right, or if you did, you need a sharper lens.
If you don't like the presets, you can always calculate your factors and setup export settings. You can stretch to any resolution / aspect ratio you like. (maximum is 9999x9999, hope that is enough :D)
Did you try activating Chroma Separation and Chroma Blur Radius around =3 ? The color may become unsharper, bot those dots are away. And activate Playback->Use AMaZE before settings something up (preview may be slower, but quality is better).
mlv_dump -f 4 -o 5frame.mlv your_input.mlv
I also noticed sometimes if you copy and paste attributes to another clip, it could stop playing the file at some point, when you bounce this file it bounce just the part that was playing not whole clip.Haha, sure... the cutIn/cutOut is also in the receipt. So if you copy from a shorter clip, you paste the shorter cutOut. Will think about that...
mlv_dump -f 150-170 -o middle_part.mlv your_input.mlv
Also when I trying import MLV files mouse freeze only arrows works, the same in previous build.It needs some time to parse the GigaBytes... quite normal. But we are working on another solution here.
You can't compare Footage, because this is completely different processing. As I understood Footage uses Apple Standard Functions / Libraries which only work on Mac (not cross platform) and which don't work with all Cameras. My 5D2 did not work at all at Footage. It may be that Apple Functions are here and there better (Apple is a little bigger than us three hobby developpers). In the end, nobody knows what Apple exactly did in this processing functions, so we can't just copy it. If you know a algorithm (best in C/C++) let us know and we add it if we can.ok got it. Can you do something in your program to improve it?
A reason may be that the frames in your MLV are not in the right order. In v0.12 we did not care about this yet, what could result in black frames. Some days ago bouncyball fixed that by replacing the false frames in the right order. This will come with the next release.
With this few information you gave, I don't know if it is really this reason. Best is, if you upload some seconds of your MLV (the seconds where you get the problems), so we can debug.
I've taken a look at your mlv (investigated with mlv_dump, it is healthy), with latest mlv app there are none of black or corrupted frames. The issue was what @masc said. Please wait for next release, use other tools for now.
Thx! I used resolve with MLVFS and the results look better than the pro-res 444 output with bilinear. Maybe the Amaze option is better? I saw the bokeh problem and thought to use Bilinear.You can't say that any way is better than another before having seen the result of the special clip. I also did many tests with bokeh clips (using my lenses), but had never an issue as OlegK - not with Resolve, not with bilinear and not with AMaZE. Watch each result and than decide which fits best for the clip! ;)
Works great. Just set export settings to av foundation and boom prores4444 comes flying out.Yeah, that is as it should be. Cool if it works.
White balance will be applied according to either what your camera kelvin is set to or what wb mode you are working with. Watch out for using AWB(auto white balance) since MLV will instead read whatever kelvin your camera is set to when recording.
Short answer. Use any white balance mode but AWB if you want to use white balance from camera.
Unique Camera Model : Canon EOS 5D Mark III????????????۸.
A bug. I´m sure Bouncyball will check into it.
This app is getting so good. Just tried the cinema dng export feature. Question. How do I select different bits output? For instance 14bit from 10bit etc? Maybe not implemented?You can't :), the output Bit depth always matched to input Bit depth. MLV App does not support bit depth conversion. I think it is pointless.
Is it possible to upload the MLV which causes this problem? I tried with some of my MLVs and this does not happen.+1. Please upload MLV.
Only the first file seems to have the correct name tag then it goes into this:Hmm... until today this same code served for Switch (trought mlv_dump on steroids) and MLV App without problem, IDK why it happened in this case but I did some changes to make sure the "Unique Name" always zero terminated after last symbol.Code: [Select]Unique Camera Model : Canon EOS 5D Mark III????????????۸.
A bug. I´m sure Bouncyball will check into it.
@JADURCA this is how to my knowledge arc (viva A.E.) works -- it save changes to the first dng then applies the changes to the rest of your video file or image sequence (e.g. Tiff , PNG , MOV. etc...) I just check your dng's and there no problem with camera raw profiles , all where there to be selected . Test on Win 7 Pro With CS6 After Effects , didn't have 5d3 VisionLOG profile to check only have one for 5d2 . So you want Cdng that are W/B & color corrected from ACR/Camera Raw ? Any reason why ? tiff or PNG not good enough or I'm I missing something here .
Unique Camera Model : Canon EOS 5D Mark III????????????۸.
Used MLV App 0.13 to export DNGs. First and all consecutive frames are fine regarding this tag.Unique Camera Model : Canon EOS 5D Mark III≈ τ≈ σ≈ α█╕.
this is not in the Cdng from mlvproducer , even the Exif info is really different between the two see belowExifTool Version Number : 10.02
File Name : M17-1643_000003.dng
Directory : C:/Users/i5Dell/Downloads/exiftool-10.02
File Size : 2.6 MB
File Modification Date/Time : 2017:12:23 12:28:44-07:00
File Access Date/Time : 2017:12:24 17:19:08-07:00
File Creation Date/Time : 2017:12:24 17:19:08-07:00
File Permissions : rw-rw-rw-
File Type : DNG
File Type Extension : dng
MIME Type : image/x-adobe-dng
Exif Byte Order : Little-endian (Intel, II)
Subfile Type : Full-resolution Image
Image Width : 1920
Image Height : 800
Bits Per Sample : 14
Compression : Uncompressed
Photometric Interpretation : Color Filter Array
Fill Order : Normal
Make : Canon
Camera Model Name : Canon EOS 5D Mark III
Strip Offsets : 1208
Orientation : Horizontal (normal)
Samples Per Pixel : 1
Rows Per Strip : 800
Strip Byte Counts : 2688000
Planar Configuration : Chunky
Software : MLV App
Modify Date : 2017:12:17 16:43:28
CFA Repeat Pattern Dim : 2 2
CFA Pattern 2 : 0 1 1 2
Exposure Time : 1/143
F Number : 7.0
ISO : 100
Sensitivity Type : ISO Speed
Exif Version : 0230
Subject Distance : 524 m
Focal Length : 24.0 mm
Focal Plane X Resolution : 48.67290288
Focal Plane Y Resolution : 48.67290288
Focal Plane Resolution Unit : inches
Lens Model : EF24-105mm f/4L IS USM
DNG Version : 1.4.0.0
Unique Camera Model : Canon EOS 5D Mark III≈ τ≈ σ≈ α█╕.
Black Level : 2047
White Level : 16200
Default Scale : 1 1
Default Crop Origin : 0 0
Default Crop Size : 1920 800
Color Matrix 1 : 0.7234 -0.1413 -0.06 -0.3631 1.115 0.285 -0.03
82 0.1335 0.6437
Color Matrix 2 : 0.6722 -0.0635 -0.0963 -0.4287 1.246 0.2028 -0
.0908 0.2162 0.5668
As Shot Neutral : 0.7939645987 1 0.3541823983
Baseline Exposure : 0
Camera Serial Number : 2CB548B5FE
Calibration Illuminant 1 : Standard Light A
Calibration Illuminant 2 : D65
Active Area : 0 0 800 1920
Forward Matrix 1 : 0.7868 0.0092 0.1683 0.2291 0.8615 -0.0906 0.0
027 -0.4752 1.2976
Forward Matrix 2 : 0.7637 0.0805 0.1201 0.2649 0.9179 -0.1828 0.0
137 -0.2456 1.057
Time Codes : 00:00:07.16
Frame Rate : 59.94
Reel Name : M17-1643
Baseline Exposure Offset : 0
Aperture : 7.0
CFA Pattern : [Red,Green][Green,Blue]
Image Size : 1920x800
Megapixels : 1.5
Shutter Speed : 1/143
Focal Length : 24.0 mm
Light Value : 12.8
ExifTool Version Number : 10.02
File Name : M17-1643_00000.dng
Directory : C:/Users/i5Dell/Downloads/exiftool-10.02
File Size : 2.9 MB
File Modification Date/Time : 2017:12:24 16:22:41-07:00
File Access Date/Time : 2017:12:24 16:45:10-07:00
File Creation Date/Time : 2017:12:24 16:45:10-07:00
File Permissions : rw-rw-rw-
File Type : DNG
File Type Extension : dng
MIME Type : image/x-adobe-dng
Exif Byte Order : Little-endian (Intel, II)
Subfile Type : Full-resolution Image
Image Width : 1920
Image Height : 800
Bits Per Sample : 16
Compression : Uncompressed
Photometric Interpretation : Color Filter Array
Make : Canon
Camera Model Name : Canon EOS 5D Mark III
Strip Offsets : 1016
Orientation : Horizontal (normal)
Samples Per Pixel : 1
Rows Per Strip : 800
Strip Byte Counts : 3072000
Planar Configuration : Chunky
Software : MLVProducer
Artist : noname
Sample Format : Unsigned
CFA Repeat Pattern Dim : 2 2
CFA Pattern 2 : 0 1 1 2
Copyright : noname
Date/Time Original :
Lens Model : EF24-105mm f/4L IS USM
DNG Version : 1.4.0.0
Unique Camera Model : Canon EOS 5D Mark III
CFA Plane Color : Red,Green,Blue
CFA Layout : Rectangular
Black Level Repeat Dim : 1 1
Black Level : 2047
White Level : 9153
Default Scale : 1 1
Default Crop Origin : 0 0
Default Crop Size : 1920 800
Color Matrix 1 : 0.5852 -0.0578 -0.0041 -0.4691 1.1696 0.3427 -
0.0886 0.2323 0.6879
Color Matrix 2 : 0.492 0.0616 -0.0593 -0.6493 1.3964 0.2784 -0.
1774 0.3178 0.7005
As Shot Neutral : 461 795 471
Baseline Exposure : undef
Bayer Green Split : 0
Active Area : 0 0 800 1920
Forward Matrix 1 : 0.8716 -0.0692 0.1618 0.3408 0.8077 -0.1486 -0
.0013 -0.6583 1.4847
Forward Matrix 2 : 0.9485 -0.115 0.1308 0.4313 0.7807 -0.212 0.02
93 -0.2826 1.0785
Time Codes : 00:00:00.00
Frame Rate : 59.939
Reel Name : M17-1643
Warning : Bad IFD1 directory
CFA Pattern : [Red,Green][Green,Blue]
Image Size : 1920x800
Megapixels : 1.5
Will report my findings and ideas when I can. Thanks again for making this possible for all of us in here!Thanks for your feedback as per usual :)
Hi, Masc, ilia, bouncyball, Merry Xmas to you all. Noticed a bug when i try to export, using apple AV Foundation, it crashes when i hit the export button, although for some strange reason it always seems to crash when i hit export for the first time, then i re-boot the app, and it seems not to crash after that, only sometimes..Merry xmas!
Here's the crash report https://www.dropbox.com/s/s4mvlijbb72toch/crash%20report%200.13%20mlv%20app.rtf?dl=0
Please, can you add more key shortcuts?Sure...
I used this key shortcut in unsupported application MlRawViewer:Done.
- Cut In/Out (e. g. Shift+I/Shift+O when 'I' is used for Info)
- go to previous/next video (e. g. K / J)
- delete selected video from session (e. g. Del)
- delete selected video from session (e. g. Del)When I delete some video, first video is always selected. It will be better select next video with nereast index ;)
1) Total time (min:sec:frame?) just beside the total frame count on the bottomDoable
2) Smooth realtime playback.Not so easy to implement, needs rewriting all of the processing.
3) Basic lut for colorspace (c-log, rec etc etc.) and importing of new ones if you really want to.Doable
4) Better handling of hotpixels? I've tested it in a rush and I could still see some.Please upload sample MLV
When I delete some video, first video is always selected. It will be better select next video with nereast index ;)Was already done.
Oh, I wonder how it was done on mlrw, preview it's an important thing but I guess it's still usable at 5-8 fps.So slow?! On my 8 years old Core2Duo MacBook I get something between 10-12 fps with v0.13... that looks not so bad...
What??? That should be way faster! Have you found the caching option? Let it cache until it says "Idle" again and then play. You should get around 15 frames with an i7!!!
I've found a bug. All my footage stops on 354 frame. Will try different footage to get more information.Please collaborate more on this (what is your OS, which - 32 or 64 bit version of MLV App you use) and upload some affecting MLVs to check.
Wow! This app looks so promising!This is implemented. Go to export settings and set fps override. That also works for playback.
I'm wondering, is it possible to implement different fps playback function? For example, I have 50-60fps footage, but I'd like to preview it at 25fps (in slow motion). It would be great to have some options like:
- native fps (as it is now)
- custom fps (speed playback options)
MLV-App: Compiling for Linux openSUSEThank you! :)
I just finished the english version of my tutorial:
https://seescho.wordpress.com/tutorial-englisch/
I hope, I didn´t forget to much...
I hope, I didn´t forget to much...Small correction ;)
cdng (up to 16bit, lossless or uncompressed)
And... funny: on none of my computers MlRawViewer feels faster as MLV App... am I doing something wrong?! How do you get it so fast?MLV App feels very snappy in all aspects except REAL realtime playback ;)
All my footage stops on 354 frame. Will try different footage to get more information.
I don't know what to say. I'll try with different drives.
@JADURCA this is how to my knowledge arc (viva A.E.) works -- it save changes to the first dng then applies the changes to the rest of your video file or image sequence (e.g. Tiff , PNG , MOV. etc...) I just check your dng's and there no problem with camera raw profiles , all where there to be selected . Test on Win 7 Pro With CS6 After Effects , didn't have 5d3 VisionLOG profile to check only have one for 5d2 . So you want Cdng that are W/B & color corrected from ACR/Camera Raw ? Any reason why ? tiff or PNG not good enough or I'm I missing something here .
Small correction ;)Code: [Select]cdng (up to 16bit, lossless or uncompressed)
@masc What do you think of making it default profile? I think it looks better on 97% of images. (Edit: didn't we already do this? Default seems to be standard for me on every version I open so I might be going insane)Tonmapped is the default profile. You'll see when importing a file.
Hello ilia3101 and masc,
Do you think it’s possible to implement an antialiasing script like the one used by danne and the one used by a1ex? A lot of people there doesn’t have money to pay a vaf-filter, so it can be a good alternative to process it and then export from mlv free of aliasing to ProRes.
Edit : it can also allow us to check the before/after in real-time for more accurate comparison
How do you guys process dual iso mlv's? I click the "on" button on the dual iso tab but the end files still have lines.Let me guess, you exported DNGs as "fast pass".
A work in progress :)Ah okay, that was this story, I remember. Is there a way to use this with pipes or something like that? ATM I am happy that we don't need temp files. Using these programs would make a big mess again. Do you see a possibility?! ;D
http://www.magiclantern.fm/forum/index.php?topic=21089.msg193622#msg193622
Using these programs would make a big mess again. Do you see a possibility?! ;DTo avoid using external programs, the optical flow should be implemented into the mlv app processing. Ilia! Where are you? :P
if there is someone out there who can help with that... we are here and waiting for you! ;)+1 !
brew install qt caskroom/cask/qt-creator
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile
A couple of important steps:Code: [Select]brew install qt caskroom/cask/qt-creator
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile
You also have to tweak the preferences:
(https://www.magiclantern.fm/forum/proxy.php?request=https%3A%2F%2Ffarm5.staticflickr.com%2F4616%2F38868763905_f004268349_z.jpg&hash=ca0a2b6ec407410a01131ea0c40148f8) (https://flic.kr/p/22dGzkP)
Yay!
You mustn't do that.
:-1: error: No rule to make target `FFmpeg/ffmpeg', needed by `MLV App.app/Contents/MacOS/ffmpeg'. Stop.
Most of what I do I mustn't do.Haha, now, that very familiar cat looks beautiful everywhere ;)
Yay!
Atm we just have it on github. Does the same happen if you load it from here?Works :D thanks
https://github.com/ilia3101/MLV-App/releases
Also the app on my OSX just randomly closed the second time I used it when I tried to export the file.
often record at >=ISO1000 @f/1.4 and there the noise starts in the darks using my 5D2.Yes with that popular lovely 50mil I often use ISO 1600 @ f1.4 on my 5D3, the noise in shadows very manageable.
It seems to repeat the problem from raw2cdng and Davinci Resolve - the WAV files generated are few frames shorter than DNG sequence, and Davinci is not attaching it automatically to the DNG sequence.
The files were from 5D2 - system fps setting was 24 fps.
Also a corrupt MLV file - the one that did not fit into memory card, crashed it.
Speicherzugriffsfehler (Speicherabzug geschrieben)
Tested with opensuse leap and tumbleweed.
g++ -o filter.o ../../src/processing/filter/filter.c
../../src/processing/filter/filter.c: In function ‘initFilterObject’:
../../src/processing/filter/filter.c:41:24: warning: implicit declaration of function ‘fmemopen’; did you mean ‘freopen’? [-Wimplicit-function-declaration]
Which version of MLV App - 32bit or 64bit?
Upload that MLV somewhere and I'll take a look :)
Also i could not see lossless mlv's (from one of the first versions) 59'976 fps in the import windowCould you upload the sample? I'm curious about it :)
control /name Microsoft.Display
Wild guess: Item/font size off.
RunCode: [Select]control /name Microsoft.Display
@ToniX: I had the same problem. Text in the right panel appeared truncated. I have solved using this way: mlvapp.exe -> Properties > compatibility -> check "override high dpi scaling behavior -> select "system", OK.
I hope this helps you.
EDIT: I use windows 10 x64. In windows 8.1 the procedure may be slightly different.
PS:Sorry for my very bad english.
Grazie @GianlucaM83 - I've tried, it would have been a preferable solution but it does not work for me. :(
@ToniX:
I also think it is a Windows font setting. If Windows overrides our font settings, the fonts may be to big for the GUI. We had the same problem on Linux. If fonts are system standard all should be fine.
Thank you!
I shot today a video with x5 crop mode at 14bit lossless resolution 1920x818 (14bit uncompressed works perfectly.)
The pixel dots pattern was different compared with full 2520x1072 resolution so no map worked for it.
Make your tests:
https://drive.google.com/open?id=1WdY7djRxC9tJjnJvQw_gQ5er30t_joKF
That particular file has the focus pixels shifted 8-frames. I think it has happened before but I can't find the post.
(https://www.magiclantern.fm/forum/proxy.php?request=https%3A%2F%2Ffarm5.staticflickr.com%2F4644%2F39541580182_1c2d8bd15c_o.gif&hash=edb570f7ae7a81ca48cd476e59b71ea7) (https://flic.kr/p/23f9Wbs)
zoom mode is a special case because we're not sure what part of the sensor it was recorded on. I thought we covered all possible locations but maybe not?
In other news, the fpm2pbm.sh and pbm2fpm.sh scrips got a big speed boost:...
@MascIt could be possible for a set of very equal clips. But the AI is not intelligent in correcting pictures. It is just intelligent in learning a difference between two looks in the same picture.
So with this learning, one could skip the steps of mlv - converting to a Log image -> corrections - grade - final look? I guess i am asking could the A.I take an MLV - "fake all the steps" - final look? Too complex? Further more, is this perhaps what fhe future of post processing looks like? And it eventually sends robots back in time ;)
You should talk to hyjalinim or how you spell it, he has some really nice examples of Ektar 100 film. I find his Ektar 100 LUT requires a very specific exposure to yield nice results, perhaps that is something the A.I can learn to do for us? Just a suggsstion.I trained the Ektar 100 look to MLV App. But I think it is not good as it is now, because it is very difficult to get a clean set of pictures, where
I was about to upload MLV example of the ones I could not see in the Import Window, tried the import window one more time now and I can see the MLV's. So all good!Heh, good to know, b/c that was weird :)
But it's just 14bit lossless with white level of 16200 not 8-12 lossless.Hehe :) you mean you did not record it as 8-10 or 12 bit lossless?! (In some rare cases somehow 8-12bit restricted lossless has full range white level like 16000+)
@dfort: new special case arrived! Our restricted lossless check is down the drain ;)
if [ $bits_per_pixel -eq 14 ] && [ $white_level -lt 15000 ]; then echo "Detected a 12 or lower logical bit depth lossless compressed file"; fi
We've already found out that sometimes the focus pixels shift 8-pixels when recording in 14bit so we need to account for that. The reduced bit depth clips map files just cover more of the sensor area.Right, then zoom mode pattern generator have to account 2nd pass of shifted pixels for any lossless MLV.
2-Negative controls especially for "Light Strength", it will help a lot for restoring highlights in dual iso footage after shifting the exposure up 4 stops.
... Initially I thought, the reason is the OS but then I installed Win10x64 and the software continues to crash every time I try to import an MLV file.Thanks for your report. I can't believe it has something to do with your hardware - I successful use it on a 10 years old Core2duo, without any problem. I would really love to know what causes this problem. I think it could be something with localization - some parts of our app had problems there before too. But I think the only way to debug is, if you install Qt on one of your PCs, load our sourcecode, compile as Debug version and run in Debug mode. The debugger will tell us the line of the crash and then we could help solving the issue. Do you think you get that done? We have a little compilation guide, but you also can PM me, if you have problems or questions.
1-Can you add the resolution + frame rate info in the bottom bar :DIf you press "I" once, you see this info, if you press "I" twice, it is hidden again. You also can have opened the info dialog all the time on the left or right or... and the app will work as it is not opened.
2-Negative controls especially for "Light Strength", it will help a lot for restoring highlights in dual iso footage after shifting the exposure up 4 stops.You don't mean to invert the slider, but to have a negative range on the slider? Ilia trys to implement a kind of photoshops "Shadows & Highlights", but has still problems and bugs. We all hope he solves it soon.
3-I don't really use "Fix Bad Pixels" (it somehow hurt the image for me) , so if I can turn it off once instead of doing it for each clip would be a lot helpful.If you import many MLVs, just change it first for one clip. Then Ctrl-C, Ctrl-A, Ctrl-V and you're done.
I've been using and testing a while now under Windows x64. So far I did not encounter any problems or bugs, but have two feature requests though.Good to hear! :)
* Integration of DNxHD as an export codec:Yes, I also thought about adding that. In the tables you posted: are the options so limited for this codec?! For all existing codecs the input plays no role... so that makes it really difficult, which option is chosable for which clip... in a batch it would not be usable at all :(
I'd prefer using DNxHD or DNxHR as a codec in a .mov-Container (though .mxf would be recognised by Avid MC, Adobe PR has its problems with it.). An example list of command line options and settings for DNX-coding in ffmpeg can be found here: http://www.deb-indus.org/tuto/ffmpeg-howto.htm#Encoding_VC-3 or https://askubuntu.com/questions/907398/how-to-convert-a-video-with-ffmpeg-into-the-dnxhd-format-for-the-purpose-of-usin. Idealy one option would include a 10bit-output.
A direct command line input in the GUI by the user would be an alternative and provide total freedom of codec choice!That is very very complicated to realize regarding error handling: in the past it was already a challenge to get predefined export options to work without a crash. If the user can type what he wants... oh oh :P
There is a enhancement topic added on github for that already, but we will see if and when it is possible to realize that (I am also waiting for that).
* Integration of custom LUTs
As of now I can select from a variety of LUTs (e.g. S-Log 3), but using custom LUTs (thinking of the LUT calc over here: http://cameramanben.github.io/LUTCalc) would be awesome.
P.S. @IDA_ML
As I understand your problem is not related to particular MLV file right? Then you're gonna be very helpful if you do what masc asked.
I am afraid, I have no coding/compilation skills whatsoever. This is like Chinese to me. I would be more than happy to try but I will need very detailed step by step instructions on how to do the compilation. I am not sure if you guys would have the patience with me to do that.You don't have to know anything about coding. It is just downloading and installing Qt for Windows (just for Windows (MinGw, 32bit), with QtCreator, all other options disabled in online installer). https://www.qt.io/download
...However it did crash yesterday after i had reviewed and tinkered with a lot of 3.5k mlv's. I think it was about 50 mlv's imported and i had tinkered around with about 30 of yhem when it just suddenly crashed, a windows message appeared "the program has encountered an error" something like that. ...Yes, for me that also happens - but I have not found yet a defined way how to crash it. If you can reproduce that, please let us know!
One thing I think is off with MLV App is the White Balance slider, i am on a fairly calibrated monitor and i think the Kelvin does not coincide with the normal temperatures, that I am used to from other software e.g. ACR, Resolve etc. what I mean is that I think it is overly warm. A shot under normal daylight with 5600 k looks wrong, i push it to 4800-5000 to get it to look right.Really? Do you have examples (jpeg and MLV(just one frame is enough))? I did a quick test, because I did not notice that yet... but can't see a big difference. Whitebalance is identical (4973K), for all other parameters I tried to find a equivalent. 1st: MLVApp, 2nd: Lightroom:
Not a big deal for me, as i so far only used mlv app for reviewing lossless files before converting to DNG with Danne's windows batch script.You could batch export DNGs from MLV App directly. Is there any reason why you don't do this? If yes, then there will be some info for me to chew on.
I will compare head to head when i have the time between mlv app and acr to see if there is a difference. So far it looks off.If it is not 5d2 then it can be so. I have implemented (in my test build) ufraw black body code modded by alex->dmilligan->(humbly me) to account camera matrixes and it woked lot better for my 5D3 than actual current release. I did not post or commited it anywhere at the moment (needs some more work).
You don't mean to invert the slider, but to have a negative range on the slider?
1 - have the user select any amount of darkframe footage recorded and then have Mlv app all files averaged and ready for usage.This is no problem. Just import all dark frame footage clips and make averaged MLVs for each in batch export.
2 - have these darkframes stashed away in a storage folder, always active and used if matched footage is used. There could be an 'activate storage' button for instance.Automatically matching DF with clips - this is what's not implemented (and have not been considered to be implemented) in MLV App :)
Of course unwanted scenarious could happen such as user selecting non darkframesThis can be kinda overcome b/c after loading you see all thumbnails of all imported clips. If it is not black then it certainly not DF footage.
That way you could skip a lot of hassling steps described above and I think it would be kind of a game changer.Right... that kind of automation certainly great to have. Automatically averaging newly added DF clip also nice, but matching is kinda main problem here it must work like focus maps in the folder. There could be not only one folder of DFs, but whole DIR structure like CameraID/Resolution/ISO and also there are parameters like shutter speed, digital/analog gain, binning/skipping...
bit=$($mlv_dump -v "$FILE" | awk '/bits_per_pixel/ { print $2; exit }')
res=$($mlv_dump -v "$FILE" | awk '/Res/ { print $2; exit }')
iso=$($mlv_dump -v "$FILE" | awk '/ISO:/ { print $2; exit }')
fra=$($mlv_dump -v "$FILE" | awk '/FPS/ { print $3; exit }')
cn=$($mlv_dump -v "$FILE" | awk '/Camera Name/ { print $4,$5,$6,$7; exit }' | cut -d "'" -f1 | tr -d ' ')
...Switch will sort them out by reading pixel brightness. Well, I use convert(imagemagick) for this.Very smart move :D
avg_14bit_EOS5DMarkIII_res_1920x800_iso_200_fps_59.940000.MLVGot it, you use simple and effective file name coding. Great! :) (I should've known it if I were mac user :P)
Or maybe easiest way is to select a darkframe storage folder from within Mlv app and that way a user can reuse the folder with every new version coming. Mlv app could then create averaged darkframes that will work with matched footage and the storage can be activated from within the app. Every time a vanilla darkframe mlv is added to the folder Mlv app would average and standardize to suit Mlv app workflow. That way you could skip a lot of hassling steps described above and I think it would be kind of a game changer.
Yes, for me that also happens - but I have not found yet a defined way how to crash it. If you can reproduce that, please let us know!I have not found anything reproducible. It happened again yesterday evening, when I was going through about the same amount of MLV's, maybe 20-30 MLV's. So far this the most "reproducible" thing I have found, in being, that it happens after going through several MLV's. The error was a Runtime Error. It was so late, so I was not bothered enough to take a screenshot of it, but it was just a general Windows Runtime error, no specific code or anything.
Really? Do you have examples (jpeg and MLV(just one frame is enough))? I did a quick test, because I did not notice that yet... but can't see a big difference. Whitebalance is identical (4973K), for all other parameters I tried to find a equivalent. 1st: MLVApp, 2nd: Lightroom:The lightroom DNG, is it exported from MLV App? That might be why they give similar results, but I don't know if you have some sort of bake-in going on with DNG export. Also 5000k for what looks to me like a sunny day, does not seem correct to me, but ofcourse, I was not there and if its your shot, then you know how it was supposed to look like that day.
All exported as PNG because MLV App exports Frames as PNG (very nice feature btw).You better export 16bit TIFFs not 8 bit PNG which is only for quick peek.
I'd like to add that I also think its a good idea with some basic information about the MLV at the bottom bar like Resolution, Frame Rate, Lens, Aperture, ISO and Date/Time. And if one wants the full info, one can click the Info button.As Masc mentioned already you can open info dialog and leave it open while switching between clips (the dialog info will update every time you go to the next MLV).
So you can use this app now for DF averaging and put out new cdng files on Win (or maybe soon)?Yes, you can create averaged darkframes with MLV App. You can also subtract them from your clips and export a subtracted corrected clip or a darkframe to cdng.
If that's so I have to try this out!
I woud love to see a 2X resize preset. ( 200% )
So I can easy export and upscaled to 4k
Looks like there is a request for aspect ratio locking check box in export settings dialog ;)
I woud love to see a 2X resize preset. ( 200% )I did it a bit different - as bouncyball proposed. Exactly 2x is useful mostly only for 5D3. Now you can enter the width you like and MLV-App will calculate the height automatically for every clip in the batch in dependency to aspect ratio settings and clip size, if lock button is pressed.
So I can easy export and upscaled to 4k
Is it possible to set preferred frame rate when previewing ? I cant seem to find that option
Sometimes when playing 60 fps files, it reaches 30 fps or will vary between 20-30, would be nice if one could set a limit at 24 or what ever one prefers.
Having monochrome icons is no good idea. Let me explain: we had that already for the player icons - they were black and the design was very close to what you suggested - the icons are nice - no question. They were visible very good on the systems theme (light grey), and also in the menus. Then we got the dark theme, and the black icons were invisible. But already before - for all users on mac or linux who are using a systems dark theme these icons were invisible.
Now, using white icons may look cool on the dark theme in the app - but in a standard OSX menu white icons become nearly invisible.
So the icons we have now - 75% I found after very long research, and the other 25% there was no icon in the net - so I build them myself. And I hope everybody can see it on each OS and each theme.
Yes you can set that up. Standard is the fps of your clip - depending on your clip and your computer it is possible to reach that or not. Then we have 2 playback modes
- one mode shows each frame: that means if you computer is too slow, playback will be slower than it should be
- and drop mode drops frames it can't handle over time: here playback is realtime, but maybe some frames are not shown
If you like to override the original framerate, you can setup that in the export settings dialog. Now the two modes above try to reach that framerate - again: depending on your computer.
Just to be clear, the Framerate Override box in Export settings also affects the Preview within MLV App ?Yes. Exactly.
Just to be clear, the Framerate Override box in Export settings also affects the Preview within MLV App ?
I have thought about what you encountered and I see a few possible variations:It is okay for the app, but on OSX you won't see the icons in the menu if theme is light. For OSX dark it is okay.
1 use the coloured icons.
2 use white icons when the theme is dark
3 invert the white icons when the theme is white ( they will be black )Now it is okay in OSX light, but in the App you won't see them. Inverting means having more than one icon set in the app? Complexity will rise a lot for such a feature. And I did not search if I can read which theme is loaded in OSX.
4 use a grey color that works in both dark and light theme.In principle yes, but OSX light is a light grey - so then we have also a bad contrast between icons and background :(
I'm happy to contribute to making this work. and at the same time understand it not the most important thing. and that to save complicating te project only one theme is used.Yes, thanks for sharing! So don't understand my wrong. Most of the features in MLVApp are good ideas from users - that is very important for us!
It just for me personally I prefer a clean icon. it can even be a coloured one. so the good thing is that the project is open source and I was able to change the icons the way I want them and make a new build.
and like to share back to you what I did.
Hey guys I think I probably have good news for @IDA_ML and others who have older PCs with older Core2 Duo CPU models where MLV App crashes during file import (I've been able to reproduce this behavior).
Download those fixed 2 windows builds (now they are running smoothly on my E6800 CPU):
MLV.App.v0.14.alpha.Win32.zip (http://nic.caucasus.net/mlvapp/?dir=&download=MLV.App.v0.14.alpha.Win32.zip)
MLV.App.v0.14.alpha.Win64.static.zip (http://nic.caucasus.net/mlvapp/?dir=&download=MLV.App.v0.14.alpha.Win64.static.zip)
Try and report back your findings.
regards
bb
Yes, I also thought about adding that. In the tables you posted: are the options so limited for this codec?! For all existing codecs the input plays no role... so that makes it really difficult, which option is chosable for which clip... in a batch it would not be usable at all :(
This is incredible news for me, Bouncyball! Thank you so much! I still cannot believe that MLVApp is finally working on my 11-year old laptop. Please give me some time to test and I will report on my impressions later in this thread.W.w.what?! Bouncyball, you got it to work for IDA_ML? What was the reason? Was it the optimization -O3 for the compiler!? NICE!
I see, DNxHD is very limited, but I think DNxHR is more flexible. I will do some testing with ffmpeg handling non-standard resolutions and framerates and report back.If that is more flexible, that would be nice. Adding these single options is no problem. What we do with further options, must be evaluated. There are many aspect ratios for MLVs out there, not only 16:9 ... but I could stretch it always to 16:9 if DNxHD is chosen - but I don't know if someone needs/likes that. If you could some testing it would be nice to report back! If it works for a TIFF sequence to DNxHD.mov, it should also work for our export pipe. (You can export a TIFF sequence with MLVApp, if you haven't one.)
I assume from what I read so far that with DNxHR you can just assign a profile (dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb) without providing any further options (e.g. framerate, resolution). That is atleast for converting file a to file b.
ffmpeg -r 25 -y -f rawvideo -s 1856x1044 -pix_fmt rgb48 -i - -i M15-1953.wav -c:a copy -c:v dnxhd -pix_fmt yuv422p M15-1953.mov
Input #0, rawvideo, from 'pipe:':
Duration: N/A, start: 0.000000, bitrate: 2325196 kb/s
Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le, 1856x1044, 2325196 kb/s, 25 tbr, 25 tbn, 25 tbc
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, wav, from '/Users/masc/Desktop/M15-1953.wav':
Metadata:
comment : Exported MLV Audio
encoded_by : Canon EOS 5D Mark II
originator_reference: JPCAN-2...
date : 2017:07:15
creation_time : 19:52:50
time_reference : 0
coding_history : PCM
Duration: 00:00:00.34, bitrate: 1575 kb/s
Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> dnxhd (native))
Stream #1:0 -> #0:1 (copy)
[dnxhd @ 0x7ff07b014c00] video parameters incompatible with DNxHD. Valid DNxHD profiles:
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p10; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p10; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p10; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 115Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 120Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 145Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 240Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 290Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 220Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p10; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 120Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 145Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 120Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 145Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p10; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p10; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p10; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 110Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 60Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 60Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 75Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 120Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 145Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 36Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 36Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 45Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 75Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 90Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 350Mbps; pixel format: yuv422p10; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 390Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p10; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 730Mbps; pixel format: yuv422p10; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 880Mbps; pixel format: yuv422p10; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 42Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 60Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 75Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 115Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 63Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 84Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 100Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 110Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 80Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 90Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 100Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 110Mbps; pixel format: yuv422p; framerate: 0/0
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
Another thing that came to my mind:Try Shift+I and Shift+O ;) (You see the hint when cursor is on the buttons)
The following keyboard-shortcut would be useful: Alt + I (since I is already in use for Clip-Info) for setting the In-Point right at cursor / playhead-position within the "timeline". Same with Alt + O for the Out-point.
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p10; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p10; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p10; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 115Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 120Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 145Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 240Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 290Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 175Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 185Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 220Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 365Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p10; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 120Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 145Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 185Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080i; bitrate: 220Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 120Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 145Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p10; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p10; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p10; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 90Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 110Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 180Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 220Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 60Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 60Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 75Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 120Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1280x720p; bitrate: 145Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 36Mbps; pixel format: yuv422p; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 36Mbps; pixel format: yuv422p; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 45Mbps; pixel format: yuv422p; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 75Mbps; pixel format: yuv422p; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 90Mbps; pixel format: yuv422p; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 350Mbps; pixel format: yuv422p10; framerate: 24000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 390Mbps; pixel format: yuv422p10; framerate: 25/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 440Mbps; pixel format: yuv422p10; framerate: 30000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 730Mbps; pixel format: yuv422p10; framerate: 50/1
[dnxhd @ 0x7ff07b014c00] Frame size: 1920x1080p; bitrate: 880Mbps; pixel format: yuv422p10; framerate: 60000/1001
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 42Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 60Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 75Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 960x720p; bitrate: 115Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 63Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 84Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 100Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080p; bitrate: 110Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 80Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 90Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 100Mbps; pixel format: yuv422p; framerate: 0/0
[dnxhd @ 0x7ff07b014c00] Frame size: 1440x1080i; bitrate: 110Mbps; pixel format: yuv422p; framerate: 0/0
Have you tried looking at Gopro Cineform codec, which is open source now?
@masc, yes it was -O3->-O2 which I committed lately :)Nice one!
It's not very nice that this codec forses us to particular resolutions.
I always preferred cineform.
4. As @masc mentioned above Dark Frame has to be prepared before using it. 200-300 frame DF MLV has to be averaged. Select in export options averaged frame. This will export real averaged 1 frame MLV for you. Then it can be loaded as Ext DF. Effect will be seen immediately when clicking Off/Ext/Off...
#detect blackframe thorugh ffmpeg(example is with a mov file):
if grep -q 'pblack' <<< $(ffmpeg -i $(ls *.MOV | head -1) -vframes 1 -y -vf blackframe -f null /dev/null 2>&1 | grep -m1 'pblack')
then
echo yes
fi
3. With latest Win32 build sound does not work at all for some unknown reason. Please use 64bit version when possible. (if 64bit has no audio then check what @masc explained)Really? For me that works on Win32.
For the beginning just checking the MLV frame amount (1 or more) is a good thing to warn user and tell him he needs to average the clip first.No prob... that is done easily.
Really? For me that works on Win32.Yes :( after -O2 sound does not work on my Core2 CPU PC for win32 build.
No prob... that is done easily.Yes sure it's not hard, but check should be done in C lib not in mainwindow.cpp. I'll take care of it.
Thank you but I could never manage to download files from wetransfer :(. Downloading ALWAYS stalls and can not be resumed.
Nice feedback IDA_ML.
I tested around a bit with your darkframe and additional crop mode footage. The averaging effect is very subtle but it´s there. I tested in Switch(sorry Mlv app) but wanted to check fast what mlv_dump is producing.
Darkframe averaging will work best with stressed footage. A bit under exposed(shadows will be cleaned) and also color cast from lenses so if the footage is properly exposed and you are using some good lenses the averaging effect will probably be minor.
-c:v libx264 -preset ultrafast -crf 10
-preset medium -crf 24
Edit: hmm... you can't... I could try to upload it somewhere else for you... but that will need some time @60kB/s :DThank you! I've downloaded them now :)
I see a very tiny difference in the low right corner of frame 1 (dark area)... but it is soooo small the difference...Yes static magenta noise contaminating colors is quite low here so difference is really subtle, anyway you always can look at histogram, it changes in the dark/shadows part when activating deactivating DF.
Dark/Light Strengh/Range is different from black & whites & contrast in ACR. Maybe Ilia finds a way one day to add that additionally. I never missed it, because Dark/Light Strengh/Range can do more (it is only harder to understand what it does).All is said about WB picker so I'm not stopping to discuss this further :)
4b: Hm... I don't know how to create special thumbnails. Could be another task for the future. ;)Here (https://en.wikipedia.org/wiki/Windows_Imaging_Component) is the explanation how this could be done for windows with Windows Imaging Component (WIC). Sorry but this is really out of the scope of the MLV App itself :). However windows programmers are always welcome to implement this kind of stuff.
It looks like, that not only you but also your kids with their old CPU computer saved my MLVApp life by allowing you to reproduce my problem.:D
May I suggest that, before releasing a new build, you make sure that it also works on your kids' old computer?Sure. The reason of this issue is known and patch committed to the repository additionally with Ilia's fine tuning :)
Matching iso is vital. Maybe even shooting the df right after the regular footage was recorded but I have been using darkframes recorded on a different time with great results.Danne's absolutely right, the roots of this suggestion came from the fact that when sensor is warming up the HW noise increases.
Hmm... do you mean this info should be on the right side of the clip thumbnail in session list?
Unfortunately MLVApp has a hard time doing anything with it - my guess is that it's almost certainly a black level issue.I'm not sure what is the exact reason (full 20bit dualiso processing gives error and can not process this MLV). Preview mode does work. It is nice that you uploaded this sample. Can you also upload the dark frame original (not averaged) MLV for this 12bit clip?
Here's the problem - I end up with converted DNG's and would like to import them into MLVApp for editing/organizing. I don't know of any way to repackage DNG's back into an MLV.It is possible and g3gg0 was doing this long time ago for experimenting/developing. However I can not imagine the use case of that backward conversion now :)
One can approximately say that the footage is 12bit lossless if 4500<white level<8000 and 8-11bits lossless if white level is less then 4500. Otherwise real 14bit data has >15000 value.
However I don't think that implementing this logic to the MLV App will give us the chance to make reliable assumption.
Unfortunately MLVApp has a hard time doing anything with it - my guess is that it's almost certainly a black level issue.
By turning Switch to default settings, and then setting it to full-auto I was able to do 12 bit, dual-iso, darkframe subtraction in one fell swoop - which felt lucky.
cr2hdr --force [drag your dng here]
It is possible and g3gg0 was doing this long time ago for experimenting/developing. However I can not imagine the use case of that backward conversion now :)
./mlv_dump -b 14 -o output_14bit.mlv your_12bit.mlv
Then try to open it in MLV App, process as dualiso and report back please.
Can you also upload the dark frame original (not averaged) MLV for this 12bit clip?
@jpegmasterjesse
I guess you already have switch so grab mlv_dump from it and with this command convert bit depth:Code: [Select]./mlv_dump -b 14 -o output_14bit.mlv your_12bit.mlv
Then try to open it in MLV App, process as dualiso and report back please.
One thing where I believe the Qt app is worse than cocoa app is the control sliders, you can't just click anywhere on the slider and start moving it...Haha, right. I never noticed this before :)
mlv_dump -d -b 10 -o OUT.MOV IN.MLV
Pretty nice.