2016-09-29 157 views
1

我知道vlc使用live555進行rtsp流式傳輸。在vlc中的打開媒體對話框中有一個選項,當打開一個網絡流時,它告訴vlc在開始播放之前緩衝數據流數秒。該選項是以毫秒爲單位的「網絡緩存」。我想知道在vlc中使用live555中的哪些函數具有此功能?我試過increaseReceiveBufferTo(...)和ReorderingPacketBuffer :: setThresholdTime(...),但他們不這樣做。在vlc中使用Live555的哪些功能用於'網絡緩存'選項

vlc network caching option

由於

回答

0

此參數不直接屬於LIVE555或RTSP模塊中使用。查看源代碼顯示該值用於調整演示時間戳。由於Live555只是給出帶有時間戳的數據包,因爲它們在RTP級別上,所以您必須自己實現它。

+0

但正如我測試過的,似乎vlc不僅僅是調整演示時間戳。例如,有時在某些網絡中,當在單獨的程序中僅使用live555時,顯示的幀(用ffmpeg解碼)顯示毛刺或損壞,當網絡緩存較低時(例如500毫秒),這與vlc相同。但是當增加網絡緩存時,例如到2000毫秒,它會使顯示延遲2秒,但畫面顯示流暢且沒有任何損壞。這種行爲僅與vlc有關嗎? –

+0

@ M.Mahdipour你需要提供更多關於環境的細節。 Live555僅控制僅與UDP相關的抖動緩衝區。你是否看到UDP或TCP的問題?我只能根據我在VLC資源中看到的來判斷,並且我看不出這個值和live555模塊之間有直接聯繫,我可能是錯的。但是這個值在VLC代碼中的PTS調整期間在多個地方使用。 –

+0

我已經測試過UDP。我已經搜索了live555中的抖動緩衝區,有些帖子說它有抖動緩衝區,有些帖子說沒有! live555中是否有抖動緩衝區?或者它的唯一的數據包重新排序,它使用ReorderingPacketBuffer :: setThresholdTime(...)來控制? –