Over Macho Grande

Saturday, August 04, 2007

Flash video to Disney MixMax

I'm a sucker for electronic kid gadgets, as long as they're on clearance. In our house we've got several Juice Boxes, a VideoNow PVD, and even a Disney MixMax video player. The MixMax hits the sweet spot in that it uses cheap SD memory and uses WMV as it's video format.

My kids love to watch WordGirl. Unfortunately, there's no DVD of these shorts. The friendly folks over at PBS Kids have (intentionally or otherwise) put all the Flash video clips online in a directory of their web server (http://pbskids.org/wordgirl/content/video).

It took me a couple of days, but I can now share how I converted the files so they work on the MixMax.

My initial experiments centered on using ffmpeg on Linux to convert to a common format. It worked out okay on some of the videos, but not all of them. ffmpeg can encode in WMV/WMA, so then I tried that. Again, it worked for some videos but not all of them. As my Linux box also happens to be my Windows box, rebooting soon became tiresome and I moved to a Win32 port of ffmpeg.

Here's the ffmpeg command line I used to create a "raw" video file.

ffmpeg -i x.flv -b 512k -vcodec huffyuv -acodec pcm_u8 -r 24 x.avi

(Three notes: One, 'huffyuv' requires ffdshow to be installed. Two, this codec was chosen through trial and error, not some intrinsic "goodness" for the task at hand. Three, these files still need to be converted to the correct WMV format.)

Converting video files to the appropriate size, bitrate, etc. for the MixMax is a pain if you use the standard encoder (i.e. what the MixMax instructions recommend.) As I'm more than comfortable on the commandline I use the WSH script that comes with the encoder.

Here's the command line that does the WMV conversion:

cscript "C:\Program Files\Windows Media Components\Encoder\WMCmd.vbs" -input x.avi -output x.wmv -loadprofile "C:\Program Files\Windows Media Components\Encoder\Profiles\mixmax.prx"

(mixmax.prx is not a standard profile -- Google is your friend here)