Dash-Industry-Forum / dash.js

A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.
http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html
Other
5.15k stars 1.68k forks source link

dash live with mp4box generated .m4s and .mpd doesn't work #1008

Closed reallxl closed 7 years ago

reallxl commented 8 years ago

hi everyone, i am very new with dash technique and have very little knowledge about it.

my final goal is to stream lively from an IP camera using dash.js as the player. everything was OK with mp4box generated static .mp4 and .mpd files in the beginning, then i start to use mp4box generated dynamic (live) .mpd and .m4s files, but don't have any luck to make it...

i used the following command to generate .m4s and .mpd: mp4box -dash 6000 -frag 6000 -dynamic -profile live -mpd-refresh 60 src.mp4

then i made multiple psuedo .m4s files with different indexes (filenames) directed to these real materials for simulation.

[dash.js 1.5.1] new MediaPlayer instance has been created Playback initiated! Converted video element to dash.js player and added content: http://192.168.8.216/DASH/live/t1_track1_dash.mpd Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s) Manifest has been refreshed at Wed Jan 13 2016 18:36:14 GMT+0800 (台北標準時間)[1452681374294]
Matching default timing source protocol to manifest protocol: http://time.akamai.com/?iso Local time: Wed Jan 13 2016 18:36:14 GMT+0800 (台北標準時間) Server time: Wed Jan 13 2016 18:36:08 GMT+0800 (台北標準時間) Difference (ms): -6306 MediaSource is open! [object Event] Duration successfully set to: 1.7976931348623157e+308 Added 0 inline events video codec: video/mp4;codecs="avc3.4d401e" [video] stop

No audio data. No text data. No fragmentedText data. No muxed data. [video] Getting the request for time: 26672.47 [video] Index for time 26672.47 is 4444 [video] start [video] Getting the request for time: 0 [video] Index for time 0 is -1 loaded video:Initialization Segment:NaN (200, 0ms, 14ms) [video] Initialization finished loading [video] Getting the request for time: 0 [video] Index for time 0 is -1 [video] Stalling Buffer [video] Waiting for more buffer before starting playback. [video] Getting the request for time: 26664 [video] Index for time 26664 is 4443

any help or advise would be appreciated, thanks in advance!

dsparacio commented 8 years ago

@reallxl Does this problem exist in the 2.0 dev branch. Can you please test and update this issue.

reallxl commented 8 years ago

hi @AkamaiDASH,

I now use alternative command lines to test, my source file has video track only, and is well-aligned with 8 GOPs (20fps, GOPL=60, and 480 frames in total), in mp4box:

mp4box -dash-live 3000 -mpd-refresh 12 -out D:\nginx-1.8.0\html\test.mpd -bs-switching no live-12_track1.mp4

in mp4client:

mp4client http://127.0.0.1/test.mpd

and the result is perfect!

then I switch on to use dash.js as my player for playing the content generated by mp4box, but it failed with information: (I just manually add these console logs in the code)

[calcPresTime] wall=2016-1-28 13:36:44 start=2016-1-28 13:4:44 shift=-4.248 [calcSegAbleRange] check=1927.189 now=1915.473 [calcSegAbleRange] start=1915.473=max(1915.473,0) [calcSegAbleRange] end=1912.4716777777778=(1915.473-3.001322222222222) periodEnd=1927.189 timeAnchor=1915.473 notify ENAME_DATA_UPDATE_COMPLETED 2 [e.error.code === SEGMENTS_UNAVAILABLE_ERROR_CODE] notify SEGMENTS_UNAVAILABLE_ERROR_CODE end=1912.4716777777778 start=1915.473 calculate=undefined

I don't have enough knowledge to tell it's mainly because of the source file, the server-side mp4box, or the client-side dash.js...

reallxl commented 8 years ago

hi @AkamaiDASH ,

and dash.js native console log is as follows:

The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. live_local.html [dash.js 1.5.1] new MediaPlayer instance has been created dash.all.js:11:4058 Playback initiated! dash.all.js:11:4058 "Converted video element to dash.js player and added content: http://192.168.8.108/test.mpd " dash.all.js:11:4058 Specified "type" attribute of "application/dash+xml" is not supported. Load of media resource http://192.168.8.108/test.mpd failed. live_local.html All candidate resources failed to load. Media load paused. live_local.html Parsing complete: ( xml2json: 3ms, objectiron: 2ms, total: 0.005s) dash.all.js:11:4058 Manifest has been refreshed at Thu Jan 28 2016 13:36:44 GMT+0800[1453959404006] dash.all.js:11:4058 "Matching default timing source protocol to manifest protocol: http://time.akamai.com/?iso " dash.all.js:11:4058 unclosed token live_local.html:1:1 Local time: Thu Jan 28 2016 13:36:44 GMT+0800 dash.all.js:11:4058 Server time: Thu Jan 28 2016 13:36:40 GMT+0800 dash.all.js:11:4058 Difference (ms): -4248 dash.all.js:11:4058

dsparacio commented 8 years ago

Check your MPD with the conformance tool please http://dashif.org/conformance.html Specified "type" attribute of "application/dash+xml" is not supported. Load of media resource http://192.168.8.108/test.mpd failed. live_local.html All candidate resources failed to load. Media load paused. live_local.html

reallxl commented 8 years ago

hi @AkamaiDASH ,

the tool says ok about the mpd, image

