(1)PCのセットアップ
(2)HDUS関連アプリをmake
(3)カードリーダー導入、そして録画へ… ←今ココ
前回でチューナー(MonsterTV HDUS)自体のセットアップは完了したが、スマートカードリーダーをつなげてセットアップしないと地デジの視聴・録画はできない。
HDUSをWindowsで使う場合は、HDUSに内蔵されているカードリーダーでB-CASカードを利用できる。しかしLinuxでは内蔵リーダーを使うドライバが整備されていないので、別途、Linuxでの動作が確認されているカードリーダーSCR3310-NTTCom [Amazon]を利用する。
追記:ご案内
こういう話があるようなので、関係各位にご迷惑をお掛けしないよう、一部内容を書き換えた。カードリーダーのセットアップ
カードリーダーを使えるようにするパッケージをインストール。
# aptitude install pcscd
pcsc-toolsパッケージを入れると、うまく行かないときの問題解決に便利なツールが使えるようになるが、なくても動く。
pcsc-toolsにはGUIのツールが含まれているため、依存するパッケージも併せてインストールするとHDDの容量を数十MBも使ってしまうのが難点。
さて、pcscdのインストールが完了したら、次の手順で動作確認。
- カードリーダーSCR3310-NTTComをUSB接続。カードはまだ挿さなくていい。
- SCR3310のグリーンのランプが点灯したら(点きっぱなし)まずはOK。
- HDUSに付属していたB-CASカードをSCR3310に挿入。裏返しで挿す(端子面が上、青い面が下)
# /etc/init.d/pcscd restart
- SCR3310のグリーンのランプが点滅し出したらOK。
準備完了。録画テスト
これで録画するための最低限の準備は整った。
テストしてみる。
(略)
出力されたtsファイルをWindows機に移して、TSファイルを再生できるプレイヤーに渡してみる。VLCが手っ取り早い。
無事再生されたら、めでたしめでたし。
処理能力は大丈夫?
ロースペック機ということで心配されていた「処理が追いつかないのでは?」という問題をチェック。
Windows上で tsselect というプログラムを使えば、TSファイルの「ドロップ」の数を確認できる。
ドロップというのはパケットに含まれているカウンターが連続していないという意味なので、ドロップがゼロなら録りこぼしはないと考えて良さそう。
30分くらい録画したTSファイル(1.97GB)をtsselectでチェックしたが、dropはゼロ。処理が追いつかないということはないようだ。
録画中のCPU使用率を確認してみた。
$ vmstat 10 3 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 1 72 5916 3208 445300 0 0 5 591 151 206 11 4 83 2 3 1 72 5540 3204 445676 0 0 0 2135 396 656 36 15 44 5 3 1 72 6288 3208 444832 0 0 0 2156 400 660 35 14 45 6
10秒おきに3回計測。初回の値は無視するとして、CPU使用率はだいたい50%くらいのようだ。(cpuの欄のus(ユーザー時間)とsy(システム時間)を足した数値)
CUIの運用でこの数字と言うことは、X Windowを入れないという判断は正しかったっぽい。ただ、逆にXを使わなければCrusoeでも余裕で録画できることは判った。(HDUSが1台で50%ということは、2台つなげての同時録画は難しそうだけど)
いちばん左、procsのr(実行待ちプロセス数)が 3 というのはちょっと気になるが、録画が正常にできているのでとりあえず見なかったことにする。
ちなみに free コマンドで確認できる空きメモリ容量は460MB前後。512MBのうち50MB程度しか使っていない。
CPUもメモリも、使用量を減らすためにチューニングをする必要があるかと思っていたが、どうやらこのままでも使い物になりそう。
便利に使うためには
これでとりあえず「録画開始時に人力でコマンドを叩く → 録画終了したらTSファイルを別のマシンに転送 → 視聴orエンコード」という流れは可能になった。
後は、もっと便利に使うための小技をいくつか。
録画じゃなくリアルタイム視聴したい
マシンパワーの問題で再生アプリどころかX Windowすらインストールしていないが、ネットワーク経由で別のマシンからリアルタイム視聴することは可能。
ただしネットワークの帯域(LANの実効転送レート)が地デジの最大ビットレート以上、すなわち17Mbps以上必要。
有線LANの場合、100BASEか1000BASEでつないでいれば問題なし。10BASE以下だと無理。(今どき10BASE-Tでつないでいる人もいないだろうけど)
無線LANの場合は、11nなら大丈夫だろうけど、11g/11aだと「実効12〜3Mbps」ということも結構あるので、電波環境や無線機器の性能によっては厳しいかも。11bは無理。
視聴方法は、録画機(送出側)はrecfriioに次のようなオプションを付けて実行する。
(略)
--udp オプションで再生する側のPCのIPアドレスを指定。--portは適当な値でいいけど、視聴に使うVLCのデフォルト値が1234になっているのでそれに合わせるのがラクかと。
録画秒数を「-」にしておけば、たぶん止めるまで永遠に実行しつづけてくれる。
出力ファイル名を「-」にすると標準出力に送られるので、/dev/nullにリダイレクトして捨てる。TSファイル名を指定しておけば、リアルタイム視聴しながら録画もできるのかも。(試してない)
視聴側は、VLCを使って受信&再生。

VLCのメニューから「メディア(M)→ネットワークを開く(N)...」を選択。

プロトコルをUDP、IPとポートを先ほど設定したのと同じ値にする。
ネットワークが不安定だとコマ落ちしたり止まったりするかもしれない。
見終えたら、VLCを終了するだけでなく、サーバー側のrecfriioも終わらせることを忘れずに。Ctrl-Cを入力すれば終了できる。
recfriio起動時に、秒数として「-」ではなく数値を指定しておけば自動終了も可能。
タイマー録画したい
つ atコマンド
…と思ったらatパッケージをインストールしないと使えないのだった。インストール済みの cron でも同じことができる。
$ sudo crontab -e
cronなら「毎週木曜」とか「月〜金」といった連続モノにも対応できる。
ただし、cronだけでは柔軟な運用は難しい。
- 放送時間の変更や野球延長などに自動対応できない
- PCの電源を24/7でONにしておく必要がある
他のアプリ/コマンド/サービスと組み合わせれば実現はできそう。
というか「vrs」や「recfriio server」など、そういうのを実現しているアプリが既にいくつかある。特にrecfriio serverは「玄箱PRO」のようなかなり非力な機械での運用も想定しているようなので、Librettoでも余裕で使えるかもしれない。
今後の予定
とりあえず今のままでも何とかなるっちゃなるんだけど。
- as11loaderの自動化
as11loader実行するの忘れて予約録画に失敗した。recfriio serverのヘルプに方法が書いてあるので、これはすぐできそう。(追記:設定した) - 予約録画が終了したら、TSファイルをNASに移動
これはスクリプトを1行足せばいいだけなので簡単。 - 予約録画が終了したらサスペンド、録画開始前に自動復帰 前者はスクリプトを1行足せば済むけど、後者は未調査。/sys/class/rtc/rtc0/wakealarm を使うらしい。参考:ACPI Wakeup (MythTV wiki)
recfriio serverを使うか、ぜんぶ自前で実装するか微妙なところ。
コメント
コメント一覧 (1)
参考にさせていただきました。
LS-GL+lenny+HUDS+NTTCom+recfriio+recfriio serverで録画鯖を組むことができました。
約15Wの省電力運用ができています。
ありがとうございました。