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技术的开发将会给我们其他平台的视频直播带来一次变革更新,对于更多的建议和发展可能性,我们欢迎大家的沟通探讨。

原文地址:https://www.cnblogs.com/TSINGSEE/p/14309149.html