Page MenuHome

Enable ffmpeg ProRes codec
Closed, ArchivedPublic

Description

Simple 1 Line patch. Enables ProRes codec in ffmpeg (MPEG in Blender interface).

To test it, set File Format to MPEG
Set Format to Quicktime,
set Codec to ProRes


Since ffmpeg in Blender is 0.10 and current ffmpeg version is 0.12 - are there any plans of updating ffmpeg in Blender?

It would allow to use the better ffpeg prores_kostya encoder. Anyway, if it gets updated - i will enable support for it.

Details

Type
Patch

Event Timeline

It doesn't seem to be a full patch which enables ProRes support.

It does add ProRes as Codec - you can select it in Blender, and it renders.. Quicktime says it's ProRes...

so i guess it works?

The patch only contains changes to rna_scene.c with new enum item for CODEC_ID_PRORES. I could not see such a codec id constant in our code, so bet the patch wouldn't even compile. Perhaps you forgot to include some more files to the patch.

Further, we really prefer to stick to support of only commonly used interchange video formats to prevent settings from being too much cluttered. So the question here would also be how much commonly used this format for interchange data?

as far as i understand the CODEC_ID_PRORES is supported by avcodec.h in ffmpeg. (don't understand too much C myself ;-)
That's why it works as it is. Double-checked again. It compiles and the rendered Video is ProRes 422.

ProRes is a highly common format and i have seen a couple of people that wants it in Blender! Thanks.

Hi Sergej and others,

i've opened a Thread on BA on this:
http://blenderartists.org/forum/showthread.php?294762-ProRes-support-Need-your-voice!

There seems to be some legal issue with ffmpeg ProRes on Windows/Linux. So don't apply it atm.
I will need to look into this first. If anyone knows more about this please let me know.

Two things:

1. CODEC_ID_* in fact goes from FFmpeg header, not a blender one. Crazy, but that's how it works. So guess patch is in fact doing what it's supposed to do.
2. Tested here on linux and FFmpeg configuration told "License: GPL version 2 or later" and ProRes seems to be enabled. So don't think it's big issue?

And as for update -- we're using FFmpeg ~1.0 on linux/osx. Windows really needs to be updated but that's damn heck of not trivial task. Will look into it later.

Yes, it does what it's supposed to do ;-) I was actually astonished myself ;-)

ffmpeg Version 1.2 would be great, has a better ProRes Codec, but i can see it's difficult thing to do.

The legal issue is not ffmpeg, but the way they ffmpeg got/does this ProRes encoding. quote: ". The group behind FFMBC have reverse-engineered the codec themselves, which places them at risk of legal action (particularly in the USA where software patents apply)"

I don't really think it's a big issue - but you never know... I would like to read some more into it before putting Blender at risk ;-)

What i'm thinking of as well - since it's perfectly legal on osx - Do you see any issue on enabling it only on osx? Blender "politics" wise only one platform) and coding?

I would rather consult Ton about such a patch then.

Unfortunately, i'm leaving to a science conference in neighbor city here for the rest of the week, so not sure how much time i'll be able to spend on blender. So please be patient with the info about this patch..

i've looked into this "legal issue" thing. Not much of a concern imo. Basically the situation is the same as the already enabled H.264 and MPEG-4. the http://www.ffmpeg.org/legal.html
says: "A lot of legal questions surrounding patents arise when discussing multimedia technology. This mini-FAQ attempts to address these issues. Note that much of this discussion is based on precedent, or what has happened in the past under similar circumstances. Very little consideration is given to what could happen. If you use your imagination, you can visualize any dire scenario and cease doing any productive work.

Q: Does FFmpeg use patented algorithms?
A: We do not know, we are not lawyers so we are not qualified to answer this. Also we have never read patents to implement any part of FFmpeg, so even if we were qualified we could not answer it as we do not know what is patented. Furthermore the sheer number of software patents makes it impossible to read them all so no one (lawyer or not) could answer such a question with a definite no, those who do lie. What we do know is that various standards FFmpeg supports contain vague hints that any conforming implementation might be subject to some patent rights in some jurisdictions, examples for such statements are:
For H.264:

