簡體   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