私がしたいこと:
私はx個の画像png/jpgを持っていますが、さまざまな時間、より長い時間、より短い時間でそれらを表示したいと思います。
ビデオはaudio.mp3と同じ長さである必要があります
これは、ドキュメントを読んだ後のこれまでの私のコードです。何が問題なのかわかりません。音声のない破損したビデオが表示され、最後の画像のみが表示されます。
また、可能であれば画像を中央に配置したいと思います。
ffmpeg -y \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -t 1 -i a5.png \
-i audio.mp3 \
-c:v libx264 -pix_fmt yuv420p -c:a copy video.mp4
試してみてください
ffmpeg -y -framerate 15 \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -t 1 -i a5.png \
-i audio.mp3 \
-c:v libx264 -pix_fmt yuv420p -c:a copy \
-filter_complex " \
[0]setdar=16/9[a1],[a1]scale=720x406[a];[1]setdar=16/9[b1],[b1]scale=720x406[b];[2]setdar=16/9[c1],[c1]scale=720x406[c];[3]setdar=16/9[d1],[d1]scale=720x406[d];[4]setdar=16/9[e1],[e1]scale=720x406[e];
[a][b][c][d][e]concat=n=5,format=yuv420p[v],[v]scale=720x406[v1],[v1]setdar=16/9[v2]" \
-map "[v2]" -c:a copy out.mp4
基本的なテンプレートは
ffmpeg -y \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -i a5.png \
-i audio.mp3 \
-filter_complex "concat=n=5" -shortest \
-c:v libx264 -pix_fmt yuv420p -c:a aac video.mp4
各画像のt
仕様は、その期間を設定します。オーディオが終了するまでビデオを持続させたい場合は、最後の画像のt
を省略してください。
Concatフィルターを使用して、すべてのビデオ入力を結合します。 concatフィルターが結合する入力にラベルを付けることをお勧めしますが、指定しない場合、フィルターは最初のN -i
入力を取得します。ここで、Nはconcatフィルターに設定された値です。すべての画像の解像度とアスペクト比は同じである必要があります。
指定されたコマンドはオーディオをコピーしますが、MP3は許可されていますが、MP4では標準ではなく、Quicktimeなどの一部のプレーヤーはファイルを再生しないため、AACに変更しました。
サイズが異なる画像の場合は、filter_complexを次のように変更します。
"[0]scale=W:H:force_original_aspect_ratio=decrease,pad=W:H:(ow-iw)/2:(oh-ih)/2,setsar=1[i0];
[1]scale=W:H:force_original_aspect_ratio=decrease,pad=W:H:(ow-iw)/2:(oh-ih)/2,setsar=1[i1];
[2]scale=W:H:force_original_aspect_ratio=decrease,pad=W:H:(ow-iw)/2:(oh-ih)/2,setsar=1[i2];
[3]scale=W:H:force_original_aspect_ratio=decrease,pad=W:H:(ow-iw)/2:(oh-ih)/2,setsar=1[i3];
[4]scale=W:H:force_original_aspect_ratio=decrease,pad=W:H:(ow-iw)/2:(oh-ih)/2,setsar=1[i4];
[i0][i1][i2][i3][i4]concat=n=5"
WとHは、ターゲットビデオの幅と高さの数値に置き換える必要があります。