1. ffmpeg for x86
http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android 沒有實現android media interface,標準流程是通過surface輸出解碼後的YUV視頻資料,audioTrack輸出解碼後的音頻PCM資料。簡單說就是不能用該代碼樹上的代碼來完成多媒體的播放,但是,個人認為ffmpeg本身就不是播放器,所以用ffmpeg來完成reader、demuxer和decoder的功能就足矣,所以該項目還是很有用處的。
2. mplayer for x86 http://www.android-x86.org (由幾位華人工程師維護,訪問需要翻牆軟體)
repo init -u git://git.android-x86.org/manifest.git -b froyo-x86repo sync
在android-x86開源項目中froyo分支已經將mplayer移植到x86上,完成了跟android多媒體架構的對接,是android(x86)下真正的播放器,預設沒有開啟mplayer編譯的支援,需要自己修改配置來完成mplayer的添加,代碼在external/mplayer下。 MPlayer.cpp實現了跟android meida interface的對接,介面函數有setDataSource、 prepare、prepareAsync、start、pause、 seek、 stop、 reset等。mplayer_lib.c是對mplayer API的封裝,供MPlayer.cpp使用。在x86平台下,使能了MMX,SSE等彙編指令的最佳化,解碼效率很高。遺憾的是NVIDIA硬體解碼H264、MPEG4的驅動和so庫android平台下還不支援(linux作業系統下是支援的)。
3. VLC 進行中往android平台的移植:git://git.videolan.org/vlc/vlc-android.git
4. GStreamer for android 因為支援標準的openMAX介面,被多個晶片公司採用的優秀的多媒體架構(Marvell的PXA系列,TI的OMAP系列等等),同時也對ffmpeg做了openMAX封裝,結構如:
TI DMAI GStreamer:
http://processors.wiki.ti.com/index.php/DMAI_GStreamer_Plug-In
GStreamer android
http://gitorious.org/gstreamer/android
GStreamer FFmpeg plug-in
http://gstreamer.freedesktop.org/modules/gst-ffmpeg.html
國外一個最有名的GStreamer for Android項目https://github.com/prajnashi
5. Opencore架構紛繁複雜,逐漸會被Android棄用。
6. StagefrightGoogle實現的一個輕量級MMF,功能會逐步完善起來,也許它能成為未來的一個發展方向。
轉自:http://myos.chinaunix.com/space.php?uid=20535334&do=blog&id=127860