Python/CGI web frontend for avconv/ffmpeg

Hey guys!

I'm helping my school with setting up a broadcasting studio, and one of our biggest issues has been streaming infrastructure. Since all the school PCs are on the same LAN, we wanted to stream via LAN to save bandwidth, because it would be pretty dumb to stream out to YouTube just so people on the same local network as us could view it. There really are not a lot of "easy" options for this under Linux, especially when put in comparison with a company like vBrick or Matrox (we actually looked at Matrox's Monarch, and several of the other schools across the county are using vBrick) and as a result our IT department tends to shy away from using a Linux PC with a capture card to stream. The issue with that is that we end up with something like a vBrick encoder, which seems great, but it's really not compared to someone who knows what they're doing with avconv (aka ffmpeg) under Linux. vBricks are also absurdly expensive, like several thousand dollars for a streaming box that has a max resolution of 480p. Whether this is because of their MSRP, or because my school system has to buy from certain places as required by the state, I don't know. Either way, its not at all economical for them to continue to use vBrick, and sorry if this offends anyone but they seem to cause more problems then they're worth.

So my solution is to have an easy web frontend for the popular avconv tool, since I had been able to replicate the vBrick's LAN streaming capability with avconv on a Celeron box. The school has literally hundreds of Windows XP machines that they are getting rid of, some are even dual cores (don't ask me why they're throwing those out, I know, you could install Windows 7 on them, it's silly). My goal is to make it where all they've gotta do is set up a simple Linux install (probably Debian) on one of those systems, toss in a Video4Linux2 compatible capture card, and install my software. That way they can have the versatility of the libav suite, but without having to fight with a command line for everything.

TL;DR: I am writing a web frontend for avconv, using Python and CGI scripts. Anyone who wants to help test it or add things to it is welcome. I designed it in such a way that there is essentially infinite possible ways for people to design the actual stream configuration interface, and the number of streams you can run off a single machine is limited only by the machine itself.

You can find my project at

Please let me know what you think, and if I made any dumb mistakes. I'm no rocket scientist, I just know enough Python to get around, so I figured I'd try my luck and see how this goes. Also, this is my first time using git for anything more than downloading others work, so if I made any dumb mistakes in the way I set up git, please tell me. Constructive criticism is appreciated, hate is not.


Also, if you have any questions about how/why something works/is done a certain way, please ask! I'm home from school on a long weekend so I'll be happy to answer them.