Media Streaming to a DirecTV HD DVR from Linux
After much trial and error with various solutions, I have a reliable way to stream music from my Linux server to my DirecTV HR-20 DVR.
A few years ago, I found two very excellent internet radio stations from Nullsoft/Winamp’s SHOUTcast service. I have used Winamp for as long as I have been involved with MP3s, which was back in 1997. I would often hook my laptop up to my living room stereo system to stream the music, but I have wanted a simpler, more readily accessible solution.
Additionally, while personally pushing to go paperless, and wanting a reliable backup of almost everything, I decided that a home file server with redundant hard disks was necessary. I set one up to hold all of my important financial documents, personal pictures, and a backup of my audio collection which is quite large. I haven’t fully digitized my audio collection due to the time requirements, but it’s getting there.
Every other month or so I would look to see if there were any new solutions available to help me stream SHOUTcast back to my living room stereo system. I was excited when DirecTV enabled the internet port on my HR-20 and added some UPNP media support. I was quickly able to get Windows Media Player 10’s Library streaming to it, but I really didn’t want to leave one of my windows machines running when I already had my more functional Linux server, and it only made sense to keep trying to find a Linux solution since that’s where my music library resides. I came across several hardware solutions and primarily focused on the DLink-DSM and Logitech Squeezebox, but both had limitations and I was trying to avoid adding additional hardware to my living room.
Focused on getting my DirecTV receiver working, I had to find suitable software. I first attempted TwonkyMedia. It installed with a snap and indexed my media quickly. My receiver was quickly able to communicate with the server, but none of the media would play or even display a list of actual songs. The DirecTV receiver supports wav streams only, or more officially LPCM streams. It all comes down to transcoding in the software to convert from MP3 (or whatever) to LPCM. Earlier versions of Twonky have articles mentioning functionality on my receiver with transcoding, but it all appears broken in version 5. I was more than willing to buy the software, but after a couple of official support requests and forum posts to go completely unanswered, I simply gave up. TVersity has a lot of reported success, but it’s for Windows only. GeeXboX uShare failed on the transcoding front, all media came back with Xs as they weren’t offered as LPCM and I couldn’t readily find an answer and didn’t have the time to dig too far into it.
Finally, I found the perfect solution, a smaller solution that I had passed up on several months ago called MediaTomb. Version 0.11.0 was released back in October of 2008, so the project appeared stalled and dead at first glance. MediaTomb has excellent and flexible transcoding support, and good documentation and user-contributed guides to help along. The real key was to get the latest copy from source, build and install, and then implement the published HR-20 transcoding. The transcoding information is available at http://mediatomb.cc/dokuwiki/transcoding:transcoding#directv_hr2x_transc...
Quickest way to get up and running: (The same setup should work on the entire HR-2X series)
- On the MediaTomb Downloads page at the bottom, use the provided subversion commandline to download the latest source
- Follow the note below that about running autoreconf -i and the required version of autoconf and automake
- Run the configure script and adjust any paths to dependencies to enable the features you want. I settled on ./configure --enable-taglib --enable-ffmpeg --enable-libexif
- Run make & make install
- Follow the transcoding guide. You will need to get cvlc set up, it’s pretty painless on a modern package-based distribution, and the media player packs a ton of power and flexibility.
- Start mediatomb as a non-root user (required by cvlc), log onto the web interface, and point at your media
I have a very simple transcoding script setup, mostly a hack, to get SHOUTcast working through cvlc. My next goal is to get a more robust transcoding script set up. I’ll try to share if it gets to a decent working state.
All in all, I’m very happy to have this finally working without any additional hardware or software. I’m a very stubborn person, and in the end, I don’t think I could have found a better solution. MediaTomb is a very promising solution and the simplistic nature with the flexible transcoding features is a real plus for me.