2014-01-15 108 views
0

我正在使用libavformat庫在像udp://127.0.0.1:1000這樣的網絡地址上流式傳輸視頻。我使用ffplay在網絡地址顯示接收到的視頻流。然而,視頻在同一臺機器上的ffplay幾秒後出現(例如,5秒6)。你知道是什麼原因嗎?在libavformat流式傳輸後顯示視頻流的延遲

更多信息:

我已經使用libavformat編寫了自己的流式應用程序。當我以25fps傳輸3秒1080p視頻時,ffplay不顯示任何內容。如果我再次重複播放同一個視頻,這次,ffplay將開始顯示先前的流式視頻以及當前視頻。所以,它看起來像ffplay等待緩衝區被填滿一定量,然後顯示流。但我是否正確?

+0

我用mplayer -benchmark(ffplay引入了自己的延遲)有更好的運氣,請參閱https://trac.ffmpeg.org/wiki/StreamingGuide(如果您使用udp tho,mplayer可能需要補丁) – rogerdpack

回答

1

要做你描述的是(至少)編碼視頻流,通過網絡套接字發送它,然後再解碼它。如果您是從已經壓縮的數據源進行流式傳輸,那麼可能還會涉及一個額外的視頻解碼階段。

根據視頻格式,壓縮和緩衝設置,您的網絡配置和所涉及的硬件,幾秒鐘的延遲並非不尋常。人們使用他們的直播服務觀看電視頻道時,經常會看到這種延遲,與無線信號相比,電視臺應該使用專業設備進行流媒體處理...

您可能會獲得更多如果您提到如何使用libavformat庫(特別是如果您已編寫自己的流式應用程序),編解碼器設置以及有關視頻流的一些基本信息(如分辨率和幀速率),則可以獲得特定的幫助。

+0

謝謝。我已經使用libavformat編寫了自己的流式應用程序。當我以25fps傳輸3秒1080p視頻時,ffplay不顯示任何內容。如果我再次重複播放同一個視頻,這次,ffplay將開始顯示先前的流式視頻以及當前視頻。所以,它看起來像ffplay等待緩衝區被填滿一定量,然後顯示流。但我是否正確? –