Play mkv, avi, flv and wmv files on webOS Touchpad
Posted by error454 on 08/26/2011
This article is no longer maintained, please see TouchPlayer Documentation.
One thing the touchpad clearly lacks is the number of supported video formats available. Out of the box, the mp4 container with h.264 codec is pretty much it. If all of your videos are in this format already, you can benefit from the hardware acceleration that the stock video player provides for this codec.
If you want to play any other format, you have a few options:
- Convert your existing media to mp4 h.264 with an app like Handbrake. Leave it running overnight to take advantage of spare CPU cycles.
- Run a media server like Playon that transcodes media on the fly. You need a reasonably fast cpu to do this (atom powered servers do not apply) as you are converting and serving the video real-time.
- Get a new video player for your touchpad.
This article is going to explore the 3rd option in more detail.
I have taken the FFmpeg project, thrown a crappy wrapper on it and compiled it for the Touchpad. If you aren’t familiar with FFmpeg, the library that comes from it (libavcodec) powers mplayer and vlc. You can find my app in Preware, it is called TouchPlayer.
1.0.4 is now available.
First off, let me say that if you are looking to play MKV files, you should really check out KalemSoft Media Player. I use it, it’s fast, it’s beautiful etc.
There are limitations with KalemSoft though, such as reading files from an NFS/CIFS/SSHFS mounted filesystem. Also, no subtitles.
I have abandoned the ffplay version of this project in favor of mplayer. Progress is steady, you can read progress updates if you’d like. An update has not yet been pushed, the mplayer version is all or nothing, meaning if I released it as-is there would be no controls.
It’s possible that I don’t know what I’m talking about below. KalemSoft media player can play most of my HD MKV files quite well. The big difference here is that they seem to draw to the screen using openGL rather than SDL. This may not be the only factor but I’m sure it is a large factor.
As ffplay is something of a dead-end, I am now working on replacing it with mplayer. There are a couple reasons, first there is already an openGL ES patch for mplayer from either WOSI or Chomper (hard to track the attribution for the patch). Also, mplayer has an OSD and a GUI with several skins available.
The project is building but I haven’t had the time to test it on the Touchpad. You can find the source on my github page if you are eager.
TouchPlayer cannot play 720P mkv videos with AC3 audio at 30 fps.
It never will unless the Touchpad gets more hardware accelerated codecs. Who knows, maybe it will someday.
Keep in mind that every video played in TouchPlayer gets decoded by the CPU.
Decoding 720p with multi-channel audio on the CPU is too big of a task for any tablet. If your primary goal is to play unmodified mkv files then you may want to consider new goals. Using NEON, it is possible to do, all on the CPU.
If you insist though, I have provided a switch to disable audio and increase thread count to take advantage of both CPU cores. If you do have any level of success with playing hd videos, please let me know.
Also if you are an expert in the FFmpeg ecosystem and know of some parameters that might give a boost, please pass them along.
Source for the modified FFmpeg is here:
Source for TouchPlayer is here:
Precentral Forum on TouchPlayer: