OpenHome media with minidlna and BubbleUPnP Server

dlna_network

One year ago I have written about my Spotify setup. I am still having a Spotify acount, but now that the novelty is gone I find myself listening to it less often. One of the reasons is that I still like to buy music. When I buy a CD, then I rip it to FLAC (an open standard for lossless audio), because that is the way I prefer to listen to it. I can mount my audio collection over SSH with autofs and sshfs when I am not at home. And at home I have a network connected audio system. At home I want to be able to control the music in the living room using a smart phone. Recently I find myself moving from Apple towards Android. Fortunately the audio system I bought supports both the proprietary Apple AirPlay protocol as the open uPnP/DLNA media protocol.

Control point on the server

In my Spotify post I explained you can play the music from an iPhone and stream it using AirPlay. This turned out to be a problem, since your iPhone is in your pocket all the time. When your select music and leave the room the music stops or if you are half within reach, stutters. This is very annoying for other people in the room. I feel this is a critical flaw in the “connected” music experience in my house. In the end it should not matter who selects the music that is playing in a room.

To work around this problem I now use an iPad in the living room to play the music from. This might be an expensive workaround, but it works for me. A better solution would be to move the “control point” from the tablet to the media server. Then we don’t need a dedicated tablet to act as a control point for the room. It also means anyone can access an app on his/her phone and change the music in the room. This turns out to be the ideal situation and this is exactly what the OpenHome media protocol can bring us.

OpenHome media protocol

In this post we explain how to make the above setup work. It requires OpenHome support, which is an extension to UPnP AV as you can read on the openhome.org website:

Devices can implement ohMedia in place of, or alongside of, the UPnP Forum’s AV standards. It offers a number of advantages over the UPnP Forum’s AV standards.

One of the advantages is:

Better support for playlists: Playlists are stored on the renderer, allowing playback to continue when the control point leaves the network (e.g. your tablet goes to sleep, runs out of battery, or leaves the wifi zone).

This is important and expected, because we want the smart phone to tell what to play, but we don’t want it to actually be the point that plays the music or tells what to play next.

DLNA + uPNP + OpenHome

We need to install the following to get to the perfect setup:

  1. minidlna” on the Linux server to provide a DLNA media server
  2. BubbleUPnP Server” on the Linux server to convert the uPnP media renderer into an OpenHome media renderer
  3. BubbleUPnP Android app” on the Android phone to control the playlist on the OpenHome media renderer

This is not just any combination of applications. This is thoroughly tested and I tested many other software packages for many days.

Installing minidlna

On Ubuntu 14.04 you can install minidlna 1.1.2 using the following command:

sudo apt-get install minidlna

We still need to configure some preferences by editing the configuration file:

sudo nano /etc/minidlna.conf

Look for the “media_dir” directive and enable something like this (“A” is for audio):

media_dir=A,/home/maurits/Music

Look for the “root_container” directive and set it to “B” if you like your own folder structure:

root_container=B

Here you specify on which interface the server should listen:

network_interface=eth0

To make the configuration effective you need to save and exit with “Ctrl-X” “y” and restart minidlna using:

sudo service minidlna restart

Now you can access the status page on: http://localhost:8200/

Installing BubbleUPnP Server

Unfortunately Ubuntu 14.04 does not have BubbleUPnP in the repository. This is why you need a PPA:

sudo add-apt-repository ppa:bubbleguuum/bubbleupnpserver
sudo apt-get update
sudo apt-get install bubbleupnpserver

After installing you need to configure your renderer on the following URL: http://localhost:58050/

On the tab “Media Renderers” you need to check “Create an OpenHome renderer” for your renderer. On the “Network and Security” tab I recommend you to leave everything unchecked.

Installing the BubbleUPnP app

BubbleUPnP is a paid Android app, but it also has a free version with some limitations. Fortunately these limitations do not prevent you to properly evaluate the product. A full featured version costs less than 4 euro.

bubbleupnp

Conclusion

With the described setup I really enjoy playing music from my personal collection using my Android phone. I use the setup daily and it is as convenient as playing my Spotify music from my iPad. Great work by the community. Kudos should also go to NETGEAR and BubbleSoft for creating awesome software for Linux and Android.

PS: On a rooted Android device you may be able to play audio from Spotify to UPnP/DLNA renders, but be careful as rooting your device is not without risks.

 

 

 

 

Share

7 thoughts on “OpenHome media with minidlna and BubbleUPnP Server”

  1. Thanks for sharing the solution. I wonder if I can control what to be played on TV without the bubble upnp android app? Maybe a linux alternative to the bubble upnp android app?

  2. @htl: Thank you for commenting. Consider using XBMC (or Plex) instead for TV use. There are good free remotes available for Android for either one.

  3. The Openhome / ohMedia spec finally solves all that truly sucked with upnp/dlna audio experience. Ever since I bought my first Roku Soundbridge many years ago expecting dlna to be improved incrementally I’ve been waiting in total frustration (with variety of dlna clients). This is finally the open Sonos experience; remote control of playlists from tablets, phones and PCs (simultaneously!) in multi zone setup.

    Bubbleupnpserver is the final piece of software alchemy that turns my long since abandoned dlna renderers (Roku, TVs etc) into a fit-for-purpose modern audio solution.

    I would strongly recommend anyone interested in dlna tries this out with and without ohMedia compatibility enabled and then evangelises the benefits of the ohMedia standard to anyone creating dlna clients. This is what dlna industry body should have been doing for the last x years. With full compatibility built into the clients multi-room synchronised audio is possible!

    I have absolutely no connection with any person or company in the audio industry but I feel compelled to share what a game changer this is for dlna audio. The fact that Linn have open sourced the spec and reference implementations is a great credit to them. If only they sold more affordable renderers I would support them instantly!

    @Toz, it would be a tragedy if this spec doesn’t start getting implemented in all dlna renderers by default (got to assume dlna are never going to fix it – given the last x years they haven’t bothered). Seeds grow into acorns etc.

  4. Hi All,

    I already had the exact same setup as described here, and I’m quit happy with it .
    I have a linux-only home , 5 pc’s and a server with Openmediavault (that also runs mindlna and bubbleupnp-server) and tried many different setups, but this one seems best for now. 🙂

    1 little thing, when I start a playlist on openhome-renderer , it doesn’t contineu to next song. Only when I select random play the playlist contineus.
    I don’t have this problem when I use normal renderer.

  5. @Jack: Thank you for sharing your experience. I don’t have that problem. Actually I have another problem: sometimes the Android app need to be restarted after the playlist was ended and cleared. But 99% of the time it works flawless.

Leave a Reply

Your email address will not be published. Required fields are marked *