簡體   English   中英

如何避免聲音和原始視頻數據之間的ffmpeg延遲增長?

[英]How to avoid a growing delay with ffmpeg between sound and raw video data ?

大家好,謝謝你的閱讀!

這是我的問題:我有一個程序管道原始視頻幀到標准輸出。 該程序使用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;

非常適合你,

羅蘭

視頻和音頻之間的延遲是多媒體空間中的老問題。 沒有靈丹妙葯可以解決它,但你可能會嘗試使用不同的編解碼器(特別是新的編解碼器,而不是微軟)。 您可能會發現較低的延遲,並且,對於不錯的視頻長度(1小時),沒有什么麻煩。

最簡單的方法是分段處理音頻和視頻文件,比如剪切30分鍾的視頻和音頻。 由於流是非同步的,你可以使用ffmpeg來控制它,參見這里這里的指南,好的是你不需要兩個文件(流),因為ffmpeg可以使用來自SAME文件的源。

找出延遲后,重復下一個段,依此類推。

有時音頻可能超過30分鍾,比如33分鍾。 然后我會使用' Audacity '將長度縮回到合並之前的30分鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM