logo       

Encoding mpeg2 for DVB broadcast: msg#00288

video.ffmpeg.user

Subject: Encoding mpeg2 for DVB broadcast

I have tried to play ffmpeg-encoded mpeg2 on a normal
DVB-C set top box several times and here are some notes:

Transport stream produced by ffmpeg is not very compatible with
DVB broadcasting equipment nor set top boxes.

A comment mpegtsenc.c admits that pcr is set wrong.
If I'm not mistaken, the situation gets a bit better if instead of
pcr = pts;
there would be something like
pcr = pts - X;
where X is somewhere between 10000 and 90000. It doesn't make sense to say
that this should be presented immediately. It seems to help if we give the
set top box some time to decode the current frame.

Even with this (probably not very good) fix the video doesn't always play
smoothly on set top boxes. I've also tried with xine and a dvb card on the
same cable and it plays perfectly.

Bitrate of the mpeg seems to affect how well set top boxes play it.
High bitrates such as 10Mbps seem to play much better than those under
5Mbps. When encoding a still or almost still picture, set top boxes will
have problems with photographs, but not with an almost blank image.

Enconding only I-frames helps somewhat.

My guess is that for some reason ffmpeg doesn't generate set top box
compatible mpeg and/or TS when encoded size of I-frames are large and size of
other frames are small. Could it be so that ffmpeg sometimes generates higher
bitrate than the box can handle (15Mbps) for a very short period of time?
At least there is frequently about 13Mbps between 2 pcrs when average
bitrate is somewhere below 9M.

Unfortunately the debug messages of set top box I have doesn't tell me what
is wrong. It seems broken mpeg, pcr problems, etc are not reported.

Any ideas, which options or changes would help improve set top box
compatibility?


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise