foltiaチェンジセット111をカスタマイズ

先週のチェンジセット111にアップデート後にソースコードを一部変更したので、備忘録としてメモしておく。

目次
  1. PT2でBSデジタル放送が録画できない事象の対処
  2. iPhone 4向け720P動画の作成設定の追加

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 4iPadと同じく720Pの動画再生が可能になったので、動画のエンコード設定も720Pに変更した。パラメータはiPad用のエンコード設定が紹介されていたので、そのまま利用させていただいた。
 foltiaでiPad用720P H.264動画を作る
変更点は3つ。

  1. libx264-hq-ts.ffpresetの作成
  2. ipodtranscode.plの修正
  3. 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での視聴にも十分耐えうるものだと思う。
f:id:fujitakastyle:20100828160213p:image
f:id:fujitakastyle:20100828160241p:image
ちなみに、録画からエンコード終了までは30分番組で4時間〜5時間。ファイルサイズは300MB〜400MB程度。TSファイルが30分番組で3GB程度であることから、エンコードによってファイルサイズが1/10くらいに圧縮されていることがわかる。すばらしい!


※2010/08/29追記:ソースコード部分を色づけ

 fujitaka