如何使用TURN在服务器上记录中继流

10

这是我的故事:我正在开发一个WebRTC应用,需要在服务器上记录流。

"WebRTC是点对点的,选择一个媒体服务器吧"

是的,我知道,请不要提出这个评论;)

但是我想到了一件事,如果我强制所有流都使用TURN服务器,那么数据包就会通过服务器,所以我可以获取并保存它们。

问题是如何做到这一点。

有什么建议吗?


数据包使用通过DTLS协商的加密方式进行加密。因此,重要的是您的转发服务器获取这些证书并解密每个数据包,然后在数据包通过服务器时重新加密。 - Benjamin Trent
我可能错了,但除非节点无法找到彼此(两个节点都必须在不同的对称NAT后面),否则它们甚至不会与STUN/TURN服务器通信。在一个场景中(两个节点在同一网络中),我将server_config保留为空列表,但节点并不关心,它们像什么也没有发生一样进行通信。 - mido
2
@mido,不完全正确。如果您不使用STUN或TURN,则生成的唯一对等方类型为“主机”。如果您正在使用TURN和STUN,则还将生成中继和srflx类型。但是,在ICE收集期间,您可以强制使用TURN放弃所有其他候选项(仅使用中继类型)。 - Manza
@Manza,可能有点晚了,但你看过 Kurento 媒体服务器吗? - mido
2个回答

7

TURN服务器旨在作为中继媒体,这意味着媒体流不会被解密、复用、处理或记录。我知道你想避免“选择媒体服务器”的评论,但这就像说“我需要安装这个螺钉;我应该使用哪个锤子?请不要告诉我找一个螺丝刀。” - 锤子并不是正确的工具。

你仍然可以使用WebRTC和点对点通信,但是媒体服务器(如Jitsi)充当星状拓扑结构中的对等节点,所有流都发送到媒体服务器,并可以进行录制、中继、捆绑等操作。


3

您可以使用像Janus或Kurento这样的WebRTC网关(我假设您现在已经弄清楚了:))


是的,我几天前发现了Kurento。已经开始尝试使用它了。 顺便说一下,我不知道Janus,谢谢你的提示。 - Manza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接