I also tested putting a playable mpd (http://vm2.dashif.org/livesim/tfdt_32/testpic_6s/Manifest.mpd) to my local server then played it with dash.js to ensure my server really supports DASH, and the result is good.

sandersaares commented 8 years ago

I would recommend adding the -profile "dashavc264:live" -bs-switching no arguments to mp4box, as these tend to improve the compatibility of its output with modern players.

rofeifei commented 8 years ago

Hi, I am trying to stream the video from an IP camera using dash.js,the steps which i have tried is given below:

  1. I am using ffmpeg/avconv to capture from camera,i am using the follow command:
avconv -i "rtsp://[camera-ip-address]:554/mpeg4/media.amp"  -vcodec libx264 -vb 1800k -bufsize 3600k -keyint_min 192 -g 192 -vprofile main profile 
-acodec aac  -ar 48000 -ac 2 -strict experimental -f h264 live_h264_1800k.H264 \-vcodec libx264 -vb 2200k -bufsize 4400k -keyint_min 192 -g 192 -vprofile main -acodec aac  -ar 48000 -ac 2 -strict experimental -f h264 live_h264_2200k.h264
  1. Then i am using mp4box to generated dynamic live .mpd and .m4s i am using the follow command: MP4Box -dash-live 4000 -fps 24 -profile dashavc264:live -dynamic -mpd-refresh 1200 -bs-switching no -dash-ctx $ctxtOut -segment-name dashseg%s -out $pathMpdFile -add live_h264_1800k.h264 live_h264_2200k.h264 live_h264_1800k.mp4 live_h264_2200k.h264

3.i am using (1) and (2) in parallel

from dash-if(V1.x and V2.) player i am receiving this log and video does not start:

--------------------------------------------------------------------------------------------
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
Playback initiated!  Debug.js:116
Parsing complete: ( xml2json: 3ms, objectiron: 0ms, total: 0.003s)  Debug.js:116
Manifest has been refreshed.  Debug.js:116
Manifest has loaded.  Debug.js:116
Local time:      Wed Feb 17 2016 14:43:52 GMT+0100 (CET)  Debug.js:116
Server time:     Wed Feb 17 2016 14:34:28 GMT+0100 (CET)  Debug.js:116
Difference (ms): -564262  Debug.js:116
MediaSource is open!  Debug.js:116
[object Event]  Debug.js:116
Duration successfully set to: 1.7976931348623157e+308  Debug.js:116
Added 0 inline events  Debug.js:116
video codec: video/mp4;codecs="avc1.4d4034"  Debug.js:116
[video] stop  Debug.js:116
###playListTraceMetricsClosed###true ScheduleController.js:52
%%bitrate%%1000 RepresentationController.js:57
No audio data.  Debug.js:116
No text data.  Debug.js:116
No fragmentedText data.  Debug.js:116
No muxed data.  Debug.js:116
--------------------------------------------------------------------------------------------------

Please, can you give me some suggestion to solve this issue? thanks.

wilaw commented 8 years ago
  1. You have a large time difference between your local system and UTC (546s). Suggest syncing your system clock before you do any more testing. DASH playback relies upon encoder and client having the same notion of time and dash.js uses an external time source by default unless you provide your own.
  2. Post a copy of the manifest that mp4box is producing as well as a copy of the console trace after fixing the time issue.
rbouqueau commented 8 years ago

@rofeifei You need to mux the data in mp4 from your avconv command-line: avconv -i ... -f mp4 live_h264_2200k.mp4

then DASH from the mp4 in MP4Box.

rbouqueau commented 8 years ago

And I've just checked: MP4Box complains heavily when provided a raw H264 as a DASH input. It would have been nice to report too.

rofeifei commented 8 years ago

Hi, @rbouqueau thanks for reply,but when i used avconv -i ....-f mp4 live_h264_2200k.mp4 as

  1. avconv -i rtsp://192.168.0.5:554/mpeg4/media.amp -threads 0 -vcodec libx264 -vb 1200k -bufsize 2400k -keyint_min 192 -g 192 -vprofile baseline -acodec aac -ar 48000 -ac 2 -strict experimental -f mp4 live_h264f_1200k.mp4 -vcodec libx264 -vb 2200k -bufsize 4400k -keyint_min 192 -g 192 -vprofile baseline -acodec aac -ar 48000 -ac 2 -strict experimental -f mp4 live_h264f_2200k.mp4

  2. Then i am using mp4box to generated dynamic live .mpd and .m4s i am using the follow command: MP4Box -dash-live 4000 -fps 24 -profile dashavc264:live -dynamic -mpd-refresh 1200 -bs-switching no -segment-name dashseg%s -out path/live4Sec.mpd live_h264f_1200k.mp4 live_h264f_2200k.mp4

  3. i am receiving this log because i am using _(1) and (2) in parallel _,while this error not occur with -f h264 and using -add h264 in mp4box

Live DASH-ing - press 'q' to quit, 's' to save context and quit
[DASH]: Cannot open file live_h264f_1200k.mp4 for dashing: IsoMedia File is truncated
[DASH]: Cannot open file (null) for dashing: IsoMedia File is truncated
[DASH] Error: no suitable file found for dashing.
Error DASHing file: Bad Parameter

thanks

rofeifei commented 8 years ago

Hi, @wilaw thanks a lot for your reply,i will try it thanks

rofeifei commented 8 years ago

Hi, @wilaw i commented the function (//this.restoreDefaultUTCTimingSources());i did some test in LAN(2 pc(server+client)) the mpd file generated as:

<!--
 MPD file Generated with GPAC version 0.5.1-DEV-rev5499  on 2016-02-18T10:22:40Z
-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="dynamic" availabilityStartTime="2016-02-18T09:00:40Z" timeShiftBufferDepth="PT0H0M0.00S" minimumUpdatePeriod="PT0H0M12.00S" profiles="urn:mpeg:dash:profile:isoff-live:2011, http://dashif.org/guildelines/dash264">
<ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
<Title>live4SecTest1.mpd generated by GPAC</Title>
</ProgramInformation>
<Period id="GENID_DEF" start="PT0H0M0.00S">
<AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="480" maxFrameRate="24" par="4:3">
<Representation id="1" mimeType="video/mp4" codecs="avc1.4d4034" width="640" height="480" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="1683156">
<SegmentTemplate timescale="24000" media="dashseglive_h264_2200k$Number$.m4s" startNumber="1" duration="96000" initialization="dashseglive_h264_2200kinit.mp4"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>

i am receiving this log:

Playback initiated!  Debug.js:116
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/live4SecTest1.mpd". ManifestLoader.js:152
Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:116
Manifest has been refreshed.  Debug.js:116
Manifest has loaded.  Debug.js:116
MediaSource is open!  Debug.js:116
[object Event]  Debug.js:116
Duration successfully set to: 1.7976931348623157e+308  Debug.js:116
Added 0 inline events  Debug.js:116
video codec: video/mp4;codecs="avc1.4d4034"  Debug.js:116
[video] stop  Debug.js:116
###playListTraceMetricsClosed###true ScheduleController.js:52
%%bitrate%%1000 RepresentationController.js:57
No audio data.  Debug.js:116
No text data.  Debug.js:116
No fragmentedText data.  Debug.js:116
No muxed data.  Debug.js:116

thanks

wilaw commented 8 years ago

First address the issues that @rbouqueau raises and then try increasing the value of the time shift buffer to something like 60s or removing the attribute completely from the mpd. This is currently set at 0 and it tells the player that the segments have an impossibly tight time window in which they are available. I think the player may be calculating that it can't retrieve any segments within this window and is stopping as a result.

timeShiftBufferDepth="PT0H0M0.00S"

rofeifei commented 8 years ago

Hi, when i am using avconv(ffmpeg)/mp4box for static .mp4 and .mpd it work fine in dash.js while this error occur when i am using mp4box to generate live .mpd&.m4s,what is wrong with this line-command (avconv/mp4box)?is this wrong due to: the output file include the video stream and audio stream in same file (the stream from the IP camera contain audio) ,should we creating seperate audio and video segments??or because i am running avconv(ffmpeg) and mp4box in parallel(simultaneously)?Do i have to use any specific options to call avconv/ffmpeg and mp4box in parallel,?what is the best line commands to run ffmpeg( to capture from IP camera) and mp4box to generate live mpd ,please i need some clarification. thanks

rofeifei commented 8 years ago

Hi, @wilaw thanks i increased the value of the time shift buffer to 60 and i used the NTP service to synchronize the system clock(client/server),but i am receiving the same problem and video does not start,as @rbouqueau said it occur due to mp4box for live,for that i used DashCast to capture from camera and to generate .mpd and live content ,i am using the follow command: sudo DashCast -v "rtsp://192.168.0.5:554/mpeg4/media.amp" -seg-dur 10000 -frag-dur 10000 -mpd-refresh 1 -min-buffer 60 -low-delay -insert-utc -time-shift -1 -gdr -live

and the dashcast.conf file as:
[v1]
type=video
bitrate=800000
framerate=30
width=640
height=480
[v2]
type=video
bitrate=2200000
framerate=30
width=640
height=480

but when trying to play the stream from dash.js release 2.0.0 player it display some segment and it loop the following mesg:

XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[47004] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[47008] Manifest has been refreshed at Sun Mar 06 2016 09:44:47 GMT+0100 (CET)[1457253887.404]   Debug.js:108
[47009] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[47010] Refresh manifest in 1.988 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257" 

The mpd file generated as:

<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" availabilityStartTime="2016-03-06T08:43:57.937" minBufferTime="PT60.000000S"  type="dynamic" profiles="urn:mpeg:dash:profile:full:2011" minimumUpdatePeriod="PT1S">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>dashcast.mpd</Title>
 </ProgramInformation>
 <Period start="0" id="">
  <AdaptationSet segmentAlignment="true" bitstreamSwitching="false">
   <SegmentTemplate timescale="9" duration="90" media="$RepresentationID$_$Number$_gpac.m4s" startNumber="0" initialization="$RepresentationID$_init_gpac.mp4"/>
   <Representation id="v1" mimeType="video/mp4" codecs="avc1.42c016" width="640" height="480" frameRate="9" sar="1:1" startWithSAP="1" bandwidth="800000">
   </Representation>
   <Representation id="v2" mimeType="video/mp4" codecs="avc1.42c01e" width="640" height="480" frameRate="9" sar="1:1" startWithSAP="1" bandwidth="2200000">
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

what is the worng?please i need some clarification i am receiving this log:

[8] [dash.js 2.0.0] MediaPlayer has been initialized  Debug.js:108
[14] EME detected on this user agent! (ProtectionModel_01b)  Debug.js:108
.
[9446] Playback Initialized  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[9475] Parsing complete: ( xml2json: 3ms, objectiron: 0ms, total: 0.003s)  Debug.js:108
[9480] Manifest has been refreshed at Sun Mar 06 2016 09:44:09 GMT+0100 (CET)[1457253849.876]   Debug.js:108
[9484] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[10833] Local time:      Sun Mar 06 2016 09:44:11 GMT+0100 (CET)  Debug.js:108
[10834] Server time:     Sun Mar 06 2016 09:44:10 GMT+0100 (CET)  Debug.js:108
[10834] Difference (ms): -1229  Debug.js:108
[10854] MediaSource is open!  Debug.js:108
[10854] [object Event]  Debug.js:108
[10855] Duration successfully set to: 1.7976931348623157e+308  Debug.js:108
[10856] Added 0 inline events  Debug.js:108
[10857] video codec: video/mp4;codecs="avc1.42c016"  Debug.js:108
[10872] Schedule controller stopping for video  Debug.js:108
[10888] No audio data.  Debug.js:108
[10889] No text data.  Debug.js:108
[10889] No fragmentedText data.  Debug.js:108
[10889] No embeddedText data.  Debug.js:108
[10889] No muxed data.  Debug.js:108
[10891] Start Event Controller  Debug.js:108
[10893] Native video element event: play  Debug.js:108
[10894] Refresh manifest in 1.987 seconds.  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[12902] Parsing complete: ( xml2json: 1ms, objectiron: 0ms, total: 0.001s)  Debug.js:108
[12906] Manifest has been refreshed at Sun Mar 06 2016 09:44:13 GMT+0100 (CET)[1457253853.302]   Debug.js:108
[12907] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[12908] Refresh manifest in 1.98 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[14070] Local time:      Sun Mar 06 2016 09:44:14 GMT+0100 (CET)  Debug.js:108
[14070] Server time:     Sun Mar 06 2016 09:44:13 GMT+0100 (CET)  Debug.js:108
[14071] Difference (ms): -1466  Debug.js:108
[14079] Manifest updated... set new data on buffers.  Debug.js:108
[14080] Added 0 inline events  Debug.js:108
[14089] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[14902] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[14905] Manifest has been refreshed at Sun Mar 06 2016 09:44:15 GMT+0100 (CET)[1457253855.301]   Debug.js:108
[14906] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[14907] Refresh manifest in 1.989 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[15189] Local time:      Sun Mar 06 2016 09:44:15 GMT+0100 (CET)  Debug.js:108
[15190] Server time:     Sun Mar 06 2016 09:44:15 GMT+0100 (CET)  Debug.js:108
[15190] Difference (ms): -585  Debug.js:108
[15200] Manifest updated... set new data on buffers.  Debug.js:108
[15201] Added 0 inline events  Debug.js:108
[15209] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[16908] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[16912] Manifest has been refreshed at Sun Mar 06 2016 09:44:17 GMT+0100 (CET)[1457253857.308]   Debug.js:108
[16913] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[16914] Refresh manifest in 1.989 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[17167] Local time:      Sun Mar 06 2016 09:44:17 GMT+0100 (CET)  Debug.js:108
[17167] Server time:     Sun Mar 06 2016 09:44:17 GMT+0100 (CET)  Debug.js:108
[17168] Difference (ms): -562  Debug.js:108
[17175] Manifest updated... set new data on buffers.  Debug.js:108
[17175] Added 0 inline events  Debug.js:108
[17186] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[18916] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[18921] Manifest has been refreshed at Sun Mar 06 2016 09:44:19 GMT+0100 (CET)[1457253859.317]   Debug.js:108
[18922] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[18923] Refresh manifest in 1.986 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[19213] Local time:      Sun Mar 06 2016 09:44:19 GMT+0100 (CET)  Debug.js:108
[19213] Server time:     Sun Mar 06 2016 09:44:19 GMT+0100 (CET)  Debug.js:108
[19214] Difference (ms): -609  Debug.js:108
[19223] Manifest updated... set new data on buffers.  Debug.js:108
[19223] Added 0 inline events  Debug.js:108
[19230] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[20922] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[20927] Manifest has been refreshed at Sun Mar 06 2016 09:44:21 GMT+0100 (CET)[1457253861.322]   Debug.js:108
[20927] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[20928] Refresh manifest in 1.988 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[21221] Local time:      Sun Mar 06 2016 09:44:21 GMT+0100 (CET)  Debug.js:108
[21222] Server time:     Sun Mar 06 2016 09:44:21 GMT+0100 (CET)  Debug.js:108
[21222] Difference (ms): -617  Debug.js:108
[21229] Manifest updated... set new data on buffers.  Debug.js:108
[21230] Added 0 inline events  Debug.js:108
[21238] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[22934] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[22936] Manifest has been refreshed at Sun Mar 06 2016 09:44:23 GMT+0100 (CET)[1457253863.332]   Debug.js:108
[22937] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[22938] Refresh manifest in 1.986 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[23183] Local time:      Sun Mar 06 2016 09:44:23 GMT+0100 (CET)  Debug.js:108
[23183] Server time:     Sun Mar 06 2016 09:44:23 GMT+0100 (CET)  Debug.js:108
[23183] Difference (ms): -578  Debug.js:108
[23192] Manifest updated... set new data on buffers.  Debug.js:108
[23192] Added 0 inline events  Debug.js:108
[23201] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[24937] Parsing complete: ( xml2json: 1ms, objectiron: 0ms, total: 0.001s)  Debug.js:108
[24942] Manifest has been refreshed at Sun Mar 06 2016 09:44:25 GMT+0100 (CET)[1457253865.338]   Debug.js:108
[24943] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[24944] Refresh manifest in 1.987 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[25252] Local time:      Sun Mar 06 2016 09:44:25 GMT+0100 (CET)  Debug.js:108
[25252] Server time:     Sun Mar 06 2016 09:44:25 GMT+0100 (CET)  Debug.js:108
[25253] Difference (ms): -648  Debug.js:108
[25261] Manifest updated... set new data on buffers.  Debug.js:108
[25261] Added 0 inline events  Debug.js:108
[25270] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[26944] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[26949] Manifest has been refreshed at Sun Mar 06 2016 09:44:27 GMT+0100 (CET)[1457253867.345]   Debug.js:108
[26950] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[26951] Refresh manifest in 1.986 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[27280] Local time:      Sun Mar 06 2016 09:44:27 GMT+0100 (CET)  Debug.js:108
[27280] Server time:     Sun Mar 06 2016 09:44:27 GMT+0100 (CET)  Debug.js:108
[27281] Difference (ms): -675  Debug.js:108
[27288] Manifest updated... set new data on buffers.  Debug.js:108
[27289] Added 0 inline events  Debug.js:108
[27296] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[28949] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[28954] Manifest has been refreshed at Sun Mar 06 2016 09:44:29 GMT+0100 (CET)[1457253869.349]   Debug.js:108
[28954] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[28955] Refresh manifest in 1.987 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[29236] Local time:      Sun Mar 06 2016 09:44:29 GMT+0100 (CET)  Debug.js:108
[29236] Server time:     Sun Mar 06 2016 09:44:29 GMT+0100 (CET)  Debug.js:108
[29236] Difference (ms): -631  Debug.js:108
[29244] Manifest updated... set new data on buffers.  Debug.js:108
[29245] Added 0 inline events  Debug.js:108
[29253] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[30951] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[30956] Manifest has been refreshed at Sun Mar 06 2016 09:44:31 GMT+0100 (CET)[1457253871.352]   Debug.js:108
[30957] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  
.
.
[32965] Manifest has been refreshed at Sun Mar 06 2016 09:44:33 GMT+0100 (CET)[1457253873.361]   Debug.js:108
[32966] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[32967] Refresh manifest in 1.988 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[33196] Local time:      Sun Mar 06 2016 09:44:33 GMT+0100 (CET)  Debug.js:108
[33197] Server time:     Sun Mar 06 2016 09:44:33 GMT+0100 (CET)  Debug.js:108
.
[33215] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[34967] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[34970] Manifest has been refreshed at Sun Mar 06 2016 09:44:35 GMT+0100 (CET)[1457253875.366]   Debug.js:108
[34971] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[35276] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[36973] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[36976] Manifest has been refreshed at Sun Mar 06 2016 09:44:37 GMT+0100 (CET)[1457253877.372]   Debug.js:108
[36977] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[37289] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[38983] Parsing complete: ( xml2json: 3ms, objectiron: 1ms, total: 0.004s)  Debug.js:108
[38987] Manifest has been refreshed at Sun Mar 06 2016 09:44:39 GMT+0100 (CET)[1457253879.383]   Debug.js:108
[38988] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[39334] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[40986] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[40991] Manifest has been refreshed at Sun Mar 06 2016 09:44:41 GMT+0100 (CET)[1457253881.387]   Debug.js:108
[40992] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[41300] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[43001] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[43008] Manifest has been refreshed at Sun Mar 06 2016 09:44:43 GMT+0100 (CET)[1457253883.404]   Debug.js:108
[43009] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[43352] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[44997] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[45000] Manifest has been refreshed at Sun Mar 06 2016 09:44:45 GMT+0100 (CET)[1457253885.396]   Debug.js:108
[45000] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[45328] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[47004] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[47008] Manifest has been refreshed at Sun Mar 06 2016 09:44:47 GMT+0100 (CET)[1457253887.404]   Debug.js:108
[47009] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[47010] Refresh manifest in 1.988 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
.
[48971] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[49009] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[49014] Manifest has been refreshed at Sun Mar 06 2016 09:44:49 GMT+0100 (CET)[1457253889.41]   Debug.js:108
[49015] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[49016] Refresh manifest in 1.988 seconds.  Debug.js:108
[49194] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[49318] Local time:      Sun Mar 06 2016 09:44:49 GMT+0100 (CET)  Debug.js:108
[49318] Server time:     Sun Mar 06 2016 09:44:49 GMT+0100 (CET)  Debug.js:108
[49318] Difference (ms): -713  Debug.js:108
[49326] Manifest updated... set new data on buffers.  Debug.js:108
[49327] Added 0 inline events  Debug.js:108
[49346] Getting the request for video time : 0.5570000000000022  Debug.js:108
[49356] Schedule controller starting for video  Debug.js:108
[49361] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v1_init_gpac.mp4". FragmentLoader.js:175
[49364] loaded video:InitializationSegment:NaN (200, 0ms, 9ms)  Debug.js:108
[49372] Initialization finished loading  Debug.js:108
[49383] Getting the request for video time : 0  Debug.js:108
[49384] SegmentTemplate: 0 / 51.233  Debug.js:108
[49391] Native video element event: loadedmetadata  Debug.js:108
[49407] SegmentTemplate: 0 / 51.233  Debug.js:108
[49408] Getting the next request at index: 1  Debug.js:108
[49408] SegmentTemplate: 10 / 51.233  Debug.js:108
[49413] Starting playback at offset: 0  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v1_0_gpac.m4s". FragmentLoader.js:175
[49421] loaded video:MediaSegment:0 (200, 27ms, 5ms)  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v1_1_gpac.m4s". FragmentLoader.js:175
[49460] loaded video:MediaSegment:10 (200, 5ms, 42ms)  Debug.js:108
[49488] Native video element event: playing  Debug.js:108
[49537] Buffered Range: 0 - 0.000977  Debug.js:108
[49539] Getting the request for video time : 20  Debug.js:108
[49540] Index for video time 20 is 1  Debug.js:108
[49540] SegmentTemplate: 10 / 51.233  Debug.js:108
[49540] Getting the next request at index: 2  Debug.js:108
[49540] SegmentTemplate: 20 / 51.233  Debug.js:108
[49546] ThroughputRule requesting switch to index:  1 type:  video  Priority:  Default Average throughput 196544 kbps  Debug.js:108
[49557] Schedule controller stopping for video  Debug.js:108
[49563] Start Event Controller  Debug.js:108
[49563] Schedule controller starting for video  Debug.js:108
[49564] Schedule controller stopping for video  Debug.js:108
[49569] Start Event Controller  Debug.js:108
[49570] Schedule controller starting for video  Debug.js:108
[49570] Schedule controller stopping for video  Debug.js:108
.
[49617] Schedule controller starting for video  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v1_2_gpac.m4s". FragmentLoader.js:175
[49619] loaded video:MediaSegment:20 (200, 11ms, 63ms)  Debug.js:108
[49634] Schedule controller stopping for video  Debug.js:108
[49640] Start Event Controller  Debug.js:108
[49641] Schedule controller starting for video  Debug.js:108
[49642] Schedule controller stopping for video  Debug.js:108
.
[49674] Schedule controller starting for video  Debug.js:108
[49696] Buffered Range: 0 - 0.000977  Debug.js:108
[49696] Buffered Range: 10.068155 - 10.069266  Debug.js:108
[49697] Getting the request for video time : 30  Debug.js:108
[49697] Index for video time 30 is 2  Debug.js:108
[49698] SegmentTemplate: 20 / 51.233  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v2_2_gpac.m4s". FragmentLoader.js:175
[49741] loaded video:MediaSegment:20 (200, 3ms, 36ms)  Debug.js:108
[49758] Schedule controller stopping for video  Debug.js:108
[49763] Start Event Controller  Debug.js:108
[49763] Schedule controller starting for video  Debug.js:108
[49803] Buffered Range: 0 - 0.000977  Debug.js:108
[49803] Buffered Range: 10.068155 - 10.069266  Debug.js:108
[49804] Buffered Range: 20.136355 - 20.137399  Debug.js:108
[49804] Index for video time 30 is 2  Debug.js:108
[49804] SegmentTemplate: 20 / 51.233  Debug.js:108
[49805] Getting the next request at index: 3  Debug.js:108
[49805] SegmentTemplate: 30 / 51.233  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v2_3_gpac.m4s". FragmentLoader.js:175
[49846] loaded video:MediaSegment:30 (200, 3ms, 32ms)  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v2_init_gpac.mp4". FragmentLoader.js:175
[49900] loaded video:InitializationSegment:NaN (200, 0ms, 31ms)  Debug.js:108
[49906] Initialization finished loading  Debug.js:108
[49913] Buffered Range: 0 - 0.000977  Debug.js:108
[49913] Buffered Range: 10.068155 - 10.069266  Debug.js:108
[49914] Buffered Range: 20.136355 - 20.137399  Debug.js:108
[49914] Getting the request for video time : 40  Debug.js:108
[49914] Index for video time 40 is 3  Debug.js:108
[49915] SegmentTemplate: 30 / 51.233  Debug.js:108
[49915] Getting the next request at index: 4  Debug.js:108
[49915] SegmentTemplate: 40 / 51.233  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v2_4_gpac.m4s". FragmentLoader.js:175
[49949] loaded video:MediaSegment:40 (200, 2ms, 27ms)  Debug.js:108
[49969] Schedule controller stopping for video  Debug.js:108
[49974] Start Event Controller  Debug.js:108
[49974] Schedule controller starting for video  Debug.js:108
[50018] Buffered Range: 0 - 0.000977  Debug.js:108
.
[50019] Buffered Range: 21.676133 - 21.677233  Debug.js:108
[50020] Getting the request for video time : 50  Debug.js:108
[50020] Index for video time 50 is 4  Debug.js:108
[50020] SegmentTemplate: 40 / 51.233  Debug.js:108
[50021] Getting the next request at index: 5  Debug.js:108
[50976] Getting the request for video time : 50  Debug.js:108
[50977] Index for video time 50 is 4  Debug.js:108
[50978] SegmentTemplate: 40 / 51.233  Debug.js:108
[50978] Getting the next request at index: 5  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[51016] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[51021] Manifest has been refreshed at Sun Mar 06 2016 09:44:51 GMT+0100 (CET)[1457253891.417]   Debug.js:108
[51022] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[51023] Refresh manifest in 1.988 seconds.  Debug.js:108
[51023] Getting the request for video time : 50  Debug.js:108
[51024] Index for video time 50 is 4  Debug.js:108
[51024] SegmentTemplate: 40 / 51.233  Debug.js:108
[51024] Getting the next request at index: 5  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[51314] Local time:      Sun Mar 06 2016 09:44:51 GMT+0100 (CET)  Debug.js:108
[51315] Server time:     Sun Mar 06 2016 09:44:51 GMT+0100 (CET)  Debug.js:108
[51315] Difference (ms): -710  Debug.js:108
[51323] Manifest updated... set new data on buffers.  Debug.js:108
[51324] Added 0 inline events  Debug.js:108
[51324] Schedule controller stopping for video  Debug.js:108
[51337] Schedule controller starting for video  Debug.js:108
[51337] Getting the request for video time : 50  Debug.js:108
[51338] Index for video time 50 is 4  Debug.js:108
[51338] SegmentTemplate: 40 / 53.239  Debug.js:108
[51339] Getting the next request at index: 5  Debug.js:108
[51344] Start Event Controller  Debug.js:108
[51981] Getting the request for video time : 50  Debug.js:108
[51981] Index for video time 50 is 4  Debug.js:108
[51981] SegmentTemplate: 40 / 53.239  Debug.js:108
[51982] Getting the next request at index: 5  Debug.js:108
[52339] Getting the request for video time : 50  Debug.js:108
[52340] Index for video time 50 is 4  Debug.js:108
[52340] SegmentTemplate: 40 / 53.239  Debug.js:108
[52341] Getting the next request at index: 5  Debug.js:108
[52984] Getting the request for video time : 50  Debug.js:108
[52984] Index for video time 50 is 4  Debug.js:108
[52985] SegmentTemplate: 40 / 53.239  Debug.js:108
[52985] Getting the next request at index: 5  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[53022] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[53027] Manifest has been refreshed at Sun Mar 06 2016 09:44:53 GMT+0100 (CET)[1457253893.422]   Debug.js:108
[53027] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[53028] Refresh manifest in 1.988 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[53291] Local time:      Sun Mar 06 2016 09:44:53 GMT+0100 (CET)  Debug.js:108
[53292] Server time:     Sun Mar 06 2016 09:44:53 GMT+0100 (CET)  Debug.js:108
[53292] Difference (ms): -687  Debug.js:108
[53300] Manifest updated... set new data on buffers.  Debug.js:108
[53301] Added 0 inline events  Debug.js:108
[53301] Schedule controller stopping for video  Debug.js:108
[53313] Schedule controller starting for video  Debug.js:108
[53313] Getting the request for video time : 50  Debug.js:108
[53314] Index for video time 50 is 4  Debug.js:108
[53314] SegmentTemplate: 40 / 55.245  Debug.js:108
[53315] Getting the next request at index: 5  Debug.js:108
[53320] Start Event Controller  Debug.js:108
[53341] Getting the request for video time : 50  Debug.js:108
[53342] Index for video time 50 is 4  Debug.js:108
[53342] SegmentTemplate: 40 / 55.245  Debug.js:108
[53343] Getting the next request at index: 5  Debug.js:108
[54319] Getting the request for video time : 50  Debug.js:108
[54319] Index for video time 50 is 4  Debug.js:108
[54319] SegmentTemplate: 40 / 55.245  Debug.js:108
[54320] Getting the next request at index: 5  Debug.js:108
[54364] Getting the request for video time : 50  Debug.js:108
[54364] Index for video time 50 is 4  Debug.js:108
[54365] SegmentTemplate: 40 / 55.245  Debug.js:108
[54365] Getting the next request at index: 5  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[55023] Parsing complete: ( xml2json: 1ms, objectiron: 0ms, total: 0.001s)  Debug.js:108
[55027] Manifest has been refreshed at Sun Mar 06 2016 09:44:55 GMT+0100 (CET)[1457253895.422]   Debug.js:108
[55027] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
.
[56425] Getting the next request at index: 5  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[57033] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s)  Debug.js:108
[57036] Manifest has been refreshed at Sun Mar 06 2016 09:44:57 GMT+0100 (CET)[1457253897.431]   Debug.js:108
[57036] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[59036] Parsing complete: ( xml2json: 1ms, objectiron: 0ms, total: 0.001s)  Debug.js:108
[59039] Manifest has been refreshed at Sun Mar 06 2016 09:44:59 GMT+0100 (CET)[1457253899.435]   Debug.js:108
[59040] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[59040] Refresh manifest in 1.993 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[59357] Local time:      Sun Mar 06 2016 09:44:59 GMT+0100 (CET)  Debug.js:108
[59358] Server time:     Sun Mar 06 2016 09:44:59 GMT+0100 (CET)  Debug.js:108
[59358] Difference (ms): -753  Debug.js:108
[59364] Manifest updated... set new data on buffers.  Debug.js:108
.
[59396] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v2_5_gpac.m4s". FragmentLoader.js:175
[59445] loaded video:MediaSegment:50 (200, 19ms, 37ms)  Debug.js:108
[59539] Buffered Range: 0 - 0.000977  Debug.js:108
[.
[59540] Buffered Range: 31.744233 - 31.745366  Debug.js:108
[59540] Getting the request for video time : 60  Debug.js:108
[59540] Index for video time 60 is 5  Debug.js:108
[59541] SegmentTemplate: 50 / 61.262  Debug.js:108
[59541] Getting the next request at index: 6  Debug.js:108
[60469] Getting the request for video time : 60  Debug.js:108
[60470] Index for video time 60 is 5  Debug.js:108
[60470] SegmentTemplate: 50 / 61.262  Debug.js:108
[60470] Getting the next request at index: 6  Debug.js:108
[60543] Getting the request for video time : 60  Debug.js:108
[60543] Index for video time 60 is 5  Debug.js:108
[60544] SegmentTemplate: 50 / 61.262  Debug.js:108
[60544] Getting the next request at index: 6  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[61043] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[61045] Manifest has been refreshed at Sun Mar 06 2016 09:45:01 GMT+0100 (CET)[1457253901.441]   Debug.js:108
[61046] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[62492] Getting the next request at index: 6  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[63052] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[63055] Manifest has been refreshed at Sun Mar 06 2016 09:45:03 GMT+0100 (CET)[1457253903.451]   Debug.js:108
[63056] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
[64500] Getting the next request at index: 6  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[65075] Parsing complete: ( xml2json: 1ms, objectiron: 0ms, total: 0.001s)  Debug.js:108
[65079] Manifest has been refreshed at Sun Mar 06 2016 09:45:05 GMT+0100 (CET)[1457253905.475]   Debug.js:108
[65080] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[65081] Refresh manifest in 1.991 seconds.  Debug.js:108
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
[65364] Local time:      Sun Mar 06 2016 09:45:05 GMT+0100 (CET)  Debug.js:108
[65364] Server time:     Sun Mar 06 2016 09:45:05 GMT+0100 (CET)  Debug.js:108
.
[66437] Getting the next request at index: 6  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[67084] Parsing complete: ( xml2json: 2ms, objectiron: 1ms, total: 0.003s)  Debug.js:108
[67088] Manifest has been refreshed at Sun Mar 06 2016 09:45:07 GMT+0100 (CET)[1457253907.484]   Debug.js:108
[67089] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
[67090] Refresh manifest in 1.989 seconds.  Debug.js:108
.
.
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207
[69090] Parsing complete: ( xml2json: 2ms, objectiron: 0ms, total: 0.002s)  Debug.js:108
[69094] Manifest has been refreshed at Sun Mar 06 2016 09:45:09 GMT+0100 (CET)[1457253909.49]   Debug.js:108
[69095] Matching default timing source protocol to manifest protocol:  http://time.akamai.com/?iso  Debug.js:108
.
XHR finished loading: GET "http://time.akamai.com/?iso". TimeSyncController.js:257
.
[69497] Start Event Controller  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/v2_6_gpac.m4s". FragmentLoader.js:175
[69522] loaded video:MediaSegment:60 (200, 6ms, 24ms)  Debug.js:108
[69589] Buffered Range: 0 - 0.000977  Debug.js:108
.
[70599] Getting the next request at index: 7  Debug.js:108
XHR finished loading: GET "http://192.168.0.104/dash/mpd19/output/dashcast.mpd". ManifestLoader.js:207

[82565] Getting the next request at index: 8  Debug.js:108

.
.

thanks

wilaw commented 8 years ago

@rofeifei - you haven't actually raised the timeShiftBuffer to 60s. What you did was raise the minimum BufferTime to 60s:

minBufferTime="PT60.000000S"

I would suggest setting the minBufferTime to one segment duration (10s in your case). If you set the time shift buffer correctly, then you would see something similar to

timeShiftBufferDepth="PT60.000000S"

in your manifest.

Also, you have set a manifest refresh interval of 1s, which is way too fast. With SegmentTemplater/Number addressing, the player doesn't actually need to refresh the manifest at all, so I'd suggest setting it to 60s unless you plan on doing ad insertion or modifying available bitrates etc.

minimumUpdatePeriod="PT60S"

As a third suggestion, have tried against the 2.1 /dev code base which always contains the latest fixes? You can retrieve the code from https://github.com/Dash-Industry-Forum/dash.js.git. You will need to build the minified files. If you don;t want to do that, I have attached the latest dash.all.debug.js file to this comment. Unzip it before using. dash.all.debug.js.zip

rofeifei commented 8 years ago

Hi, @wilaw thanks a lot for your reply i followed your suggestion to transcode live streaming dash content,i am using the follow command: sudo DashCast -v "rtsp://192.168.0.7:554/live.sdp" -seg-dur 10000 -frag-dur 10000 -mpd-refresh 60 -min-buffer 10 -low-delay -insert-utc -time-shift 60 -gdr -no-loop -live and the dashcast.conf file as:

[v1]
type=video
bitrate=800000
framerate=15
width=640
height=480
[v2]
type=video
bitrate=2200000
framerate=15
width=640
height=480

The mpd file generated as:

<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" availabilityStartTime="2016-03-10T14:08:33.377" minBufferTime="PT10.000000S" timeShiftBufferDepth="PT00H01M00S" type="dynamic" profiles="urn:mpeg:dash:profile:full:2011" minimumUpdatePeriod="PT60S">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>dashcast.mpd</Title>
 </ProgramInformation>
 <Period start="0" id="">
  <AdaptationSet segmentAlignment="true" bitstreamSwitching="false">
   <SegmentTemplate timescale="14" duration="140" media="$RepresentationID$_$Number$_gpac.m4s" startNumber="0" initialization="$RepresentationID$_init_gpac.mp4"/>
   <Representation id="v1" mimeType="video/mp4" codecs="avc1.42c016" width="640" height="480" frameRate="14" sar="1:1" startWithSAP="1" bandwidth="800000">
   </Representation>
   <Representation id="v2" mimeType="video/mp4" codecs="avc1.42c01e" width="640" height="480" frameRate="14" sar="1:1" startWithSAP="1" bandwidth="2200000">
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

but when trying to play the stream from dash.js 2.1/dev player it display some segment as video poster (static screen) while we can see from chrome network tab more segment still loading as show in th liveclientscreenshot from 2016-03-10 15_12_07

i need some clarification please

carterh062 commented 8 years ago

@wilaw I have a very similar issue and am using a very similar command to @rofeifei. Not quite sure what is wrong here. It works in Dash.js v1.6 (though it sometimes freezes), but will not work in v2.0.0

rofeifei commented 8 years ago

Hi, @wilaw please, can you give me some suggestion to solve this issue? many thanks

carterh062 commented 8 years ago

@rofeifei I've got it working pretty well (except for about a segment's length of audio drift, which I'm working on now). I'm encoding with ffmpeg from input=rtmp to output=udp, and reencoding the audio with 44100 Hz and stereo, then reading that into DashCast live. It still doesn't work great in dash.js v2.0.0 but it works consistently in v1.6.0 save for some audio drift.

Encoding with ffmpeg before passing it along to DashCast helped my stream a lot.

rofeifei commented 8 years ago

Hi, @carterh062 thanks can you please share the ffmpeg command used? many thanks

wilaw commented 8 years ago

@rofeifei - without the live stream to inspect, I have no more suggestions unfortunately. Best way forward is to collaborate with @carterh062 to0 get your two solutions to a comparable state, and then we can look at resolving the 2.0 issues as I wouldn't want you stuck on 1.6

@carterh062 and @rofeifei - we really want the 2.x branch to work well with your solution. Have you tried the nightly build available at http://tinyurl.com/dashjsnightly ? If one of you can stand up a public stream, that would be most useful for debugging.

carterh062 commented 8 years ago

@wilaw Really appreciate your help. I am working on some issues with the aac codec. I will let you know if I can get a solid stream going through S3 -> Cloudfront. Thanks so much again.

carterh062 commented 8 years ago

@wilaw I now have a live DASH stream that has been running for a while and except for some a/v sync issue, works consistently with dashjs v1.6, and v1.4, but not v2.0. Might it be possible to send the mpd link to you privately somehow for further testing of the stream?

Either way, I'm going to run it through a test with the nightly build of dashjs now.

Let me know what works, and once again, really appreciate your help and contributions to the MPEG DASH community.

wilaw commented 8 years ago

@carterh062 - have you tried your stream against the 2.1 branch - you can access a nightly build here: http://mediapm.edgesuite.net/dash/private/support-player/nightly/index.html

If that still fails, then you can send you stream URL privately to Dan (@akamaidash) or myself. My email address is "d2lsYXdAYWthbWFpLmNvbQ==" in base64.

Cheers

Will

carterh062 commented 8 years ago

@wilaw I did try against the 2.1(nightly) branch as well. It seems to be having a similar problem. On both v2.0 and v2.1, it downloads the mpd, and with no errors does not download any segments, including init segments (as perceived from the chrome network tab). I will send you an email with a link to my test stream.

Carter

GauravTD commented 8 years ago

Hi All,

I am facing similar issue while trying to play rtsp stream. First I am doing rtsp to mp4 conversion using ffmpeg _ffmpeg -re -i $URL -vcodec copy -an -f mp4 -movflags frag_keyframe+empty_moov -fragduration 4 camera.mp4 & It will create camera.mp4 in background with 4 sec of segment. Now, I am giving this mp4 as input to MP4Box to generate MPD file MP4Box -dash-live 4000 -profile "dashavc264:live" -bs-switching no -dynamic -mpd-refresh 1200 -dash-ctx gaurav.txt -out gaurav.mpd -segment-name gaurav -add ./Videos/camera.mp4 gaurav.mp4_

Now, I am trying to play gaurav.mpd using http://mediapm.edgesuite.net/dash/private/support-player/nightly/index.html player, however it is failed with "try to prune buffer " error: Please find the complete log as below:

DEBUG: [4-25-2016:18:04:45].txt created. Debug.js:108 [1715597] Parsing complete: ( xml2json: 1ms, objectiron: 1ms, total: 0.002s) Debug.js:108 [1715597] Manifest has been refreshed at Mon Apr 25 2016 18:04:46 GMT+0000 (Greenwich Standard Time)[1461607486.599]
Debug.js:108 [1715598] Matching default timing source protocol to manifest protocol: http://time.akamai.com/?iso Debug.js:108 [1715700] Local time: Mon Apr 25 2016 18:04:46 GMT+0000 (Greenwich Standard Time) Debug.js:108 [1715701] Server time: Mon Apr 25 2016 18:04:46 GMT+0000 (Greenwich Standard Time) Debug.js:108 [1715701] Difference (ms): -702 Debug.js:108 [1715701] MediaSource attached to element. Waiting on open... Debug.js:108 [1715702] MediaSource is open! Debug.js:108 [1715702] Duration successfully set to: 1.7976931348623157e+308 Debug.js:108 [1715703] Added 0 inline events Debug.js:108 [1715703] video codec: video/mp4;codecs="avc1.4d4028" Debug.js:108 [1715706] Schedule controller stopping for video Debug.js:108 [1715706] No audio data. Debug.js:108 [1715707] No text data. Debug.js:108 [1715707] No fragmentedText data. Debug.js:108 [1715707] No embeddedText data. Debug.js:108 [1715707] No muxed data. Debug.js:108 [1715708] Start Event Controller Debug.js:108 [1715708] Native video element event: play Debug.js:108 [1715709] Refresh manifest in 1199.999 seconds. Debug.js:108 [1787604] try to prune buffer

Can you please guide me with exact step to play rtsp stream via MPEG DASH, as I am not much familiar with MP4Box. Thank you in advance for your valuable help!

chinlungli-tutk commented 8 years ago

Hi I got liked issue on mp4box packager. My DASH source mp4/mpd files are generated by mp4box. My test player is DASH_IF dash.js. The player doesn't play the stream and my browser console got the logs as follow : [92949682] Playback Initialized Debug.js:108 [92950124] Parsing complete: ( xml2json: 40.0ms, objectiron: 1.55ms, total: 0.0415s) Debug.js:108 [92950131] Manifest has been refreshed at Wed Jul 20 2016 17:04:20 GMT+0800 (台北標準時間)[1469005460.453]
Debug.js:108 [92950157] MediaSource attached to element. Waiting on open... Debug.js:108 [92950159] MediaSource is open! Debug.js:108 [92950159] Duration successfully set to: 200.597 Debug.js:108 [92950160] Added 0 inline events Debug.js:108 [92950161] No video data. Debug.js:108 [92950161] No audio data. Debug.js:108 [92950162] No text data. Debug.js:108 [92950162] No fragmentedText data. Debug.js:108 [92950162] No embeddedText data. Debug.js:108 [92950162] Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines

Debug.js:108 [92950163] No streams to play.

My mpd content is below: https://s3-ap-southeast-1.amazonaws.com/dash1029/media/mp4box/mv_dash.mpd.

Can anyone give some help??

wilaw commented 8 years ago

The player is intentionally not playing your multiplexed content, since it is not allowed per the DASH IF Interop Guidelines. It tells you this in the log line:

“Debug.js:108 [92950162] Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines”

The solution is to package your content with mp4box so that audio and video is demuxed. If your source video is source.mp4, then try something like

MP4Box -dash 5000 -frag-rap -bs-switching no -profile live source.mp4#video source.mp4#audio

-Will

From: ChinLung Li notifications@github.com Reply-To: "Dash-Industry-Forum/dash.js" reply@reply.github.com Date: Wednesday, July 20, 2016 at 2:12 AM To: "Dash-Industry-Forum/dash.js" dash.js@noreply.github.com Cc: Will Law wilaw@akamai.com, Mention mention@noreply.github.com Subject: Re: [Dash-Industry-Forum/dash.js] dash live with mp4box generated .m4s and .mpd doesn't work (#1008)

Hi I got liked issue on mp4box packager. My DASH source mp4/mpd files are generated by mp4box. My test player is DASH_IF dash.js. The player doesn't play the stream and my browser console got the logs as follow : [92949682] Playback Initialized Debug.js:108 [92950124] Parsing complete: ( xml2json: 40.0ms, objectiron: 1.55ms, total: 0.0415s) Debug.js:108 [92950131] Manifest has been refreshed at Wed Jul 20 2016 17:04:20 GMT+0800 (台北標準時間)[1469005460.453]

Debug.js:108 [92950157] MediaSource attached to element. Waiting on open... Debug.js:108 [92950159] MediaSource is open! Debug.js:108 [92950159] Duration successfully set to: 200.597 Debug.js:108 [92950160] Added 0 inline events Debug.js:108 [92950161] No video data. Debug.js:108 [92950161] No audio data. Debug.js:108 [92950162] No text data. Debug.js:108 [92950162] No fragmentedText data. Debug.js:108 [92950162] No embeddedText data. Debug.js:108 [92950162] Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines

Debug.js:108 [92950163] No streams to play.

My mpd content is below: https://s3-ap-southeast-1.amazonaws.com/dash1029/media/mp4box/mv_dash.mpdhttps://urldefense.proofpoint.com/v2/url?u=https-3A__s3-2Dap-2Dsoutheast-2D1.amazonaws.com_dash1029_media_mp4box_mv-5Fdash.mpd&d=DQMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=KkevKJerDHRF9WRs8nW8Ew&m=kQwQtkU4RMPG-utdTHR4nauK-cN6fu7WO730AvDwGuA&s=JEHLeaGtnrDW8BfrniYnbFTeBOLngGmvNkwhcYc8SHM&e=.

Can anyone give some help??

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3Agithub.com_Dash-2DIndustry-2DForum_dash.js_issues_1008-23issuecomment-2D233895468&d=DQMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=KkevKJerDHRF9WRs8nW8Ew&m=kQwQtkU4RMPG-utdTHR4nauK-cN6fu7WO730AvDwGuA&s=x-SUjb4TOfscWkVaiTSOf73HC0-D4nAJHR473T017VE&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3Agithub.com_notifications_unsubscribe-2Dauth_AComChVKsAiiE7GYh3McrchIa4F0oDhjks5qXeZzgaJpZM4HD59i&d=DQMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=KkevKJerDHRF9WRs8nW8Ew&m=kQwQtkU4RMPG-utdTHR4nauK-cN6fu7WO730AvDwGuA&s=bZmpq-Ju2fJvW6mg5QsRc40PzeZc_enilmM108zfAEw&e=.

rbouqueau commented 8 years ago

There is even a blog article for these command-lines: http://www.gpac-licensing.com/2014/08/21/ibc-2014-dash-avc264-support-in-gpac/

cscscheng commented 8 years ago

I have the same program I am use dashcast to test mp4 live dash but failed if dashcast create static MPD file it worked fine. I use this site http://www-itec.uni-klu.ac.at/dash/?page_id=605# to test if MPD file was fine or not. My test cmd is "DashCast -mpd-refresh 1 -no-loop -no-rewrite -vf video4linux2 -v4l2f mjpeg -v /dev/video0 -live-media -mpd test.mpd -vcustom "bframes 0" -low-delay" Can any one help me. Thx!

LloydW93 commented 7 years ago

It sounds like the original issue here was solved - and that there's then been several follow up issues.

If any of these issues are still ongoing, please search to see if there's another related issue and raise a new one if not.