Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mpd generation #154

Closed
pavan4 opened this issue May 14, 2014 · 15 comments
Closed

mpd generation #154

pavan4 opened this issue May 14, 2014 · 15 comments

Comments

@pavan4
Copy link

pavan4 commented May 14, 2014

Could someone tell me how to create the mpds for the content. I am able to play the examples but when I create the mpd using MP4Box they don't seem to play in the player.

I tried using this as source
http://sourceforge.net/p/gpac/discussion/287547/thread/bb9a9893/?page=1

Basically I generated the mpd using

ffmpeg -an  -codec:v libx264 -profile;v baseline -level 13 -b:v 2000k output.mp4 -i elephants_dream_360p_24.y4m 

I got the y4m from a standard source.

I created the mpd using

MP4Box -dash 10000 -dash-profile live -segment-name dream output.mp4

I don't have any errors on the console but the video doesn't play. It is just stuck.

I also tried DASHEncoder https://github.com/slederer/DASHEncoder

Nothing worked :(

I have

MP4Box - GPAC version 0.4.6-Dev-rev3744  required by DASHEncoder

I also tried the latest version of GPAC.

ffmpeg version git-2013-06-14-d891d35 built Jun 14 2013
@RLovelett
Copy link

@pavan4 have you had any luck with this?

@mysamimi
Copy link

I have same problem.
help :)

@wilaw
Copy link
Member

wilaw commented Jun 17, 2014

If you have source files called video.mp4 and audio.mp4 then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video.mp4 audio.mp4

if you have 3 video files at different bitrates video1.mp4, video2.mp4 and video3.mp4 and two audio files at different bitrates audio1.m4a and audio2.m4a, then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video1.mp4 video2.mp4 video3.mp4 audio1.m4a audio2.m4a

If you have a muxed source called source.mp4 that contains audio and video then you can use

mp4box -dash 5000 -rap -no-frags-default -profile onDemand source.mp4#video source.mp4#audio

That works for me with v1.1.2 of dash.js and mp4box version 0.5.1-DEV-rev5208. See the --help of mp4box for additional commands to set the output mpd names, output folder etc. Pick a segment duration (5000 in this case) that is an integer multiple of your keyframe interval, assuming it is fixed.

Cheers

Will

@mysamimi
Copy link

Thanks Will,
I have multiple video in different size. if video in same size mp4box work
correctly, and if they in different size manifest not parsed correctly. I
wrote a script to change mpd file! I have tow mpd file. one for dash.js
and one for dash.as :)

regards
Mohammad Samimi

On Tue, Jun 17, 2014 at 10:06 AM, Will Law notifications@github.com wrote:

If you have source files called video.mp4 and audio.mp4 then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video.mp4
audio.mp4

if you have 3 video files at different bitrates video1.mp4, video2.mp4 and
video3.mp4 and two audio files at different bitrates audio1.m4a and
audio2.m4a, then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video1.mp4
video2.mp4 video3.mp4 audio1.m4a audio2.m4a

If you have a muxed source called source.mp4 that contains audio and video
then you can use

mp4box -dash 5000 -rap -no-frags-default -profile onDemand
source.mp4#video source.mp4#audio

That works for me with v1.1.2 of dash.js and mp4box version
0.5.1-DEV-rev5208. See the --help of mp4box for additional commands to set
the output mpd names, output folder etc. Pick a segment duration (5000 in
this case) that is an integer multiple of your keyframe interval, assuming
it is fixed.

Cheers

Will

Reply to this email directly or view it on GitHub
#154 (comment)
.

@wilaw
Copy link
Member

wilaw commented Jun 19, 2014

Can you post the manifest produced by mp4box for videos of different sizes that does not get parsed correctly by dash.js? I have packaged multiple size videos with mp4box previously and they work fine with dash.js. Here is an example with video from 720p up to 2160p

http://dash.edgesuite.net/akamai/streamroot/050714/Spring_4Ktest_min.mpd

-Will

From: mysamimi <notifications@gitpro.ttaallkk.topmailto:notifications@github.com>
Reply-To: "Dash-Industry-Forum/dash.js" <reply@reply.gitpro.ttaallkk.topmailto:reply@reply.github.com>
Date: Thursday, June 19, 2014 at 12:08 AM
To: "Dash-Industry-Forum/dash.js" <dash.js@noreply.gitpro.ttaallkk.topmailto:dash.js@noreply.github.com>
Cc: Will Law <wilaw@akamai.commailto:wilaw@akamai.com>
Subject: Re: [dash.js] mpd generation (#154)

Thanks Will,
I have multiple video in different size. if video in same size mp4box work
correctly, and if they in different size manifest not parsed correctly. I
wrote a script to change mpd file! I have tow mpd file. one for dash.js
and one for dash.as :)

regards
Mohammad Samimi

On Tue, Jun 17, 2014 at 10:06 AM, Will Law <notifications@gitpro.ttaallkk.topmailto:notifications@github.com> wrote:

If you have source files called video.mp4 and audio.mp4 then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video.mp4
audio.mp4

if you have 3 video files at different bitrates video1.mp4, video2.mp4 and
video3.mp4 and two audio files at different bitrates audio1.m4a and
audio2.m4a, then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video1.mp4
video2.mp4 video3.mp4 audio1.m4a audio2.m4a

If you have a muxed source called source.mp4 that contains audio and video
then you can use

mp4box -dash 5000 -rap -no-frags-default -profile onDemand
source.mp4#video source.mp4#audio

That works for me with v1.1.2 of dash.js and mp4box version
0.5.1-DEV-rev5208. See the --help of mp4box for additional commands to set
the output mpd names, output folder etc. Pick a segment duration (5000 in
this case) that is an integer multiple of your keyframe interval, assuming
it is fixed.

Cheers

Will

Reply to this email directly or view it on GitHub
#154 (comment)
.


Reply to this email directly or view it on GitHubhttps://github.com//issues/154#issuecomment-46529898.

@mysamimi
Copy link

Dear Will
I create mpd file as you suggested
MP4Box -dash 12800 -rap -no-frags-default -profile onDemand -out
/render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4
dash.js get my first repesentation, find output mpd in attachment
I like to segmented my DASH, then I generate in this way:
after mp4box generate dhashed file I move this file in separated folder
then change mpd file for dash.as and make another version for dash.js

/usr/local/bin/MP4Box -dash 12800 -sync 1280 -bs-switching no -segment-name
%s_ -url-template -out /render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4

find mpds in attachment

On Thu, Jun 19, 2014 at 11:49 AM, Will Law notifications@github.com wrote:

Can you post the manifest produced by mp4box for videos of different sizes
that does not get parsed correctly by dash.js? I have packaged multiple
size videos with mp4box previously and they work fine with dash.js. Here is
an example with video from 720p up to 2160p

http://dash.edgesuite.net/akamai/streamroot/050714/Spring_4Ktest_min.mpd

-Will

From: mysamimi <notifications@gitpro.ttaallkk.topmailto:notifications@github.com>

Reply-To: "Dash-Industry-Forum/dash.js" <reply@reply.github.com<mailto:
reply@reply.github.com>>
Date: Thursday, June 19, 2014 at 12:08 AM
To: "Dash-Industry-Forum/dash.js" <dash.js@noreply.github.com<mailto:
dash.js@noreply.github.com>>
Cc: Will Law <wilaw@akamai.commailto:wilaw@akamai.com>
Subject: Re: [dash.js] mpd generation (#154)

Thanks Will,
I have multiple video in different size. if video in same size mp4box work
correctly, and if they in different size manifest not parsed correctly. I
wrote a script to change mpd file! I have tow mpd file. one for dash.js
and one for dash.as :)

regards
Mohammad Samimi

On Tue, Jun 17, 2014 at 10:06 AM, Will Law <notifications@github.com
mailto:notifications@github.com> wrote:

If you have source files called video.mp4 and audio.mp4 then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video.mp4
audio.mp4

if you have 3 video files at different bitrates video1.mp4, video2.mp4
and
video3.mp4 and two audio files at different bitrates audio1.m4a and
audio2.m4a, then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video1.mp4
video2.mp4 video3.mp4 audio1.m4a audio2.m4a

If you have a muxed source called source.mp4 that contains audio and
video
then you can use

mp4box -dash 5000 -rap -no-frags-default -profile onDemand
source.mp4#video source.mp4#audio

That works for me with v1.1.2 of dash.js and mp4box version
0.5.1-DEV-rev5208. See the --help of mp4box for additional commands to
set
the output mpd names, output folder etc. Pick a segment duration (5000
in
this case) that is an integer multiple of your keyframe interval,
assuming
it is fixed.

