Some tips on how to successfully convert any video-file to AVI compatible with the Archos Vision 43.
The Archos Vision 43 …
- … plays AVI MPEG-4 (divx/xvid) ONLY
- … can’t play B-frames
- … can’t play mp4 or mkv
- … can’t play h.264
Tools to use converting:
NOT SO EASY: Mencoder
You can go about this the easy way by using “PocketDivxEncoder”, but it’s rather limited when it comes to making custom configurations. It works however and if that makes you happy, why apply for a headache doing it the hard way. But for those who like to experiment: read on.
Mencoder is “sometimes” part of the Mplayer suite (but is hard to come-by). You’ll find it at Gianluigi Tiesi’s page. Current build is r34118, and you may choose a version for AMD (athlon), Intel Pentium3 (p3), Intel Pentium 4 or better (p4) or Generic 486 (rtm). I chose rtm. Extract the download in a folder on your computer. There is no installation, because it’s a command-line tool. To make it work, I use it in BATCH files.
The package consists of two main EXE files, mencoder and mplayer. A detailed manual with all the command-line options can be found in mplayer.html, also included in the package.
The simplest way to use mencoder is like this:
mencoder -o <output-file> -oac mp3lame -lameopts cbr:preset=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=750 -ffourcc XVID <input-file>
This will encode input-file into a MPEG4 file with a variable video bitrate of 750kb/s and a constant MP3 audio bitrate of 128kb/s. The container is AVI. The name is output-file.
For the Archos, we want to add some extra options:
mencoder -o <output-file> -oac mp3lame -lameopts cbr:preset=128 -ovc lavc -lavcopts vcodec=mpeg4:v4mv:dia=-3:vbitrate=750 -ffourcc XVID -vf scale -zoom -xy 480 <input-file>
This will encode a MPEG4 AVI, allowing 4 motion vectors per macroblock (slightly better quality), shape adaptive (fast) diamond with size 3 (fast encoding) and a variable bitrate of 750kb/s. We also scale/zoom the video so it fits the Archos 480×272 screen nicely. Aspect ratio is preserved by omitting the height.
You can find many more settings to tweak with by reading the mplayer.html. If you find any improvements, please post them in the comments. I’ll gladly test them out.
Now.. let’s automate.
I have a folder on my PC called “to convert”, and I’ve made a sub-folder called mplayer, where the above downloaded package is extracted. The structure looks as such:
Inside the “to convert” folder, I’ve some batch files: doall_mpg.bat and doone.bat.
for %%f in (*.mpg) do start doone.bat "%%f"
mplayer\mencoder -o "%~1_SM.avi" -oac mp3lame -lameopts cbr:preset=128 -ovc lavc -lavcopts vcodec=mpeg4:v4mv:dia=-3:vbitrate=750 -ffourcc XVID -vf scale -zoom -xy 480 %1
What is does is simple. When I put some (*not more than 4) mpeg files (.mpg) in the “to convert” folder, together with the batch files AND I then run the doall_mpg.bat batch-file, the PC starts encoding ALL the mpeg files at once. (*) I use “start” to launch multiple jobs at once, because mencoder uses only ONE thread (core). To fully use the potential of a quad-core, you may launch at least 4 jobs in parallel without suffering a decrease in encoding speed. Mind that mencoder CAN use multiple threads, but the speed-increase is not that spectacular. AND I noticed that using threads=2 (or more) produced a lot of artifacts when playing the encoded file back on the Archos, thus we can’t use that option.
To convert other files, like AVI’s, MP4’s , etc.. just change the (*.mpg) to (*.avi),(*.mp4),..respectively. ( I know this isn’t ideal, but I’m to lazy to change it now). 🙂 If you know about batch processing and for, you’ll know what to do when you want to change it. 😉
A FEW NOTES:
- Depending on how fast and how big the SD cards is you’re using, video playback from that SD card may be choppy and out of sync. I found that the 16 Gbyte Sandisk SD-HC did not work for me. For smooth video playback, copy the video’s to the internal memory.
- You can use -vf crop=700:396,scale=480:272 to crop letterbox video’s. You may have to tweak the. All is explained in mplayer.html