任意個の動画をffmpegとSoXで並べて合成
コマンドラインで動く,動画/映像ファイルを並べて合成するシェルプログラムの第2段です.引数に指定された任意個数の動画ファイルを並べて合成します.
1つや2つの動画なら専用のソフトウェアをつかって手作業でしてもいいのですが,100や200となると退屈です.動画の合成は待ち時間も長いですし.これならバッチ処理にできるのでほっとくだけでOK.
- それぞれの動画を画像に分解 & 音声ファイルを抽出
- 並べて画像を合成 & 音声ファイルを合成
- 合成した画像ファイルと音声ファイルから再び動画に戻す
という流れをスクリプトにしただけです.凄いことをしているわけではありません.画像を並べて合成するのには,以前の記事のを使っています.
実行にはffmpegとSoXが必要ですので,あらかじめインストールしてパスを張ってください.JavaのREも要ります.
以前書いたスクリプトは動画ファイルの個数が2個か4個しかダメでしたが,こちらは何個でも大丈夫です.
並べ方の配置は,同封してあるImgs2Img.javaを編集すれば変えられます.Javaを勉強して下さい.
つかいかた
#動画を並べて合成する
./sideby.sh 1.wmv 2.flv 3.mpg 4.mp4
MP4形式の動画ファイルout.mp4を出力します.入力動画の形式はffmpegがサポートしているLibav documentation : :フォーマットです.出力ファイルの形式を変えたい場合は,スクリプトを適宜修正してください.
※指定されたファイルが存在しない場合は黒色で補間します.
ダウンロード
こちらからファイルをダウンロードできます.BSDライセンスを適用します.実行する前にffmpegとSoXとJavaをインストールしてください.
ぜひ感想を頂けると今後のモチベーションを持てるのでよろしくお願いします.
デモンストレーション
実行するとこんな動画が作れます.