Install Latest ReadyMedia miniDLNA Raspberry Pi

raspberry_pi_readymedia_minidlnaDLNA servers allow you to stream your media library on your HTPC server to any DLNA enabled client. DLNA enabled clients include Bluray players, XBOX 360, XBOX One, PS3, PS4 and some TVs. There are other DLNA servers out there for the Raspberry Pi. I was looking at MediaTomb but it consumes several hundred megabytes of RAM when it is in use. This it not ideal on the low spec Pi running Raspbian. I had trouble with miniDLNA 1.0.24 not displaying avi (Divx, XviD) files in its folder database, this bug has been patched and fixed so that avi files – at least the ones I tested – were accessible by my DLNA clients. I will assume you have already mounted a USB hard drive for this guide – here is my Properly Mount USB Storage on Raspberry Guide in case you do need to mount. You will be compiling miniDLNA for Raspbian from source, it only takes a few minutes.

If you are trying to figure out which hardware would work best for you, consider reading the Pi benchmarks.

Update – Now installs the latest miniDLNA

The latest version of ReadyMedia miniDLNA in the Raspbian repos is ancient so we are going to compile miniDLNA (now ReadyMedia) from source on Raspbian. This should fix avi problems you may have had in the past like them not showing up in the library.

Remove your old miniDLNA version

sudo apt-get purge minidlna -y
sudo apt-get remove minidlna
sudo apt-get autoremove -y

Make sure you have a source repository, default Raspbian does not include this, change wheezy to jessie if you know you are on jessie

echo "deb-src wheezy main contrib non-free" | sudo tee -a /etc/apt/sources.list

Update repositories so it will detect your new source repo

sudo apt-get update

Grab dependencies for building it from source

sudo apt-get build-dep minidlna -y

If you get any errors you can install the dependencies manually

sudo apt-get install autopoint debhelper dh-autoreconf gcc libavutil-dev libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libflac-dev -y

Download the latest miniDLNA source

wget -O minidlna.tar.gz

SourceForge has some stability issues so here is a Dropbox mirror for 1.1.4 in case it is down


Unpack miniDLNA

tar -xvf minidlna*.tar.gz

Enter the miniDLNA directory

cd minidlna*

Configure, make and install miniDLNA, it will take 5 minutes.

./configure && sudo make && sudo make install

Copy the default configuration file

sudo cp minidlna.conf /etc/

Copy the startup daemon script to autostart ReadyMedia miniDLNA on boot

sudo cp linux/minidlna.init.d.script /etc/init.d/minidlna

Make the startup script executable

sudo chmod +x /etc/init.d/minidlna

Update rc to use the miniDLNA defaults

sudo update-rc.d minidlna defaults

Edit the configuration

sudo nano /etc/minidlna.conf

Edit the settings below to point to your media folders.

This version of minidlna will give you multiple folders under Video. Before movies and TV would have been under separate categories, now movies and TV will both be under the category video. It will also show the folder structure of them instead of showing just the video files. Avi files will also show up and be streamable.

inotify uses resources because it autoupdates your library, if you don't use inotify you will have to manually restart and reload the miniDLNA service

The friendly name is how your miniDLNA server will show up to its streaming clients

# Names the DLNA server
friendly_name=RasPi Media Server
# Tells the DLNA to update the library when there are changes

Ctrl+X, Y and Enter to save and exit

Start the minidlna service

sudo service minidlna start

Now make sure miniDLNA starts on boot

It will run on port 8200 so you can check how many media files it has indexed there

sudo reboot

Your Raspberry Pi DLNA server will now be accessible to stream media to your clients: PCs, XBOX, PS3, Phones, TVs and more.

This will form part of my Ultimate Raspberry Pi Media Server guide, to make sure you don't miss it sign up for my mailing list to find out when it drops.