繁体   English   中英

TCP流:音频/视频同步

[英]TCP-Streaming: Audio/Video Synchronization

我对TCP /实时流式传输/同步有疑问(编程语言:Java):

假设我有一个客户端,它正在从摄像机捕获音频和视频。 它通过TCP套接字同时(通过线程)将音频和视频数据发送到服务器,该服务器在两个不同的线程上同时接收音频和视频流。

[我知道,UDP通常用于实时流应用程序,但是出于某些原因,我为什么要使用TCP。

因此,问题是:是否有机会通过TCP失去同步? 在不同的套接字上有两个流(一个用于音频,一个用于视频),可能存在一个问题,必须重新发送一个数据包,但是丢失数据包的重新发送会成为问题(我的意思是,当通过TCP重新发送数据包,这会导致永久性的延迟,还是客户端将丢失的数据包和下一个数据包更快地发送几毫秒)?

我要同时将音频和视频信号发送到服务器。 他们将始终同时到达服务器上吗? 如果没有,是否有办法产生/模拟问题?

我已经进行了一些测试,并且音频和视频始终保持同步。 但我不确定是否会一直这样(即使在流式传输超过5小时之后)。

谢谢。

如果您使用两个不同的插座,则无法保证。 TCP保证以正确的顺序进行数据传输,但是如果您将两个不同的流用于音频和视频,则不适用。

但是,如果连接足够快,就不会有问题。 它以最快的速度发送。 但是,如果一个流“阻塞”,它将延迟并失去同步,但是我怀疑这种情况会在您发送视频的情况下发生(只要它不是FPS或分辨率太高)。

我认为使用单个流会更安全,但是老实说,我认为您的方法很好。 这完全取决于:客户端的速度,服务器的速度和网络的速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM