I picked up an Innotab 3 for my son’s 3rd birthday, and one of the selling points for this, aside from being a rugged (hopefully) kid-proof tablet, was that I could encode his favorite movies and put them on there for him. A Google search yielded tons of how-to videos on this subject, but the problem with them all is that they’re either not free, only for Windows, or some convoluted single-purpose bloatware. That being said, I took it upon myself to solve the problem.
First off, the specifications state that this device can play h.264 formatted video. This is simply not the case. If someone somehow got the settings to work for this, and got something I missed, let me know in a comment, please! At any rate, we’ll have to use the less-efficient, MJPEG codec for the video, or we get audio-only.
OK, now that my unofficial errata for this thing is done, I’ll start with the script, and I’ll explain it after.
Usage: ./script-name path/to/original/video/file.mp4
You will need to first install avconv or ffmpeg. I have an Ubuntu box, so avconv > ffmpeg for me, but YMMV. Just replace avconv with ffmpeg in the script if this is what you want to do. On the Mac, use homebrew:
brew install avconv. For *nix, consult your distribution’s documentation.
Here’s an explanation of the various script options/variables:
height=272: This sets the desired height and width of the output video. Per the manual, this is the 16×9 setting. For 4:3, use 320×240.
-i: this sets the input file. It’s the file passed as the first parameter to the script.
-vcodec mjpeg -acodec mp3: sets the audio and video codec. Again, per the manual. Note: for linux, you need to use libmp3lame instead of mp3.
-filter:v "scale...: this letterboxes the video so that it fits the preferred dimensions without messing with the aspect ratio and “squishing” the image.
-s 480x272: sets the output video dimemsions. See my earlier note about width and height, and make sure they agree – if not, your output video will look very odd…
-b:v 600k -q:v 20 -b:a 96k: sets the video bitrate to 600kbps, the quality factor to 20, and the audio bitrate to 96kbps. The bitrates are specified in the manual, but the quality factor can be decreased if the video looks bad, or increased if you want a smaller file. You may have to sacrifice some quality on the larger files because the maximum file size on any file is 2GB, per the manual.
$outfile: the final argument to avconv/ffmpeg is the name of the output file, which is going to be the name of the input file with -innotab.avi appended to it. DO NOT change the file extension on the outfile – if you do, avconv will NOT know to make an AVI file, and the video will not play at all.
Once the video is converted, drop it into the
/LLN/MOVIE folder on the SD card, or the Innotab’s internal storage, and reboot the tablet. Once it displays “scanning media…”, it’s indexed the video and the tablet can play it.