foltiaをチェンジセット111にアップデート

foltiaがアップデートされたようなので、さっそく自分の環境でアップデートしてみた。

主な変更点はこんな感じです。

・epgdumpの追加インストール
 tsファイルからXMLTV形式のXMLを取得する「epgdump」プログラムのインストールが必要です。
こちらなどからダウンロード可能です。
http://sourceforge.jp/projects/rec10/svn/view/epgdump/?root=rec10
foltia_epgテーブル構成変更
SQLite環境でfolcastがまったく動いてなかったのを修正。 

これ以降の内容は、foltiaを既にインストールしている人を対象にしているので、foltiaを新規にインストールする人は参考にならないかも。過去の記事は以下に残しておく。

目次
  1. foltiaのダウンロード
  2. epgdumpのインストール
  3. データベースの更新
  4. 動作確認
  5. 最後に

foltiaのダウンロード

Subversionfoltiaをアップデートする。新規インストールの際には/home/foltia/tmp/foltiaにダウンロードしたので、対象ディレクトリに移動してアップデートを実行する。アップデートが終わったら、/home/foltia/phpと/home/foltia/perlにコピーする。

[foltia@foltiasrv foltia]$ ls -aFl
合計 20
drwxrwxr-x 5 foltia foltia 4096  3月 10 21:36 ./
drwxrwxr-x 5 foltia foltia 4096  7月 24 21:27 ../
drwxrwxr-x 6 foltia foltia 4096  3月 10 21:36 .svn/
drwxrwxr-x 5 foltia foltia 4096  3月 10 21:36 doc/
drwxrwxr-x 5 foltia foltia 4096  3月 13 21:04 install/

[foltia@foltiasrv foltia]$ svn update
U    install/perl/foltialib.pl
A    install/perl/epgimport.pl
U    install/perl/folprep.pl
U    install/perl/updatem2pfiletable.pl
U    install/perl/db/Pg.pl
A    install/perl/channelscan.pl
U    install/perl/digitaltvrecording.pl
U    install/perl/getxml2db.pl
A    install/perl/digitalradiorecording.pl
U    install/perl/schedulecheck.pl
U    install/perl/xmltv2foltia.pl
U    install/perl/ipodtranscode.pl
U    install/perl/cron_foltia_dayly.sh
U    install/perl/deletemovie.pl
U    install/perl/recwrap.pl
U    install/php/folcast.php
U    install/php/m.php
U    install/php/deletemovie.php
U    install/php/showplaylist.php
U    install/php/viewepg.php
U    install/php/listreserve.php
U    install/php/index.php
U    install/php/titlelist.php
U    install/php/delepgp.php
U    install/mktable.sqlite.txt
U    install/mktable.txt
リビジョン 111 に更新しました。

[foltia@foltiasrv foltia]$ cd 

