DASH Sequences


Telecom ParisTech has been generating a set of DASH sequences, and is making them available for DASH conformance testing. This sequencesare distributed under the terms of the Creative Common by-nc-nd Licence.CCbyncnd

Sequences Links

DASH Conformance (browsable directory, including the encoded source sequences and the bash script to regenerate the sequences)

ISOBMF Sequences

MPEG-2 TS Sequences

Media Description

These sequences consist of a video object in various bitrates and resolutions, as well as an audio object in two different coding systems. All these files have been generated with open-source, freely available software. The sequences duration is 10 minutes.

Audio

The audio track consists of beeps. Beeps occur precisely at each second. Beeps are alternatively high tone (even seconds) or low tone (odd seconds).

The audio track is available as MP3 or AAC, 64kbps.

Video

The video track consists of an animated pattern showing:

  • a circle becoming alternately white or grey every second
  • a time counter and a frame counter
  • information about the generation (frame rate, resolution, generation information)

The video track is a combination of:

  • a codec: AVC/H264 only;
  • available resolutions: 320×180, 640×360, 1280×720, 1920×1080
  • several GOP profiles:
    • baseline profile, closed GOP, RAP 1s
    • regular 2B-pattern open GOP, RAP 1s
    • GDR (Gradual Decoding Refresh) with an 8-picture refresh
  • 2 bitrates for each of the above combinations
  • SPS/PPS ids are unique for a given GOP profile, so as to avoid the switching issue caused by the use of same ids and are described in the table below
    AVC Profile Resolution Bitrate (kbps) SPS ID
    Baseline 320×180 48 0
    Baseline 320×180 128 1
    Baseline 640×360 96 2
    Baseline 640×360 192 3
    Baseline 1280×720 192 4
    Baseline 1280×720 512 5
    Baseline 1920×1080 384 6
    Baseline 1920×1080 512 7
    OpenGOP 320×180 40 4
    OpenGOP 320×180 112 5
    OpenGOP 640×360 80 6
    OpenGOP 640×360 160 7
    OpenGOP 1280×720 160 8
    OpenGOP 1280×720 448 9
    OpenGOP 1920×1080 320 10
    OpenGOP 1920×1080 640 11
    GDR 320×180 64 8
    GDR 320×180 160 9
    GDR 640×360 128 10
    GDR 640×360 224 11
    GDR 1280×720 224 12
    GDR 1280×720 576 13
    GDR 1920×1080 448 14
    GDR 1920×1080 896 15

ISO File Format Sequences

All DASH MPDs are generated with:

  • 10s segments, beginning with RAP
  • 1s “moof” fragments (which corresponds to the GOP size)

Each adaptation set (described below) are available in the following ways:

  • Multiple segments:
    • segment list conforming Main profile, except for GDR which complies with Full profile; MPD for these sequences are named XXX-files.mpd,
    • segment URL Template conforming Live profile, except for GDR which complies with Full profile; MPD for these sequences are named XXX-url.mpd.
  • One file:
    • indexes (n “sidx”) conforming Main profile, except for GDR which complies with Full profile; MPD for these sequences are named XXX-indexes.mpd,
    • single segment (1 “sidx”) conforming OnDemand profile, except for GDR which complies with Full profile; MPD for these sequences are named XXX-single.mpd.

Currently the following combinations are provided:

  • 1 Adaptation Set, with alternate MP3 or AAC audio representations;
  • 2 Adaptation Sets, one with alternate MP3 or AAC audio representations, the other with baseline AVC video;
  • 1 Adaptation Set, with audio (AAC) and video (open-GOP), using 2 components. Each segment is made of 2 sub-segments indexed as:
    • 1 primary “sidx” indexing both subsegments (“reference_type” 1);
    • each subsegment has a secondary A/V “sidx” (“reference_type” 0) with 5 entries (one per “moof”).
  • 1 Adaptation Set, with audio (AAC) and video (GDR with 8 frames roll recovery), using 2 components. Each segment is made of 5 sub-segments indexed with daisy chained SIDX; each SIDX contains two “reference_type 0” subsegments (one per moof) and one “reference type 1” subsegment pointing to the next SIDX (except for the last SIDX).

