1. 程式人生 > 實用技巧 >TSINGSEE青犀視訊開發webrtc直播推流通過ffmpeg播放出現丟幀如何優化?

TSINGSEE青犀視訊開發webrtc直播推流通過ffmpeg播放出現丟幀如何優化?

大家知道我們前期成立了一支小分隊專門做WebRTC的研究,經過幾個月的攻關,我們也馬上要釋出我們的RTC整體框架,包括RTC的推流、RTC伺服器、RTC播放器等,先可以看一下TSINGSEE的RTC對安防視訊流的分發:

在我們編譯WebRTC過程中,測試使用ffmpeg拉rtsp://的流,獲取到H264裸流,進行WebRTC推流會出現丟幀情況;

RTP: PT=60: bad cseq 6416 expected=34c8
error while decoding MB 61 51, bytestream -21

當使用ffmpeg連續讀RTSP流時,會執行比較耗時的操作,該錯誤就會出現。我們的操作是從網路攝像機拉H264流進行傳輸,隨後又要進行WebRTC推流,導致耗時比較嚴重,因此才會出現如上丟幀情況。

RTSP流預設使用的是UDP傳輸,UDP的特點是傳輸快而無丟幀檢測,但是TCP就有丟幀檢測,因此我們可以將rtsp_transport=“tcp”選項傳遞給avformat_open_input來卻換到更慢的TCP,來防止丟包。

對於WebRTC的研究,大家可以關注我們,後續我們也將不斷更新此類開發,WebRTC技術的開發將會給我們其他平臺的視訊直播帶來一次變革更新,對於更多的建議和發展可能性,我們歡迎大家的溝通探討。