コマンドラインから動画ファイルを一括処理する例.
骨子ですが,先ほど用意したスクリプトファイルに手を加えて,
実行したコマンドをシェルスクリプトに組み込んで,
フォルダ内にあるmpegファイルを一括変換してくれるプログラムを書きます.
シェルスクリプト初心者なので,とりあえず動けばいい,ということにします.
例えば,以下のように編集してやります.
この例ではファイルをロードする行とカット編集の部分を消しています.
CMカットはできないですが,ファイルのロードがない分,汎用性が向上します.
//AD <- Needed to identify//
//--automatically built--
//--Project: /途中省略/tera-hdd/mi-encode/SW-1.js
var app = new Avidemux();
//** Video **
// 01 videos source
//03 segments
//** Postproc **
//** Filters **
app.video.addFilter("deinterlace","motion_trigger=15","blend_trigger=9");
app.video.addFilter("mpresize","w=1280","h=720","algo=0");
//** Video Codec conf **
app.video.codec("X264","AQ=24","188 00 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 1e 00 00 00 3c 00 00 00 0a 00 00 00 27 00 00 00 05 00 00 00 01 00 00 00 28 00 00 00 19 00 00 00 fa 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 05 00 00 00 10 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5a 00 00 00 ");
//** Audio **
app.audio.reset();
app.audio.codec("aac",192,4,"80 00 00 00 ");
app.audio.normalizeMode=0;
app.audio.normalizeValue=0;
app.audio.delay=0;
app.audio.mixer("NONE");
app.setContainer("MP4");
setSuccess(1);
//app.Exit();
//End of script
フォルダ内のすべてのmpegファイルを同一設定でmp4へ変換,
その後mpegファイルを別のディレクトリへ移動して,インデックスファイルを削除して,操作完了としましょう.
#/bin/bash
for mpeg in *.mpg
do
avidemux2_cli --autoindex --load "$mpeg" --run /途中省略/tera-hdd/mi-encode/Job-Avidemux/HD-16-9-1280.js --save "$mpeg-1280.mp4"
done
for mp4before in *.mpg-1280.mp4
do
mp4after=`echo "$mp4before" | sed -e "s/\.mpg-1280//g"`
mv "$mp4before" "$mp4after"
done
for mpeg in *.mpg
do
mv "$mpeg" "/途中省略/tera-hdd/mi-encode/tekito/kanryo/$mpeg"
done
for idx in *.mpg.idx
do
rm "$idx"
done
これで,一応の処理ができるはず.私の環境では実行できました.