9

当 Skype 等程序将视频从一个用户流式传输到另一个用户时,反之亦然,这通常是如何实现的?

客户端A流到服务器,服务器将它发送到客户端B吗?

还是直接从客户A到B?

如果我离题而且这些都不正确,请随时纠正我。

4

2 回答 2

6

Skype 比这复杂得多,因为它是点对点的,这意味着您的流可能会通过其他几个 Skype 客户端,充当多个服务器。Skype 并没有为此建立一个庞大的中央系统。Skype 始终跟踪它可以将您的流传送到的多个位置,因此如果其中一个位置消失(该 Skype 客户端消失),那么它将继续通过另一台服务器/Skype 客户端发送。这样做非常有效,以至于您不会注意到中断。

于 2009-10-08T06:17:05.623 回答
5

基本上,这就是它的实现方式。

1)使用您可以获得的最佳压缩对视频/音频进行编码。进行有损压缩和大量混叠以丢弃部分不可用的视频和音频。就像消除背景嘶嘶声

2)将视频/音频打包成数据包并在它们上面加上时间戳。数据包通常是数据报。

3) 将数据包直接发送到目的地。使用最合适的路线。您不必以相同的方式发送所有数据包。如果可能,使用多条路线。P2P 网络通常使用多条路线到达同一目的地

4)在目的地重新编码。如果一个包太旧,扔掉它。如果数据包丢失,请不要担心,因为为时已晚。

5) 加入视频并尽可能地填充缺失的帧。

于 2009-10-08T06:23:36.420 回答