PT2+FUSE_b25+MythTVをDebianで使う上で録画失敗から対策したことを対策箇所ごとにまとめる。
エンコードなどマシンに負荷をかけすぎると録画中、fuse_b25がsyslogに“Driver Baffar Overflowed"というエラーを出して、以降の部分が録画されなくなる。
エンコードの際は、CPUコア(スレッド)の数より少ないスレッド数を指定する。
#2コア2スレッドの場合 $ ffmpeg -threads 1 [オプション]
更にfuse_b25の優先度は高くし、エンコードの優先度を低くしておく。
/etc/rc.local、fuse_b25のマウント部分
#マウント先の数字を元のデバイスよりいくつ大きくするか
OFFSET=10
for ADAPTER in 0 1 2 3
do
NEW_ADAPTER=`expr $ADAPTER + $OFFSET`
/usr/local/sbin/b25dir $NEW_ADAPTER
nice --4 /usr/local/bin/fuse_b25 --target /dev/dvb/adapter$ADAPTER /dev/dvb/adapter$NEW_ADAPTER -o allow_other
done
ffmpegの優先度を下げる
$ nice -15 ffmpeg [オプション]
また、録画ディスクのI/Oに負荷をかけすぎても同様のことが起こるのでTsSplitterを使う場合は必ずWAITオプションを指定する。
$ wine TsSplitter.exe [オプション] -WAIT2,5
録画の開始時にMythTVのバックエンドが落ちることがある。PIDファイルが残るのでmythbackendのプロセスがなく、PIDファイルが残っていたら再起動させる。念のためfuse_b25の再マウントも行う。
$ sudo vi /usr/local/sbin/mythtv_check.sh
takaaki 4月 16th, 2012
Posted In: ソフトウェア
MythTVで録画したファイルをネットワークメディアプレイヤーやWindowsクライアントから再生する方法を紹介する。
MythTVにはUPnP(DLNA)サーバー機能が備わっているというが、検出されないし、その設定項目もなかった。適切に設定されてない場所を修正するとあっさり有効になった。標準機能を使うのでwizdやmediatombと組み合わせるよりも手軽。
まず、mythtv-setupを起動する。
$ mythtv-setup
"1.一般"を選び、"ホストアドレスバックエンドの設定"で"Local Backend"と"Master Backend"の"IP Address"にマシンに振られているIPアドレスを指定する。両方に同じ物を指定しないと2つが別のマシンと認識してしまうので注意が必要。次に"UPnP Server Settings"の"UPnP Media Update Time"が0になっていないことを確認する。何も設定しなくてもデフォルトは30になっている。
設定を行ったら反映させる。一般ユーザーで設定しているのでバックエンドを再起動する。
$ sudo /etc/init.d/mythbackend restart
これでDLNAクライアントなどからMythTVが検出されるようになる。
タイトル、ジャンル、日付、チャンネル、グループのいずれかで分けて表示することもできる。サーバー側で並び順が変えられないのが惜しい所。下の画像はRDLNAを使った例。
takaaki 1月 20th, 2012
Posted In: ソフトウェア
タグ: Debian, DLNA, LAN, Linux, MythTV, PT2, TV, Windows, ネットワーク, 録画
家ではテレビにデジタルチューナーを導入しないと決まっていたので、PCで一応見れるようにとリモートでのリアルタイム視聴を視野に入れていた。http版recpt1を候補にしたが、MythTVでもfuse_b25で対応でき、MythTV Playerでリアルタイム視聴できるとわかったので、元々使っていたMythTVを引き続き使うことにした。視聴と予約録画が同じシステムにあるので、MythTVにはチューナーを効率的に活用できる利点がある。
MythTV+FUSE_b25とepgfillでパッチを当てずに常用できるが、BSが見られないなど色々と不具合があるのでパッチ当てたものを使う。ただし、依存関係やらが面倒なのでMythTVはDeb-Multimediaのものをベースにする。セットアップはPT1/PT2のDVBとMythTV @Wikiを参考にして行った。
MythTVを修正するためのパッチを用意する。
2011.9.29 追記
ISDB対応パッチとカテゴリ日本語化パッチを分離。パッチの形式を変更して再作成。
2011.9.30 追記
サブタイトルの切り直しパッチを更新。("最終回"や"<新>"などの文字列に対応)
2011.11.17
サブタイトルの切り直しパッチを更新
2011.12.11
サブタイトルの切り直しパッチを更新
2011.4.21
サブタイトルの切り直しパッチを更新
2012.5.19
0.25が最新版になったことの対策と自動アップデート防止を追記
番組表取得や全チャンネルのフルスキャンに対応したMythTVのISDB対応版がある。Debian-Multimediaのパッケージをベースにするため、これをそのまま使わずパッチとして利用する。
本家のソースとISDB版のソースを持ってきてパッチを作る。
$ sudo aptitude install git #gitが入っていない場合 $ w3m http://www.mythtv.org/download/mythtv/0.24.1 #本家 $ tar xjf mythtv-0.24.1.tar.bz2 $ git clone git://github.com/fukumen/mythtv.git mythtv #ISDB版 $ mv mythtv/mythtv/ isdb-mythtv $ diff -urN mythtv-0.24.1 isdb-mythtv > mythtv-isdb.patch
ISDB版で取得される番組表はepgdumpとは違い、カテゴリが英語になっているので、日本語に修正する。英語でも問題ないように思えるが、カテゴリが日本語になっていないと番組表の色分けが正常に行われない。
EITで取得した番組表のタイトルが番組名での録画予約に適さないのでサブタイトルを切り直すようにするパッチ。先頭の識別子と後半部分を切り出してサブタイトルの先頭につける。このパッチの正規表現では後半部分の切り出しが少し過剰になるかもしれない。
サブタイトル切り直しパッチ(2011.12.11版)
ISDB版でもBSには対応していないので無理やり対応させる。このレスを参考にデータベースにアクセスする際にTransportIDも一緒に取ってくる処理とDisEqCの無効化してBSをチューニングする処理を追加した。TSIDをつけてチューニングする処理を追加するだけでチャンネルスキャンで設定することはできない。そのため、データベースを直接操作する必要がある。チャンネル登録用スクリプトを用意したので記事の下の方を参照。
録画に失敗しても再試行しないバグがある。それに対応するパッチがwikiのトラブルシューティングにあるので持ってくる。これを当ててからfuse_b25に異常がない限り録画に失敗することはなくなった。
MythTVに内蔵しているffmpegをAACの音声切り替えに対応させるパッチ。これもwikiからもらってくる。視聴にMythTV Playerを使っていて音声切り替えでエラーが出るので効果は不明。
2011.11.16追記
Debian-Multimediaのmythtv(0.24.1+fixes20111029以降)にはこのパッチを当てられない。
takaaki 9月 10th, 2011
Posted In: ソフトウェア
タグ: Debian, DVB, fuse_b25, Linux, MySQL, MythTV, PT2, Qt, TV, ネットワーク, 録画
先月、アナログ停波に備え、余ったPT2を譲ってもらって録画環境をデジタル化した。地上波だけでは高い買い物に感じたのでBSにも対応させた。ようやく使えるようになってきたのでまとめる。今回はMythTV以外の部分。
用意した機材
B-CASカードは電話して再発行してもらった。BSが見られるか聞かれただけでメーカー、機種名は問われなかった。
家にアンテナが立っていないのでブースター付きの室内アンテナを新調。ケーブルが付属していないので2本必要になる。BSアンテナは十年以上使われてなかったものをガラクタで補修して簡単に設置した。アンテナケーブルは一番安く手に入るダイソーのものを購入。
信号レベルはWindowsマシンにカードを挿してSignalTalkerで測った。BSアンテナはBluetoothでSignalTalkerの音を飛ばして調整した。recpt1でも信号レベルは測れるらしいので、もしアンテナがずれたら試してみる。DVB版で測れるツールはないんだろうか。
まずドライバを導入する。chardev版ではなくDVB版を使う。DVB版はfuse_b25を使えば、アナログ環境で使っていたMythTVで使える。DVB版ドライバは新しいカーネルには標準で入っているが、squeezeのカーネルには入っていないのでインストールする。
PT2が認識しているか確認
$ lspci | grep Multimedia 04:01.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)
上のように出たらPT2が認識しているのでドライバをインストールする。ドライバのソースはhttp://www.linuxtv.org/hg/v4l-dvbからダウンロードできる。
そのままではビルドできないので必要なパッケージをインストールしておく。
$ sudo aptitude install build-essential linux-header-2.6-amd64
パッケージをインストールしたらドライバをビルドしてインストールする。
$ cd /usr/local/src/ $ wget http://www.linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2 $ tar xjf tip.tar.bz2 $ cd v4l-dvb-3724e93f7af5/ $ make $ sudo make install $ sudo reboot
インストール後、ドライバモジュールを読み込ませるために再起動する。
ドライバの確認。
$ lsmod | grep pt1 earth_pt1 15748 105 dvb_core 75106 1 earth_pt1 i2c_core 15819 6 i915,drm_kms_helper,earth_pt1,drm,i2c_algo_bit,i2c_i801 $ dmesg | grep DVB [ 7.555975] DVB: registering new adapter (earth-pt1) [ 7.556224] DVB: registering new adapter (earth-pt1) [ 7.556414] DVB: registering new adapter (earth-pt1) [ 7.556632] DVB: registering new adapter (earth-pt1) [ 7.892565] DVB: registering adapter 0 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-S)... [ 7.892655] DVB: registering adapter 1 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-T)... [ 7.892688] DVB: registering adapter 2 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-S)... [ 7.892714] DVB: registering adapter 3 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-T)... $ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3
ISDB-SとなっているのがBS/CS用、ISDB-Tとなっているのが地上波用になる。
takaaki 8月 19th, 2011
タグ: Debian, DVB, fuse_b25, Linux, MythTV, PT2, TV, Windows, 録画
テレビチューナーカードGV-MVP/RXはlennyではパッケージをインストールするだけで使えたが、squeezeでは使えなくなっている。squeezeでも使うには手を加える必要がある。
ファームウェアとツールのパッケージをインストールする。
$sudo aptitude install firmware-ivtv ivtv-utils
再起動して、設定を反映させてから受信テストを行う。
ivtv-tuneで映るチャンネルに変更する。
$ivtv-tune -d /dev/video0 -t japan-bcast -c チャンネル番号
ファイルに書き出す。
$cat /dev/video0 > test.mpg
Ctrl+Cで停止させ、できたファイルを再生してみる。録画はできているが音声が入っていなかった。dmesgを確認すると次のようなものが表示されていた。
i2c i2c-1: Failed to register i2c client wm8739 at 0x1a (-16)
調べてみるとUbuntuでもカーネルが原因で同様の症状が出ていることが分かった。Ubuntuではカーネルを再構築すると正常に動作するので、Debianでも同じ対策を行う。 (さらに…)
takaaki 5月 20th, 2011
Posted In: ソフトウェア
Debian 6.0(squeeze)がリリースされたのでクリーンインストールした。アップグレードしたのはローカルで使ってるサーバー(KVMのホスト)と公開用に使ってるサーバー(KVMのゲスト)の2台。覚えているうちに作業記録を残す。
ローカルサーバーは新しいHDDに移行するついでにアップグレード。GPTへのインストールや録画鯖の再構築で手間取った。録画鯖はやった記憶がほとんどなくて困った。
公開サーバーはしばらくそのまましておくつもりが、squeezeから一部パッケージを借りていたため自動アップグレードされてしまった。ダウングレードすると壊れて、完全にアップグレードするとPHPが動かなくなったので、クリーンインストールした(KVMで動いているため、ディスクイメージを戻すだけで元通り)。PHPは設定を変えないと動かなかった。
takaaki 2月 16th, 2011
Posted In: 雑記
[CPU]Intel Pentium Dual-Core E2180 2.0GHz
[M/B]P5K PRO (中古)
[メモリ]バルク S&Mとかいう悪評チップ 2GB*2
[VGA] RH3650-E512HW
[HDD]ST3500320AS 500GB
[FDD]FA404MX
[DVDドライブ]GH20NS10
[ケース]CM690 (展示品)
[電源]KRPW-K500W
[キャプチャ]GV-MVP/RX(中古)
いろいろ情報を集めた上で、ほとんど価格.comの上位で選んだ。オークションと九十九で揃えた。
CPU:
そんなに性能が必要ないと思って安物にした。コストパフォーマンスはいい。低発熱でOCしても安定。廉価版でもPentiumブランドはさすが。FSBやら固定して、電圧上げたら3GHzまでOCできた。後々VTが無効化されてるのに不自由した。リテールファンでもそんなにうるさくなくて十分冷えた。
マザーボード:
P5K-Eが一番売れてた。それで、ASUSの同系統のP5K PRO。なんとなくこっちにしてみたくなった。でも、糞配線。ケースの中央に大蛇ができてる。
メモリ:
なんとなくオークションで入札したら落ちた。落ちてほしくなかった。調べたら2chにスレが立つほどの糞チップ。エラーとかもなく安定してる。
VGA:
PCゲームはやらないので、動画支援付のRADEON。使いまわしできる部品だから、それなりのものをと。デュアルディスプレイを視野に端子が2基のものを選んだ。統一感と将来性を考えて両方DVI。SAPPHIRE製が良さそうだったので買おうと思ったら売り切れ。ちょうど、玄人志向のVGAのセールがやってた。そこからSAPPHIREのと中身が同じものを。
HDD:
最初からSeagateにしようと思ってた。当時コストパフォーマンスが一番よかった500GB。他がキャッシュ16MBに対して32MBだったので購入。九十九の保証もつけた。1ヶ月で認識しなくなった。初期不良の期間が過ぎてたけど初期不良交換。数日前にその原因がわかった。思いっきりその被害者。
(GALACTIC FUNK | seagateがやばい)
修理から帰ってきたのも同じ型。ファームはSD15、これは危ない。
FDD:
カードリーダ内臓。OSバンドルでない。ないと落ち着かない、それだけ。FDDは使わなくてもカードリーダがついてる。
DVDドライブ:
LG電子が良さそうな気がした。その中で売れ筋のもの。
ケース:
当時、価格.comで1位。下置き電源で探した。AntecのSOLOとかP180はちょっと高くて手が出なかった。どちらかと言うと静音より冷却。似た感じのNineHundredは見た目が気に入らなくて、それ以下のThreeHundredは選べない。青いファンを1つ増設。サイドファンがうるさいので底面吸気ファンにした。
電源:
値段の割りにいい電源ということで。電源なら玄人志向でも問題ないはず。サービスコンセントがないのが普通なのは知らなかった。連動OAタップも購入。
キャプチャ:
ゲームのキャプチャ用に低予算で。番組録画で頻繁に使うようになった。唯一64bit非対応のパーツ。32bitOSから離れられない原因になってしまった。
2つ玄人でメモリはバルクで危ない。CPUの予算が異常に低かった。CPUよりメモリ派。ケースファンには換気扇フィルタ。大学で仕入れた中古の15型ディスプレイ×2、サーバに使ってる中古PCについてたキーボード。壊れたマウスの代わりに買ったマウス。黒いのは本体だけ。
九十九がつぶれかけたと思ったら今度はSeagate。
takaaki 1月 21st, 2009
Posted In: ハードウェア