How to convert video for viewing on Sony Ericsson C702? I'd like to convert some of my videos for viewing them on Sony Ericsson C702 cell phone. But I couldn't find the right set of parameters (a/v codecs, container, etc.). I'd prefer a solution using ffmpeg or another tool available on Linux. It seems that different phone models even from the same manufacturers have different video decoding abilities, so the more specific answer the better.

Update: As suggested, I'm posting ffmpeg's output of one of the videos recorded by the phone itself:

ffmpeg version 0.7.13, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 13 2012 14:01:54 with gcc 4.4.5
  configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g'
    --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl
    --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid
    --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora
    --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264
    --enable-libspeex --enable-nonfree --disable-stripping
    --enable-avfilter --enable-libdirac --disable-decoder=libdirac
    --enable-libfreetype --enable-libschroedinger
    --disable-encoder=libschroedinger --enable-version3
    --enable-libopenjpeg --enable-libvpx --enable-librtmp
    --extra-libs=-lgcrypt --disable-altivec --disable-armv5te
    --disable-armv6 --disable-vis
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.123. 0 / 52.123. 0
  libavformat  52.111. 0 / 52.111. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/media/sde1/DCIM/100MSDCF/MOV00456.MP4':
  Metadata:
    major_brand     : 3gp5
    minor_version   : 512
    compatible_brands: vfj13gp43gp5mp42emp 
    creation_time   : 2012-05-19 12:27:58
    copyright       : 
    copyright-eng   : 
  Duration: 00:01:21.79, start: 0.000000, bitrate: 382 kb/s
    Stream #0.0(jpn): Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 348 kb/s, 29.60 fps, 30 tbr, 1k tbn, 30 tbc
    Metadata:
      creation_time   : 2012-05-19 12:27:59
    Stream #0.1(jpn): Audio: aac, 16000 Hz, mono, s16, 31 kb/s
    Metadata:
      creation_time   : 2012-05-19 12:27:59
Devices are often picky, and specifications are usually too uninformative so it's always trial and error. For example, your link indicates that the phone supports MP4 playback, but that is simply a container than can utilize several video and audio formats.
MPEG-4 part 2 video and AAC-LC audio
(partially based on the working video details you provided)
ffmpeg -i input -vf scale=320:-1 -c:v mpeg4 -b:v 400k -c:a aac -strict experimental -b:a 32k -ar 16000 -ac 1 output.mp4

Some recommendations:

Try increasing the audio bitrate since -c:a aac is not very good
for low bitrates, and because your build does not support better AAC
encoders.

Consider removing -ar 16000 and -ac 1. It's best to try to preserve the original file audio rate and number of audio channels if supported by the phone.

Try replacing -b:v 400k with -q:v using a value of or between 2 - 5 (lower is higher quality) to set a constant quantization parameter instead of an arbitrary bitrate.


Results may vary.
H.264 video and AAC-LC audio
ffmpeg -i input -vf scale=320:-1 -c:v libx264 -profile:v baseline -crf 28 -c:a aac -strict experimental -b:a 128k output.mp4

I'm unsure if this will work on your phone, but it's worth trying. See the FFmpeg and x264 Encoding Guide for more info on encoding with x264.