天天看點

開源播放器核心比較:ijkPlayer、VLC、ExoPlayer、MediaPlayer、SmartPlayer

Android 常見的視訊播放器,ijkPlayer、VLC、ExoPlayer、MediaPlayer、SmartPlayer簡單對比:

1、MediaPlayer

在Android系統中對于視訊播放器有原生的實作MediaPlayer, 以及将MediaPlayer,SurfaceView封裝在一起的VideoView, 兩者都隻是使用硬解碼播放,

基本上隻支援本地和HTTP協定的視訊播放,擴充性都很差,隻适合最簡單的視訊播放需求。

2、ijkPlayer

ijkplayer 是Bilibili公司開源的播放器實作,整合了FFMpeg, ExoPlayer, MediaPlayer等多種實作,提供了類似于MediaPlayer的API,可以實作軟硬解碼自由切換,自定義TextureView實作,同時得益于FFMpeg的能力,也能支援多種流媒體協定(RTSP,RTMP,HLS等),多種視訊編碼格式(h264, mpeg4, mjpeg),具有很高的靈活性,可以定制實作自己特色的播放器(比如支援視訊縮放,視訊翻轉等)。

如果隻是使用它進行播放,內建也較為簡單,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的門檻高度。

支援軟硬編解碼,支援倍速播放,可以定制化內建需要的功能,內建占用體積也很小。

優點:

1.ijkplayer結構比較簡單,基本以ffplay展開,開發難度較小;

2.ijkplayer包比VLC小一點,經過裁剪,約為4.2M左右;

缺點:

1.ijkplayer可擴充性較差,基本上沒有提供modules供開發者二次開發;

2.ijkplayer 官方維護力度小,版本更新很慢;

3、ExoPlayer

ExoPlayer 是google推出的開源播放器,主要是內建了Android 提供的一套解碼系統來解析視訊和音頻,将MediaCodec封裝地非常完善,并加入了對DASH和HLS等直播協定的支援,形成了一個性能優越,播放穩定性較好的一個開發播放器。

但也隻支援硬碼,如果項目中隻需要支援對H264格式、以及流媒體協定比較正常(比如HTTP,HLS),基于ExoPlayer定制也是不錯的選擇。

優點:

1.接入包小,1.1M;

2.維護團隊強大,更新速度快;

缺點:

1.不太适合直播;

2.視訊解碼無法接入軟解,可擴充性一般;

3.适合播放場景簡單的項目,播放過程中無切換碼流的情況

問題:ExoPlayer 會替代MediaPlayer成為Android平台上的預設播放器嗎?

不會,兩個原因:

  • Android 5.0 之後Android的Codec架構做了依次重大調整,放棄了AwesomePlayer

    ,使用NuPlayer架構,ExoPlayer 沒有做過多的相容;

  • ExoPlayer 目前還是一個小而輕的播放器,如果要合成到系統中,它需要調整的東西太多,代碼量會變得很繁雜,很可能得不償失;

4、VLC Media Player

VLC 是VideoLAN 計劃所研發的工程,最早預1996年開始,是一個完全的跨平台播放器,适合Windows、Mac OS、Linux、Android、iOS等系統,目前完全的跨平台播放器很少,VLC是最受歡迎的一種播放器;目前累計下載下傳13億次,是真真正正的全球播放器;

VLC的整體架構是設計成一套module的管理機制,将功能分類并抽象成modules。

VLC main:player的main。初始化libVLC 并加載使用者界面。

libVLCcore:libvlc的核心,抽象出了一個libvlc_instance_t 對象,提供modules的裝載/解除安裝機制。

modules:modules提供具體的功能,比如上面的access,demux,decode就是以一個子產品的形式存在。

External libraries:外部開源庫。

優點:

1.跨平台,相容性好;

2.功能全面,支援rtsp、rtmp、ftp、http、https等協定;

3.代碼完全解耦,modules互相獨立,不影響,引入新modules友善;

4.維護團隊強大,更新頻繁;

缺點:

1.Android平台編譯出的包較大,有16M左右;

5、SmartPlayer

SmartPlayer系大牛直播SDK(Github)出品的全自研核心的RTSP和RTMP直播播放器SDK,跨平台(Windows、Android、iOS)、功能齊全、高穩定、超低延遲,超低資源占用,适用于安防、教育、單兵指揮等對延遲和穩定性要求比較苛刻的場景。

在機器性能沒有瓶頸的前提下,SmartPlayer的RTSP播放器和RTMP播放器延遲是業内為數不多毫米級的。

參考連結:

https://zhuanlan.zhihu.com/p/397425806

繼續閱讀