• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Best software options for linux music streaming server that can also play local headless?

spronkey

Member
Joined
Apr 23, 2019
Messages
7
Likes
2
Hi all, I'm looking for recommendations for a software package for my existing linux file server / HTPC that can accomplish the following goals:

  1. Music library stored on local machine
  2. Headless playback to locally connected (& bluetooth) devices,
  3. Remote control via some sort of mobile ios/android/web app

Also optionally, but ideally:
  • The ability to have separate simultaneous music playback and HTPC audio on different output device (e.g. so someone can listen to music while someone else watches a movie)
  • The ability to stream music from this machine to a streaming device
  • The ability to stream music to this machine (as if it were e.g. an AirPlay receiver)
I'm a bit lost with the various options around - have discovered the likes of MPD and Mopidy, which appear to be usable (with remote control extensions/apps) for the first three goals, but none? #1? of my optional ones. Have also found lots of the integrated packages designed for e.g. Raspberry Pis like Volumio which appear to be able to accomplish most of my goals, but seem to be specific to that hardware, where I'd ideally like to use the machine that's already sitting there connected to my existing electronics.

I've also considered the idea of essentially using something like Plex to serve music from this machine and something like shairport-sync to then stream that music, uh..., straight back to the same machine. Seems kinda silly though?
 
Not sure if this will be any help at all, but if you did go for Plex server, you can cast from Plexamp clients to most other Plexamp endpoints - i think this works for desktop, Chromecast and airplay devices. Plexamp requires Plexpass, which i think is on sale now.
 
Volumio can be installed on Intel PC (I have an old mini PC with it running fine - USB into a DAC), though I also have Volumio on a Raspberry PI. And Volumio can do mostly everything you mentioned above. You can even install PlexAmp on the a Volumio (though its not via a plugin yet), I even have 'full' Plex installed on that MiniPC (so I can take advantage of the sonic similarities feature of Plex (i.e. play sonically similar Albums).

MoodeAudio is very similar but only designed to run on Raspberry PI's so probably not what want (though has most of the features you want).

Mostly there are fairly mature ways of providing a Linux machine with selectively whatever features you need e.g. Shairport-sync (provides Airplay) and as I am mentioned PlexAmp can be easily installed on Linux (arm and intel) and you can cast from PlexAmp on your phone to it.

Owntone-Server is another nice bit of software which can index your local music but then cast the music to Airplay devices around your house.

Most of these solutions are actually using MPD internally.
 
Thanks for the replies @fuzzy_logic and @Jeremoeof

Can you install Volumio into an existing Linux setup? I thought it was basically a whole packaged OS? I have a bunch of other things running on this machine, so really don't want to have to start with a dedicated OS.

Owntone definitely looks interesting though - hadn't found this one and it looks almost exactly what I'm after, but will have to do some further reading.
 
I think this would all be possible with Logitech Media Server. LMS is the server and squeezelite is the client handling streaming to devices. You can have multiple independent squeezelite instances running for each audio device connected to the machine (or they can be synchronized for whatever reason).


I believe you can also create airplay clients using the ShairTunes2 plugin.
 
Maybe you should give JRiver Media Center a try. I run it on a Pi 4 with Raspberry Pi OS to serve Apple Lossless to my Apple stuff, DLNA devices and a Pi running Moode, controlled with their JRemote app.
It also has video capabilities but I never tried those.
 
@FooYatChong has adjustable media interface for third party apps and web interference (but a bit complicated) and of course comprehensive DSP chain (I don't know if it has nor how mature is it VST plugin suport under Linux). I use it under Windows and with MusicCast for DLNA streaming mostly. Video capabilities are not bad but not great either (different audio path and not better and less polished than free alternatives [VLC, MPC-HE and derivatives).
 
Last edited:
Thanks for the replies @fuzzy_logic and @Jeremoeof

Can you install Volumio into an existing Linux setup? I thought it was basically a whole packaged OS? I have a bunch of other things running on this machine, so really don't want to have to start with a dedicated OS.

Owntone definitely looks interesting though - hadn't found this one and it looks almost exactly what I'm after, but will have to do some further reading.
Another nice music 'application' for music streaming I use is called Navidrome - https://www.navidrome.org/ - I actually have both Owntone and Navidrome on the same low power computer both looking at the same set of local music - Navidrome provides a super lightweight web application for accessing and playing music - Navidrome also support the Subsonic API (which lots of mobile music apps support) - so together with say a VPN can provide a nice free soiution to streaming your own music anywhere. Though I really just have this as a backup for PlexAmp as I find that to be a better experience (with its music metadata support).
 
I like Dietpi. It's simple you can add or remove what you want or don't need.
 
I think this would all be possible with Logitech Media Server. LMS is the server and squeezelite is the client handling streaming to devices. You can have multiple independent squeezelite instances running for each audio device connected to the machine (or they can be synchronized for whatever reason).


I believe you can also create airplay clients using the ShairTunes2 plugin.
Ditto to this. I use it myself. This is longstanding solution with a lot of different modules to customise on top of a really extensive core set of functionality. Brilliant solution.
 
Another mention for Logitech Media Server. I have mine playing to several different players, including a Google Chromecast Audio connected to a portable speaker, an AVR via Airplay, an old Android tablet connected to a Bluetooth speaker, and a Raspberry Pi 3 running piCorePlayer, connected to a USB DAC. Multi-room audio for very little outlay, and easily controlled from the nearest smartphone/tablet/PC via a web interface (Material skin).
 
Bit of an update here as I have found a solution that so far works reasonably well. I'm using the following on my Ubuntu 22.04 base install:
  • Logitech Media Server, deployed via docker with the lmscommunity image (https://hub.docker.com/r/lmscommunity/logitechmediaserver#!)
  • lms-material skin for LMS (https://github.com/CDrummond/lms-material)
  • ShairTunes2 plugin to allow iOS devices to stream via AiPlay to the LMS server and have it play via its outputs
  • 2x Squeezelite instances on the local machine, deployed via docker with this image: https://github.com/GioF71/squeezelite-docker
    • One for the onboard audio output that goes to one set of speakers (+ also bluetooth speakers if and when they are connected), and one for a dedicated DAC
    • I'm using the PulseAudio mode to give better control around e.g. sometimes connected bluetooth speakers
    • To get two instances running concurrently you have to manually specify a (dummy) MAC address in the docker environment variables to one of the two instances
    • You can't use docker's always-restart modes with squeezelite in docker because it messes with PulseAudio's initialisation on boot, so instead the author of the docker image provides a systemd usermode service that I have installed two of
  • Squeezelite-X on my Windows 10 desktop for streaming to my local machine
I haven't yet sorted out a solution for streaming from Android devices, or looked at a client for iOS (will look into this eventually, for now I'm just using the web interface from browser to play server media).

The clients also aren't quite as nice as say, Spotify, but they aren't half bad.

Thanks all for the help and suggestions everyone, it was quite a mission to get most of this running nicely, but the end result is quite powerful. The only issue is that there's quite a large control delay when playing via AirPlay, so if I manage to solve that I'll post back here with a solution!
 
I haven't yet sorted out a solution for streaming from Android devices, or looked at a client for iOS (will look into this eventually, for now I'm just using the web interface from browser to play server media).
iPeng for iOS
There are probably multiple options for streaming from Android. I've done it using the UPnP plugins for LMS and UPnP android apps. You could probably put something together with the WaveInput plugin and some bluetooth audio config, but it probably isn't as easy.
 
as I have found a solution that so far works reasonably well. I'm using the following

Well done on getting that all sorted.

Squeezelite-X on my Windows 10 desktop f

That's a great app - I use it on my Windows desktop too

a solution for streaming from Android devices

I use SqueezePlayer (AUD 6.49) on an old Nexus 7 tablet along with Material Skin in a browser, connected via 3.5mm jack to a portable speaker, that is my workshop player
iPeng for iOS

Haven't tried this one yet, might give it a go when I re-purpose one of the older family iPhones into a player.
 
Wondering why, Windows is being discussed I a Linux thread?
 
Wondering why, Windows is being discussed I a Linux thread?

The music server runs on Linux, the music players run on several platforms - Android, iOS, MacOs and Windows. Re-reading this thread, I'd say that Windows has been mentioned, rather than discussed.
 
Back
Top Bottom