本机WebRTC丢帧

时间:2018-06-04 15:08:09

标签: c++ web webrtc h.264 sdp

摘要:如何使用WebRTC原生流传输高质量视频?

我的h264流是1920x1080,大约30fps。我现在可以将它从localhost上的服务器流式传输到localhost上的本机客户端。

我使用Google的WebRTC本机库编写了一个WebRTC服务器。我编写了一个VideoEncoder和VideoEncoderFactory,它接收由已经编码的数据组成的帧,并通过视频轨道进行广播。使用这个我可以通过管道将我的h264流发送到WebRTC服务器,我可以在浏览器中看到视频流。

然而,任何时候移动视频都会被破坏。它继续发挥,但充满了文物。最终我发现WebRTC正在丢弃我的一些帧。当我将一个顺序递增的ID附加到每个帧之后,我将其传递给rtc :: AdaptedVideoTrackSource :: OnFrame并且我在webrtc :: VideoEncoder :: Encode中记录了这个相同的ID,我可以看到我的一些帧只是消失了。

这种情况很有意义,我正在尝试将高质量的视频传输到用于视频聊天的内容上,并降低我的帧率以修复损坏。但是,我不是要求WebRTC库做很多事情,它只是将已编码的数据转发到localhost上的客户端。我有一个本机应用程序,这很好,我见过一个浏览器WebRTC客户端,可以做到这一点。 SDP中是否有字段或某些配置更改允许我流式传输视频?

1 个答案:

答案 0 :(得分:0)

这是解决方案How to control bandwidth in WebRTC video call?

我听说过要更改优惠sdp但却驳回了它,因为我被告知默认情况下浏览器会接受无限带宽,如果你想限制带宽,你只需要这样做。但是,添加" b = AS:高数字"解决了我所有的问题。