見出し画像

FFmpegでよく使うコマンド集2

星杜なぎさです☆
本記事ではFFmpegで個人的によく使うコマンドを紹介します!

前回の記事では、動画1つの加工でしたが、今回は、複数動画の結合に絞って、具体例を記載していきます

↓前回の記事↓

使用する動画の説明

入力とする動画は以下の4つです
(すべて 1920x1080 の動画です)

  • A.mp4 ・・・ ピンクのアキクサインコ

  • B.mp4 ・・・ 水色のセキセイブルー

  • C.mp4 ・・・ シマエナガ

  • D.mp4 ・・・ 名古屋名物 ぴよりん

これらの動画を使って、FFmpegの動画結合を紹介していきます

1. 縦方向で結合(Vertical Stack)

1.1 2つの動画を結合

ffmpeg -i A.mp4 -i B.mp4 -filter_complex "vstack" vAB.mp4

出力動画

フレーム高が、ちょうどA+Bとなってます

1.2 3つ以上の動画を結合

ffmpeg -i A.mp4 -i B.mp4 -i C.mp4 -filter_complex "[0:v][1:v][2:v]vstack=inputs=3[v]" -map "[v]" vABC.mp4

出力結果

フレーム高が、A+B+Cになってます

2. 横方向に結合(Horizontal Stack)

2.1 2つの動画を結合

ffmpeg -i A.mp4 -i B.mp4 -filter_complex "hstack" hAB.mp4

出力結果

フレーム幅が、A+Bとなっています

2.2 3つ以上の動画を結合


ffmpeg -i A.mp4 -i B.mp4 -i C.mp4 -filter_complex "[0:v][1:v][2:v]hstack=inputs=3[v]" -map "[v]" hABC.mp4

出力結果

フレーム幅がA+B+Cとなります

3. 2x2のタイル状に並べる(X Stack)

ffmpeg -i A.mp4 -i B.mp4 -i C.mp4 -i D.mp4 -filter_complex "[0:v][1:v][2:v][3:v]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0[v]" -map "[v]" xABCD.mp4

出力結果

ビデオ会議みたいでかわいいね!

4. 時間方向で結合

これだけ準備が必要なのですが、
以下の「filelist.txt」に、結合するファイル名を記載しておきます

1行ずつ、file ファイル名 となるように記載

あとは、以下のコマンドで時間方向の結合ができます

ffmpeg -safe 0 -f concat -i filelist.txt -c copy tABCD.mp4

出力結果

静止画だとわかりにくいですが、ビデオの長さが4動画の合計となっています

ちなみに、以下のコマンドで、mp4ファイルのfilelist.txtを作成できる

(for %f in (./*.mp4); do @echo file %f) > filelist.txt

参考URL

この記事が気に入ったらサポートをしてみませんか?