使用 ffmpeg 將音訊和 Gif 合併到影片中,同時保持透明度

使用 ffmpeg 將音訊和 Gif 合併到影片中,同時保持透明度

我正在嘗試結合音訊檔案和一個動圖變成一個影片儘管在 Stack Overflow 上嘗試了許多解決方案,但我還是遇到了一些問題。

我希望組合文件的持續時間與音訊的持續時間相匹配,並保留 GIF 透明度。

  • 音訊檔案的持續時間是00:00:17.53
  • Gif 檔案的持續時間是00:00:00.40,它是透明的。

我設法將它們組合起來,但我得到的持續時間是相當錯誤的,並且使用以下命令會丟失透明度:

ffmpeg -i input.mp3 -ignore_loop 0 \
-i input.gif -movflags +faststart \
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" \
-shortest -strict -2 \
-c:v libx264 -c:a aac -b:a 192k -b:v 2M -pix_fmt yuv420p output.mp4

生成的影片的持續時間是00:00:24.21

  1. 有沒有辦法在不使用-t 00:00:17.53選項的情況下獲得正確的輸出持續時間?
  2. 我嘗試使用其他編解碼器(例如 libvpx-vp9)進行轉換,但無法獲得正確的透明度,是否必須使用其他編解碼器?

編輯:我設法使用以下命令產生透明影片(webm 格式):

ffmpeg -i source.mp3 -ignore_loop 0 -i source.gif -c:v libvpx -pix_fmt yuva420p -auto-alt-ref 0 -t 00:00:17.53

然而,我關於持續時間不會自動正確的第一個問題仍然存在。

相關內容