<p>I know this is an old topic but wanted to answer in case someone else is having the same question.</p>
<p>In general, you can use both the <code>Live</code> and <code>On-Demand</code> DASH profiles for VoD content, for live content you need to use the <code>Live</code> profile. The difference would be that if you have a 1:30 hrs VoD file if you are distributing it using DASH <code>Live</code> Profile you will have a long manifest file with a big segment timeline list and a lot of mp4 (<code>90 * 3600/{segment duration}</code>) segments while if you are using the <code>On-Demand</code> profile you end up having a much shorter manifest file and a single <code>mp4</code> file.</p>
<p>In the case of <code>Live</code> profile, the player would need to download the segments, while with <code>On-Demand</code> profile it would simply send HTTP byte-range requests to the CDN to target a particular time in the content.</p>
<p>Of course, this would result also in a lower CDN load, because in DASH <code>Live</code> profile, the player would need to download all the segments to play the video, meaning that it would need to download the same mp4 header for each segment.</p>
<p>If you are willing to optimize the content delivery, I strongly recommend adopting <code>On-Demand</code> DASH profile.</p>

CC BY-SA 4.0
2021-04-21T08:52:13.060Z
2021-04-21T08:52:13.060Z
Georgi Stoyanov
<p>I've read about dash profiles and from what I understood the difference between live and on-demand profiles are that live furthermore splits each representation into segments (which is critical for live videos, as the video is streamed live, but can also be used to play on demand), while onDemand uses one segment (aka the whole file), and take advantage of the Range HTTP header for "segmented" video loads.</p>

<p>After I've explored some more I read in this <a href="http://docs.unified-streaming.com/documentation/vod/recommended-settings.html#playout-options" rel="nofollow noreferrer">link</a> the following:</p>

<blockquote>
  <p>The DASH ‘On Demand Profile’ is only used when offline packaging, as
  outlined in Packaging for MPEG-DASH.</p>
</blockquote>

<p>So I'm a bit confused about whether this is good for me or not.
Basically, I'm trying to build a VOD application and this is what I currently do:</p>

<ol>
<li>transcode the video into multiple quality representations in
different resolutions.</li>
<li>use MP4Box to build an MPD file along with the encoded representations.</li>
<li>upload these file into Amazon S3.</li>
</ol>

<p>I'm able to stream the videos just fine. But the quote I've mentioned just above gives me second thoughts on whether I take the right approach, or I've missed something.</p>

<p>What are the differences between the live profile and the on-demand profile for MPEG-DASH? And by differences, I also mean when would you use either one. </p>

<p>Any explanation would be helpful, thanks!</p>

CC BY-SA 4.0
2018-12-30T12:59:10.640Z
@DrMayhem What are the differences between the live profile and the on-demand profile for MPEG-DASH? And by differences, I also mean when would you use either one.
Gershon Papi
CC BY-SA 4.0
2018-12-30T13:05:54.000Z
Thanks Gershon - I have edited that into your question post. Makes more sense now.
Dr Mayhem
<ffmpeg><streaming><live><mpeg-dash>
DASH Live vs OnDemand profiles
Gershon Papi
# DASH Live vs OnDemand profiles

(Asked by: username_0 on 2018-12-20)

I've read about dash profiles and from what I understood the difference between live and on-demand profiles are that live furthermore splits each representation into segments (which is critical for live videos, as the video is streamed live, but can also be used to play on demand), while onDemand uses one segment (aka the whole file), and take advantage of the Range HTTP header for "segmented" video loads.

After I've explored some more I read in this [link](http://docs.unified-streaming.com/documentation/vod/recommended-settings.html#playout-options) the following:

> The DASH ‘On Demand Profile’ is only used when offline packaging, as
> outlined in Packaging for MPEG-DASH.

So I'm a bit confused about whether this is good for me or not.
Basically, I'm trying to build a VOD application and this is what I currently do:

1. transcode the video into multiple quality representations in
   different resolutions.
2. use MP4Box to build an MPD file along with the encoded representations.
3. upload these file into Amazon S3.

I'm able to stream the videos just fine. But the quote I've mentioned just above gives me second thoughts on whether I take the right approach, or I've missed something.

What are the differences between the live profile and the on-demand profile for MPEG-DASH? And by differences, I also mean when would you use either one.

Any explanation would be helpful, thanks!

**Tags:** ffmpeg, streaming, live, mpeg-dash

> **Comments:**
> **username_0**: @DrMayhem What are the differences between the live profile and the on-demand profile for MPEG-DASH? And by differences, I also mean when would you use either one.  
> **username_1**: Thanks Gershon - I have edited that into your question post. Makes more sense now.  

---

## 1 answers

### Answer by username_2 on 2021-04-21. Score: 1

I know this is an old topic but wanted to answer in case someone else is having the same question.

In general, you can use both the `Live` and `On-Demand` DASH profiles for VoD content, for live content you need to use the `Live` profile. The difference would be that if you have a 1:30 hrs VoD file if you are distributing it using DASH `Live` Profile you will have a long manifest file with a big segment timeline list and a lot of mp4 (`90 * 3600/{segment duration}`) segments while if you are using the `On-Demand` profile you end up having a much shorter manifest file and a single `mp4` file.

In the case of `Live` profile, the player would need to download the segments, while with `On-Demand` profile it would simply send HTTP byte-range requests to the CDN to target a particular time in the content.

Of course, this would result also in a lower CDN load, because in DASH `Live` profile, the player would need to download all the segments to play the video, meaning that it would need to download the same mp4 header for each segment.

If you are willing to optimize the content delivery, I strongly recommend adopting `On-Demand` DASH profile.


---