MPEG-2 TS Sequences

All DASH MPDs are generated with 10s segments, beginning with RAP. Only the baseline AVC|H264 profile is currently used.

Each adaptation set (described below) are available in the following ways:

  • Multiple segments:
    • segment list conforming Simple@TS profile; MPD for these sequences are named XXX-files.mpd,
    • segment URL Template conforming Simple@TS profile; MPD for these sequences are named XXX-url.mpd.
  • One file:
    • single segment (1 “sidx”) conforming Simple@TS profile; MPD for these sequences are named XXX-single.mpd.

Uncovered DASH features

Not all features of DASH are tested with the current sequences. Especially, the sequences do not test:

  • Subsets
  • Segment Timeline
  • Sub Representations and sub-segment indexing
  • Metrics
  • Bitstream Switching Segments (although bitstream switching is tested)

Sequences Generation

To generate these DASH sequences, several open-source software tools have been used (in the sequential order of stream generation):

  • GPAC/MP4Box to process the BIFS visual data and export it to a raw video track in AVI,
  • Audacity [1.3 Beta] to generate the raw audio track,
  • x264 [0.118.2085 8a62835] for the AVC|H.264 encoding,
  • faac [as included in ffmpeg build] for AAC encoding,
  • LAME [as included in ffmpeg build] for MP3 encoding,
  • GPAC/MP42TS [REV3926] for Transport Stream packaging,
  • GPAC/MP4Box [REV3926] for ISOBMF packaging, MPD generation and DASH segmentation (TS and ISOFF).

For more info on DASH generation, see this post.

