
The Core Pocket Media Player (
TCPMP) is the new incarnation of
Betaplayer, one of the most popular open-source audio/video players for Windows Mobile. The most promising aspects of the latest
test version 0.65y is the optional ffmpeg plugin, which consists of a smaller subset of the
ffmpeg library. Thanks to this plugin, TCPMP now includes codec support for H.264 and MPEG-4 with GMC optimization.
Bad news first
The ffmpeg plugin hasn't been optimized and it's therefore slower and more CPU-intensive than TCPMP's native video decoders. Picard, the brain behind TCPMP, did not say yet whether he is planning to optimize the routines in the future.
Nevertheless, if you own a decent PDA such as the Dell Axim X50v, you can benefit from the new video support. H.264 AVC (Advanced Video Coding), also known as MPEG-4 Part 10, is poised to become a major video standard because it can replace several popular formats (such as MPEG-2 or DivX, which is a MPEG-4 ASP codec) while offering better compression efficiency over them. An overview of various encoders and decoders working on the implementation of the H.264 format can be found
here.
Testing environment
In all my tests with TCPMP I used
Nero Recode to encode various video snippets. Nero Encode's H.264 AVC implementation is based on the
Ateme Codec, which received best marks in several independent reviews. For the purpose of this review, I used a 120 seconds clip of the popular TV series "24", which includes some slow and some fast movement passages. I encoded the clip using various bitrate and video size settings, with the Nero "Portable AVC" profile and its default encoding settings (high-quality, 2 pass). The audio stream was always encoded in 32Kbps LC AAC. Afterwards I ran each clip with TCPMP V0.65y on my Dell Axim X50v and benchmarked the playback (using default TCPMP settings).
H.264 already usable, but with some restrictions
I was able to play H.264-encoded video clips on the Axim X50v without frame drops. The limiting factor here: video size. The bitrate, in which each clips was encoded with was, to my surprise, not decisive. The 624MHz CPU of the X50v could deal with H.264 video clips that didn't exceed a resolution of 384 x 208, no matter whether the clip was encoded with a bitrate of 125Kbps or even 500Kbps.
On the other hand, any higher resolution caused frames to drop and resulted in a benchmark below 100%. Even with the low bitrate of 125Kbps, if a clip had a larger video size (such as 624 x 352), TCPMP didn't score better than with an average speed of 60-70%.
Also, forget about CPU power savings. You'll need the full 624MHz of your CPU in order to avoid frame drops even at 384 x 208. In conclusion, if you use H.264 to encode your videos for TCPMP:
- don't use video sizes bigger than ~ 384 x 208
- use a decent bitrate such as 500Kbps.
TCPMP alternatives are in the works
TCPMP V0.65y is not the first player that adds support for H.264. The Nero ShowTime Mobile Teaser V1.0.0.2, available free to registered Nero users, added experimental support earlier this year. When I tested it on my Axim X50v, the encoded movies played extremely sluggish and sometimes the video didn't even appear. I know, however, that the programmers are working full-time to improve the performance. They are also working on supporting the Intel 2700G chip (used in the Axim X50v) as well as some other multimedia accelerator chips for the portable/mobile market.
H.264/AVC is a very complex video codec - and without hardware optimization it will be very hard to run 640x480 realtime clips even on 624 MHz handhelds.