How to convert videos for the VTech Innotab 3 on Mac and Linux via the terminal

Innotab 3 Photo

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:

  • width=480,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.


  1. THANK YOU! I’d tried a couple different methods for getting video onto my son’s new Innotab 3 but all of them ended up playing audio but no video. It’s because I was using h.264. As soon as I changed it to MJPEG it worked.

  2. I am so thankful you are bashing your head against the manual as well. I’ve tried (several times) to use the movies I’ve already ripped via handbrake and I can’t make it work. I’ll try the options you’ve listed here and let you know how it goes.

  3. And there it goes.

    I had to use libmp3lame, which I suppose is still support for mp3 encoding. I also found that I ripped all my movies in 5.1 and there is a problem using avconv to rip straight to mp3 from that. It seems obvious now, but I kept experiencing an encoder problem and I was mystified as to why until I looked through the metadata and came to that realization.

    I appreciate the script, now I get to tweak for a batch job for about 20 movies.


  4. Thanks for pointing that out Chris. I noticed the same bug after upgrading libav. I updated the original post with a note about the mp3/libmp3lame issue on linux.

  5. Any AVCHD convertor is now free for Mac !
    I’m using it and it’s what I was looking for.
    Nevertheless your solution is very good but I’m not sure it takes avantage of the multicore.

    1. If you want multithreaded operation from avconv, just add --threads n where n is an integer between 1 and the number of cores your CPU has.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.