Cheers

Will

Reply to this email directly or view it on GitHub
<
https://github.com/Dash-Industry-Forum/dash.js/issues/154#issuecomment-46269049>

.

Reply to this email directly or view it on GitHub<
https://github.com/Dash-Industry-Forum/dash.js/issues/154#issuecomment-46529898>.

Reply to this email directly or view it on GitHub
#154 (comment)
.

@wilaw
Copy link
Member

wilaw commented Jun 24, 2014

@mysamimi - your attachments did not come through the list server. Please post the mpd and segments on a web server and then provide the URL, or else list the mpd contents in the body of the email.

-Will

From: mysamimi <notifications@gitpro.ttaallkk.topmailto:notifications@github.com>
Reply-To: "Dash-Industry-Forum/dash.js" <reply@reply.gitpro.ttaallkk.topmailto:reply@reply.github.com>
Date: Monday, June 23, 2014 at 11:51 PM
To: "Dash-Industry-Forum/dash.js" <dash.js@noreply.gitpro.ttaallkk.topmailto:dash.js@noreply.github.com>
Cc: Will Law <wilaw@akamai.commailto:wilaw@akamai.com>
Subject: Re: [dash.js] mpd generation (#154)

Dear Will
I create mpd file as you suggested
MP4Box -dash 12800 -rap -no-frags-default -profile onDemand -out
/render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4
dash.js get my first repesentation, find output mpd in attachment
I like to segmented my DASH, then I generate in this way:
after mp4box generate dhashed file I move this file in separated folder
then change mpd file for dash.as and make another version for dash.js

/usr/local/bin/MP4Box -dash 12800 -sync 1280 -bs-switching no -segment-name
%s_ -url-template -out /render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4

find mpds in attachment

On Thu, Jun 19, 2014 at 11:49 AM, Will Law <notifications@gitpro.ttaallkk.topmailto:notifications@github.com> wrote:

Can you post the manifest produced by mp4box for videos of different sizes
that does not get parsed correctly by dash.js? I have packaged multiple
size videos with mp4box previously and they work fine with dash.js. Here is
an example with video from 720p up to 2160p

http://dash.edgesuite.net/akamai/streamroot/050714/Spring_4Ktest_min.mpd

-Will

From: mysamimi <notifications@gitpro.ttaallkk.topmailto:notifications@gitpro.ttaallkk.topmailto:notifications@github.com>

Reply-To: "Dash-Industry-Forum/dash.js" <reply@reply.gitpro.ttaallkk.topmailto:reply@reply.github.com<mailto:
reply@reply.gitpro.ttaallkk.topmailto:reply@reply.github.com>>
Date: Thursday, June 19, 2014 at 12:08 AM
To: "Dash-Industry-Forum/dash.js" <dash.js@noreply.gitpro.ttaallkk.topmailto:dash.js@noreply.github.com<mailto:
dash.js@noreply.gitpro.ttaallkk.topmailto:dash.js@noreply.github.com>>
Cc: Will Law <wilaw@akamai.commailto:wilaw@akamai.commailto:wilaw@akamai.com>
Subject: Re: [dash.js] mpd generation (#154)

Thanks Will,
I have multiple video in different size. if video in same size mp4box work
correctly, and if they in different size manifest not parsed correctly. I
wrote a script to change mpd file! I have tow mpd file. one for dash.js
and one for dash.as :)

regards
Mohammad Samimi

On Tue, Jun 17, 2014 at 10:06 AM, Will Law <notifications@gitpro.ttaallkk.topmailto:notifications@github.com
mailto:notifications@github.com> wrote:

If you have source files called video.mp4 and audio.mp4 then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video.mp4
audio.mp4

if you have 3 video files at different bitrates video1.mp4, video2.mp4
and
video3.mp4 and two audio files at different bitrates audio1.m4a and
audio2.m4a, then you can try

mp4box -dash 5000 -rap -no-frags-default -profile onDemand video1.mp4
video2.mp4 video3.mp4 audio1.m4a audio2.m4a

If you have a muxed source called source.mp4 that contains audio and
video
then you can use

mp4box -dash 5000 -rap -no-frags-default -profile onDemand
source.mp4#video source.mp4#audio

That works for me with v1.1.2 of dash.js and mp4box version
0.5.1-DEV-rev5208. See the --help of mp4box for additional commands to
set
the output mpd names, output folder etc. Pick a segment duration (5000
in
this case) that is an integer multiple of your keyframe interval,
assuming
it is fixed.

Cheers

Will

Reply to this email directly or view it on GitHub
<
https://github.com/Dash-Industry-Forum/dash.js/issues/154#issuecomment-46269049>

.

Reply to this email directly or view it on GitHub<
https://github.com/Dash-Industry-Forum/dash.js/issues/154#issuecomment-46529898>.

Reply to this email directly or view it on GitHub
#154 (comment)
.


Reply to this email directly or view it on GitHubhttps://github.com//issues/154#issuecomment-46937550.

@mysamimi
Copy link

Dear @wilaw
This is output for
MP4Box -dash 12800 -rap -no-frags-default -profile onDemand -out
/render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4
as you told, that didn't work whit dash.js correctly!

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.5.1-DEV-rev5277  on 2014-06-24T06:21:10Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT1H29M1.41S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>/render-stacks/dash/film-dash/web-3.mpd generated by GPAC</Title>
 </ProgramInformation>

 <Period id="" duration="PT1H29M1.41S">
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="114" maxHeight="200" maxFrameRate="25" par="114:200" lang="und" subsegmentStartsWithSAP="1">
   <Representation id="1" mimeType="video/mp4" codecs="avc1.42c00c" width="367" height="200" frameRate="25" sar="27040:8379" startWithSAP="1" bandwidth="51517">
    <BaseURL>web-3-v50k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7142"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="320" maxHeight="184" maxFrameRate="25" par="320:184" lang="und" subsegmentStartsWithSAP="1">
   <Representation id="2" mimeType="video/mp4" codecs="avc1.42c015" width="338" height="184" frameRate="25" sar="3887:3675" startWithSAP="1" bandwidth="101538">
    <BaseURL>web-3-v100k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="906-7153"/>
   </Representation>
   <Representation id="3" mimeType="video/mp4" codecs="avc1.42c015" width="338" height="184" frameRate="25" sar="3887:3675" startWithSAP="1" bandwidth="151558">
    <BaseURL>web-3-v150k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="906-7153"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="480" maxHeight="278" maxFrameRate="25" par="480:278" lang="und" subsegmentStartsWithSAP="1">
   <Representation id="4" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="1" bandwidth="201583">
    <BaseURL>web-3-v200k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7142"/>
   </Representation>
   <Representation id="5" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="1" bandwidth="251612">
    <BaseURL>web-3-v250k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7142"/>
   </Representation>
   <Representation id="6" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="1" bandwidth="301629">
    <BaseURL>web-3-v300k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7142"/>
   </Representation>
   <Representation id="7" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="1" bandwidth="401700">
    <BaseURL>web-3-v400k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="906-7141"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="676" maxHeight="392" maxFrameRate="25" par="676:392" lang="und" subsegmentStartsWithSAP="1">
   <Representation id="8" mimeType="video/mp4" codecs="avc1.42c01f" width="721" height="392" frameRate="25" sar="16:15" startWithSAP="1" bandwidth="451053">
    <BaseURL>web-3-vhq28_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7130"/>
   </Representation>
   <Representation id="9" mimeType="video/mp4" codecs="avc1.42c01f" width="721" height="392" frameRate="25" sar="16:15" startWithSAP="1" bandwidth="1009656">
    <BaseURL>web-3-vhq22_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7130"/>
   </Representation>
   <Representation id="10" mimeType="video/mp4" codecs="avc1.42c01f" width="721" height="392" frameRate="25" sar="16:15" startWithSAP="1" bandwidth="1810268">
    <BaseURL>web-3-vhq18_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="907-7130"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" lang="und" subsegmentStartsWithSAP="1">
   <Representation id="11" mimeType="audio/mp4" codecs="mp4a.40.5" audioSamplingRate="48000" startWithSAP="1" bandwidth="70638">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>web-3-a96k_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="819-5866"/>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

and this is output worked with dash.as correctly by this command
/usr/local/bin/MP4Box -dash 12800 -sync 1280 -bs-switching no -segment-name
%s_ -url-template -out /render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.5.1-DEV-rev5243  on 2014-06-16T06:33:19Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT1H29M1.41S" profiles="urn:mpeg:dash:profile:full:2011">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>Movie 3</Title>
 </ProgramInformation>

 <Period id="" duration="PT1H29M1.41S">
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="114" maxHeight="200" maxFrameRate="25" par="114:200" lang="und">
   <Representation id="1" mimeType="video/mp4" codecs="avc1.42c00c" width="367" height="200" frameRate="25" sar="27040:8379" startWithSAP="0" bandwidth="51704">
    <SegmentTemplate timescale="12800" duration="163840" media="v50k/web-3-v50k_$Number$.m4s" startNumber="1" initialization="v50k/web-3-v50k_init.mp4"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="320" maxHeight="184" maxFrameRate="25" par="320:184" lang="und">
   <Representation id="2" mimeType="video/mp4" codecs="avc1.42c015" width="338" height="184" frameRate="25" sar="3887:3675" startWithSAP="0" bandwidth="101725">
    <SegmentTemplate timescale="12800" duration="163840" media="v100k/web-3-v100k_$Number$.m4s" startNumber="1" initialization="v100k/web-3-v100k_init.mp4"/>
   </Representation>
   <Representation id="3" mimeType="video/mp4" codecs="avc1.42c015" width="338" height="184" frameRate="25" sar="3887:3675" startWithSAP="0" bandwidth="151746">
    <SegmentTemplate timescale="12800" duration="163840" media="v150k/web-3-v150k_$Number$.m4s" startNumber="1" initialization="v150k/web-3-v150k_init.mp4"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="480" maxHeight="278" maxFrameRate="25" par="480:278" lang="und">
   <Representation id="4" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="0" bandwidth="201767">
    <SegmentTemplate timescale="12800" duration="163840" media="v200k/web-3-v200k_$Number$.m4s" startNumber="1" initialization="v200k/web-3-v200k_init.mp4"/>
   </Representation>
   <Representation id="5" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="0" bandwidth="251796">
    <SegmentTemplate timescale="12800" duration="163840" media="v250k/web-3-v250k_$Number$.m4s" startNumber="1" initialization="v250k/web-3-v250k_init.mp4"/>
   </Representation>
   <Representation id="6" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="0" bandwidth="301813">
    <SegmentTemplate timescale="12800" duration="163840" media="v300k/web-3-v300k_$Number$.m4s" startNumber="1" initialization="v300k/web-3-v300k_init.mp4"/>
   </Representation>
   <Representation id="7" mimeType="video/mp4" codecs="avc1.42c01f" width="511" height="278" frameRate="25" sar="23491:22050" startWithSAP="0" bandwidth="401884">
    <SegmentTemplate timescale="12800" duration="163840" media="v400k/web-3-v400k_$Number$.m4s" startNumber="1" initialization="v400k/web-3-v400k_init.mp4"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="676" maxHeight="392" maxFrameRate="25" par="676:392" lang="und">
   <Representation id="8" mimeType="video/mp4" codecs="avc1.42c01f" width="721" height="392" frameRate="25" sar="16:15" startWithSAP="0" bandwidth="451231">
    <SegmentTemplate timescale="12800" duration="163840" media="vhq28/web-3-vhq28_$Number$.m4s" startNumber="1" initialization="vhq28/web-3-vhq28_init.mp4"/>
   </Representation>
   <Representation id="9" mimeType="video/mp4" codecs="avc1.42c01f" width="721" height="392" frameRate="25" sar="16:15" startWithSAP="0" bandwidth="1009834">
    <SegmentTemplate timescale="12800" duration="163840" media="vhq22/web-3-vhq22_$Number$.m4s" startNumber="1" initialization="vhq22/web-3-vhq22_init.mp4"/>
   </Representation>
   <Representation id="10" mimeType="video/mp4" codecs="avc1.42c01f" width="721" height="392" frameRate="25" sar="16:15" startWithSAP="0" bandwidth="1810446">
    <SegmentTemplate timescale="12800" duration="163840" media="vhq18/web-3-vhq18_$Number$.m4s" startNumber="1" initialization="vhq18/web-3-vhq18_init.mp4"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" lang="und">
   <Representation id="11" mimeType="audio/mp4" codecs="mp4a.40.5" audioSamplingRate="48000" startWithSAP="1" bandwidth="70671">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <SegmentTemplate timescale="48000" duration="614400" media="a96k/web-3-a96k_$Number$.m4s" startNumber="1" initialization="a96k/web-3-a96k_init.mp4"/>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

and this is converted version to worked with dash.js

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.5.1-DEV-rev5243  on 2014-06-16T06:33:19Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT1H29M1.41S" profiles="urn:mpeg:dash:profile:full:2011">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>Movie 3</Title>
 </ProgramInformation>

 <Period duration="PT1H29M1.41S" start="PT0S">
  <AdaptationSet segmentAlignment="true" group="1" maxWidth="676" maxHeight="392" maxFrameRate="25" par="676:392" lang="und">
  <ContentComponent id="1" contentType="video"/><SegmentTemplate timescale="12800" duration="163840" media="$RepresentationID$/web-3-$RepresentationID$_$Number$.m4s" startNumber="1" initialization="$RepresentationID$/web-3-$RepresentationID$_init.mp4"/><Representation id="v50k" mimeType="video/mp4" codecs="avc1.42c00c" startWithSAP="1" bandwidth="51704" width="367" height="200" frameRate="25" sar="27040:8379"/>
<Representation id="v100k" mimeType="video/mp4" codecs="avc1.42c015" startWithSAP="1" bandwidth="101725" width="338" height="184" frameRate="25" sar="3887:3675"/>
<Representation id="v150k" mimeType="video/mp4" codecs="avc1.42c015" startWithSAP="1" bandwidth="151746" width="338" height="184" frameRate="25" sar="3887:3675"/>
<Representation id="v200k" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="201767" width="511" height="278" frameRate="25" sar="23491:22050"/>
<Representation id="v250k" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="251796" width="511" height="278" frameRate="25" sar="23491:22050"/>
<Representation id="v300k" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="301813" width="511" height="278" frameRate="25" sar="23491:22050"/>
<Representation id="v400k" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="401884" width="511" height="278" frameRate="25" sar="23491:22050"/>
<Representation id="vhq28" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="451231" width="721" height="392" frameRate="25" sar="16:15"/>
<Representation id="vhq22" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="1009834" width="721" height="392" frameRate="25" sar="16:15"/>
<Representation id="vhq18" mimeType="video/mp4" codecs="avc1.42c01f" startWithSAP="1" bandwidth="1810446" width="721" height="392" frameRate="25" sar="16:15"/>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" lang="und">
  <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
<SegmentTemplate timescale="48000" duration="614400" media="$RepresentationID$/web-3-$RepresentationID$_$Number$.m4s" startNumber="1" initialization="$RepresentationID$/web-3-$RepresentationID$_init.mp4"/>
<Representation id="a96k" mimeType="audio/mp4" codecs="mp4a.40.5" startWithSAP="1" bandwidth="70671"/>
</AdaptationSet>
 </Period>
</MPD>

Please note that I want to work with segmented version that seems better performance.

@wilaw
Copy link
Member

wilaw commented Jun 25, 2014

@mysamimi - the ondemand manifest looks valid. Can you provide more info when you say “that didn't work whit dash.js correctly!”. What exactly failed? Is there a failed network request , or trace statement from the console that explains why it didn’t play? The dash.js player rarely fails silently. With ondemand profile, the browser needs to make range requests via XHR which in turn requires specific CORS support. Are you sure that you have the correct CORS headers in your server to enable XHR to make range requests? The symptom if you don’t would be that the player would load the manifest just fine but then would fail when it tries to load either the init range or the index range.CORS is not required by Flash, which is why it may work in dash.as but not dash.js.

-Will

From: mysamimi <notifications@gitpro.ttaallkk.topmailto:notifications@github.com>
Reply-To: "Dash-Industry-Forum/dash.js" <reply@reply.gitpro.ttaallkk.topmailto:reply@reply.github.com>
Date: Tuesday, June 24, 2014 at 10:15 PM
To: "Dash-Industry-Forum/dash.js" <dash.js@noreply.gitpro.ttaallkk.topmailto:dash.js@noreply.github.com>
Cc: Will Law <wilaw@akamai.commailto:wilaw@akamai.com>
Subject: Re: [dash.js] mpd generation (#154)

Dear @wilawhttps://github.com/wilaw
This is output for
MP4Box -dash 12800 -rap -no-frags-default -profile onDemand -out
/render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4
as you told, that didn't work whit dash.js correctly!

<Title>/render-stacks/dash/film-dash/web-3.mpd generated by GPAC</Title> web-3-v50k_dashinit.mp4 web-3-v100k_dashinit.mp4 web-3-v150k_dashinit.mp4 web-3-v200k_dashinit.mp4 web-3-v250k_dashinit.mp4 web-3-v300k_dashinit.mp4 web-3-v400k_dashinit.mp4 web-3-vhq28_dashinit.mp4 web-3-vhq22_dashinit.mp4 web-3-vhq18_dashinit.mp4 web-3-a96k_dashinit.mp4

and this is output worked with dash.as correctly by this command
/usr/local/bin/MP4Box -dash 12800 -sync 1280 -bs-switching no -segment-name
%s_ -url-template -out /render-stacks/dash/film-dash/web-3.mpd
/render-stacks/vers/film/web-3-v50k.mp4
/render-stacks/vers/film/web-3-v100k.mp4
/render-stacks/vers/film/web-3-v150k.mp4
/render-stacks/vers/film/web-3-v200k.mp4
/render-stacks/vers/film/web-3-v250k.mp4
/render-stacks/vers/film/web-3-v300k.mp4
/render-stacks/vers/film/web-3-v400k.mp4
/render-stacks/vers/film/web-3-vhq28.mp4
/render-stacks/vers/film/web-3-vhq22.mp4
/render-stacks/vers/film/web-3-vhq18.mp4
/render-stacks/vers/film/web-3-a96k.mp4

<Title>Movie 3</Title>

and this is converted version to worked with dash.js

<Title>Movie 3</Title>

Please note that I want to work with segmented version that seems better performance.


Reply to this email directly or view it on GitHubhttps://github.com//issues/154#issuecomment-47061380.

@mysamimi
Copy link

@wilaw DASH.JS detect only one Representation.
you can check it by http://5.144.131.116/test/web-3.mpd
and this is my manifest file that work grate http://5.144.131.116/test/3/web-3.js.mpd

@mysamimi
Copy link

mysamimi commented Jul 8, 2014

Dear @wilaw
Did you checked that manifest?
I forced to change that IP address to 46.225.242.226.

@wilaw
Copy link
Member

wilaw commented Jul 8, 2014

It doesn't seem to respond:

sfo-mphdc:up wilaw$ curl http://46.225.242.226/test/web-3.mpd

<title>404 Not Found</title>

Not Found

The requested URL /test/web-3.mpd was not found on this server.


Apache/2.4.7 (Ubuntu) Server at 46.225.242.226 Port 80 sfo-mphdc:up wilaw$

@mysamimi
Copy link

mysamimi commented Jul 9, 2014

Sorry @wilaw ,
Please try again.

@wilaw
Copy link
Member

wilaw commented Jul 9, 2014

If you run that mpd through the online validation tool at

http://dashif.org/conformance.html

it returns the following error log shown below. I suggest fixing the mpd before you try to play it in the player. Also, your mpd is a little strange - its has two adaption sets with only one video bitrate in each, then an adaption set with 4 video bitrates and then another with 3 video bitrates. All the video bitrates are different. Normally one would expect a single adaption set containing all the video represenations, assuming they represent the same content at different bitrates.

-Will

Start Schematron validation

location="/[local-name()='MPD' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/[local-name()='Period' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/*[local-name()='AdaptationSet' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011'][1]">
The value of the width attribute shall be in the range defined by the AdaptationSet.

location="/[local-name()='MPD' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/[local-name()='Period' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/*[local-name()='AdaptationSet' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011'][2]">
The value of the width attribute shall be in the range defined by the AdaptationSet.

location="/[local-name()='MPD' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/[local-name()='Period' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/*[local-name()='AdaptationSet' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011'][3]">
The value of the width attribute shall be in the range defined by the AdaptationSet.

location="/[local-name()='MPD' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/[local-name()='Period' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011']/*[local-name()='AdaptationSet' and namespace-uri()='urn:mpeg:dash:schema:mpd:2011'][4]">
The value of the width attribute shall be in the range defined by the AdaptationSet.

Schematron validation not successful - DASH is not valid!

@wilaw
Copy link
Member

wilaw commented Feb 24, 2015

Created a new bug for the 1.4 release #429 that will create a central resource for how to generate good quality DASH content. Closing this issue for now.

@wilaw wilaw closed this as completed Feb 24, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants