foltia ipodtranscode.pl

OSのアップグレードとその周りだけやって、/etc内などをきれいにしようかなぁ思ってpostgresqlに手をつけたら案の定起動しなくなり、結局OS入れなおしました。

その代わりといってはなんですが、foltiaの代表的な機能であるipodtranscodeも動くようになったのでその辺の設定を。

 

ググってみた限りではfoltiaのセットアップガイドそのままで変換できてる人もいるようなのでfoltia内のファイルを弄繰り回したくない人はスルーでお願いします。

 

とりあえずdebug.logを参照するとMP4Boxのコマンドが正常に使えてないっぽいので、その周りのコードを書き換えてもいいんですがめんどくさい。

ってかMP4Boxのコマンドとかあんまよくわかんない。

 

ということで全部の変換をffmpegのみでやらせます。

 

まずipodtranscode.pl内の174行目あたりから178行目付近までの

$ffmpegencopt = ” -s 360×202 -deinterlace -r 24.00 -vcodec libx264 -g 300 -b 330000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq ‘blurCplx^(1-qComp)’ -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264″;

}elsif($trconqty == 2){

$ffmpegencopt = ” -s 480×272 -deinterlace -r 29.97 -vcodec libx264 -g 300 -b 400000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq ‘blurCplx^(1-qComp)’ -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264″;

}elsif($trconqty == 3){#640×352

$ffmpegencopt = ” -s 640×352 -deinterlace -r 29.97 -vcodec libx264 -g 100 -b 600000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq ‘blurCplx^(1-qComp)’ -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264″;

の部分をコメントアウトしたい場合はコメントアウトし、

$ffmpegencopt = ” -s 360×202 -deinterlace -r 24.00 -vcodec libx264 -g 300 -b 330000 -level 13 -sc_threshold 60 -refs 3 -maxrate 700000 -async 500 -acodec libfaac -ar 48000 -ab 96000 -f ipod $filenamebody.base.mp4″;

}elsif($trconqty == 2){

$ffmpegencopt = ” -s 480×272 -deinterlace -r 29.97 -vcodec libx264 -g 300 -b 400000 -level 13 -sc_threshold 60 -refs 3 -maxrate 700000 -async 500 -acodec libfaac -ar 48000 -ab 96000 -f ipod $filenamebody.base.mp4″;

}elsif($trconqty == 3){#640×352

$ffmpegencopt = ” -s 640×352 -deinterlace -r 29.97 -vcodec libx264 -g 100 -b 600000 -level 13 -sc_threshold 60 -refs 3 -maxrate 700000 -async 500 -acodec libfaac -ar 48000 -ab 96000 -f ipod $filenamebody.base.mp4″;

のように書き換えます。

 

次に219行目~269行目までを一気にコメントアウト。もしくは削除。

unlink(“${mp4outdir}MAQ${mp4filenamestring}.MP4”);

は残しておきます。

270行目をコメントアウトし、271行目の

&changefilestatus($pid,$FILESTATUSTRANSCODEATOM);

は残す。

275~280行目の

$exit_value = $? >> 8;

$signal_num = $? & 127;

$dumped_core = $? & 128;

&writelog(“ipodtranscode DEBUG MP4Box -ipod:$exit_value:$signal_num:$dumped_core”);

system(“cp $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4”);

&writelog(“ipodtranscode mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4”);

を残し、273~283行目をコメントアウト。

 

ffmpegの実行コマンドのみ残して、動画に関する変換のほかの部分(mplayerによるWAVE取り出し、AAC変換、MP4BoxによるMP4ビルドをすっ飛ばせばいけんじゃね?ってことで。