基於Licode的WebRtc 的Rtmp推流實現

已經很久沒寫文章了,之前寫了一些,一直存在筆記本里,沒有整理,已經轉做移動端流媒體好一陣子了,也算才入了門吧。

網上關於Licode的資料很少,最近公司要做一個視頻對話+直播+合流的系統,我們打算複用之前的合流系統,原來視音頻合流系統是基於Rtmp協議的。在即時對話方面,我們選用了Licode作爲服務器,使用Licode,我們可以很方便地建立多人實時聊天,我已經實現了Android端的功能了(基於谷歌WebRtc的AppRtc項目,修改其信令模塊,後面有時間,我會把協議細節和實現過程 注意事項寫出來)。那麼這邊就打算,在Licode服務器上實現Rtmp推流。

Licode服務器的RTMP推流實現思路:通過修改ExternalOutput來實現。

Licode本身有一個錄製的模塊,錄製模塊就是使用ExternalOutput來保存視頻文件的。(格式是.mkv)

那麼,我們只需要修改這個錄製模塊,把這個錄製爲文件的過程改爲rtmp推流過程,那麼就能實現。

現在第一個問題是:Webrtc的音頻格式是Opus ,我們的服務器不支持,需要改成AAC編碼。

       這個可以通過修改licode/erizo/src/media/erizo/media 下的ExternalOutput 來解決。通過修改oformat,然後對原來的視音頻頻重新編碼,輸出flv即可。

第二個問題是:修改錄製模塊爲推流模塊。

       這個可以修改Room.js的startRecording模塊來解決。會Node.js 改這個很方便。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章