当Skype等程序将视频从用户传输到另一个用户,反之亦然时,通常如何实现?
客户端A是否流向服务器,服务器是否将其发送给客户端B?
还是直接从客户A到B?
如果我离开的话,请随意纠正我,但没有一个是正确的。
答案 0 :(得分:6)
Skype比这复杂得多,因为它是Peer to Peer,这意味着您的流可能会通过其他几个skype客户端,充当多个服务器。 Skype没有庞大的中央系统。 Skype始终跟踪它可以将流传送到的多个位置,以便如果其中一个位置消失(Skype客户端消失),则它将继续通过另一个服务器/ skype-client发送。这样做效率很高,你没有注意到中断。
答案 1 :(得分:5)
基本上,这是它实现的方式。
1)使用您可以获得的最佳压缩来编码视频/音频。进行有损压缩和大量混叠以丢弃部分无法使用的视频和音频。喜欢删除背景嘶嘶声
2)将视频/音频打包成数据包并在其上加上时间戳。数据包通常是数据报。
3)直接将数据包发送到目的地。使用最合适的路线。您不必以相同的方式发送所有数据包。尽可能使用多条路线。 P2P网络通常使用许多路由到同一目的地
4)在目的地重新编码。如果数据包太旧,请将其丢弃。如果数据包丢失,请不要理会,因为它太晚了。
5)加入视频并尽可能地填写丢失的帧。