I’m surveying the decoding and rapid file identification capabilities of MPlayer, vlc, ffmpeg, etc to determine which are most worth utilizing and supporting. After the research and testing I’ve already conducted, I’m leaning towards using MPlayer as the decoder of choice. It has extensive codec support via its use of binary codec packages, has a nice (and usually very speedy) wrapper script that outputs parsable information suitable for verifying a file is decodable at upload time, and provides flexible encoding options (either through its own MEncoder or by outputting in YUV.)

Nevertheless, I still plan to make a framework that lends itself to adding multiple additional software suites. Here’s how I imagine it’ll work: the mediawiki administrator will be able to specify in a configuration file an ordered list of the software packages available, for example MPlayer,ffmpeg. Then, when a file is uploaded that appears to be a video, first MPlayer’s inspector will get a chance to analyze the file and declare it decodable. If it cannot, ffmpeg gets a chance to inspect the file (it looks like it would be easy to get this functionality from ffmpeg APIs if there isn’t some little proggy out there that does it already.) The first software suite that claims to be able to decode it will get the job, and this will be stored as part of the job’s info in the recoding queue. If nothing can decode it, the user gets an error and the upload is discarded.

To continue my testing now and as I develop the entire project, it would be helpful to have a diverse collection of video files to test with. The more I can see MPlayer fail myself, the better I can write scripts that detect it, so the more obscure the container format/codecs the better. I’m particularly interested in files made by digicams, cell-phones, and consumer encoding hardware. So, to my oh so many readers, if you have any of the above named devices, please send your masterpieces to me via anonymous ftp to mikeb.servehttp.com. Upload to the pub directory. Thank you for your help.

 Also, I’m excited about the increasing amount of news surfacing about efforts to get Theora files playing natively in various browsers, especially Firefox 3, and also the efforts to achieve this functionality in existing browsers by mapping the new HTML5 stuff to existing browser plugins with javascript. It’s awesome to see Wikimedia is smoothing out the playing of Theora files in-browser too, thanks gmaxwell!

Advertisements