33 thoughts on “DASH Sequences

  1. Hi,
    Looking at generated MP4 files, it seems that media and track durations are always set to 0: is it really what is expected by the standard (meaning that duration can only be retrieved from the MPD) ?

  2. Yes this is the intended behavior since the tracks are empty. I’ll have to check what the DASH spec says exactly on that topic.

  3. Hi,
    I have a question about those sequences’ MPD file.
    In 23009-1 5.3.9.1, it mentions “a Segment shall be referenced by an HTTP-URL included in the MPD, where an HTTP-URL is defined as an according to RFC 3986, Clause 4.3”. But those sequences’ MPD file seem using relative URL. Are those MPD incorrect or am I misunderstanding the meaning of ?
    Thanks.

  4. The spec is not very clear about the use of absolute/relative URL. Indeed, section 5.3.9.1 talks about absolute URLs but the intent is that once you have resolved relative URLs according to the base URL (see 5.6.4), the result is an HTTP absolute URL. So relative URLs are authorized, as indicated in Table 13 @sourceURL, Table 14 @media and @index. This should be clarified in a new version of the standard.

  5. I can understand the relative URLs are authorized in @sourceURL, @media and @index, but those sequences’ base URL are also relative URL.
    So it seems impossible to construct an absolute URL from the information inside the MPD.

  6. Hi Chris,

    Our reading of the spec is that the BaseURL elements accept URLs, including relative URLs. Then, according to 5.6.4, you walk up the tree an apply the resolution mechanism possibly using the document base URI, in which case, you are right, the information inside the MPD is not sufficient. But that’s on purpose, so that the sequences still work when you move them around (if you keep the relative location of segments/mpd).

  7. Hi all.
    i just started using gpac, this is a very nice project.
    I wanted to know:
    1. I download the MPD file and try to watch the stream and i can see the folowing:

    mp4-live-mpd-V-NBS.mpd Cannot open /home/ran/Desktop/mp4-live-mpd-V-NBS.mpd: Requested URL is not valid or cannot be found.

    how can i watch the stream ?

    2. Do you know if MP4BOX can encode a live camera and stream it to a DASH client ?

    sorry for the “begginer class” question it is my first time with GPAC..

    Thank You all
    Dubin

  8. 1) The MPD on the web site do not contain any BaseURL element, i.e. the DASH segment location is solved based on the original MPD location. You should give the complete MPD URL to MP4Client, or modify the downloaded one to add a element pointing to the original MPD location.

    2) No, MP4Box is not about transcoding – we’re planning to prototype such a thing some time in the near future. MP4Box can however be used to simulate a live DASH feed by continuously updating an MPD, using -dash-ctx option. However, this is still on-going work that needs to be cleaned up …

  9. Does MP4Box can be used to convert real-time stream? (for example, TS is a real-time stream from front-end, and I want to real-time convert this ts), if MP4Box support this, How should I use ?

    Under what circustmances choose to use ” -url-template”, “-single-segment” and “use none of them”?
    I want to generate mpd file,but I don’t quite clearly how to choose among them?

    Can you tell me more about SIDX box? How to use it? I can not quite understand sidx box concept.

  10. MP4Box does not handle live streams for the time being.
    You shouldn’t need to worry about -url-template or -single-segment and rather use the -dash-profile option which selects most of the required option according to the target profile

    Jean

  11. BS switching is meaningless in onDemand profile, why use this profile?
    How many kinds profiles exist in MP4Box? live, onDemand, full, main, simple?

  12. Hey to all

    Can you please explain if Dash uses TCP or UDP ?
    and if there are any problems using this protocols with dash ?

    thanks

  13. Currently DASH uses only HTTP (hence TCP). There are extensions to the specification under investigation at MPEG for other transport protocols, but nothing is defined yet.

  14. The MPEG-2 TS profiles recommend that index segments be supplied.
    Could you present (or point me to) an MPEG-2 TS example that demonstrates:
    – Media presentation timeline with PTS discontinuities
    – Example index segments .sidx files for each media segment including how to handle the PTS values in the 33-bit range (0x1 00 00 00 00 thru 0x1 FF FF FF FF)
    It would be very nice to have direct contact information for follow-up queries.

  15. Q1: I want to know (@type=”dynamic”) dynamic MPDs are used for live services has been supported by MP4Client ?
    Q2: And MP4Box does not handle (@type=”dynamic”) dynamic MPDs this time?

  16. Q1: yes, MP4Client supports live services
    Q2: this is still experimental and not really documented, but -dash-ctx switch can be used to simulate a live for a single representation

  17. Q1:-dash-ctx dasher.cfg, this “dasher.cfg” file was not descripted in the mpd file。How to use this dasher.cfg?
    Q2: MP4Client support this dasher.cfg? can use this dasher.cfg file to play the file?

  18. @Jean, complete MPD URL is not working
    1st.I tried with http://dash.edgesuite.net/adobe/hdworld_dash/HDWorld.mpd with MP4Client but not working. giving error “Couldn’t set priority(2)” Thread MediaManager

    you can find this link from following url
    http://www.bogotobogo.com/VideoStreaming/mpeg_dash.php
    how to play that video?
    2nd. Is separate url is playable ? can we give direct media url mentioned in MPD attached with absolute URL on the place of MPD file name ?
    i.e. http://dash.edgesuite.net/adobe/hdworld_dash/hdworld_seg_hdworld_0696kbps_ffmpeg.mp4.video_temp1.m4s

    Thanks..

  19. 1- MPD does not signal segmentAlignment is true, and we don’t support such content. If you set the AdaptationSet@segmentAlignment to true, then current SVN plays this file nicely

    2- no, m4s are not playable by themselves, check the specs

  20. for what it means, check the spec. For how to do it, you have to edit the MPD file to set the flag (and probably will need to add a somewhere to indicate the original media source URL

  21. I read in the post that the DASH Conformance browsable directory contains the bash scripts to regenerate the sequences but I can’t find them in the folder. Could you please tell me where they are ? Sorry if it is my mistake…

    Kind Regard
    David

  22. Not Sure, But I think I am also facing same issue of “Access control allow origin”
    The HTTP server where DASh is hosted is not configured to stream to other servers or other servers are not configured to play other streams

Comments are closed.