Android下的多媒體開源項目

1.  ffmpeg for x86
    沒有實現android media interface,標準流程是通過surface輸出解碼後的YUV視頻數據,audioTrack輸出解碼後的音頻PCM數據。簡單說就是不能用該代碼樹上的代碼來完成多媒體的播放,但是,個人認爲ffmpeg本身就不是播放器,所以用ffmpeg來完成reader、demuxer和decoder的功能就足矣,所以該項目還是很有用處的。

2.  mplayer for x86
    http://www.android-x86.org  (由幾位華人工程師維護,訪問需要翻牆軟件)
  1. repo init -u git://git.android-x86.org/manifest.git -b froyo-x86  
  2. repo 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封裝,結構如下圖:


5.  Opencore
架構紛繁複雜,逐漸會被Android棄用。

6.  Stagefright
Google實現的一個輕量級MMF,功能會逐步完善起來,也許它能成爲未來的一個發展方向。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章