我真的很感激,如果有人可以提供一些關於使用foffset與ffmpeg的指針。我已經閱讀了許多關於這個主題的文章,其中一些非常清楚地解釋瞭如何用-itsoffset重新同步音頻和視頻,但是我一直無法使它工作。 我的AVI文件進行編碼的ffmpeg,在兩遍,使用下面的命令用於第二遍:ffmpeg流偏移命令(-itsoffset)不工作
ffmpeg -i whole-vts_01.avs -pass 2 -y -vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags +mv4+aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k output.avi
無論出於何種原因,我結束了在視頻中的1秒延遲(或音頻是1秒早)。它不經常發生,但我不時看到它。 在其他的嘗試,我曾嘗試以下:
(1) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.avi -vcodec copy -acodec copy -map 0:0 -map 1:1 output-resynched.avi
(2) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched2.avi
(3) ffmpeg -itsoffset -00:00:01.00 -i output.avi output-resynched8.avi
(4) ffmpeg -i output.avi -itsoffset -1.0 -i output.avi -vcodec copy -acodec copy -map 0:1 -map 1:0 output-resynched13.avi
下面是結果:
- 音頻亂碼只有5m 35秒長與1H41米。
- (Output.ac3是output.avi的音頻組件)視頻和音頻 等同於原來,偏移沒有工作
- 音頻沒有得到轉移,但是默認的替換原始編碼參數(如預期)。
- 音頻出現亂碼,只有9米56秒長,1小時41米。
我看到許多人解釋,顯然使用上述過程,但它似乎並沒有爲我工作。我錯過了明顯的東西嗎?我非常希望能夠使用-itsoffset,因爲它比我的解決方案更清潔。
FWIW,這裏是獲得所需結果的不同,以及更長的路:
首先創建一個移動視頻文件只使用-ss:
ffmpeg -i output.avi -ss 1.0 -vcodec copy -an oupput_videoshifted.avi
然後提取音頻:
ffmpeg -i output.avi -vn -acodec copy outputaudioonly.ac3
最後重複雙組分:
ffmpeg -i output_videoshifted.avi -i output_audioonly.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched14.avi
這個過程很有效,但我真的更喜歡使用一個pass -itsoffset解決方案。
有一個[open bug](http://roundup.libav.org/issue359)和'-itsoffset'標誌,可能與你看到的問題有關。另一方面,亂碼和截斷的音頻聽起來像是更嚴重的事情是錯誤的。如果這仍然是一個問題,你使用的是什麼版本的FFmpeg? – blahdiblah 2012-08-03 23:23:23