[Bug 741104] New: dashdemux: add support for I frame based trick play

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Dec 4 03:14:52 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=741104
  GStreamer | gst-plugins-bad | git

           Summary: dashdemux: add support for I frame based trick play
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: All
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: bugzilla at ashley-family.net
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Dashdemux has support for "trick play" (playback at rates other than 1) that is
implemented by downloading fragments more rapidly than when rate==1.

In some situations this approach does not work very well, due to the demands it
places upon the bandwidth of the network and the performance of the downstream
demux/decode/display elements. For example trick play at rate==32 requires 32x
the network bandwidth and the "qtdemux ! h264parse ! avdec-h264" pipeline to
cope with 32x the amount of compressed data. A lower bitrate Representation
might be able to reduce the demands, but typically there are a limited range of
available bitrates. It is unlikely for there to be a suitable Representation
for every trickplay rate.

It would be beneficial to enable an I-frame only mode of trick play, whereby
only the I-frames from segments are downloaded. This can be used to reduce the
burden on the network and also reduces the demands on the downstream elements.

This feature has been enabled for HLS streams. Perhaps as part of the move to
the GstAdaptiveDemux base class, this behaviour could be harmonised in the base
class? Obviously the method of finding the I-frames is very different between
DASH and HLS, but the rate adaptation logic could be common.

Downloading the first I-frame from each segment should be fairly
straightforward, as the DASH spec mandates that the first frame in each segment
is an IDR. Finding the other I-frames within the segment is more complex, as it
would require parsing a box (such as the trun) to find their location.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list