MusicPlayerDaemon / MPD

Music Player Daemon
https://www.musicpd.org/
GNU General Public License v2.0
2.19k stars 350 forks source link

Feature request: MPEG-DASH audio support #560

Closed danburd closed 2 years ago

danburd commented 5 years ago

This issue is a feature request for MPEG-DASH audio support within Music Player Daemon.

Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple's HTTP Live Streaming (HLS)...

While most DASH streams are video streams, there are some audio-only streams, including from the BBC, which can be found here.

If the project maintainers believe that this feature is outside the scope of the project or that demand is insufficient, and consequently close this issue, I will not be offended. Thank you for considering this feature request, and for all of your work on MPD.

MaxKellermann commented 5 years ago

The only client library is https://github.com/bitmovin/libdash but everything about it is just horrible. The git repository contains all dependencies (too many!) as binaries, plus libdash itself is included as binary build. The API is badly designed and heavily bloated, and there is no cancellation, which means the library can freeze MPD indefinitely. The API is undocumented. The code quality is just as bad as the API design; it uses unsafe C++ like you would have written in the dark 90ies, no trace of modern and safe C++. For sure I don't want to use such a bad library!

The other option would be GStreamer, which brings a huge tail of its own event loop, which I'd like to avoid.

What remains is VLC's implementation which I havn't checked out yet.

chsims1 commented 3 years ago

Just wondering if anything has changed in the interim with regard to libraries & potential implementation. BBC radio seems to have heavily invested in the standard, especially since their streaming changes in March 2021.

ptorre commented 2 years ago

I was researching DASH support so that I could get this working, but now find that the BBC streams have started working in mpd. This is on the old distro install of Music Player Daemon 0.21.5 (0.21.5) on Raspbian GNU/Linux 10 (buster).

I'm wondering if updated libavformat libraries have made this work. Does anyone know if that is the case or is it possible that the BBC streams are falling back to a non DASH stream on the cdn?

ptorre commented 2 years ago

@MaxKellermann FYI, I just found that MPEG-DASH is enabled when ffmpeg is built with --enable-libxml2 . DASH streams are working well for me now.

danburd commented 2 years ago

DASH appears to work for me too, and I'm just using mpd and ffmpeg from the Fedora repositories without any special build flags. I suppose this issue can be closed.