DASH audio playback from static manifests is not working on Safari since v3.22.0
See original GitHub issueHello,
I’m testing rx-player
on several browsers (Chrome, Firefox, Safari) for web applications I’m working on. I transcode and scale video/audio using ffmpeg
which produce a static MPD file to consume them.
Will testing I found that DASH audio playback is not working on Safari. It is working with v3.22.0
but not with latest version (v3.26.0
now).
I’ve made a repro here with details to run it: https://github.com/gtnsimon/rx-player-issue-repro
On the capture below you can see that Chrome is buffering some segments which is fine (and the playback works). But on Safari it is buffering some segments and end up fetching indefinitely the same segment range (note that stream_3.mp4
is an audio stream).
I’m running on macOS Catalina 10.15.7 (19H524), Chrome Version 91.0.4472.114 (Build officiel) (x86_64) , Firefox 89.0.2 (64 bits) and Safari Version 14.0.3 (15610.4.3.1.6, 15610).
EDIT: to complete my research it seems to occur only with audio segments (or video with audio). I’ve remove audio AdaptationSet
from the video manifest and it works with video only. I’ve also tested an audio only manifest and it doesn’t work.
Thanks for your time
Issue Analytics
- State:
- Created 2 years ago
- Comments:9
Hi,
Yes as a compromise the player download those problematic segments two times. If the second time the problem happens again for the same reason, it puts that segment aside.
I chose that solution because for now I consider this a real browser issue (as there’s a sensible amount of data missing from a segment) which may in other cases be fixed by re-downloading the segment.
Nice to see that this fix/work-around works !
Hi,
Using
custom_build/v3.26.0+buffer-history1
on repro and the app I’m working on it seems to fix the issue.I’ve notice that the first segment is being fetched 2 times on initial buffering and content is playing:
I’m ok to run with this branch as a temporary fix.
Thanks.