Google webrtc本机实现是否支持SFU?

问题描述

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

解决方法

并非没有改变。

内部,WebRTC的内部音频/视频管道直接与编码器/解码器绑定。

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

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

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

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

对于1-1情况,它必须能够将RTCP反馈转发到远程对等端。

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

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

,

我认为尝试使用WebRTC的GStreamer实现会更容易。尽管它仍在“不良插件”中,但它更容易获得或提供编码的音频和视频。实际上,在实现此功能时就考虑到了这一点-使MFU和SFU的实现更加容易。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...