[foltia@foltiasrv ~]$ cp -r tmp/foltia/install/php/* php/
cp: cannot create regular file `php/StarlightBreaker/.svn/text-base/sb-config.php.template.svn-base': 許可がありません
cp: cannot create regular file `php/StarlightBreaker/.svn/text-base/sb-edit.php.svn-base': 許可がありません
cp: cannot create regular file `php/StarlightBreaker/.svn/text-base/sb-write.php.svn-base': 許可がありません
cp: cannot create regular file `php/StarlightBreaker/.svn/entries': 許可がありません
cp: cannot create regular file `php/StarlightBreaker/.svn/all-wcprops': 許可がありません
cp: cannot create regular file `php/img/.svn/text-base/icon.png.svn-base': 許可がありません
cp: cannot create regular file `php/img/.svn/text-base/no-thumbnail-img.png.svn-base': 許可がありません
cp: cannot create regular file `php/img/.svn/entries': 許可がありません
cp: cannot create regular file `php/img/.svn/prop-base/icon.png.svn-base': 許可がありません
cp: cannot create regular file `php/img/.svn/prop-base/no-thumbnail-img.png.svn-base': 許可がありません
cp: cannot create regular file `php/img/.svn/all-wcprops': 許可がありません

[foltia@foltiasrv ~]$ cp -r tmp/foltia/install/perl/* perl/
cp: cannot create regular file `perl/db/.svn/text-base/SQLite.pl.svn-base': 許可がありません
cp: cannot create regular file `perl/db/.svn/text-base/Pg.pl.svn-base': 許可がありません
cp: cannot create regular file `perl/db/.svn/entries': 許可がありません
cp: cannot create regular file `perl/db/.svn/all-wcprops': 許可がありません
cp: cannot create regular file `perl/irda/.svn/entries': 許可がありません
cp: cannot create regular file `perl/irda/.svn/all-wcprops': 許可がありません
cp: cannot create regular file `perl/tool/.svn/entries': 許可がありません
cp: cannot create regular file `perl/tool/.svn/all-wcprops': 許可がありません
cp: cannot create regular file `perl/transcode/.svn/text-base/vfr4psp.sh.svn-base': 許可がありません
cp: cannot create regular file `perl/transcode/.svn/entries': 許可がありません
cp: cannot create regular file `perl/transcode/.svn/prop-base/vfr4psp.sh.svn-base': 許可がありません
cp: cannot create regular file `perl/transcode/.svn/all-wcprops': 許可がありません

コピー時にいくつかコピーできないファイルがあるが、svn関連なので無視する。

epgdumpのインストール

既にインストール済みだったけど、記事に起こしていなかったのでここで記載する。epgdumpのソースはepgrecのページで紹介されていたものを利用した。

上記ページのepgdumpr2.tar.gzをダウンロードし、/home/foltia/tmp/配下に保存する。コンパイルした後のepgdumpを/home/foltia/perl/tool/配下に保存することを忘れないように。

[foltia@foltiasrv tmp]$ ls
TsSplitter.exe        foltia             iui-0.31.tar.gz           tss.py
c44e16dbb0e2.tar.bz2  foltia.conf.swo    mktable.sqlite_osaka.txt
d89f0da0a7e4.tar.bz2  foltia.conf.swp    neroAacEnc
epgdumpr2.tar.gz      gpac-0.4.5.tar.gz  php.ini.swp

[foltia@foltiasrv tmp]$ tar xvzf epgdumpr2.tar.gz
epgdumpr2/
epgdumpr2/eit.h
epgdumpr2/tags
epgdumpr2/eit.c
epgdumpr2/sdt.h
epgdumpr2/Makefile
epgdumpr2/util.c
epgdumpr2/ts.h
epgdumpr2/xmldata.c
epgdumpr2/util.h
epgdumpr2/ts.c
epgdumpr2/epgdump.c
epgdumpr2/aribstr.c
epgdumpr2/sdt.c
epgdumpr2/readme.txt
epgdumpr2/aribstr.h
epgdumpr2/ts_ctl.h

[foltia@foltiasrv tmp]$ cd epgdumpr2

[foltia@foltiasrv epgdumpr2]$ make
gcc -std=c99 -O2 -Wall -g -c epgdump.c
epgdump.c: In function 'xmlspecialchars':
epgdump.c:150: warning: implicit declaration of function 'strrep'
epgdump.c: In function 'main':
epgdump.c:358: warning: 'return' with no value, in function returning non-void
〜(以下、略)〜

[foltia@foltiasrv epgdumpr2]$ ls
Makefile   aribstr.o  eit.o      epgdump.o   sdt.h  ts.c  ts_ctl.h  util.o
aribstr.c  eit.c      epgdump    readme.txt  sdt.o  ts.h  util.c    xmldata.c
aribstr.h  eit.h      epgdump.c  sdt.c       tags   ts.o  util.h

[foltia@foltiasrv epgdumpr2]$ cp epgdump /home/foltia/perl/tool/

データベースの更新

foltia_epgのテーブル構成が変更されているので、削除→新規作成を行う。foltia_epgは名前の通りEPG番組表情報なので、このテーブルが削除されても録画データが消える等の影響はない。

[foltia@foltiasrv ~]$ sqlite3 foltia.sqlite 
SQLite version 3.3.6
Enter ".help" for instructions
sqlite> drop table foltia_epg;
sqlite> create table foltia_epg (
   ...> epgid integer   PRIMARY KEY AUTOINCREMENT,
   ...> startdatetime integer,
   ...> enddatetime integer,
   ...> lengthmin integer ,
   ...> ontvchannel text,
   ...> epgtitle text,
   ...> epgdesc text,
   ...> epgcategory text 
   ...> );
sqlite> create  index foltia_epg_startdatetime_index on foltia_epg (startdatetime);
sqlite> create  index foltia_epg_enddatetime_index on foltia_epg (enddatetime);
sqlite> create  index foltia_epg_ontvchannel_index on foltia_epg (ontvchannel);
sqlite> .q

テーブルには番組データが入っていないので、epgimportでEPG番組表を取得する。epgimportはrecpt1で各チャンネルを数秒録画してTSファイルを取得し、それをepgdumpでEPG番組表を取り出している。録画時間は地上波は3秒、BSは36秒がデフォルトとなっており、「long」のオプションしていでそれぞれ60秒、120秒になり、これで約1週間分の番組表が取得できるらしい。

[foltia@foltiasrv ~]$ perl/epgimport.pl long
pid = 29331
C/N = 32.732687dB
Recording...
Recorded 60sec
pid = 29345
C/N = 31.773971dB
Recording...
Recorded 60sec
pid = 29363
C/N = 31.349533dB
Recording...
Recorded 60sec
pid = 29374
C/N = 32.221309dB
pid = 29409
C/N = 32.872585dB
Recording...
Recorded 60sec
pid = 29506
C/N = 34.098013dB
Recording...
Recorded 60sec
pid = 29515
C/N = 31.453726dB
Recording...
Recorded 60sec
pid = 29526
C/N = 16.236807dB
Recording...
Recorded 120sec

動作確認

最後に正常に動いているか動作確認する。まず、EPG番組表から。
f:id:fujitakastyle:20100818121326p:image
きちんと表示されてる。以前のepmdumpとtv_grab.plの組み合わせでは歯抜けになって表示されないことが多々あり、そのために予約できないときがあった。今回のアップデートによってそのようなことが少なくなりそう。


folcastも以前までは番組個別のfolcastがうまくいかなかったが、今回のアップデートで番組個別でも正常に弾ロードすることを確認できた。すばらしい!
f:id:fujitakastyle:20100818121327p:image


おまけだけど、キャプチャ画像一覧。foltiaは番組のサマリが見ることができるので、番組の未読/既読の確認が楽なのが魅力。
f:id:fujitakastyle:20100818121328p:image

最後に

今回のアップデートによって、foltiaはよりいっそう快適に使えるものになった。今後のアップデート予定には

今後直近の予定としてキーワード録画、ライブストリーミング、番組ごとのトラコン品質個別指定、複数トラコン品質ファイル生成、などへの対応が予定されています。

と書かれており、キーワード録画をはじめ、魅力的な機能がどんどん追加予定のようだ。今後もfoltiaユーザとしてアップデートに期待したい。


※2010/08/18追記:データベース更新部分を修正

 fujitaka