foltiaチェンジセット111をカスタマイズ
先週のチェンジセット111にアップデート後にソースコードを一部変更したので、備忘録としてメモしておく。
目次
PT2でBS放送番組が録画できない事象の対処
チェンジセット111にアップデートした後、BSデジタル放送の録画に失敗していたので調べてみると、recpt1で失敗していることが判明した。原因はfoltia簡易BBSの2010年07月18日の投稿に書かれている内容と同じで、recpt1の実行コマンドの引数に「b*」が入っているためである。よってすぐにパッチをあてて修正・・・と思っていたのだが、パッチがうまくあたらない。なので暫定的に下記のように修正し、引数に「b*」が入らないようにした。
perl/digitailtvrecording.plの396行目、397行目
&writelog("digitaltvrecording DEBUGrecpt1 --b25 --sid $originalrecch $recch $reclengthsec $outputfile "); $oserr = system("$toolpath/perl/tool/recpt1 --b25 --sid $originalrecch $recch $reclengthsec $outputfile ");
について、$recch(=「b*」が入っている変数)を$originalrecchに変更した。
&writelog("digitaltvrecording DEBUGrecpt1 --b25 --sid $originalrecch $originalrecch $reclengthsec $outputfile "); $oserr = system("$toolpath/perl/tool/recpt1 --b25 --sid $originalrecch $originalrecch $reclengthsec $outputfile ");
ただし、この対処をするとCS放送も録画できなくなるので、CS放送を録画したい人は注意。
iPhone 4向け720P動画の作成設定の追加
iPhone 4はiPadと同じく720Pの動画再生が可能になったので、動画のエンコード設定も720Pに変更した。パラメータはiPad用のエンコード設定が紹介されていたので、そのまま利用させていただいた。
foltiaでiPad用720P H.264動画を作る
変更点は3つ。
- libx264-hq-ts.ffpresetの作成
- ipodtranscode.plの修正
- foltia_conf1.plの修正
libx264-hq-ts.ffpresetの作成
上記の記事に記載されている通りのものを作成し、/usr/share/ffmpeg/配下に格納。
ipodtranscode.plの修正
ipodtranscode.plに720Pの動画を作成するffmpegの実行コマンドを追加した。具体的には、perl/ipodtranscode.plの169行目以降に追加を行い、foltia_conf1.plで$tracongtyを4に指定した場合に720Pエンコードを行うようにした。
}elsif($trconqty == 3){#640x352 # $ffmpegencopt = " -s 640x352 -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"; # for ffmpeg 0.5 or later $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -vpre default -g 100 -b 600000 -level 13 -sc_threshold 60 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; } -----ここ以降を追加----- elsif($trconqty == 4){#1280x720 $ffmpegencopt = "-f h264 -vcodec libx264 -vpre /usr/share/ffmpeg/libx264-hq-ts.ffpreset -r 30000/1001 -aspect 16:9 -s 1280x720 -bufsize 20000k -b 1000000 -maxrate 2500000 $filenamebody.264"; }
foltia_conf1.pl
上記に従い、perl/foltia_conf1.plにおいて「$trcongty=4」を指定。
実際にエンコードして、iPhone 4で再生できることを確認した。参考に、640x352でエンコードしたものと720P(1280x720)でエンコードしたものをそれぞれiPhone 4で再生した際のスクリーンショットを貼っておく。非常に精細な画像になっており、全体的なぼやっとした印象がほとんどないことがわかる。これであればiPhoneでの視聴だけでなく、自宅のPCでの視聴にも十分耐えうるものだと思う。
ちなみに、録画からエンコード終了までは30分番組で4時間〜5時間。ファイルサイズは300MB〜400MB程度。TSファイルが30分番組で3GB程度であることから、エンコードによってファイルサイズが1/10くらいに圧縮されていることがわかる。すばらしい!
※2010/08/29追記:ソースコード部分を色づけ
fujitaka