0
  1. Google WebRTC Native 实现是否支持 SFU?
  2. Google WebRTC Native 实现是否支持集成自定义/硬件编码器/解码器?
4

2 回答 2

1

并非没有改变。

在内部,WebRTC 的内部音频/视频管道直接与编码器/解码器相关联。

PeerConnectionFactory 允许您提供视频解码器/编码器工厂,因此您可以在此处短路逻辑,并抓取编码帧,模拟流,并将它们作为中继直接馈入其中,创建新的 PeerConnection 并设置这些流到它上面。

音频端更难。没有编解码器工厂,因此您可能必须通过更改 libwebrtc 来短路那里的逻辑。

最后一个问题是 RTCP 终止,以及如何覆盖质量/带宽控制机制以不创建“一个出去,他们都出去”。情况。

由于 libwebrtc 将成为 SFU,因此它将从其远程对等方接收其正在代理的内容的 RTCP 反馈,反之亦然。

对于 1-1 的情况,它需要能够将 RTCP 反馈转发给远程对等方。

对于多点,它需要执行一些逻辑来确定其中一个节点是否有问题,并停止向其发送视频、关闭其视频源或尝试切换到较低比特率的视频流。基本上,它需要充当尝试预测丢包发生原因/方式的管道,并保持尽可能多的音频/视频馈送以尽可能高的质量为每个对等点正常运行。

究竟如何劫持 libwebrtc 中的 RTCP 反馈机制,我认为这可能再次需要对 libwebrtc 进行一些自定义/挂钩

于 2020-10-21T05:07:08.807 回答
-1

我认为尝试使用 WebRTC 的 GStreamer 实现会更容易。尽管它仍然在“坏插件”中,但获取或提供编码的音频和视频要容易得多。实际上它是在考虑到这一点的情况下实现的 - 使 MFU 和 SFU 的实现更容易。

于 2020-10-21T15:29:58.683 回答