GNOME Bugzilla – Bug 556963
h264 playback choppy on most (but not all) files
Last modified: 2010-11-23 05:26:40 UTC
Playback is consistently choppy for about 80% of h264 streams. The exact symptoms is that it plays a couple of frames, then pauses for 100-200ms or thereabouts, then plays a couple of frames again. Sound playback is unaffected, and both CPU cores on my machine are keeping cool (<35%, including a stray flash process somewhere in the browser, eating up about 20%). Some h264 streams, however, play just fine, again with absolutely no CPU trouble. Mplayer plays all of the files fine. Below I include two samples, a jerky one and a smooth one, as video-only matroska files, cut down to 1MB. Also attached are logs from the playback. One interesting thing I noticed from the logs is this: mathrick@hatsumi:/tmp$ cat jerky.log | grep "default gsttypefindhelper.c:93:helper_find_peek" | wc -l 80985 mathrick@hatsumi:/tmp$ cat smooth.log | grep "default gsttypefindhelper.c:93:helper_find_peek" | wc -l 4754 For some reason, the majority of _playback_ time in the jerky sample is spent calling helper_find_peek; this continues and doesn't stop until the pipeline is finally disassembled by EOS. Filing under "don't know" initially, since I honestly don't know which component is to blame.
Bah, Bugzilla is yelling at me for attaching large files. Here's a link instead: http://sei.meidokon.net/files/gst/ You may notice that there is slight jumpiness in the smooth sample, that is actually bad telecine removal on framerate conversion and is the fault of the original encoder. The actual playback is fine.
Maciej, could you try again with the latest gst-ffmpeg pre-release ?
Maciej: Ping
I am seeing the same behaviour with latest gst-ffmpeg (from git) release too. I am playing some raw mpeg stream and after few minutes video becomes jerky (sound is still playing good). Also I have been trying to use ffdec_h264 to decode dvb-t live stream. I have spotted that when I am playing such stream and do something that lags PC, then after a while I begin too see sideshow (one frame every second). The video never catches up again. For playing saved raw mpegts stream I have been using this pipeline: gst-launch-0.10 -m filesrc location=17.01.1100.ts ! mpegtsdemux name=demux0 demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-sizeime=0 ! ffdec_h264 ! xvimagesink demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! flump3dec ! pulsesink For playing dvb-t stream I have been using this pipeline: gst-launch-0.10 -m dvbsrc pids=201:202:204 adapter=0 ! mpegtsdemux name=demux0 demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! ffdec_h264 ! xvimagesink sync=false demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! flump3dec ! pulsesink I am attaching gst-lanuch output for dvb-t playback.
Created attachment 153069 [details] gst-lanuch dvb-t output
(In reply to comment #4) > I am seeing the same behaviour with latest gst-ffmpeg (from git) release too. I > am playing some raw mpeg stream and after few minutes video becomes jerky > (sound is still playing good). Also I have been trying to use ffdec_h264 to > decode dvb-t live stream. I have spotted that when I am playing such stream and > do something that lags PC, then after a while I begin too see sideshow (one > frame every second). The video never catches up again. > > For playing saved raw mpegts stream I have been using this pipeline: > > gst-launch-0.10 -m filesrc location=17.01.1100.ts ! mpegtsdemux name=demux0 > demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-sizeime=0 ! ffdec_h264 > ! xvimagesink demux0. ! queue max-size-bytes=0 max-size-buffers=0 > max-size-time=0 ! flump3dec ! pulsesink > > For playing dvb-t stream I have been using this pipeline: > > gst-launch-0.10 -m dvbsrc pids=201:202:204 adapter=0 ! mpegtsdemux name=demux0 > demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! > ffdec_h264 ! xvimagesink sync=false demux0. ! queue max-size-bytes=0 > max-size-buffers=0 max-size-time=0 ! flump3dec ! pulsesink > > I am attaching gst-lanuch output for dvb-t playback. (In reply to comment #4) > I am seeing the same behaviour with latest gst-ffmpeg (from git) release too. I > am playing some raw mpeg stream and after few minutes video becomes jerky > (sound is still playing good). Also I have been trying to use ffdec_h264 to > decode dvb-t live stream. I have spotted that when I am playing such stream and > do something that lags PC, then after a while I begin too see sideshow (one > frame every second). The video never catches up again. > > For playing saved raw mpegts stream I have been using this pipeline: > > gst-launch-0.10 -m filesrc location=17.01.1100.ts ! mpegtsdemux name=demux0 > demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-sizeime=0 ! ffdec_h264 > ! xvimagesink demux0. ! queue max-size-bytes=0 max-size-buffers=0 > max-size-time=0 ! flump3dec ! pulsesink > > For playing dvb-t stream I have been using this pipeline: > > gst-launch-0.10 -m dvbsrc pids=201:202:204 adapter=0 ! mpegtsdemux name=demux0 > demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! > ffdec_h264 ! xvimagesink sync=false demux0. ! queue max-size-bytes=0 > max-size-buffers=0 max-size-time=0 ! flump3dec ! pulsesink > > I am attaching gst-lanuch output for dvb-t playback. Sorry, for dvb-t I have used: gst-launch-0.10 -m dvbsrc pids=201:202:204 adapter=0 ! mpegtsdemux name=demux0 demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! ffdec_h264 ! xvimagesink demux0. ! queue max-size-bytes=0 max-size-buffers=0 max-size-time=0 ! flump3dec ! pulsesink "sync=true"
More timestamp fixes are in git now. Is this still a problem?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!