web-dev-qa-db-ja.com

FFMPEG:拡大縮小されたビデオを画像にオーバーレイする

静止画像とその上にオーバーレイされる小さなビデオを含むビデオを作成しようとしています。オーバーレイビデオのサイズと位置は、FFMPEGを実行するサーバースクリプトに動的に送信されるため、オーバーレイする前にビデオを拡大縮小する必要があります。したがって、私が使用した数値はテスト用です。元のビデオのサイズは72:48pxです。私はこのようなコマンドを試しました:

ffmpeg -i background.jpg -vf "movie=overlay.mp4, scale=128:96 [inner]; [in][inner] overlay=70:70 [out]" -y output.mp4

ただし、空のビデオが即座に生成されます。一方、ffmpegコマンドの直後に-loop 1を挿入しようとすると、ビデオの処理に時間がかかり、終了しないようです。

私が達成しようとしているのは、最初にスケーリングされたビデオを作成しないようにすることです。それは可能ですか、そして私は何を間違っていますか?

2
cincplug

使用する

ffmpeg -loop 1 -i background.jpg \
       -vf "movie=overlay.mp4,scale=128:96[inner];[in][inner]overlay=70:70:shortest=1[out]" \
       -y output.mp4

画像をループする必要がありますが、それは終わりのないストリームを作成するため、オーバーレイフィルターの最短の引数は、ムービーが終了したときにフィルターを停止します。


オーバーレイのオーディオが含まれている

ffmpeg -loop 1 -i background.jpg -i overlay.mp4 \
       -filter_complex "[1]scale=128:96[inner];[0][inner]overlay=70:70:shortest=1[out]" \
       -map "[out]" -map 1:a -c:a copy -y output.mp4
5
Gyan