VOB→x264+AACエンコードスクリプト
複数VOB対応スクリプトをバージョンアップ。
実行には、x264_aac_enc.sh VOBファイルのパス VOB開始番号 VOBの終了番号とする。
例: x264_aac_enc.sh /mnt/Movie/ 1 4
#!/bin/bash # x264_aac_enc.sh # ファイル名はVTS_01_x.VOBを想定 tmp=`expr $3 - $2` if [ $tmp -ge 0 ]; then cnt=`expr $2` mencoder $1/VTS_01_$cnt.VOB -o $cnt.264 -of rawvideo -nosound -vf filmdint -ovc x264 -x264encopts bitrate=1500:threads=auto:cabac:deblock:qp_min=10:qp_max=51:qp_step=4:qcomp=0.6:ratetol=4:bframes=2:b_adapt:weight_b:nob_pyramid:keyint=240:keyint_min=1:scenecut=55 ffmpeg -i $cnt.264 -i $1/VTS_01_$cnt.VOB -y -vn -f mp4 -acodec aac -ar 48000 -ac 2 -ab 128k -map 1.1:0.0 $cnt.aac.mp4 cnt=`expr $cnt + 1` while [ $cnt -le $3 ] do mencoder $1/VTS_01_$cnt.VOB -o $cnt.264 -of rawvideo -nosound -vf filmdint -ovc x264 -x264encopts bitrate=1500:threads=auto:cabac:deblock:qp_min=10:qp_max=51:qp_step=4:qcomp=0.6:ratetol=4:bframes=2:b_adapt:weight_b:nob_pyramid:keyint=240:keyint_min=1:scenecut=55 ffmpeg -i $cnt.264 -i $1/VTS_01_$cnt.VOB -y -vn -f mp4 -acodec aac -ar 48000 -ac 2 -ab 128k -map 1.1:0.0 $cnt.aac.mp4 out.mp4 cnt=`expr $cnt + 1` done else echo "arg error" fi
最後にMP4Boxでコンテナ。addとcatするんだけど、catがファイル数によって可変だから、スクリプトの書き方がわからない…。そのうちもうちょっと考えてみる。