I’ve been using an EyeTV device as a PVR for a while, and one of the features I felt was missing was the ability to stream the recordings.
After finding a few posts that showed how to accomplish this, I was struck by how primitive these were. So I set about making things a little more robust.
First up was to check out the file format that EyeTV uses to store the recordings, which is something called “MPEG Transport Stream”. Naturally, the now-1.0 VLC project can read these files.
Getting the files to a VLC player involves:
- reading the XML that EyeTV keeps the program data in
- converting this to a playlist format that VLC will understand
- streaming the media files
Fortunately, VLC is happy to read an HTTP “stream”, that is, to fetch chunk of a media file, about 1 MB at a time, via HTTP. So that part was easy: set up a directory containing the media accessible via HTTP.
The playlist format was also pretty straightforward: XSPF is capable of carrying the (pretty basic) information required, and there is a Perl module available to write it.
The good news is that all of this was a bit of a drag to figure out, but pretty easy to understand. I’ve even got the index.pl if you think you might be able to make use of it. You’ll need to figure out a bit about paths and setting up mod_perl, but you understood all that already, right?