project 采用 Android MediaPlayer生命周期 + Gstreamer pipeline的思想框架來構建.
- 采用Android MediaPlayer生命周期的原因
方便上層應用在Android MediaPlayer和project間進行切換, 至于為什么要切換有幾方面的考慮:
- 本人能力有限,做出來的東西比不上Android MediaPlayer
- 大部分應用是基于MediaPlayer, 如果有需求MediaPlayer無法實現而本project提供了實現的方法,能夠方便地切換
- 在性能上,能夠直接和MediaPlayer進行對比
- 采用Gstreamer pipeline思想框架的原因
用戶可以通過自己的需求把不同的Elements 排列組合,形成一個又一個的不同的pipeline,具有很高的靈活性.在FFmpeg中, 一般解封裝,編解碼,播放模塊相對固定,avfilter模塊功能比較豐富, 用戶能夠根據需求實現不同的filter模塊,而其他模塊不需要改變,能夠很方便地組成新的功能的播放器. 比如一個需求是希望能夠對視頻進行旋轉, 后來又來個一個需求要在視頻中加水印,這時只要把視頻旋轉的filter替換成水印的filter就可以了.
本來是希望寫完一個比較完整的project再公布出來,但在實現過程中發現自己能力有限碰到了不少問題, 如果拖得太久自己又失去了寫的動力, 所以就邊寫邊發布,目標也從一個完整的project到先實現一個能夠運行的project,后面在一步步完善.
工程地址:
https://github.com/yizhongliu/FFMediaPlayer
專題的介紹:
專題結構