我正在嘗試更改影片的幀速率,使其運行時間更長一些。我不想重新編碼,並且希望音訊保持同步。我能夠從視頻中提取原始視頻,然後使用...重新混合
ffmpeg -i source.mkv -c copy -f h264 video.h264
ffmpeg -r 23.976 -i video.h264 -c copy dest.mp4
這將創建一個現在運行正確時間但沒有音訊的視訊。
如何獲得帶有音訊的成品 .mp4?
答案1
您需要調整音訊速度以匹配視訊並重新編碼,但您可以在不重新編碼視訊的情況下執行此操作。
首先,計算需要調整音訊的量。假設這原本是 25fps 的視頻,您將其減慢至 23.976,則速度係數為 23.976/25 = 0.959。我們將其插入atempo
過濾器以調整音訊的速度,將其從原始source.mkv
.
ffmpeg -i source.mkv -r 23.976 -i video.h264 -filter_complex "[0:a]atempo=0.959[out]" -map 1:v -map "[out]" -c:a aac -c:v copy out.mp4
這裡-filter_complex
從第零個輸入檔 ( ) 獲取音訊流source.mkv
並通過過濾器運行它atempo
,然後命名輸出[out]
。然後,我們使用-map
參數來表示我們想要從第一個輸入檔案中獲取音訊串流以及視訊串流(從零開始,所以實際上是第二個輸入檔案video.h264
)。我們必須重新編碼音頻,因為我們想更改它,但我們可以將視頻複製到容器中。