簡體   English   中英

如何提取與 ffmpeg 完全同步的音頻?

[英]How to extract fully synced audio with ffmpeg?

我有一個包含視頻和音頻的 MP4 文件。 我只需要將音頻 stream 提取到 MP3 文件中。

然而,對於我們的應用程序來說,音頻文件的時間/同步與原始視頻完全一致是至關重要的,因為我們根據時間交叉關聯音頻特征。

我目前使用這個命令:

ffmpeg -y 
   -v error 
   -map 0:a ./the-output-file-mp3
   -map 0:v ~/a-dummy-video-output-file.mp4
   -i ~/the-input-file.mp4
   -acodec copy 
  

正如我在某處讀到的那樣,映射 0:a 和 0:v 將保證 alignment 和同步。 然后我丟棄視頻文件,因為它不需要。

然而,只提取音頻要快幾個數量級:

ffmpeg -y 
   -v error 
   -map 0:a ./the-output-file-mp3
   -i ~/the-input-file.mp4
   -acodec copy 

但我不知道這是否保證 alignment,因為我在這個頁面上讀到:

如果只從視頻stream中提取音頻,音頻的長度可能比視頻的長度短。 為確保不會發生這種情況,請通過對 ffmpeg 的相同調用提取音頻和視頻,例如“ffmpeg -i vid.avi -map 0:a audio.wav -map 0:v onlyvideo.avi

但是,也許我太重視該評論了。 我不在乎音頻剪輯是否提前結束,但重要的是它不會延遲開始,或者在任何時候與原始視頻不同步。

使用 ffmpeg 提取音頻 stream 並保證它在時間上與視頻 100% 對齊(並在同一時間開始)的最有效方法是什么?

這個方法會保證alignment嗎?

ffmpeg -y 
   -v error 
   -i ~/the-input-file.mp4
   -vn
   -acodec copy 
   ~/the-output-file.mp4
   

根據我對 100 多個視頻文件的驗證,以下文件給出了正確的 alignment 並且速度很快:

ffmpeg -y 
   -v error 
   -i ~/the-input-file.mp4
   -vn
   -acodec copy 
   ~/the-output-file.mp4

然而,我的視頻文件已經有強大的 alignment 流,-copyts 可能是更混亂的文件所必需的。

暫無
暫無

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

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