What is DASH multi period and when to use it ?

on 4 December 2023 JMETER, JMETER-PLUGINS, LOAD_TESTING, MPEG-DASH, PERFORMANCE, VIDEO and Tags: , , , , , with 0 comments

MPEG-DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1:2012) is a vendor free format that is used to stream content through HTTP requests.

MPEG-DASH uses playlists called Media Presentation Description that end with .mpd extension.

When to use it ?

Multi-period is usually used to add content to a video, such as advertising or to split your video into different content.

Ads content

Adding an ad to a dash video is implemented using multi-period, if you want to monetize your video you can use the notion of ad insertion, for example you can add a 20-second ad every 30 minutes on a live stream.

Below is a diagram showing a multi-period video containing ads

Video containing ads

Split your video into different content

You can use multi-period to divide your video into several parts.

For example:

  • Period 1 : introductory technology presentation video,
  • Period 2 : introductory speech,
  • Period 2 : in-depth presentation of the technology
  • Period 4 : an example of how the technology is used

What is Dash multi period ?

Multi-period can be used with VOD or Live video.

A dash media presentation description is split into parts called periods.

If the manifest contains a single period then it is considered to be the whole video, but if a manifest contains several periods then each period represents a piece of the video.

The player must parse the manifest and determine the correct period to use and then change period during playback according to the start dates of the periods.

For example with the following manifest (source :

https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html)

<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" type="dynamic" availabilityStartTime="1970-01-01T00:00:00Z" publishTime="1970-01-01T00:00:00Z" minimumUpdatePeriod="PT2S" minBufferTime="PT2S" timeShiftBufferDepth="PT1M" maxSegmentDuration="PT2S">
  <ProgramInformation>
    <Title>Basic MPD with 640x480@30 video at 300kbp and 48kbps audio using SegmentTemplate with `$Number$`</Title>
  </ProgramInformation>
  <Period id="P28325691" start="PT472094H51M">
    ......
  </Period>
  <Period id="P28325692" start="PT472094H52M">
    .......
  </Period>
  <Period id="P28325693" start="PT472094H54M">
    .......
  </Period>
  <UTCTiming schemeIdUri="urn:mpeg:dash:utc:http-iso:2014" value="https://time.akamai.com/?isoms"></UTCTiming>
</MPD>

In the previous example, the player must change the period after one minute between P28325691 and P28325692 (because PT472094H52MPT472094H51M = 1 min) and 2 minutes between P28325692 and P28325693 (because PT472094H54MPT472094H52M = 2 min), the period change may be higher or lower depending on the different periods .

If the date when parsing manifest for the first time is Thu Nov 09 2023 15:51:15 GMT+0000 the player must choose the period which id is P28325691 because:

  • PT472094H51M = 472094 * 3600000 + 51 * 60000 = 1699541460000 ms since epoch
  • PT472094H52M = 472094 * 3600000 + 52 * 60000 = 1699541520000 ms since epoch
  • Thu Nov 09 2023 15:51:15 GMT+0000 = 1699541475000 ms since epoch So Thu Nov 09 2023 15:51:15 GMT+0000 is between PT472094H51M and PT472094H52M

What’s next

This feature will be available in a future release, stay tuned !

About UbikLoadPack :

Ubik Load Pack Streaming Solution features

You’ll probably also like: