Author Topic: The MLV format  (Read 23638 times)

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
The MLV format
« on: August 08, 2019, 12:09:00 AM »
Some time ago I remember hearing that the MLV format is getting extended with more features in Google summer of code for Apertus cine camera project. Did that ever happen?

A couple more questions:

1. Would developers consider adding new blocks to the official MLV format?

2. Where can I see most up to date version of mlv.h?

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #1 on: August 16, 2019, 03:42:11 PM »
Ok never mind about the new blocks idea, raw_info has the matrix field I wanted. Though a "TEXT" block seems like a nice idea to me.

Anyway, I found mlv_structures.h on MLV post, and it is under LGPL (what I was hoping to find). However it does not contain raw_info structure, is that because raw_info is from CHDK and is full GPL? (I think I heard about this ages ago)

I am thinking there needs to be an mlv library (somthing like "libmlv"), that developers can use to add MLV support to their propreitary software. It would need to be licensed with LGPL or MIT, and written from scratch. But the GPL raw_info block is currently the main concern. Could it be done using byte offsets to access fields? - someone else calculates the offsets and communicates them to me.

I genuinely want to spread MLV as much as possible. No, I am not planning to sell any propreitary software with MLV support. I just want MLV to be a more widespread raw video format, I think it is perfect suited for that.

But first, I want to make a raw to MLV converter that converts other raw video formats or photo sequences to MLVs, so I can use MLV App with them. No licensing issues here as it will simply be GPL.


Anyone have any thought or advice about this?? About anything... The licensing issues, MLV for other cameras... bad or good ideas?

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #2 on: August 18, 2019, 01:27:07 AM »
Ok let me condense the last verbal spaghetti post down to a couple of questions:

1. Is the MLV format suitable to use as a container for other raw video cameras' footage? (thinking of making a converter)
2. Would magic lantern community support the idea of a library (something like "libmlv") being created, with a license that does allow it to be used in proprietary software

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7702
Re: The MLV format
« Reply #3 on: August 18, 2019, 08:53:59 AM »
But first, I want to make a raw to MLV converter that converts other raw video formats or photo sequences to MLVs, so I can use MLV App with them.
How cool is that. I guess dng or tiff into mlv would be really convenient here. Or even jpg h264 maybe?

The library also seems like a good idea but I have little experience i this field. Maybe contact g3gg0 and a1ex directly too? Would be nice to see resolve and premiere implementing mlv support ;).

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #4 on: August 18, 2019, 05:17:44 PM »
How cool is that. I guess dng or tiff into mlv would be really convenient here. Or even jpg h264 maybe?
I saw in MLV headers that it can have h.264, but IDK if it has ever been tested or put to use (MLV App certainly doesn't handle h264 MLVs :D). DNG or cr2 would be easiest to convert to MLV though, especially if it is one of the already supported ML cameras, and masc found some nice libraries we could use.

The library also seems like a good idea but I have little experience i this field. Maybe contact g3gg0 and a1ex directly too?
Yeah I guess I should reach out to them. I'm just not sure about the licensing, I remember loads of something about Martin Herring's Footage app (Footage was completely closed, this library WILL be open source, but I would want it to be usable in proprietary software). As MLV headers are LGPL it should techincally be allowed... as long as raw_info can be dealt with, maybe using byte offsets

Would be nice to see resolve and premiere implementing mlv support ;).
It would be so satisfying if any of the industry giants were to implement MLV support. Maybe this is wishful thinking though :-\

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #5 on: August 21, 2019, 05:45:03 PM »
Ok I found this https://github.com/apertus-open-source-cinema/opencine/blob/master/Source/OCcore/Image/mlv_structure_mod.h

It says it's LGPL, but contains the raw_info structure. Is that a mistake on their part?

Also I will forget the library idea for a bit, as I have heard from Apertus that their GSoC student will soon be finished with MLV format improvements... don't wanna make something already obsolete.

g3gg0

  • Developer
  • Hero Member
  • *****
  • Posts: 3190
Re: The MLV format
« Reply #6 on: August 25, 2019, 07:51:26 PM »
back from holiday,

anything i could help with?

It says it's LGPL, but contains the raw_info structure. Is that a mistake on their part?

IIRC we aligned that that little part of the structure is fine to made LGPL to get the exchange format accepted.
only if even professional tools are allowed to use the structures, you can undercut commercial products with open source mindset ;)
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: paypal@g3gg0.de
ONLY donate for things we have done, not for things you expect!

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #7 on: August 26, 2019, 02:49:27 PM »
back from holiday,

anything i could help with?

I'll probably have something soon :)

IIRC we aligned that that little part of the structure is fine to made LGPL to get the exchange format accepted.

Glad to hear

only if even professional tools are allowed to use the structures, you can undercut commercial products with open source mindset ;)

Yep, always fun to do that :D

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 3413
  • 5D3 | M1 | 7D | 70D | SL1 | M2 | 50D
The MLV format
« Reply #8 on: September 07, 2019, 08:59:09 AM »
Following this thread as it seems an important topic to keep up with. Fun facts. Thanks guys!
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

extremelypoorfilmaker

  • Senior
  • ****
  • Posts: 255
Re: The MLV format
« Reply #9 on: September 08, 2019, 06:44:24 PM »
Following :)

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #10 on: October 01, 2019, 08:13:42 PM »
The new(ish) RAWC block does not appear to be in the official mlv_structure.h LGPL file

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #11 on: October 11, 2019, 10:12:59 PM »

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 2104
Re: The MLV format
« Reply #12 on: October 11, 2019, 10:15:36 PM »
Wicked! What have you done?  ;D
5D3.113 | EOSM.202

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #13 on: October 11, 2019, 10:24:01 PM »
Wicked! What have you done?  ;D

Almost ready to release, a tool for converting raw photo sequences to MLV. Should be useful for timelapses, or converting BlackMagic CDNG footage to MLV.

This will work much better once a colour matrix block finally gets added to the MLV format. It is currently relying on RAWI.raw_info.color_matrix1 and this commit.


@a1ex @g3gg0 can I call a new MLV reading/writing library "libMLV"?

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7702
Re: The MLV format
« Reply #14 on: October 12, 2019, 05:17:43 AM »
Almost ready to release, a tool for converting raw photo sequences to MLV. Should be useful for timelapses, or converting BlackMagic CDNG footage to MLV.

This will work much better once a colour matrix block finally gets added to the MLV format. It is currently relying on RAWI.raw_info.color_matrix1 and this commit.


@a1ex @g3gg0 can I call a new MLV reading/writing library "libMLV"?
Wow!

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 3413
  • 5D3 | M1 | 7D | 70D | SL1 | M2 | 50D
The MLV format
« Reply #15 on: October 12, 2019, 06:31:40 AM »
Indeed that’s wicked @Ilia3101! 8)
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: The MLV format
« Reply #16 on: October 12, 2019, 08:11:35 AM »
@a1ex @g3gg0 can I call a new MLV reading/writing library "libMLV"?

Green light from my side.

g3gg0

  • Developer
  • Hero Member
  • *****
  • Posts: 3190
Re: The MLV format
« Reply #17 on: October 12, 2019, 09:49:43 AM »
@a1ex @g3gg0 can I call a new MLV reading/writing library "libMLV"?

absolutely.
thanks!
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: paypal@g3gg0.de
ONLY donate for things we have done, not for things you expect!

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Re: The MLV format
« Reply #18 on: October 12, 2019, 11:20:06 AM »
Almost ready to release, a tool for converting raw photo sequences to MLV. Should be useful for timelapses, or converting BlackMagic CDNG footage to MLV.

Ilia3101,

What you are planning to do is revolutionary!  Many people have already sensed the taste of the RAW-video magic and will not go back, no matter what.  Many of them, tired of waiting for more capable and stable ML builds for their Canon cameras, bought the BMPCC4k to continue filming in RAW.  Others are waiting for new RAW-video capable cameras to come out on the market.  All these people look forward to using MLVApp for post processing their RAW videos.  This is where your converter would be extremely useful! In my opinion, MLVApp is better, more intuitive and easier to work with than all other NLE available and is also free.   Personally, when grading my most important videos, I prefer it to DaVinci Resolve despite MLVApp's low render speeds.

I keep my thumbs pressed for you to succeed!

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #19 on: October 12, 2019, 03:36:31 PM »
@a1ex @g3gg0 Thanks! glad you guys don't mind me taking the name.

Can I ignore MLV_VIDEO_CLASS_H264/MLV_VIDEO_CLASS_JPEG/MLV_VIDEO_CLASS_YUV? I think they have never been implemented is that right?



What you are planning to do is revolutionary!  Many people have already sensed the taste of the RAW-video magic and will not go back, no matter what.  Many of them, tired of waiting for more capable and stable ML builds for their Canon cameras, bought the BMPCC4k to continue filming in RAW.

Yes I'd really like to create a solution for converting all camera raw formats to MLV, including red/arri/blackmagic if possible.

I have done some research on video raw formats:
  • BRAW: Blackmagic claims BRAW is open in some way, but I don't see how that is true. I downloaded the SDK and it's completely propreitary, also I can't find any traces of a open specificaiton for it.
  • Arriraw: is an "open format", but you have to buy a 175 euro PDF to see how it works. Or use their propreitary SDK. But it probably won't be too hard to figure out how it works, as it is uncompressed.
  • Red raw: 100% propreitary, but there is an SDK for it (also propreitary, but maybe it's a way of getting it out of that format).

So MLV is really the best option, it is truly open, actually free, simple enough to be understood just by looking at mlv.h, and has many original implementations (ML itself, mlv_dump, mlvproducer, mlv app, fastrawviewer, martin hering's app ...)

Might have something later today to release. The writing functionality of libMLV is coming first. Reading a little bit later.

g3gg0

  • Developer
  • Hero Member
  • *****
  • Posts: 3190
Re: The MLV format
« Reply #20 on: October 12, 2019, 03:54:45 PM »
Can I ignore MLV_VIDEO_CLASS_H264/MLV_VIDEO_CLASS_JPEG/MLV_VIDEO_CLASS_YUV? I think they have never been implemented is that right?

you should honor the flags, i.e. returning smth like LIBMLV_ERR_UNSUPPORTED_ENCODING or similar
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: paypal@g3gg0.de
ONLY donate for things we have done, not for things you expect!

Luther

  • Senior
  • ****
  • Posts: 323
Re: The MLV format
« Reply #21 on: October 12, 2019, 03:55:23 PM »
@Ilia3101 will you release under permissive license? If you release under GPL is think MLV will not be adopted by some companies. If we want global support for MLV, the library should be permissive (I suggest ISC license).

ilia3101

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
Re: The MLV format
« Reply #22 on: October 12, 2019, 03:57:49 PM »
you should honor the flags, i.e. returning smth like LIBMLV_ERR_UNSUPPORTED_ENCODING or similar

Okay will do!

@Ilia3101 will you release under permissive license? If you release under GPL is think MLV will not be adopted by some companies. If we want global support for MLV, the library should be permissive (I suggest ISC license).

Yes, I think I will release all new libMLV library code with MIT. I am making it completely original.

Do you think MIT is good? If there is a better option that companies like more, I can use that, just let me know. Edit: just realised you suggested ISC. What is the advantage over MIT?

I thought about LGPL, as it's fully permissive in how it can be used, and mlv_structure.h file is LGPL anyway, but for some reason companies seem to be scared even of LGPL.

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 3413
  • 5D3 | M1 | 7D | 70D | SL1 | M2 | 50D
Re: The MLV format
« Reply #23 on: October 12, 2019, 07:41:26 PM »
Do you think MIT is good? If there is a better option that companies like more, I can use that, just let me know. Edit: just realised you suggested ISC. What is the advantage over MIT?

I second this too re: advantage w ISC over MIT. Great call!

Regardless just like those mentioned... this is beyond revolutionary and can’t describe how much MLV_App has pried me away from major NLE’s (for good reasons) in despite of the rendering times and yet that’s the beauty of open source!
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

garry23

  • Contributor
  • Hero Member
  • *****
  • Posts: 2218
Re: The MLV format
« Reply #24 on: October 12, 2019, 07:43:05 PM »
At the risk of making a fool of myself I thought I would flag an interest here, ie as a non video guy.

The use case for me is taking a series of .cr2 images to simulate a long exposure, convert them onto a MLV file and process that file in MLVapp, ie to simulate a LE exposure longer than the ND or base image I can take.