[FFmpeg-user] Setting the "profile compatibility" value

Carl Eugen Hoyos cehoyos at ag.or.at
Wed Oct 28 07:50:56 CET 2015

Jim Kang <jim_kang <at> harvard.edu> writes:

> The problem is I need my video to be encoded such that 
> it conforms to the MIME codec string 
> 'video/mp4; codecs="avc1.*42E01E*, mp4a.40.2"'.

Could you explain why?
If a server requires this, it seems broken to me but 
maybe I am missing something?

> But unsurprisingly since I did nothing to set it, the 
> profile compatibility is not what I want:

> I want that *c0* to be an *e0*. How can I set that?

This has nothing to do with FFmpeg (it sets the field 
in the mov header to the same value as in the h264 
stream) but x264 does not support setting it:
sps->b_constraint_set0  = sps->i_profile_idc == PROFILE_BASELINE;
/* x264 doesn't support the features that are in Baseline and not in Main,
 * namely arbitrary_slice_order and slice_groups. */
sps->b_constraint_set1  = sps->i_profile_idc <= PROFILE_MAIN;
/* Never set constraint_set2, it is not necessary and not used in real world. */
sps->b_constraint_set2  = 0;

> ffmpeg version 2.7.1

While it makes no difference in your case, the 
idea is of course to test current FFmpeg git 
head before reporting an issue here.

Carl Eugen

More information about the ffmpeg-user mailing list