Site Network: freakymousemats | portal | smashingbloke | regenology

the weblog

Occasional musings that fall out of my brain and on to the site. Occasionally more occasional than I'd like. But will try to fix that.

Nightmares on Demand

Posted by stephen on Thursday, 01st December, 2005 @ 00:57

This week I have been mostly trying to get our very expensive, very commercial Video on Demand server to submit to my will. Bit by bit I've managed to get it working, with a little help from it's creators here and there. But this thing is a pig to work with, accepts only very specific MPEG2 files (that require expensive hardware or oddly enough a TiVo and VLC to produce) and is very closed source. The only bit of commercial software we actually use. Except for the backup system, but that's easily fixed later!

Consequently I've spent far too many hours this past week getting into the guts of how MPEG files are constructed and how transport streams work, etc and have learned way more than I ever wanted to know.

The problem we've got is there aren't any open source video-on-demand servers. There's VLC, it can respond to RTSP requests, but it doesn't implement any of the cool stuff that makes it worthwhile, like pausing, fast forwarding and rewinding. And apparently it doesn't scale well.

I've been thinking for a long time that building a VoD server isn't really that complicated a problem. And my friend Dave (I was the old landlord who used to bang on about how great Macs were much to his ire, look at him now!) said the other day if it was him, he'd try and write one. Well, I've learned a lot about the subject in the past few days, and found a lot of useful stuff that means most of the work is done already.

So if I'm a little smart and a lot lucky, I might be able to take the RTSP protocol spec, the Twisted framework for creating servers and the PyMedia library and mux them together with a little study of some tcpdumps from what's going into my DSL4000 and build a VoD server.

I honestly don't know if I stand a chance at this. I'm not a good programmer by any stretch of the imagination, but I've always felt my talents more lay with gluing existing stuff together. So we shall see. Watch this space.

Made with Django.