ffmpegとSoXで複数の動画を並べて合成する
コマンドラインで動く,複数の動画/映像ファイルを並べて合成するプログラムです.指定された2個または4個の動画ファイルを並べて合成します.
- それぞれの動画を画像に分解 & 音声ファイルを抽出
- 並べて画像を合成 & 音声ファイルを合成
- 合成した画像ファイルと音声ファイルから再び動画に戻す
という流れをスクリプトにしただけです.凄いことをしているわけではありません.画像を並べて合成するのには,以前の記事のを使っています.
実行にはffmpegとSoXが必要ですので,あらかじめインストールしてパスを張ってください.JavaのREも要ります.
つかいかた
#2個の動画を並べて合成する場合 ./cmbn2mov.sh 1.wmv 2.flv #4個の動画を並べて合成する場合 ./cmbn4mov.sh 1.wmv 2.flv 3.mpg 4.mp4
MP4形式の動画ファイルoutput.mp4を出力します.入力動画の形式はffmpegがサポートしているLibav documentation : :フォーマットです.合成するときの並べ方や,出力ファイル形式を変えたい場合は,ソースコードを適宜修正してください.bashのプログラムを修正すれば,2個や4個以外でも実行できるはずです.
※指定されたファイルが存在しない場合は黒色で補間します.
デモンストレーション
実行するとこんな動画が作れます.
ダウンロード
こちらからファイルをダウンロードできます.BSDライセンスを適用します.実行する前にffmpegとSoXをインストールしてください.
【追記】新しく書いたプログラムなら任意個の動画ファイルを並べて合成できます.
ぜひ感想を頂けると今後のモチベーションを持てるのでよろしくお願いします.