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

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2011
Honestly, I assumed that MLV files are simply a container for a sequence of DNG images with audio and metadata included. Am I not right?
No, not really. The included image data itself is the same, but organization is different. Same for metadata.

Is there not a way to extract the RAW DNG sequences and metadata from the MLVs in a way that it could be restored to a MLV and be indistinguishable from the original MLV?
Should be hard, because in MLV there is metadata, which doesn't exist in DNG.

Again... better store MLV instead of DNGs. It is the original data.
5D3.113 | EOSM.202

tdnelson2

  • New to the forum
  • *
  • Posts: 15
Thanks @masc. I'd like to understand the structure of the MLV a bit more. Can you point me in the right direction? I'd like to work this problem a bit

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2011
This is the MLV structure:
https://github.com/ilia3101/MLV-App/blob/master/src/mlv/mlv.h

And this is a handling struct from MLVApp:
https://github.com/ilia3101/MLV-App/blob/master/src/mlv/mlv_object.h

In the same folder you find MLV reading functions...
5D3.113 | EOSM.202

tdnelson2

  • New to the forum
  • *
  • Posts: 15
Just FYI, compiled versions of raw2mlv are referenced here: https://www.magiclantern.fm/forum/index.php?topic=24631.0

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 538
  • 200D idiot
Since your game plan is to abuse Amazon Photos to store video, and you already expect to do work after downloading the "photos" to reconstruct the videos *and* since Amazon Photos allows storing raw images with no alterations:

Chunk the video up into pieces and store each piece as b&w data in a series of raw images.  Perfect reproduction of any file.  Easy to automate.

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2011
Just FYI, compiled versions of raw2mlv are referenced here: https://www.magiclantern.fm/forum/index.php?topic=24631.0
raw2mlv.app is not raw2mlv. raw2mlv is part of raw2mlv.app (on macOS only).
5D3.113 | EOSM.202

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7395
raw2mlv.app is not raw2mlv. raw2mlv is part of raw2mlv.app (on macOS only).
...also old, outdated.

tdnelson2

  • New to the forum
  • *
  • Posts: 15
Since your game plan is to abuse Amazon Photos to store video

I wouldn't call it abuse. I'm sure Amazon uses these as raw data for their AI image generator project so really I'm doing them a favor  ;D

Chunk the video up into pieces and store each piece as b&w data in a series of raw images.  Perfect reproduction of any file.  Easy to automate.
Any tips on how I can get started on implementing this? This type of software development is pretty far out of my wheel house

tdnelson2

  • New to the forum
  • *
  • Posts: 15
...also old, outdated.
Where I can I find an up-to-date implementation for mac?

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2011
5D3.113 | EOSM.202

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 538
  • 200D idiot
Quote
Any tips on how I can get started on implementing this? This type of software development is pretty far out of my wheel house

Any file can be considered a long list of numbers.  The image data in a raw file is also a long list of numbers (the pixel data).  Chop up the file you care about into the correct sized pieces, and copy the numbers into the raw (in the correct place for it to be the "image data").  Repeat until you run out of source file.  Name each generated raw file sequentially or whatever.

Somebody always does something like this when there's an "unlimited" storage deal going, and the deal always gets shut down in a year or two (especially when somebody starts using it for storage of unsavory content).  Amazon Photos may last longer since it's not free.

EDIT: in case it's not clear - I am recommending you don't do this.  Just buy some cloud storage, it'll be much less hassle and won't get shut down in the future randomly.

theBilalFakhouri

  • Developer
  • Hero Member
  • *****
  • Posts: 1022
  • UHS-I
Suggestion:
"Fix Bad Pixels" with "Map" options should be turned on automatically when bad pixel map is presented.

@masc
Is this possible to do it?

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2011
Suggestion:
"Fix Bad Pixels" with "Map" options should be turned on automatically when bad pixel map is presented.

@masc
Is this possible to do it?
Working already: create your custom receipt and set it as default receipt in edit menu. So open any MLV, click on "Map", save receipt, and set as default. If no map exists, nothing will happen. If map exists, it will be used.
5D3.113 | EOSM.202

theBilalFakhouri

  • Developer
  • Hero Member
  • *****
  • Posts: 1022
  • UHS-I
Thanks @masc!
Yeah, that works. I didn't know that before.

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 990
Where I can I find an up-to-date implementation for mac?

Sorry there's no up to date implementation. It's on my infintely long to do list. I need to rewrite the whole tool (as well as LibMLV).

tdnelson2

  • New to the forum
  • *
  • Posts: 15
Chop up the file you care about into the correct sized pieces, and copy the numbers into the raw (in the correct place for it to be the "image data").  Repeat until you run out of source file.
How do I find the delimiter between two raw images in a MLV? Is there a command line tool for doing this?

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 538
  • 200D idiot
You've misunderstood; you don't need to know anything about the internals of MLV for this approach.  Just slice it up so each piece is small enough to fit in the image data of a DNG (or any raw format Photos supports).

tdnelson2

  • New to the forum
  • *
  • Posts: 15
Just slice it up so each piece is small enough to fit in the image data of a DNG (or any raw format Photos supports).
Oh, yeah, that would definitely be abusing Amazon Photos. I'm not comfortable doing that

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 538
  • 200D idiot
It's exactly what your current plan is: store the content of a filetype that's not covered, by splitting the data into multiple files that are covered.  You're only "storing images".  Both are equally against the spirit.

tdnelson2

  • New to the forum
  • *
  • Posts: 15
Both are equally against the spirit.
I agree with you but it's a bit more egregious to try to pass non-image data off as image data (IOW data that has an image file extension but doesn't contain image data in the correct format for display). I mean, Amazon would definitely suspend my account

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 538
  • 200D idiot
It would contain image data and would be displayed.  But I'm happy if you don't want to do this.  Just buy some cloud storage, really.  It'll be $10 a month or less and won't be randomly removed in the future like this Photos offer, and you can simply upload MLV without any of this fuss.

orcslayer

  • New to the forum
  • *
  • Posts: 3
Often I get app not responding error when exporting upscaled from MLV app. I dont remember this happening with previous versions. Any idea what might cause it?

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2011
"Not responding" comes from Windows, as soon as MLVApp is waiting for ffmpeg to encode the current job - so nothing bad. Your export settings might cause this, if you e.g. use smooth aliasing.
5D3.113 | EOSM.202

ricardopt

  • Member
  • ***
  • Posts: 142
You can implement F log yourself. Select rec2020 primaries(F log uses them), then write the log curve formula forums as transfer function (you’ll need to google it to find the formula).

Hi ilia3101, ive looked/searched online but couldnt find any info about it. Do you know any specialized forum where i could find or ask for that info, almost all results point to logarithimic curves but thas nothing to do with video, the only result i could find was a pdf on the fujifilm website but cant make "head or tails" on how to write that formula, can you help?

https://dl.fujifilm-x.com/support/lut/F-Log_DataSheet_E_Ver.1.0.pdf

Thanks

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 990
That's the right document. I've seen it before, but thanks for digging it up.

I've translated the scene linear to F log curve in to MLV App's expression format. Here you go:

Code: [Select]
(x < 0.00089) ? (8.735631 * x + 0.092864) : (0.344676 * log10(0.555556 * x + 0.009468) + 0.790453)
It uses the ternary operator syntax, it's equivalent to an if statement. I guess that's a little confusing.

Just paste that in to the transfer function and select Rec2020 for Gamut. And you should uncheck 'allow creative adjustments'.

Should look like this:



@masc Could we add this as one of the presets?


EDIT:

Also I recommend adjusting exposure *before* setting the log profile! It's impossible to judge exposure when viewing log (you're literally not meant to look at log encodings, they're encodings and not meant to be an image!!!).

Please export in 10 bit with this as well.


EDIT 2:

I still believe MLV App with AgX and one of the film filters is the best workflow out there for colour and tonality ;)

Big claim I will stand by.