GNOME Bugzilla – Bug 623824
Choppy audio on WebM files produced by ffmpeg -acodec copy
Last modified: 2012-03-01 18:26:28 UTC
http://code.google.com/p/webm/issues/detail?id=83 I've verified that this problem reproduces in Opera 10.60 and in GStreamer from git master. Find a test case OGGTV.webm attached to the original bug. I'm guessing this is related to the demuxer, but could be wrong.
Reproducable with this pipeline: $ gst-launch filesrc location=OGGTV.webm ! matroskademux ! vorbisdec ! audioconvert ! autoaudiosink Adding a vorbisparse element fixes the problem: $ gst-launch filesrc location=OGGTV.webm ! matroskademux ! vorbisparse ! vorbisdec ! audioconvert ! autoaudiosink This could indicate some kind of timestamping problem which is fixed by vorbisparse but which vorbisdec doesn't handle.
Yes, from a short look the timestamps in this file look a bit off, which then confuses vorbisdec. vorbisparse will correct the timestamps. So I'd say this is a broken file or the jitter tolerance in vorbisdec should be increased.
Do you have some handy tool to look at the timestamps? I resorted to grepping the output of GST_DEBUG=vorbisdec:5. Here's how things in the choppy case: 0:00:00.141078842 25871 0x947e940 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.001000000, dur 0:00:00.012000000 0:00:00.141811127 25871 0x947e940 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.003000000, dur 0:00:00.021333333 0:00:00.142077362 25871 0x947e940 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.004000000, dur 0:00:00.021333333 0:00:00.142341642 25871 0x947e940 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.005000000, dur 0:00:00.021333333 0:00:00.142605991 25871 0x947e940 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.007000000, dur 0:00:00.021333333 And here's what it looks like with vorbisparse upstream: 0:00:00.503789262 25888 0x97bae68 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.000000000, dur 0:00:00.012000000 0:00:00.505079510 25888 0x97bae68 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.012000000, dur 0:00:00.021333333 0:00:00.505333243 25888 0x97bae68 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.033333333, dur 0:00:00.021333333 0:00:00.505576989 25888 0x97bae68 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.054666667, dur 0:00:00.021333333 0:00:00.505818011 25888 0x97bae68 DEBUG vorbisdec gstvorbisdec.c:804:vorbis_dec_push_forward:<vorbisdec0> pushing time 0:00:00.076000000, dur 0:00:00.021333333
You could use "identity" and run gst-launch-0.10 with -v
This plays fine with the new GstAudioDecoder-based vorbisdec for me (which tolerates some jitter). Please re-open if it's still an issue for you with the latest releases.