大家好,感謝您的閱讀!如何避免聲音和原始視頻數據之間的ffmpeg延遲?
這是我的問題:我有一個程序管道原始視頻幀到標準輸出。該程序使用OpenCV來捕獲和處理視頻並直接輸出處理後的幀。該循環與我選擇的幀速率同步。我使用ffmpeg從標準輸入中讀取,並且一切正常工作的視頻。 但現在我添加了聲音,我有一個很大的問題:發生了越來越多的延遲,我真的需要擺脫它。所以這裏是我的想法,但我真的需要你的幫助:
我必須找到一種方法來包括一個時間戳信息的原始視頻。爲了被ffmpeg理解,它需要是一個已知的原始視頻兼容容器。然後我將需要使用容器API並將其傳遞到我的程序中的標準輸出。我真的不知道在視頻格式和編解碼器的叢林中使用什麼,我不知道如何啓用時間戳同步在ffmpeg ...
如果任何人有一個想法,我真的很感興趣。有關信息,這裏是命令行我用它來管的原始視頻:
./myprogram | ffmpeg -y -f alsa -i pulse -ac 2 -f rawvideo -vcodec rawvideo -r 24 -s 640x480 -pix_fmt bgr24 -i - -vcodec libx264 -pix_fmt yuv420p -r 24 -f flv -ar 44100 out.flv;
Thand你非常多,
羅蘭
謝謝阿爾文,您的鏈接非常有幫助!但是我忘了說什麼以及哪個非常重要,我使用ffmpeg進行流式處理...在最終的應用程序中,我將用rtmp網址替換flv文件名,所以我不能使用大膽處理進行後期處理例如。但在你的鏈接中,人們會根據ffmpeg文檔討論ffmpeg的「async」選項,其中「拉伸/擠壓」音頻流以匹配時間戳。你知道如何在我的原始視頻輸入中包含時間戳嗎? – rkohser
我還沒有處理實時的音頻流「拉伸/擠壓」,因此它已經超出了我的知識領域(已經看到了一些例子,但是現在不記得這個網站也沒有自己嘗試過,請繼續搜索) 。 –