我有一个关于 TCP/Live-Streaming/Synchronization(编程语言:Java)的问题:
假设我有一个客户端,它正在从相机捕获音频和视频。它通过 TCP 套接字同时(通过线程)将音频和视频数据发送到服务器,即在两个不同的线程上同时接收音频和视频流。
[我知道,UDP 通常用于直播应用程序,但有一些原因,我使用 TCP 的原因..]
所以,问题是:是否有机会通过 TCP 失去同步?在不同的套接字上有两个流(一个用于音频,一个用于视频),可能存在一个问题,即必须重新发送一个数据包,但是丢失数据包的重新发送是否会成为问题(我的意思是,当通过 TCP 重新发送一个数据包,这会导致永久延迟还是客户端只是发送丢失的数据包和下一个数据包更快几毫秒)?
我同时将音频和视频信号发送到服务器。他们会总是同时到达服务器吗?如果没有,有没有办法产生/模拟问题?
我做了一些测试,音频和视频总是同步的。但我不确定是否会一直这样(即使在流媒体播放超过 5 小时后)。
谢谢你。