New media server

I have used mt-daapd, together with my SoundBridge devices, for several years now. It works well except that is disconnects after about one hour. Also it is discontinued. Therefore I'll try some new options in OpenBSD to see if I can find a replacement.

Coherence UPnP server

Before succeding with coherence setup I tried PlayBack on MacOS X to test UPnP capability of the SoundBridge.

Because coherence is based on UPnP networking which in turn uses multicast IP networking it is neccesary to setup a static route to a virtual multicast network.

route -nv add -interface 224/4 192.168.0.1

Rather you need to activate MULTICAST_HOST in rc.conf ...

This means setup a static route to 224/4 network, i.e. addresses 224.0.0.1-239.255.255.255 which is a reserved IP class for specifically for multicasting. 224/4 is stated to be directly reachable (without any gateway hopping) via -interface modifier. Stating 192.168.0.1 is just a way to say that the network is reachable via re0. Check routing with netstat.

# netstat -rn                                
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            192.168.0.1        UGS        3     4637     -     8 re0
127/8              127.0.0.1          UGRS       0        0 33200     8 lo0
127.0.0.1          127.0.0.1          UH         1       75 33200     4 lo0
192.168.0/24       link#1             UC         2        0     -     4 re0
192.168.0.1        00:40:63:ed:a0:dc  UHLc       1        0     -     4 re0
192.168.0.102      00:16:cb:ab:fd:fb  UHLc       1     2158     -     4 re0
224/4              link#1             UCS        0        0     -     8 re0

Test multicast by ping and tcpdump.

tcpdump -ni en0 host 228.0.0.4  # on the server
ping -t 1 -c 2 228.0.0.4 # on any client
ping -c 2 224.0.0.1 # actually works

Coherence complains about inotify support. I suspect that this has something to do with fam or gamin in OpenBSD 4.7. See background in Inotify, FAM and Gamin.

Audio format transcoding. TBD. AAC/m4p doesn't seem to be supported.

PF configuration. TBD.

Does multicast routing have to be enabled. No routing within one single subnet??

net.inet.ip.mforwarding=1      # 1=Permit forwarding (routing) of IPv4 multicast packets

Enabling transcoding

From OpenBSD 4.8 coherence is part of ports. So installation is a simple. Transcoding is supported by py-gstreamer. I also install dbus support to remove one warning at start up. I create a config file under /etc/coherence.conf.

pkg_add coherence
pkg_add py-gstreamer
pkg_add dbus-python
coherence -c /etc/coherence.conf

SqueezeCenter

Squeezecenter is not allowed to be included as FTP or CD-ROM so it must be installed from ports. Assuming that you have ports source installed.

cd /usr/ports/audio/squeezecenter
make print-run-depends
pkg_add <all dependent packages> # This will save a lot of time
make package # optional, just to check
make install

Start slimserver and configure via web interface, http://localhost:9000.

slimserver.pl

It shows up on SoundBridge but when I try to connect nothing happens.

MediaTomb

MediaTomb is ported to OpenBSD and will be part of OpenBSD 4.9.

miniDLNA

MiniDLNA MiniDLNA is the DLNA server used in Netgear NAS servers. It is available in OpenBSD is and is very easy to use.

References