影像疊加並同時套用音訊 (FFMPEG)

影像疊加並同時套用音訊 (FFMPEG)

我的目的是在視訊中的特定時間應用具有淡入淡出效果的圖像疊加,並透過單一命令將背景音訊應用到視訊。影片長度也將被限制為 15 秒。

目前,我可以透過 2 個命令來實現此目的,這將產生 2 個輸出,如何將這 2 個命令合併在一起?

第一個命令

ffmpeg -i video.mp4 -loop 1 -i image.png -ss 00:00:00 -t 00:00:15 -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; [0][i]overlay=main_w/2-overlay_w/2-0+0:main_h/2-overlay_h/2-0+0:shortest=1"  incomplete.mp4

第二條命令

ffmpeg -i audio.mp3 -i incomplete.mp4 -shortest finalVideo.mp4

這是我嘗試將兩個命令合併為一個命令,但是視訊現在不再限制在 15 秒,並且在使用多個 mp4 視訊進行測試後,背景音訊僅適用於少數視訊。

ffmpeg -i video.mp4 -loop 1 -i image.png -ss 00:00:00 -t 00:00:15 -i audio.mp3 -shortest -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; [0][i]overlay=main_w/2-overlay_w/2-0+0:main_h/2-overlay_h/2-0+0:shortest=1"  finalVideo.mp4

答案1

使用

ffmpeg -ss 00:00:00 -t 00:00:15 -i video.mp4 -loop 1 -i image.png -i audio.mp3
  -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; 
                   [0][i]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:shortest=1[v]"
  -map "[v]" -map 2:a -shortest  incomplete.mp4

在 ffmpeg 中,選項放置很重要。輸入之前的任何選項僅適用於該輸入。在您嘗試的組合命令中,您在時間規範之後輸入音頻,因此它們僅特定於音頻輸入。

FFmpeg 使用映射系統來決定將哪些流包含到輸出中。當未明確設定映射分配時,預設映射會從輸入中選擇一個音訊。看起來您的某些 MP4 的音訊串流優先於 MP3。如果有明確的分配,這種情況就不會發生。

相關內容