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

しかし、期間が自動的に正しくならないという私の最初の疑問は依然として残っています。

関連情報