[Libav-user] ProRes 444(4) with FFmpeg API (libavcodec)?

Philip Schneider pjschneider at earthlink.net
Sun Apr 19 22:57:37 CEST 2015

Greetings -

I have some code that converts a sequence of still images (animation frames) to H.264, using either the libx264 or libopenh264 library (depending on how I build libavcodec, etc). 

Now, I’d like to extend this to encoding ProRes format, both the 422 and 444(4) variants. I can set the codec ID to AV_CODEC_ID_PRORES and the pixel format to AV_PIX_FMT_YUV422P10LE, and the resulting movie is created with ProRes 4:2:2 format. Yay!

But, if instead I choose the AV_PIX_FMT_YUV444P10LE pixel format, I get the “Specified pixel format is invalid or not supported” error at runtime. From what I’ve read, this indicates that my FFmpeg libavcodec is using either “prores” or “prores_aw”, rather than “prores_ks”, the latter supposedly supporting 4444 (or 444?)

While it seems easy to specify which ProRes encoder to use in the ffmpeg command-line program, I don’t know how to do this via the libavcodec API? Do I need to compile it in some particular way (seems not…)? Or, is this something I have to specify with the API, in addition to setting the codec ID to AV_CODEC_ID_PRORES?

In short, how do I use/specify the “prores_ks” encoder with the API?


More information about the Libav-user mailing list