Hi, we are currently evaluating DASH for our product and have found a potential issue. DASH always downloads the first chunk of the highest quality level first no matter what the network conditions are, which drastically slows down the load time.
I’m unsure as to whether we have setup incorrectly, but it occurs in 5.3 and 5.5.
For example, using 500kb/s limit, it took ~14 seconds for the player to buffer the first high rest chunk (staying on a black screen). Then it will play it, and then it will reconfigure as expected to lower the res. The DASH contents are around 80mb.
Is this intended? And if so, what mitigation strategies do you suggest?
Steps to Reproduce
We used the following command (or similar) to generate the DASH.
./ffmpeg -i input_file.mp4 -map 0:v -map 0:v -map 0:v -map 0:v -map 0:v -map 0:v -map 0:a -s:v:0 1920x1080 -aspect:v:0 16:9 -c:v:0 libx264 -b:v:0 5000k -profile:v:0 main -bf 1 -keyint_min 30 -g 30 -sc_threshold 0 -b_strategy 0 -s:v:1 1280x720 -aspect:v:1 16:9 -c:v:1 libx264 -b:v:1 3000k -profile:v:1 main -bf 1 -keyint_min 30 -g 30 -sc_threshold 0 -b_strategy 0 -s:v:2 854x480 -aspect:v:2 16:9 -c:v:2 libx264 -b:v:2 1500k -profile:v:2 main -bf 1 -keyint_min 30 -g 30 -sc_threshold 0 -b_strategy 0 -s:v:3 640x360 -aspect:v:3 16:9 -c:v:3 libx264 -b:v:3 750k -profile:v:3 main -bf 1 -keyint_min 30 -g 30 -sc_threshold 0 -b_strategy 0 -s:v:4 426x240 -aspect:v:4 16:9 -c:v:4 libx264 -b:v:4 300k -profile:v:4 main -bf 1 -keyint_min 30 -g 30 -sc_threshold 0 -b_strategy 0 -s:v:5 256x144 -aspect:v:5 16:9 -c:v:5 libx264 -b:v:5 150k -profile:v:5 main -bf 1 -keyint_min 30 -g 30 -sc_threshold 0 -b_strategy 0 -c:a aac -b:a 128k -use_timeline 1 -use_template 1 -adaptation_sets “id=0,streams=0,1,2,3,4,5 id=1,streams=6” -f dash output_video.mpd
In unreal, we have attached the video to a widget with a direct link to the folder with a python localhost.[Image Removed]
We then use clumsy to change the bandwidth and load the stream.
For a simple test, a hotkey to open/close the widget is used to restart the stream.
It is not starting on the highest bitrate, it starts with the representation that appears first in the MPD.
This is the same as with HLS, so if you reorder the representations in your MPD you can decide which one is what buffering starts with.
Regards,
Jens