Videos on a Palm

Schlepping around a laptop to watch movies on while traveling can be kind of cumbersome. Sure, it's fine for hotels and the like, but on planes and trains it just gets in the way. To remedy this I decided to try out transcoding and shrinking video files to play on my Palm Tungsten T and my newer Tungsten TX. I learned two things from this exercise:

  1. TCPMP (The Core Pocket Media Player) is better at playing videos than MMPlayer (Mobile Media Player).
  2. FFmpeg is a lot easier to use than Mencoder.

Playing Videos on a Palm
Granted, the Palm was never intended to be a media player. It's main focus has always been as a calendar, task and data storage device for those on the go. But over the years, multimedia has crept into its feature set. Palm devices are now quite capable of playing video and audio files with no problems.

My first Palm, the Tungsten T, is a 16MB model with a 320x320 color screen. This is about the minimum specs for playing any kind of video. In the case of my Tungsten T, I installed my media player and files on a 1GB SD Card and ensured I had as much of the unit's main 16MB free (I usually ran around 12MB free on it).

My second Palm, the Tungsten TX, is a 128MB unit with a 480x320 screen. This is quite a jump from my older one. However, I still kept my media on a 1GB SD card just to ensure I had enough of the unit's main memory to run the player.


FFmpeg vs Mencoder
Since most of my video files run at 640x480 or larger, I needed to cut them down a bit. At first I used Mencoder (part of the MPlayer suite) to simply convert my AVI files to smaller AVI files. I used this command:
mencoder <input-filename>.avi -audio-preload 0.8 -delay 0.1 -af volnorm -srate 44100 -oac mp3lame -lameopts mode=2:cbr:br=192 -subfont-autoscale 3 -subcp "latin1" -noodml -vf scale=150:114 -sws 9 -ovc lavc -ffourcc DX50 -o <output-filename>.avi

Note that I scaled the video to 150x114. This is for the Tungsten T. For the TX I used 480x320 since the screen on it is capable of rotating from portrait to landscape.

One problem kept popping up when using Mencoder. Depending on the file, I would at times get skips and jumps. Some files would convert fine, others would not.

Next I tried FFmpeg using this command:
ffmpeg -i <input-filename>.avi -s 150x114 <output-filename>.avi

Again, the scale (150x114) is for the Tungsten T; I used 480x320 on the TX. FFmpeg worked much better; all files converted with no skipping.


AVI vs ASF
On a lark, I tried converting from AVI to ASF and found that the picture quality was noticably better. With FFmpeg, the command is just like above except the output filename ends in .asf instead.


TCPMP vs MMPlayer
During my work I used both TCPMP and MMPlayer to play my video files. MMPlayer was the first one I used because it had quite a bit of good press on the different sites I had visited in my search for a media player. It's biggest plus is that you only need to install the player and its license to be up and running. There are a couple of drawbacks, however. One, MMPlayer will not play ASF files. And two, it costs money hence the need for installing a license.

TCPMP, on the other hand is free and does play ASF files. It's one drawback is that it depends on plugins to play different types of files. So to play ASF files I had to also install the FFmpeg plugin with it. And to play my MP3s I had to install that plugin.


So there it is, the quick and dirty on converting video files for playback on a Palm handheld.


Back to Linux Page