While I know Android phones play mp4 the best, I wanted to know what other specification in this container is the best for playback, (the bitrate, resolution, fps etc). Or perhaps some other codec/format that Android can (or is designed to) play smoothly and with an acceptable file size/quality ratio?

I searched the Android developer page and tried the H.264 setting on my converter etc, but the file fails to play natively on my handset and when I tried to open it using RockPlayer. It plays slowly and the video-audio gets out of sync progressively. I tried many external players. However, 3GP videos from my Nokia phones play smoothly (even natively). So I want to know what is ideal for my low end phone (video should be normal quality and size)?

My phone is a Huawei IDEOS U8150 running Froyo with a 320x240 resolution and a 528 Mhz ARMv6 processor.

Also if anyone has tips, what types of encoding is recommended, if I'd be using the software decoder mode in apps like RockPlayer, so I can achieve more file size compression yet achieve smooth playback?

  • I don't think this has a real answer. All formats have size and complexity tradeoffs; what you really need to have smooth playback on a low-end device is a low quality video :P especially with software decoding. – Matthew Read Sep 13 '11 at 16:39
  • 2
    I agree, but I don't need even close to 360p (the youtube video quality) on my 320x240 resolution, so I'd try lower quality. What I want is some optimum format for my device.. I can't just go on trial and error with video encoding on my laptop which is already slow and there are countless options on the converter I use. I would require a rough estimate on which I can tweak my settings on.. from someone who probably tried a video convert for low end android phones. – Irfan Sep 13 '11 at 16:50

I got H.264 (x264 encoder) to play with these settings on my Huawei U8150

  • Main profile
  • 320x240 (original video was 4:3 which helps, 16:9 or 2.35:1 should become even easier to decode)
  • and tuned with the 'fastdecode' setting

I used ffmpeg as the frontend, as Handbrake makes selecting the "fastdecode" option impossible

ffmpeg -i "inputfile.avi" \
    -sws_flags lanczos+accurate_rnd \
    -vf "scale=320:-1" \
    -c:v libx264 \
        -crf 23.0 \
        -preset veryslow \
        -profile:v main \
        -tune fastdecode \

the resultant file was only 10% bigger than the one using high profile and no fast decode

I would also recommend using MX player as it actively resyncs the video and audio for those occasional slow downs it may have, but fastdecode seems to fix all the slow downs I could find.

| improve this answer | |

I have a phone with the same specs... I found that If I encode using wmv2 and wmav2 it actually plays smoother, go figure. libx264 is a lot more complex of a codec and takes about 30 sec. to start playing a movie, but quality will be better. For a player I use MXplayer with the arm6 codec pack. Within MXplayer settings I set it to use software video decoding and hardware audio encoding as default. Here is a sample of my encoding process:

ffmpeg -i input_movie.mp4 -vcodec wmv2 -b 200k -acodec wmav2 -ab 64k -ar 32000 -ac 2 -s 320x180 output_movie.wmv

I let my little daughter use this on long car rides to keep her occupied. Obviously you'd want to tweak the bitrates and resolution to what you want. But this is good enough for her.

| improve this answer | |

The Huawei IDEOS u8150 uses the Qualcomm MSM7201A system on a chip. That chip uses a QDSP4000 core for media processing. The QDSP4000 core natively supports MP4 encoding and decoding.

In order to take advantage of that feature and avoid software decoding, you will want to store your video in MP4 format. You can reduce the resolution of the video to match the display of your phone (320x240).

A great tool for transcoding your video media is Handbrake. You can use Handbrake to transcode to MP4 format at 320x240 resolution. Once you find a combination of settings that work well for you, consider publishing it as a preset for other u8510 users to try.

| improve this answer | |
  • afaik, MP4 is just a container format and the H.264 video standard that most MP4s come these days do not work well or does not even play at all on the hardware decoder mode! – Irfan Aug 18 '12 at 12:28

It seems that most of the H.264 encoded video files do not work in Huawei IDEOS u8150 using the Hardware renderer mode.

3GPs , H.263s and less complex video profiles work at full speed in HW mode.

Most FLV video files play on Software Rendering mode (ARMv6 MXVideoPlayer) at appreciable speed (sometimes lagging at certain points, but overclock to more than 600 Mhz, and it runs fairly good at all points)

Standard MP4s or MPEG-4 Part-2 compressed video files seem to be the best file format to play on low end android phones which is easy on the CPU (plays perfect in HW mode) and has good balance between clarity and file size.

Here is my HandBrake Preset for Huawei IDEOS u8150 optimum video format : http://depositfiles.com/files/gbqtxevo4?redirect (320x240 resolution)

Your Answer

