Closed InanisV closed 9 months ago
Hi Tom,
Hope all is well
Is it the Live DASH profile you want to stream or are you asking how to stream using goDASH?
To answer both questions:
We have our own 4K test dataset at “https://www.ucc.ie/en/misl/research/datasets/ivid_uhd_dataset/“
Which contains 30 live DASH MPDs across a range of segment durations.
This leads to item 2:
Easiest option is to run this command in a terminal window: ./godash -config ./config/configure.json And change the settings to suit the parameters you want, in ./config/configure.json
Which includes changing the MPD to use for streaming - in the “url” setting - which I have changed below to point to one of our Live MPD profiles
{ "adapt" : "arbiter", "codec" : "h264", "debug" : "on", "initBuffer" : 2, "maxBuffer" : 60, "maxHeight" : 1080, "streamDuration" : 40, "storeDash" : "off", "outputFolder" : "123456", "logFile" : "log_file_2", "getHeaders" : "off", "terminalPrint" : "on", "printHeader" : "{\"Algorithm\":\"on\",\"Seg_Dur\":\"on\",\"Codec\":\"on\",\"Width\":\"on\",\"Height\":\"on\",\"FPS\":\"on\",\"Play_Pos\":\"on\",\"RTT\":\"on\",\"Seg_Repl\":\"on\",\"Protocol\":\"on\",\"TTFB\":\"on\",\"TTLB\":\"on\",\"P.1203\":\"on\",\"Clae\":\"on\",\"Duanmu\":\"on\",\"Yin\":\"on\",\"Yu\":\"on\"}", "expRatio": 0.2, "quic" : "off", "useTestbed" : "off", "url" : "[http://cs1dev.ucc.ie/misl/4K_non_copyright_dataset/4_sec/x264/bbb/DASH_Files/live/bbb_enc_x264_dash.mpd]", "QoE" : "on", "serveraddr" : "off" }
Hope this helps…
If not let me know and I’ll advise some more :)
Best wishes,
J
Dr. Jason Quinlan
Lecturer
School of Computer Science and Information Technology | Room G.72 Western Gateway Building | University College Cork | T12 XF62 ☎ +353 21 4205987 | ✉ @. @.> | @.***
    
On 10 Dec 2023, at 06:26, Tom Zhan @.***> wrote:
Hi, Is there any instructions or samples of Live Streaming MPD of GoDASH?
Thank you!
— Reply to this email directly, view it on GitHub https://github.com/uccmisl/godash/issues/10, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACN44DKT57SG7PMMOLJMINTYIVIX7AVCNFSM6AAAAABAOK2OV2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGAZTIMRTHA3TAOA. You are receiving this because you are subscribed to this thread.
Hi Jason,
That's very kind of you. Do appreciate your answer!
Currently I am using ffmpeg to generate a live stream.
The stream clips and MPD are kept updated by ffmpeg in the data folder.
But the goDASH player reports error when streaming, saying Panic error recovered : runtime error: index out of range [0] with length 0
.
I have checked that the player can fetch the MPD file correctly. So I guess that it may be the compatibility problem of MPD and goDASH (since the live stream itself works with DASH.js). After comparing the Live MPD you provided with mine, I still cannot tell the problem. It seems that my MPD is correct in format. Could you help me check the problem? Thank you!
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
profiles="urn:mpeg:dash:profile:isoff-live:2011"
type="static"
mediaPresentationDuration="PT10M3.9S"
minBufferTime="PT0.5S">
<ProgramInformation>
<Title>Big Buck Bunny, Sunflower version</Title>
</ProgramInformation>
<Period id="0" start="PT0.0S">
<AdaptationSet id="0" contentType="video" segmentAlignment="true" bitstreamSwitching="true" frameRate="30/1" maxWidth="1280" maxHeight="720" par="16:9" lang="und">
<Representation id="0" mimeType="video/mp4" codecs="avc1.64001e" bandwidth="200000" width="640" height="360" sar="1:1">
<SegmentTemplate timescale="1000000" duration="500000" availabilityTimeOffset="0.467" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
</SegmentTemplate>
</Representation>
<Representation id="1" mimeType="video/mp4" codecs="avc1.64001f" bandwidth="600000" width="852" height="480" sar="640:639">
<SegmentTemplate timescale="1000000" duration="500000" availabilityTimeOffset="0.467" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
</SegmentTemplate>
</Representation>
<Representation id="2" mimeType="video/mp4" codecs="avc1.64001f" bandwidth="1000000" width="1280" height="720" sar="1:1">
<SegmentTemplate timescale="1000000" duration="500000" availabilityTimeOffset="0.467" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
I think it has to be the structure of the MPD.
The live version we have in our dataset was created by GPAC version 0.7.2
This may have changed over the years, and as goDASH is no longer in active development, issues can occur.
From a quick review of http://cs1dev.ucc.ie/misl/4K_non_copyright_dataset/4_sec/x264/sintel/DASH_Files/live/sintel_enc_x264_dash.mpd? and the content you provided below, I can see a few additional parameters in your file that are not in our MPD - I’ve marked a few of them in red below, but there are more.
It’s relatively easy to update goDASH to at least hold the extra parameters. If you look in http/mpdPArsing.go, you will see a number of structures.
Starting around line 80, you see a “type MPD struct” containing a number of variable and values
Then further on, a number of addition struct’s that are named after these variables.
This is how the MPD is parsed.
You just need to add some new variables and values that match the extra parameters you have in your MPD file
If you take “id="0" start="PT0.0S”” as an example from
type Period struct {
XMLName xml.Name xml:"Period"
Duration string xml:"duration,attr"
AdaptationSet []AdaptationSet xml:"AdaptationSet"
ID string xml:"id,attr"
Start string xml:"start,attr"
}
So typically this part of your MPD file is not the issue, so you move on to the other para’s and see if they are there...
This will at least allow your MPD to be fully read and parsed.
This may not fix your error, but at least it will solve one problem and allow you to move on to the next problem :)
Also, goDASH does not re-fetch the MPD, as this is typically only done once by goDASH at the start of the stream, but this depends on where ffmpeg is updating the MPD (local or server-side). So, the issue might be here also..
Hope this helps,
Best wishes,
J
Dr. Jason Quinlan
Lecturer
School of Computer Science and Information Technology | Room G.72 Western Gateway Building | University College Cork | T12 XF62 ☎ +353 21 4205987 | ✉ @. @.> | @.***
    
On 10 Dec 2023, at 14:40, Tom Zhan @.***> wrote:
Hi Jason,
That's very kind of you. Do appreciate your answer! Currently I am using ffmpeg to generate a live stream. The stream clips and MPD are kept updated by ffmpeg in the data folder. But the goDASH player reports error when streaming, saying Panic error recovered : runtime error: index out of range [0] with length 0.
I have checked that the player can fetch the MPD file correctly. So I guess that it may be the compatibility problem of MPD and goDASH (since the live stream itself works with DASH.js). After comparing the Live MPD you provided with mine, I still cannot tell the problem. It seems that my MPD is correct in format. Could you help me check the problem? Thank you!
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT10M3.9S" minBufferTime="PT0.5S">
Big Buck Bunny, Sunflower version — Reply to this email directly, view it on GitHub https://github.com/uccmisl/godash/issues/10#issuecomment-1848983556, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACN44DPYW7AK7NBYGNFCPX3YIXCWVAVCNFSM6AAAAABAOK2OV2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNBYHE4DGNJVGY. You are receiving this because you commented.
Hi, Is there any instructions or samples of Live Streaming MPD of GoDASH?
Thank you!