ITU draws attention to the possibility that the practice or implementation of this Recommendation may involve the use of a claimed Intellectual Property Right. ITU takes no position concerning the evidence, validity or applicability of claimed Intellectual Property Rights, whether asserted by ITU members or others outside of the Recommendation development process.

And for MPEG-4:

The user's attention is called to the possibility that, for some of the processes specified in this part of ISO/IEC 14496, conformance with this specification may require use of an invention covered by patent rights. By publication of this part of ISO/IEC 14496, no position is taken with respect to the validity of this claim or of any patent rights in connection therewith.

Q: Is it safe to use such patented algorithms?
A: Patent laws vary wildly between jurisdictions, and in many countries patents on algorithms are not recognized. Plus the use of patents to prevent the usage of a format or codec on a specific operating system or together with specific other software might violate antitrust laws. So whether you are safe or not depends on where you live and how judges interpret the law in your jurisdiction.

Q: Bottom line: Should I be worried about patent issues if I use FFmpeg?
A: Are you a private user working with FFmpeg for your own personal purposes? If so, there is remarkably little reason to be concerned. Are you using FFmpeg in a commercial software product? Read on to the next question...

Q: Is it perfectly alright to incorporate the whole FFmpeg core into my own commercial product?
A: You might have a problem here. There have been cases where companies have used FFmpeg in their products. These companies found out that once you start trying to make money from patented technologies, the owners of the patents will come after their licensing fees. Notably, MPEG LA is vigilant and diligent about collecting for MPEG-related technologies."

further i have not found a single case where apple has sued/infringed somebody about prores or codecs. So i think it is safe to enable. Only question for me is if it works on windows with the older ffmpeg?

I think there are enough people that would welcome ProRes support.

See BA Thread:
http://blenderartists.org/forum/showthread.php?294762-ProRes-support-Need-your-voice!

Hey, thanks for the information. I'll re-read it more careful later this weekend. Will also look into updating FFmpeg libs on win -- it became a bit of out of date which is not good anyway. And i've got other stuff to be enabled there actually.

Pardon for the delays -- bug tracker keeps us busy..

nothing happening here anymore? I still would like to have prores though...

Hi,

Is there any movement on this one? I've done some work for my brother (a professional video editor) and he has asked for the output to be in PRO RES LT... the change mentioned seems pretty minor - is there any reason why this can't be committed?

PRO RES support seems like a step towards taking Blender to a level of maturity where it will be used by artists who want to use it in a professional environmnet.

  • andrew

I'm still not sure if it is a good idea to enable this...

"Guys, the problem is not enabling ProRES, but distributing it. Apple is quite diligent to suing anyone distributing their patented codecs in the US, even if the software producing it is not apple property (Apple vs Sorenson comes to my mind, maybe there are others). Even if BF is not a US based organization, lawyers can be very creative if they got some money, and we already know that Apple has plenty of it.

Probably, is one of these cases that some devs should be happy not to be NorthAmerican citizen."

So i would suggest to let this one go - to not implement this Patch into Trunk.

Sergey Sharybin (sergey) closed this task as Archived.May 28 2014, 11:55 AM

@Sebastian Röthlisberger (bashi), i would just close the task then. Guess we've got quite a few of interchange formats in blender which would satisfy most of pipelines already.

The idea is to support minimal subset of really crucial interchange codecs and don't worry about others. Codecs are such a mess really, with all this possible corruptions and so.. Limiting number of codecs we support would free some time for implementing fancier features :)

Sergey, it's closing the stable door after the horse has bolted.
To be consistent with disallowing pro res support you might as well remove ffmpeg from blender because of the legal grey areas in most of the codecs.

And pro res would be extremely useful to many.

As mentioned in my previous comment, legal grey areas is not the main reason why we don't like more codecs being considered officially supported. If you enable some codec, you need to make sure blender renders to it correct and it could be picked by another software. And FFmpeg is not the most stable library in this regard -- upgrading it might solve some bugs and introduce new one. Dealing with this is rather really time consuming for blender developers and even investigating bugs caused by regressions in FFmpeg keeps us from implementing really useful things.

So as mentioned above, officially we only support minimal set of stable interchange format codecs, and even the current state of the codecs and settings in blender is to be revisited from scratch.