ffmpeg - 画像とビデオを結合する

ffmpeg - 画像とビデオを結合する

音声付きのビデオがあり、それを 2 つの画像 (ビデオ開始前の画像とビデオ終了後の画像) と結合しようとしているのですが、現在このエラーが発生しています -

フィルターグラフの説明内のストリーム指定子 ':a' [0:v] [0:a] [1:v] [2:a] concat=n=3:v=1:a=1 [v] [a] はどのストリームにも一致しません。

これは私が使用しているコードです -

 ffmpeg \
    -loop 1 -framerate 24 -t 10 -i default_start.png \
    -i output-first.mp4 \
    -loop 1 -framerate 24 -t 10 -i default_end.png \
    -f lavfi -t 3 -i anullsrc \
    -filter_complex "[0:v] [0:a] [1:v] [2:a] concat=n=3:v=1:a=1 [v] [a]" \
    -c:v libx264 -c:a aac -map "[v]" -map "[a]" -y output-second.mp4 2>&1

編集

また、2つの異なるコマンドを使用しようとしていますが、それぞれ2つの画像ファイルではなく1つの画像ファイルを使用します。

// Image at start only
    ffmpeg -y \
        -loop 1 -framerate 24 -t 10 -i default_start.png \
        -i output-first.mp4 \
        -f lavfi -t 3 -i anullsrc \
        -filter_complex "[0:v] [2:a] [1:v] [1:a] [2:v] [3:a] concat=n=2:v=1:a=1 [v] [a]" \
        -c:v libx264 -c:a aac -map "[v]" -map "[a]" output-second.mp4 2>&1


// Image at end only
    ffmpeg -y \
        -i output-first.mp4 \
        -loop 1 -framerate 24 -t 10 -i default_end.png \
        -f lavfi -t 3 -i anullsrc \
        -filter_complex "[0:v] [3:a] [1:v] [1:a] [2:v] [3:a] concat=n=3:v=1:a=1 [v] [a]" \
        -c:v libx264 -c:a aac -map "[v]" -map "[a]" output-second.mp4 2>&1

答え1

concat 入力を対応するファイル入力にマップする必要があります。

ffmpeg -y \
    -loop 1 -framerate 24 -t 10 -i default_start.png \
    -i output-first.mp4 \
    -loop 1 -framerate 24 -t 10 -i default_end.png \
    -f lavfi -t 3 -i anullsrc \
    -filter_complex "[0:v] [3:a] [1:v] [1:a] [2:v] [3:a] concat=n=3:v=1:a=1 [v] [a]" \
    -c:v libx264 -c:a aac -map "[v]" -map "[a]" output-second.mp4

関連情報