The first multi-device, multi-format video and audio player for Android, RockPlayer, has been officially released on the Android Market today. The free version is fully functional, but features in-video ads on occasion. The paid version eliminates said ads for the price of $10.
RockPlayer gives your Android phone (more on which ones later) a formidable array of media playback capabilities which not even the iPhone can hope to match. The surprisingly long list, below:
Supported file formats: avi, mkv, rmvb, mp4, mov, wmv, asf, wma, wav, mpg, ts, mpa, dvd, au, mp3, mid, ivf, aiff, ogm, ogg, cda, flic, d2v, aac, roq, flac, drc, dsm, swf, pls, pmp
Supported audio and video encoders: AAC, AC3, DTS, FLV4, LPCM, ALAW, ULAW, MPEG Audio, MPEG-1, MPEG-2, RealVideo, RealAideo, Vorbis, AVC (H264), VC1, XVID, DIVX, SVQ, Theora, Bink
Whereas in the previously announced non-Market beta version, only ARMv7 devices were supported, now 3 different versions of RockPlayer are available based on your device’s processor, with device compatibility for each listed below:
- ARMv7 instruction set version: Google Nexus One, HTC Desire, HTC Incredible, HTC EVO 4G, Moto Milestone, Moto Droid, Moto XT800, Samsung Galaxy S, Sony Ericsson X10 (and presumably Droid X)
- ARMv6+VFP version: HTC Legend, Samsung i5700
- ARMv6 version: All other devices
How does RockPlayer stack up in terms of performance? It’s a mixed bag. I did some testing on my Nexus One (running Android 2.2), and the results weren’t horrible, but pretty much what one would expect on a phone.
480P MPEG1 MPG
The screenshot below is from a 480P, MPEG1 encoded MPG file; the file size is around 50MB. It ran perfectly; no frame skipping, no audio distortion.
1080P H264 MKV
The screen below is from a 1080P, h.264-encoded MKV file. For all intents and purposes, it failed to run (and the video scaling did not work, thus the small frame size)
720P H264 Derivative AVI
A 720p, h.264-derivative (probably MPEG-4 Part 15) encoded AVI video, featured below, ran at about 17-22FPS. The video did not appear with the distortion during playback, it only surfaced in the screenshot I took (there was too much data for the screenshot app to save in such a small amount of time).
During playback, the audio track raced ahead of the video. RockPlayer does not seem to natively support frame-skipping behavior (at least not with all formats). This led to the audio being anywhere from 3-10 seconds ahead of the video.
I also ran two .MKV files of 720p and 1080p (A GI Joe trailer and an Iron Man 2 trailer, if you were curious) encoded in h.264. The 1080p was unwatchable (the frame rate was roughly 3-5 FPS), and 720p wasn’t great either (15-20 FPS). Both experienced the same loss of audio-video sync as occurred in the above video.
Presumably, this is a matter of how the ARMv7 instruction set processes video. The MKV container in particular seems to have some issues playing on RockPlayer very well. This is probably because MKV often uses very high-quality audio encoders (such as Ogg Vorbis or AC3) in conjunction with very high audio bitrates, eating up precious processing power while sound is being decoded. AC3 was the audio encoder in the above video as well.
You’re better off sticking to videos with resolutions of 480P and below (or mobile-optimized video) when using RockPlayer. While the ability to play back so many formats natively is nice, phone processors simply don’t have the beefiness to play back full-HD video that has not been optimized for mobile viewing. I would be interested to see how these files run on a Galaxy S device, though!
Also, for ARMv6+VPF and ARMv6 devices, RockPlayer is probably even more rough around the edges for performance.
If you’d like to let us know how the RockPlayer app works for you, drop us a comment below.