masmu / pulseaudio-dlna

A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
GNU General Public License v3.0
1.25k stars 161 forks source link

Proposal for new PA-DLNA features #353

Open geotom opened 5 years ago

geotom commented 5 years ago

Status & Idea

I really love this project and it works quite well for me. Yes, some problems (like a delay of several seconds for stream to start, volume change stuttering, etc.) but that's all minor issues.

In general I always found, that most Linux Desktops lack a proper streaming/casting integration deeply integrated into the system and accessible to all sessions and media players. Most software is either outdated, or an island solution where streaming is only available in one program. Windows has this for years already and I find Linux really lacks here behind in the age of the multi-room speaker trend.

What I really dream of, is to be able to stream/enqueue music from my file manager, from any music player, etc. and to view/edit player queues. I find the pa-dlna approach really good because it implements part of this functionality in a central place (pulseaudio) and ships a lightweight streaming server.

General streaming server

My proposal would be to think a bit larger and make pa-dlna a general streaming controller/server (also movies/images) and allow not only constant system-audio output, but also file based output. And additionally the queueing of media to DLNA/Chromecast devices. I do not want just another DLNA server to serve collections of local media. I mainly want a DLNA controller tightly integrated into the OS allowing for quick ad-hoc sharing of media files and system-audio output. The sharing would be realized with the lightweight pa-dlna server.

File manager integration

Several popular file managers are extendable by Python plugins, this way we could easily integrate "Cast to... / Stream to... / Enqueue to..." context menus into them. Such plugins could get developed as extra bundles with a requirement to pa-dlna

System integration

I know this is a lot of work and probably goes beyond the original scope of this project. Nevertheless I find Linux Desktops should have such a feature and pa-dlna looks for me like the best candidate for such a functionality. I'd love to hear what you all think or maybe you have suggestions for alternatives.

Cygn commented 5 years ago

Well, I don't think so. What you are describing is a DLNA control point integrated in the desktop shell. pa-dlna is a way to avoid a DLNA control point, using the raw sound routing through pulseaudio. Those are conflciting objectives. For what you have in mind, rygel is a better starting point IMHO. There are other linux/dlna initiatives that can be of interest also, like eezUPNP.

stuaxo commented 5 years ago

Hi @wandth pipewire is a project that should enable the audio / video routing (though it has a way to go). When it comes to all the GUI integration, that would need to be implemented on top.

S

geotom commented 5 years ago

Heard of it already @stuaxo, but hanks. Let's see if it will replace pulseaudio. I really liked this presentation: https://2017.guadec.org/wp-content/uploads/2017/06/gnome-home-media.pdf On Linux we have most of the tools, but never integrated well together...maybe that's why I like systemd over init ;-)

stuaxo commented 5 years ago

+1 on this, integration projects are sorely needed.

phd21 commented 5 years ago

Hi masmu, wandth, & Everyone Else,

I have always liked this pulseaudio-dlna application, very nice. Thank you to the developers.

+1 for more integration

++1 I would also very much like this to be able to send video as well as audio, perhaps creating another application for doing both video and audio.

++ I would also like to be able to send "cast" my desktop video and audio to DLNA/UPnP devices.

Regards, Phil (phd21)

sixtyfive commented 5 years ago

While I agree with @Cygn, a .desktop file and a simple tray applet for selecting the renderer and with a quit button would be helpful additions.

Cygn commented 5 years ago

While I agree with @Cygn, a .desktop file and a simple tray applet for selecting the renderer and with a quit button would be helpful additions.

Well, most modern desktops have a pulseaudio volume applet which let you choose the output, and work quite well with pa-dlna. I think pulseaudio-dlna should stick to providing the infrastructure. All the UI stuff are toolkit/desktop dependent, so better leave it to the their devs. That's also the benefit of using pulseaudio standards - pa-dlna dosn't need to care about the higher levels, nor the desktop needs to know what all this is about as long as it just sees a pa-sink.

sixtyfive commented 5 years ago

In my distro, that's too many clicks, that's why I would like to have a selector in a padlna-specific applet. Plus, and more importantly, the quit button.

geotom commented 5 years ago

In my distro, that's too many clicks, that's why I would like to have a selector in a padlna-specific applet. Plus, and more importantly, the quit button.

Check out pasystray! This really helps to switch quickly between sinks. I also agree that pa-dlna does not need an extra applet for this.

sixtyfive commented 5 years ago

Cool, thank you for the info, @geotom! That does take care of convenient device switching nicely. Looking around the Issues here it seems that a number of people are quite happy running padlna as systemd services. Perhaps, then, that's a job for distros, as well (i.e., to provide a GUI for that if that fits with their user base). Since there's already suggestions about shipping padlna with systemd service files, I'll shut up here.

deleterium commented 4 years ago

Could be pa-dlna be loaded as a module for pulseaudio?