Hi, anyone interested in Blender supporting ProRes Video Codec via ffmpeg?
I have commited a patch to enable it - but sergej sharbin isn’t convinced to allow it:
“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?”
This codec is basicly designed to speedup the workflow (realtime preview) during video editing. I’m no expert on Blender coding but wont that require a lot more work then including the codec via ffmpeg. Does blender even generate a proxy/temp file of the videos in the VSE?
Does allow Apple Inc. for enabling ProRes codec in blender or another program? I think ProRes codec is closed format? Or it is not need license for it? In windows you can`t write in ProRes codec, quick time not allowing it.
ProRes 422 is essentially JPEG2000 (i.e. 10 bit color) except JPEG2000 uses wavelet technology. Overall ProRes is not that important to me even though I use it everyday on OSX. It makes big files and distorts the RED colors in your image. I have never got ProRes to work on Windows, I’m not sure about Linux. For logo and motion work I always had to ditch ProRes because it changes the brand colors on output.
and there don’t appear the ProRes codec.
In that list to the left of each codec you have “D” and “E” characters. D means it is decoder and E that is is encoder. If you look to some codec and it is only D that means there are legal issues. Decoding is open always, but encoding is what must be resolved legally.
But in Linux (ffmpeg version 0.8.6) I don’t see such a codec “ProRes”.
I am curious what advantage has this format versus other formats? Is because it permits 4K size or because it is quicker reading?
But seems Blender would have to pay money to Apple to enable the codec (all the people would be using blender then to convert their movies to ProRes and I don’t think Apple wants to be so altruistic…
ProRes is proprietary and was originally developed specifically for use in their Finat Cut Pro software.
It is only possible to encode to ProRes on mac systems, others are able to decode only. In my experience since it’s a lossy codec anyway you’re better off using a high bit rate .mp4 instead. This way you’re able to use it cross platform without issues, otherwise it’s just a pain. Of course if you want prestine images or an alpha channel it’s better to use animation codec or image sequences.
As for the possible legal issues, I hear Apple has been known to file a law suit or two:)
MP4 is MUCH more CPU-intesive to encode/decode. In fact, that is pretty much the entire reason for ProRes existing in the first place.
For those not familiar with the format, ProRes is an intermediate editing codec. The idea is you take the various kinds of footage you got when shooting (DPX sequences, H.264, RED, whatever) and convert them all into ProRes, which Final Cut will happily eat (even the old and grouchy FCP 7). You can then edit and do your thing, then encode from this into whatever delivery formats you want. (it also makes a nice format for a “printmaster file” if you need one of those). While it’s lossy, it is designed to be “visually transparent”, meaning the loss from 1-2 runs through the encoder should not be visible. In my experience, it lives up to this. It comes in a few different flavors. The basic 422 version, a “HQ” version which is 422 with extra bit rate, a “proxy” version meant for offline editing, and a 4444 version for alpha channels and color correction.
FFMPEG supports ProRes encode/decode on all platforms nowadays, it is not using Apple’s actual codec, but rather a home-grown implementation. This would be what Blender uses. The legality of this is of course somewhat dubious and varies a lot by country. I don’t think it’s actually any worse than bundling x264 though, which I believe Blender already does. This might have to do with BF being located in the Netherlands, which is towards the lax side on software patents and the like.
ProRes 4444 is meant as a sort of successor to the animation codec and is better in pretty much every way except encode/decode support.
Would being able to export ProRes out of the VSE/compositor be useful? IMO, yes. Sure, you can always render to a PNG or EXR sequence and encode it with something else (Compressor, etc), but being able to do it in one shot is nice and saves a lot of disk space.
Oh, and as a closing note, the purpose and legal issues around ProRes are pretty much identical to DNxHD, which Blender already supports. (ProRes is basically the Final Cut version of DNxHD). Considering Blender supports DNxHD and QT Animation, it seems rather silly to not support ProRes when it can be done just as easily.
Whenever there is a discussion of the benefits of ProRes vs. MPEG-4, the ProRes advocates usually claim that MPEG-4 is optimized for aquisition and distribution but not suitable for frame-accurate editing. They are wrong.
Frame-accurate editing works best with video encoded as intra-frames only, and that’s what ProRes does by default. MPEG-4 video on the other hand frequently uses predictive (P and B) frames to increase compression efficiency. The problem with predictive frames is that they all require an intra-frame for reference. An I-frame and all the predictive frames that depend on it are called a GOP (group of pictures). In order to skip to a particular frame of the video, the computer has to first find the start of the GOP and then decode the intermediate predictive frames leading up to the frame to be displayed. Also, non-destructive cutting is only possible at GOP boundaries, otherwise new I-frames have to be encoded and inserted. These are the things that can make MPEG-4 video editing painfully slow – if you work with material encoded for distribution.
However, the use of predictive frames in MPEG-4 video is entirely optional. If you encode with a maximum GOP length of 1, your video will consist of I-frames only, and you won’t have any trouble editing it. The problem is, whenever something is optional, people need to know what they are doing.
There may be valid reasons to support ProRes, but speed is not one of them.