[FFmpeg-user] How to set H264 profile-level-id to 42E00C?

xiong xu xu.xiong.cn at gmail.com
Sun Aug 23 06:17:33 CEST 2015

Hi, Moritz

2015-08-22 20:24 GMT+08:00 Moritz Barsnick <barsnick at gmx.net>:
> On Sat, Aug 22, 2015 at 19:25:20 +0800, xiong xu wrote:
>> [libx264 @ 0x30ddfe0] bad option 'profile-level-id': '42E00C'
> According to the x264 docs, that's not even an option (lib)x264
> provides, so how do expect to set it? What are you trying to achieve,
> and why?

I try to set up a video call between a raspberry camera and a SIP terminal.
The SDP offer from SIP terminal is:
m=video 49224 RTP/AVP 122 123 34
a=rtpmap:122 H264/90000
a=fmtp:122 profile-level-id=64E00C;max-br=384
a=rtpmap:123 H264/90000
a=fmtp:123 profile-level-id=42E00C;max-br=384
a=fmtp:34 CIF=2 QCIF=2 MaxBR=2560

So I want to generate the H264 RTP stream with the right params.

> I believe the profile level ID reflects certain encoding options and
> should be set by the encoder to indicate them:
> http://stackoverflow.com/a/22970025/3974309
> If you only know that number (where do you have it from?) and want to
> encode for it, I am guessing that you will have to set the
> corresponding encoder options:
> profile_idc = 0x42 => "-profile baseline"
> profile-iop = 0xE0 => I have no idea how to set the constraints. E0 probably means: "constrained intra baseline".
> level-idc   = 0x0C => "-level 1.2"
> BTW, according to this:
> https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels
> the maximum frame rate for level 1.2 is 20 fps, your source is 30.

I tried several profile, for example:
pi at raspberrypi ~ $ ffmpeg -f video4linux2 -i /dev/video0 -vcodec h264
-b 90000 -payload_type 122 -s 320*240 -r 20 -profile:v baseline -level
1.2 -f rtp  rtp://

But the video still not show on the SIP terminal.


More information about the ffmpeg-user mailing list