我正在看到一個引人注目的視頻,該視頻導致我正在測試的採集卡關閉音頻/視頻同步。我的圖形拓撲如下。DirectShow圖中的視頻延遲
Video Source -> Sample Grabber -> Null Renderer
Audio Source -> Sample Grabber -> Null Renderer
從視頻樣品是使用H264壓縮,和音頻使用FAAC壓縮。這種拓撲結構和應用程序代碼適用於我過去使用的採集卡。但是我看到了我正在測試的當前卡的延遲。當然,我認爲它與卡本身有關。因此,我檢查並發現,使用Open Broadcaster,VLC或GraphEdit中的同一圖形來捕獲此卡時,不會出現視頻/音頻異步。
這表明問題與我如何構建圖表有關。然後,我嘗試使用IAMBufferNegotiation
以及SetStreamSyncOffset
調整緩衝區大小,但未成功。
如果我對視頻應用500毫秒的延遲(例如videoTimeStamp = videoTimeStamp - 500
),則同步幾乎是完美的。這很奇怪,因爲我期望在視頻中看到更多的音頻延遲。