首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

RTMP 流播放延遲差異:ffplay 低延遲 vs VLC 高延遲,PotPlayer 兼容性佳

     編輯:程式設計疑難解答

現象

  • ffplay:延遲 ~4s,右鍵點擊後延遲大幅降低(觸發重新同步)。
  • VLC:畫面凍結後跳幀,延遲 10s+,疑似時間戳處理問題。

原因分析

  1. VLC 緩存策略:默認大緩存(如 1000ms+),網絡抖動時積累延遲,且 PTS 計算若以首幀為基準 (pts = t_now - t0) 可能導致時間戳不單調,引發解碼器等待。
  2. ffplay 同步機制:右鍵操作觸發 UI 事件循環,可能刷新時鐘同步,降低延遲。
  3. 時間戳建議:使用單調遞增的 PTS(基於幀率固定增量),而非系統時間差,避免時鐘漂移。

解決方案

  • 播放器端:使用 PotPlayer 或 MPV,低延遲表現優於 VLC。
  • 服務端:確保 RTMP 封裝時 PTS/DTS 正確、單調、配合關鍵幀間隔發送。
  • VLC 設置:降低緩存值(工具→偏好設置→輸入/編解碼器→文件緩存(ms) 改為 300)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved