Jun 182009
 

I spent this week working on tools to convert videos to different formats. My main goal was allow people to specify ffmpeg conversion settings that could be used to render something into a “web-friendly” format like flv, h264, or even ogg. To do this, I have a profile model that stores a command (string) with infile and outfile dummy parameters. You select a video you want to convert and choose the conversion profile, and send it off into the sunset.

Right now the “sunset” consists of a BackgrounDRb worker. I found it pretty challenging to debug when I was working on it, BackgrounDRb gives you a very limited trace of the error, and it never pinpointed what line in my video worker was making it unhappy. When things work well, the video conversion worker does a great job. Videos convert, they’re created in the system and associated with the parent. No problems at all. The trick comes into play when videos conversion fails. Right now I don’t have any way to tell if ffmpeg is having a good time or a bad time converting which would be a really handy feature. Ideally, I’d be able to grab the last line or two from the FFMPEG output that show the status, fps, etc. I might look into this with more time.

Additionally, I’m working on some code to support more than one worker running at the same time. Right now I spawn 1 video worker, which queues up all the requests to convert video… ideally I think I’d like to enable users to define how many conversions go on at the same time so faster machines could handle more conversion processes.

May 222009
 

Here are the slides I presented this week at the RCOS meeting. I got some good feedback about the meta data and search functionality. I broke rails on my development server this morning (accidentally chowned /var) so I’ve got to spend another 2-3 hours fixing that. I suspect I’ll have some code committed to git next week when I’ve got some basic upload stuff working.

May 142009
 

Here are some slides detailing the project objectives and timeline. I’m unsure if I’m going to be able to make it to the Friday meeting, but I’ll be continuing to make progress over the weekend. Hopefully mid/late next week there will be some code pushed to git for all to see!