来自Mozilla网站:https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API
“MediaStream由零个或多个MediaStreamTrack对象组成,代表各种音频或视频轨道……
这澄清了渠道是什么。
不完全的。只要 的 音频 强> 曲目有频道。除非你使用 网络音频 至 分开 一个音频 MediaStreamTrack 对于各个频道,该轨道是对等连接的最低级别。 *
MediaStreamTrack
这是因为多个音频通道(非常类似于多个视频帧)是由编解码器编码和解码的有效载荷的一部分。实际上,您可以在接收器的MedaiStreamTrack上使用网络音频分配器来分割音频通道,只要它们幸存下来。
*)还有 数据通道 ,但这些是不同的,与媒体流和曲目无关。
RTP流是否与在WebRTC中使用该术语的通道相同,如上所述?
不。粗略地说,你可以说:
但这不是整个故事,因为 sender.replaceTrack(withTrack) 。简而言之,您可以随时替换正在使用其他曲目发送的曲目 在现场通话中 ,无需重新协商您的连接。重要的是,另一方的 receiver.track 在这种情况下不会改变,只有它的输出。这将管道与通过它的内容分开。
sender.replaceTrack(withTrack)
receiver.track
所以在发送方面,更公平地说:
pc.getSenders()
...而在接收方面,它更简单,并且总是这样说:
说得通?
在 现代WebRTC , MediaStream s是愚蠢的容器你可以随意添加或删除它们的轨道 stream.addTrack(track) 和 stream.removeTrack(track) 锟斤拷此外, RTCPeerConnection 只处理 的 轨道 强> 。例如。:
MediaStream
stream.addTrack(track)
stream.removeTrack(track)
RTCPeerConnection
for (const track of stream.getTracks()) { pc.addTrack(track, stream); }
是否有一对一的映射 的渠道 的 轨道 强> 和RTP流与SSRC?
之间的 MediaStreamTrack 和SSRC,是的。
网络摄像头可以具有音频媒体轨道和视频媒体轨道,每个轨道使用单独的SSRC以RTP分组传输,从而产生两个SSRC。那是对的吗?
在这种情况下是的,因为音频永远不会 捆绑 视频,反之亦然。
现在如果有立体声网络摄像头怎么办?
没有不同。立体声音轨仍然是单个音轨(和单个RTP流)。
或者可以在对等体之间的同一组port-ip-UDP连接上有多个RTP会话?
不是在同一时间。但是多个轨道可以共享同一个会话,除非您使用非默认值:
new RTCPeerConnection({bundlePolicy: 'max-compat'});
如果你不这样做,或者使用 任何其他模式 ,然后同类轨道可能是 捆绑 进入单个RTP会话。