播放RTMP協議的流媒體的幾種選擇
播放網路視訊,通常解析庫我們可以有多個選擇 FFMPEG,Daniulive 或者 vitamio。
什麼FFMPEG?
官網地址: 地址
FFmpeg是一套可以用來記錄、轉換數字音訊、視訊,並能將其轉化為流的開源計算機程式。採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視訊的完整解決方案。它包含了非常先進的音訊/視訊編解碼庫libavcodec,為了保證高可移植性和編解碼質量,libavcodec裡很多codec都是從頭開發的。
支援的編碼 源自FFmpeg專案組的兩個視訊編碼 Snow FFV1
支援的格式 ASF、AVI、BFI、IFF、RL2、FLV、MXF、Material eXchange Format、SMPTE、377M、Matroska、Maxis XA、MSN Webcam stream、MPEG transport stream、TXD、OMA、GXF、General eXchange Format、SMPTE、360M、mov、mp4、m4a、3gp。
大牛直播(Daniulive)
官網地址: 地址
github地址:地址
國內外為數不多致力於極致體驗的超強全自研跨平臺(windows/android/iOS)流媒體核心,通過模組化自由組合,支援實時RTMP推流、RTMP/RTSP直播播放、錄影、多路流媒體轉發、音視訊導播、動態視訊合成、音訊混音、直播互動、內建輕量級RTSP服務等,比快更快,業界真正靠譜的超低延遲直播SDK(1秒內,低延遲模式下200~400ms)。
適用於線上教育、無紙化推屏/會議、智慧教室、智慧可視門禁對講、超低延遲娃娃機抓取播放方案、媒體移動直播、應急指揮排程(針對保險、城管、交警、消防、公安等職能管理部門的單兵應急執法系統)、視覺化購物、遠端專家診斷、視覺化巡檢、(如電信/電力線路/鐵路沿線/水利設施/油田/消防設施巡檢)、移動視訊安防監控,企業內訓、金融線上直播室、微信直播、監控對接、活動現場直播、遊戲直播、秀場直播
支援平臺:windows/android/iOS
功能列表:
- Windows/Android/iOS平臺高穩定、超低延遲的跨平臺RTMP直播播放器;
- Windows/Android/iOS平臺高穩定、超低延遲的跨平臺RTSP直播播放器;
- Windows/Android/iOS平臺完美支援多例項播放(如同時播放多路rtmp/rtsp流);
- Windows平臺支援rtmp擴充套件H.265播放;
- Windows/Android/iOS平臺支援RTSP TCP/UDP模式設定;
- Windows/Android/iOS平臺支援RTSP TCP、UDP模式自動切換;
- Windows/Android/iOS平臺支援rtsp超時時間設定;
- Windows/Android/iOS平臺支援上報rtsp 401事件;
- Windows/Android/iOS平臺支援buffer time設定;
- Windows/Android/iOS平臺支援首屏秒開模式;
- Windows平臺雙擊畫面進入全屏模式;
- Windows/Android/iOS平臺視訊支援H.264(RTMP/RTSP)/H.265(RTSP),音訊支援AAC/PCMA/PCMU和SPEEX(RTMP)播放;
- Windows/Android/iOS平臺支援RTSP H.265播放,並支援RTSP H.265錄製到MP4檔案;
- Windows/Android/iOS平臺均支援回撥音視訊資料(視訊: H.264/YUV 音訊:AAC/PCMA/PCMU/SPEEX)到上層;
- Windows/Android/iOS平臺支援自定義播放佈局;
- Android平臺音視訊多種render機制,視訊支援普通Surface和GLSurface,音訊支援audiotrack和opensl es;
- Windows/Android/iOS平臺支援播放過程中,’實時靜音/取消靜音’;
- Windows/Android/iOS平臺支援播放端視訊view實時旋轉(0° 90° 180° 270°)、水平反轉、垂直反轉;
- Windows/Android/iOS平臺支援播放過程中快速切換URL;
- [錄影SDK同步使用]Windows/Android/iOS平臺播放、錄影完全隔離,同等配置的流,切換url依舊可以錄製到同一個檔案;
- Windows/Android/iOS平臺播放過程中,音視訊資訊改變後自適應;
- Android/iOS平臺支援軟、硬解碼,超低延遲、低資源佔用播放rtsp/rtmp 1080p+;
- Windows/Android/iOS平臺支援播放/錄影過程中,隨時快照;
- [Windows點播播放器]支援本地flv檔案播放(支援獲取flv檔案的duration(時長);支援顯示當前播放位置;支援開始播放或播放過程中seek(跳轉播放位置),也許是行業內seek最快的flv點播播放器);
- Windows/Android/iOS平臺支援類似於線上娃娃機等直播方案的超低延遲模式設定(公網200~400ms)。
什麼是Vitamio?
官網地址: 地址
github地址:地址
Vitamio是一款 Android 與 iOS 平臺上的全能多媒體開發框架,全面支援硬體解碼與 GPU 渲染。
Vitamio能夠流暢播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常見格式的視訊,還可以在Android 與 iOS 上跨平臺支援 MMS, RTSP, RTMP, HLS(m3u8) 等常見的多種視訊流媒體協議,包括點播與直播。
Vitamio支援各種常見的流媒體協議,可以點播或者直播音訊和視訊,例如如下常見協議均能無縫支援:
MMS、RTSP (RTP, SDP)、RTMP、HTTP progressive streaming、HLS - HTTP live streaming (M3U8)
音訊和視訊格式
Vitamio使用了 FFmpeg 做為媒體解析器和最主要的解碼器,同時開發了針對不同移動平臺的硬解碼方案,能夠完美支援 H.264/AVC、H.263、MPEG4 等常見的視訊編碼,覆蓋上百種多媒體格式。下表只是一些最常見的視訊格式支援,除特殊標明,全部支援硬體加速:
DivX/Xvid、WMV (一般只有軟解碼)、FLV、TS/TP、RMVB (只有軟解碼)、MKV、MOV、M4V、AVI、MP4、3GP。
Vitamio 專案託管在Github 上面,,這裡有很多公司的開源專案,其中:
1、VitamioBundle是Vitamio核心外掛,(大家可以搜一下"Android Library"這個關鍵字,和jar差不多的用途),可以方便整合到專案中。
2、VitamioDemo是Vitamio的官方例子。
使用方式
1.匯入。通過github下載VitamioBundle。下載回來後大家可能發現沒有.project工程檔案,可以通過File-> Import -> Android -> Existing Android Code Into Workspace來匯入工程,然後改一下工程名稱即可。
2、將VitamioBundle工程作為Android Library引入Demo工程使用即可。