Gapless Playback with Playbin
Tim Müller
tim at centricular.com
Tue Jul 22 00:54:24 PDT 2014
On Mon, 2014-07-14 at 21:01 -0500, David Harks wrote:
Hi David,
it's a bit tricky with video because there's almost no buffering during
the switchover, but please still file a bug in bugzilla about it then we
can see if we can improve things.
Cheers
-Tim
> https://www.dropbox.com/sh/es6nekvhcexh7xl/AACeOiu9F_OrNgTuUzr-gJyja
>
>
> I've created a test case that clearly demonstrates the issue. Here's
> the play command line I used:
>
>
> GST_DEBUG=*:4 gst-play-1.0 --videosink xvimagesink --gapless
> Part_one.mp4 Part_two.mp4 Part_three.mp4 > Gapless.out 2>&1
>
>
>
> At the above link is the result (Gapless.out) as well as the three MP4
> files used for the demonstration. The files were generated by creating
> 300 frames of PNGs, with the frame number placed at (frame, frame)
> coordinate in the image, in white text; these were then encoded to
> H.264 and played back. The numbering and movement make the gaps very
> obvious!
>
>
> Using VLC to play these three files results in a continuous stream,
> but gst-play has a 5-10 frame pause at approximately the point where
> "about-to-finish" is emitted.
>
>
> Thanks for your help!
>
>
> -d
>
>
> On Mon, Jul 14, 2014 at 4:36 PM, Luis de Bethencourt
> <luis at debethencourt.com> wrote:
> Seeing that duration before a real value is discovered by the
> demuxer is normal. But those FIXME lines do look scary.
>
>
> Will read your log in a while.
>
>
> Thanks,
> Luis
>
>
> On 14 July 2014 13:43, David W. Harks <dave at dwink.net> wrote:
> Sure, here you go, at debug level 4.
>
> https://www.dropbox.com/s/cdh1ur7vsmt6q5m/dbg_4.log
>
> One thing I noticed: the segment start events go like
> this, with a duration of 99:99:99 and then complaints
> about duration caching:
>
> creating segment event time segment
> start=0:00:00.066733333, stop=0:00:14.347666666,
> rate=1.000000, applied_rate=1.000000, flags=0x00,
> time=0:00:00.000000000, base=0:00:00.000000000,
> position 0:00:00.066733333, duration
> 99:99:99.999999999
> 0:00:00.675879247 14212 0x1f99a00 FIXME
> bin gstbin.c:4008:gst_bin_query: implement
> duration caching in GstBin again
> 0:00:00.675908879 14212 0x1f99a00 FIXME
> bin gstbin.c:4008:gst_bin_query: implement
> duration caching in GstBin again
> 0:00:00.675919229 14212 0x1f99a00 FIXME
> bin gstbin.c:4008:gst_bin_query: implement
> duration caching in GstBin again
>
> I'm not sure if that has much to do with what I'm
> seeing, but it would mean the segment starts on the
> third frame(at apprximately 30fps).
>
> Thanks in advance for looking!
>
> -d
>
>
>
> On Mon, Jul 14, 2014 at 11:35:09AM -0400, Luis de
> Bethencourt wrote:
> Hi David,
>
> Can you generate the log again with a lower
> debug level? Your current log
> is 100mb big and very very long. Would be
> easier to debug with a lower
> debug level.
>
> Thanks,
> Luis
>
>
> On 11 July 2014 08:35, David W. Harks
> <dave at dwink.net> wrote:
>
> GStreamer wizards,
>
> My GStreamer-based app is intended to
> play H.264 video clips back-to-back
> in gapless fashion. It uses playbin
> and the 'about-to-finish' signal to
> change URIs, as the various examples
> and advice about this shows.
>
> Unfortunately, I'm seeing a 5-10 frame
> 'pause' when switching URIs. What
> seems to be happening is that the sink
> stops rendering frames for a brief
> period, leaving a static frame
> visible, then 'catches up' and starts
> rendering again, skipping the first
> few frames of the next clip. I tried
> taking the same clips and playing them
> with gst-play-1.0 --gapless and I
> get the same result.
>
> My question is, how can I narrow down
> what's going on here? And is there
> anything I can do to get frame-perfect
> transitions? I created a debug log
> with GST_DEBUG=5 here:
> https://www.dropbox.com/s/
> 0rdzlrcaz77wbkc/dbg.out.gz
>
> Unfortunately, I'm not quite sure how
> to interpret this output.
>
> Thanks for your expertise!
>
> -d
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
>
>
> --
> d.w. harks <dave at dwink.net>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
--
Tim Müller, Centricular Ltd - http://www.centricular.com
More information about the gstreamer-devel
mailing list