FFmpeg, Linux, 3gp, Nokia, and you!

If you have a relatively-new Nokia phone it should be able to play videos, which is totally sweet. Any video that you can play on the computer can be converted to a format that your phone can play; videos from YouTube, VCD, SVCD, DVD, XviD, etc. All you need is FFmpeg (I use GNU/Linux, but FFmpeg also runs on BSD and apparently Windows). I’ve tried Nokia phones running Symbian S40 and S60, but it should work on other phones too (the 3gp file format was designed with mobile phones in mind).

If your phone has a bit of horsepower (tested on Nokia 5130 XpressMusic and 5320 XpressMusic), you can convert using the following command:

ffmpeg -i all_shall_perish-eradication.flv -f 3gp -vcodec mpeg4 -b 150000 -s 320x240 \
-r 18 -acodec libfaac -ab 64000 -ar 24000 -ac 2 all_shall_perish-eradication.3gp

Note: the “-r 18” sets the frame rate. The video skips on some phones if they can’t keep up with the frame rate (even with the bit rate set lower, like 100000). You shouldn’t notice any loss of quality with a setting like 18 (most videos are closer to 30), but the video will be much more pleasant to watch. Play with the settings and pay attention to video/audio synchronization when people are talking, for example.

Phones like the Nokia 2630 and the 3110c use more-conservative settings, such as:

ffmpeg -i all_shall_perish-eradication.flv -f 3gp -vcodec h263 -b 100000 -s 128x96 -r 12 -acodec\ 
libamr_nb -ab 12200 -ar 8000 -ac 1 all_shall_perish-eradication.3gp

The difference between the two is:

  • Video codec
  • Video quality (-b, “bit rate”)
  • Audio codec (AMR was designed specifically for voice data)
  • Audio channels (-ac, stereo sound needs left and right!)
  • Frame rate



  1. Thaths

    I used ffmpeg just last night to downsample a divx video to run on a digital photoframe. There is a version of ffmpeg (and the gui ffmpegX) for osx as well.

    1. Alan Author

      ffmpeg is great! I remember using ffmpegX a few years ago when I was a Mac OS X dude. Now that I’m 100% Linux I have to do most of my conversions on the command line, though there are a few great GUIs for some niche tasks (Handbrake and Avidemux). But google always saves the day when you’re in a bind! I do my part for the community by posting my feats on the blog. In fact, my most popular stories are the few about Linux and mobile phones; I get people stumbling in from google from all over the world.

Comments are closed.