如何在 Ant Media Server 中为 WebRTC publish/play 使用 TCP 而不是 UDP?

How can I use TCP instead of UDP for WebRTC publish/play in Ant Media Server?

我在 AWS 上使用 Ant Media Server,它运行良好。但是,我们的一些用户已经阻止了 UDP 端口,因此我想知道是否可以为 WebRTC 使用 TCP 而不是 UDP。

是的,我们可以为 WebRTC 使用 TCP 端口。

请在 AWS 安全组上打开 TCP 端口范围 50000-60000(对于 AMS v2.4.2.1 及更高版本,旧版本使用端口范围 5000-65000)。

转到应用程序设置:

/usr/local/antmedia/webapps/<AppName>/WEB-INF/red5-web.properties

编辑red5-web.properties文件并设置

settings.webrtc.tcpCandidateEnabled=true

重启蚂蚁媒体服务器

sudo service antmedia restart

如果您使用的是像 OVH 这样的云服务,或者如果有与实例直接关联的公共 IP,那么 webrtc 应该可以工作。

如果您使用像 AWS 这样的具有 private/public IP 的云服务,则需要配置一些额外的设置。

转到服务器配置设置

/usr/local/antmedia/conf/red5.properties

编辑red5.properties文件并设置

server.name=Instance_Public_IP

再次转到应用程序设置并编辑 red5-web.properties

/usr/local/antmedia/webapps/<AppName>/WEB-INF/red5-web.properties

设置

settings.replaceCandidateAddrWithServerAddr=true

保存设置并重启 Ant Media 服务器

sudo service antmedia restart

之后 Webrtc 应该可以正常工作。

谢谢。

antmedia.io

在您的 AWS 用户数据中,您将获得当前实例 public IP 在启动时自动插入:

sed -i "s/server.name=.*/server.name=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)/g" /usr/local/antmedia/conf/red5.properties