我有一个关于TCP/Live-Streaming/Synchronization (编程语言:Java)的问题:
假设我有一个客户端,它正在从摄像机捕获音频和视频。它通过TCP套接字将音频和视频数据同时(通过线程)发送到服务器,即在两个不同的线程上同时接收音频和视频流。
我知道,UDP通常用于直播应用程序,但我使用TCP是有原因的。
因此,问题是:是否有机会通过TCP不同步?
我同时将音频和视频信号发送到服务器。它们总是在同一时间到达服务器吗?如果没有,有没有办法产生/模拟这个问题?
我做了一些测试,音频和视频总是同步的。但我不确定,它是否会一直这样(即使在超过5个小时的流媒体)。
谢谢。
发布于 2012-07-12 08:16:52
如果你使用两个不同的套接字,就不能保证。TCP保证以正确的顺序传输数据,但如果您对音频和视频使用两个不同的流,则不适用。
但是,如果连接速度足够快,应该不会有问题。它会以最快的速度发送。然而,如果一个流被“阻塞”,它将延迟并失去同步,但我怀疑这是否会发生在你发送视频的情况下(只要它不是太高的FPS或分辨率)。
我认为使用单个流会更安全,但老实说,我认为您的方式是很好的。这完全取决于:客户端的速度、服务器的速度和网络的速度。
https://stackoverflow.com/questions/11441628
复制相似问题