[FFmpeg-user] Video streams in MPEG-TS missing bitrate information

Moritz Barsnick barsnick at gmx.net
Fri Oct 23 14:44:37 CEST 2015


On Fri, Oct 23, 2015 at 13:25:05 +0200, André Pankratz wrote:
> Maybe the issue is related to this ticket: https://trac.ffmpeg.org/ticket/3392

I think this "issue" is that neither MPEG-TS nor Matroska provide a
header with per-stream nominal bitrate. mediainfo is parsing x264's
custom SEI (i.e. some propietary info) from the H.264 stream, which
does contain this bitrate info:

barsnick at sunshine:~ > strings < ~/tmp/ffmpeg-h264rate-test.ts | grep -A3 x264
x264 - core 146 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.orgG
/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 faG
st_pskip=1 chroma_qp_offset=4 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 dG
irect=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=1000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4G
 vbv_maxrate=1000 vbv_bufsize=250 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00

Note the "bitrate=1000". (mediainfo is obviously not calculating the
bitrate from the overall container bitrate and the other streams,
because that number - the actual average bitrate, was much smaller in
my case.)

I think it's okay that ffmpeg refuses to provide information from the
custom SEI.

Furthermore, this brings us to this point: 
> To create a valid MPEG-DASH stream later on, I need the bitrate of
> each video stream.

Parse that info out using "strings" and "grep" or using mediainfo, or
better, remember it when creating the stream/the MPEG-TS. It's just
available in your output stream by chance, because you happened to use
libx264.

Moritz


More information about the ffmpeg-user mailing list