視頻流媒體中視頻數據的傳輸占據了絕大部分的帶寬,如何提升編碼效率、減小帶寬使用、提升畫面質量,成為音視頻開發者努力的重點。隨着互聯網、流媒體技術的發展,兼容支持H.264、H.265編碼器(可減少計算的復雜性、提高壓縮率,並降低編碼時間)已經成為迫在眉睫的事。
RTSP協議也是廣泛使用的直播/點播流媒體協議,以前的項目里實現了一個RTSP協議轉換RTMP直播協議的程序,為的是可以接收遠端設備或服務器的多路RTSP直播數據,實時轉換為RTMP直播協議,推送到NginxRtmp等RTMP服務器,可以在PC上實現flash觀看RTSP直播源(比如IPCAM)的需求,也能通過Nginx的HLS協議轉換,在手機上觀看。
該流程的關鍵點有以下部分:
- RTSP直播流的讀取
- H.264和AAC編碼數據的分析、處理
- FLV文件數據的提取及與RTSP直接的切換和銜
- RTMP數據包封裝
- RTMP推送協議
如何實現拉RTSP流推出RTMP流
問題描述
最近有開發者咨詢是否有工具支持實現拉RTSP流推出RTMP流?
解決方案
我們首先來搭建一個實例。
1、准備一個rtsp流。我們這里准備的是海康的攝像機,rtsp流地址如下:rtsp://admin:admin12345@192.168.99.23:554/h264/ch33/main/av_stream
2、從https://github.com/tsingsee/EasyRTMPLive下載EasyRTMPLive,目前只支持windows系統,直接點擊EasyRTMPLive.exe文件啟動,會出現一個命令行窗口,不能關閉這個窗口。
直接在瀏覽器輸入如下圖中URL地址,初次打開默認列表是空的如下圖:
3、在新增界面我們只需要填寫三個參數:名稱,源地址,推流地址,我們現在將該RTSP流推送到我們的EasyDSS-Kernel流媒體服務器上,地址為:rtsp://192.168.99.103:10085/hls/test
4、觀看效果