[Bug 675625] New: [dashbin] a streaming client supporting the new MPEG DASH standard
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Mon May 7 10:08:31 PDT 2012
https://bugzilla.gnome.org/show_bug.cgi?id=675625
GStreamer | gst-plugins-bad | 0.10.36
Summary: [dashbin] a streaming client supporting the new MPEG
DASH standard
Classification: Platform
Product: GStreamer
Version: 0.10.36
OS/Version: Linux
Status: UNCONFIRMED
Severity: enhancement
Priority: Normal
Component: gst-plugins-bad
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: gennarone at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=213609)
View: https://bugzilla.gnome.org/attachment.cgi?id=213609
Review: https://bugzilla.gnome.org/review?bug=675625&attachment=213609
[dashbin] a streaming client supporting the new MPEG DASH standard
In attachment: DASHBIN-initial-release.patch
DASH is the new Dynamic Adaptive Streaming over HTTP standard from MPEG.
This patch adds the support for DASH in GStreamer, through the new bin element
DASHBIN.
More in detail, the patch adds 3 new elements to the gst-plugins-bad-0.10.23
plugin package:
1) mpdcommon: an helper library to browse and manage the DASH MPD manifest
files;
2) mpdparse: the mpdparse plugin, that detects and parses the MPD manifest
files;
3) dashbin: the DASH client, implemented as a src bin;
A simple usage example is:
gst-launch \
dashbin location=http://example.com/dash_manifest.mpd \
! qtdemux ! queue ! ffdec_h264 ! xvimagesink
In the initial state, DASHBIN creates a simple 2 elements pipeline:
souphttpsrc ! mpdparse --> src pad
whenever the mpdparse element detects a valid DASH MPD manifest file (or if a
local MPD file is passed to mpdparse through the "input-mpd-file" property),
it parses it and then it fires the "on-new-mpd" signal.
DASHBIN catches the signal and creates from 1 to 3 new download pipelines,
depending on the content of the MPD file.
The maximum configuration of the bin is the following:
# MPD manifest file download pipeline
souphttpsrc ! mpdparse ! fakesink
# video download pipeline
souphttpsrc ! queue --> src pad
# audio download pipeline
souphttpsrc ! queue --> src_1 pad
# subtitles download pipeline
souphttpsrc ! queue --> src_2 pad
Often, only the video pipeline is present (and the stream will contain several
video/audio/subtitles tracks), but the DASH standard supports also separate
delivery of video/audio/subtitles tracks.
Each of the pipelines has a 3-states buffer control mechanism based on
thresholds. The 3 states are PREFETCHING (during preroll, or when we are
re-buffering after a buffer under-run), NORMAL (downloading new data and
playing buffered data at the same time) and WAITING (after a buffer overrun, we
delay the download of new segments while we consume some buffered data).
The buffer thresholds can be specified by the user (in bytes or seconds)
through several properties. By default, DASHBIN uses the initial buffering time
from the MPD file.
Automatic adaptation to the available bandwidth is not included in this
release. It will be provided in a future update, probably in the form of an
external library.
The max-video-bw and max-audio-bw properties allow the user (or the controlling
application) to select the appropriate bandwidth of the video and audio
representations.
The change is effective starting from the next data segment.
DASHBIN wraps all the properties of the souphttpsrc element and also it exposes
an URIHandler interface. Setting a RANK above GST_RANK_PRIMARY, it will
overtake the souphttpsrc element as the default handler for HTTP links,
enabling DASH support on all playbin2 based applications. If no MPD manifest
file is detected, the mpdparse plugin will work in pass-through mode (like a
typefind element) keeping full compatibility with the plain souphttpsrc
element.
DASHBIN partially supports the MPD syntax from the first published version of
the standard (ISO/IEC 23009-1 2012-04-01), together with some syntax elements
from older versions of the standard, in order to keep compatibility with all
the currently available test material. In a future update, legacy support will
be dropped and the support for the published version of the standard will be
completed.
DASHBIN currently supports the "ISO media file format On Demand" profile and
the "MPEG-2 TS simple" profile.
Support for more advanced profiles (starting from the Live profile) will be
implemented in the future, as DASHBIN is still under heavy development.
Here you can find a few test sequences (provided by Klagenfurt University):
# Big Buck Bunny
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/MPDs/BigBuckBunnyNonSeg_1s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/MPDs/BigBuckBunny_1s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/MPDs/test-dashjs.mpd
# Elephants Dream
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/ElephantsDream/MPDs/ElephantsDreamNonSeg_1s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/ElephantsDream/MPDs/ElephantsDream_1s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
# Of Forest And Men
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/OfForestAndMen/forest_15s/OfForestAndMen_15s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
# Red Bull Play Streets
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/RedBullPlayStreets/redbull_4s/RedBullPlayStreets_4s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
# The Swiss Account
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/TheSwissAccount/MPDs/TheSwissAccount_4s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
# Valkaama
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/Valkaama/MPDs/Valkaama_1s_act_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
# Old Syntax:
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/Selected_VLC_Plugin_MPDs/BigBuckBunny_15s_DASH_VLC_Compatible_4-Representations_720p.mpd
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/Selected_VLC_Plugin_MPDs/RedBullPlayStreets_4s_DASH_VLC_Compatible_3-Representatins_720p.mpd
Best regards,
Gianluca Gennari
--
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