TVの録画にepgrecを使いたい。
ただ、chardev版はカーネルのバージョンアップごとに更新しないといけない(頻繁にUPするのでめんどい)し、
ubuntu 12.10でやってみたら入らなかったので除外。
DVB版で使うことにする。
DVB版でepgrecを使うには、do-record.shに工夫が必要。
まず、epgrecから渡されるTUNERは適当なので、無視する。
TYPEによって、/dev/dvb/adapter0-3のどれを使うか決め、同じadapterを使うことが無いように
排他制御をする必要がある。
TSの取り込み部分は、fuse_b25を使ってやってみた時期もあったけど、
0byteのファイルが出来る頻度が多くて動きが怪しいという印象。
よって、/dev/dvb/adapter?/dvr0からddで取り出し、b25コマンドで復号するというローテクで。
録画失敗率は下がったと思う。
シェルスクリプトで色々やってたが、細かい制御が面倒になったのでrubyでやることにした。起動まではrubyだけど、実際に録画に使用されるのはmkfifoで作ったfifoと各種コマンドなので
処理的には大丈夫だと思いたい。
https://sites.google.com/site/tthhfugapiyo/home/tv.rb
spawnを使っているのでruby1.9系が必要。
直接TVを見るときも排他が必要なので、コマンドラインからも実行できるようにした。
mplayerで見る。
tv.rb 211 -p
mplayerで見ながらfileに落とす。
tv.rb 211 -o file -p
do-record.shとして使う。
ln -s tv.rb do-record.sh
CHANNEL=211 DURATION=1800 TYPE=BS OUTPUT=file.ts do-record.sh
デフォルトでBSとCSはtssplitter_liteをかけるようにしたので、
epgdumpで使うときはMODE=-1になるようにgetepg.phpの方を改造する必要がある。
追記:色々変更したのでまとめて以下
http://tthhfugapiyo.blogspot.jp/2014/06/epgrecdvb.html
0 件のコメント:
コメントを投稿