📺 UbuntuでTV録画(EPGStation)

2022/07/18

EPGstation  最初はウォーキングマシンを何か見ながらやりたいなと思い、使わなくなった液晶TV で Youtube などの歩行動画が見られるようにしていたのですが、何かもの足りません。 そこで、地上波の番組を録画しといて見られたらいいかなと思うようになりました。 家のリビングには液晶テレビとレコーダーがあるのですが、私はほとんど見ず、女房の所有物なので、あまり触れたくありません。 そこで、いらなくなった5年以上前の PC を地上波のレコーダーにする方法をとることにしました。


 だいたいが 4-5年前のスタンダード機で、CPU は i3、HDD だけは NAS として使っていたため 3TB あり、WD の割と堅牢なやつです。 これに Ubuntu 20.04 を入れ、ネット情報をたよりに、数千円の出費でチューナーカード、カードリーダーを購入、Mirakurun + EPGStation をインストールしようとしたんですが、どうもうまくいきません。 チューナーやリーダーはネットの情報をたよりに無難なものを選んだはずなのですが、いろんなところでつまずきます。

 調べると Mirakurun + EPGStation は、現在、docker という方向でしかサポートしないとあります。 docker って何状態だったのですが、どうやら、Linux システム上に仮想 OS に似た状態で別の大型システムを載せる仕組みのようです。 そして、docker が、デバイスやら何やらまとめて面倒を見てくれるとか。 そんなことで本当にうまくいくだろうかと一抹の不安はあったものの、とにかく言われている通りやってみたところ、問題なく動くようになりました (docker のインストールについては他サイトでチェックしてください)。

 以下はそのメモです(私は BS がいらず、地上波だけでいいので以下のチューナーでいきました)。

 準備したチューナーとリーダー: PX-Q1UD + SCR3310。
 他に B-CAS カードなるものが必要です。 私は家にころがっていたものを流用しました。

 Ubuntu 20.04 を最小構成でインストールし、宅内LAN につなぎ、192.168.1.200 を割り振ったものとします。 自分の机上のメイン PC から ssh でログインできるようにし、ビデオレコーダー機は部屋の隅に置きっぱなし、起動しっぱなしで基本的にメイン機から設定します(ssh -X 192.168.1.200)。

 次のパッケージを入れます。

$ sudo apt install build-essential cmake ffmpeg mysql-server

 いよいよ docker-compose のインストールです。
 その前に PX-S1UD の認識です。

 $ curl -O http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
 $ unzip PX-S1UD_driver_Ver.1.0.1.zip
 $ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
 $ sudo sh -c "echo smsusb >> /etc/modules"

 うまく認識されていたら、以下のようなコマンドを打つと PX-S1UD が認識されています。

$ lsusb | grep VidzMedia
Bus 001 Device 007: ID 3275:0080 VidzMedia Pte Ltd PX-S1UD Digital TV Tuner

 さて、レコーダー機に docker-mirakurun-epgstation のクローンを作ります。

 $ sudo apt-get install git
 $ sudo apt install -y vlc; # 動画再生関連
 $ git clone https://github.com/l3tnun/docker-mirakurun-epgstation
 $ cd docker-mirakurun-epgstation
 $ cp -p docker-compose-sample.yml docker-compose.yml

 tuners.ymlを設定します(mirakurun/conf/tuners.yml)

- name: adapter0
  types:
    - GR
  dvbDevicePath: /dev/dvb/adapter0/dvr0
  decoder: arib-b25-stream-test
  command: >-
    dvbv5-zap -a 0 -c ./config/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P <channel>

 EPGStationの設定です(最初2行の名称が最新版は旧版と違っているようです)。

 $ cp epgstation/config/config.yml.template epgstation/config/config.yml
 $ cp epgstation/config/enc.js.template epgstation/config/enc.js
 $ cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml
 $ cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml
 $ cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml

 初回の設定です。

$ sudo docker-compose up -d
(or $ docker-compose run --rm -e SETUP=true mirakurun)

 チャンネルスキャンを行います。

$ curl -X PUT "http://localhost:40772/api/config/channels/scan"

 スキャンが終わったらMirakurunを再起動します(docker-compose start)。

 Mirakurunを見ます。 メイン機から http://192.168.1.200:40772 にアクセスします。 右上の Restart をクリックします。 ステータスが standby になった後 Events を見ると、番組表のダウンロードが始まっていることが分かります。 番組表をダウンロートし終わったら、EPGStation を開いてみます(http://192.168.1.200:8888 の番組表[GR]を選択)。 「ライブ」タブまたは番組表のTV局をクリックすると放送中の動画がブラウザで見られます。

 チャンネル設定を行います。

$ emacs mirakurun/conf/channels.yml

 コメントアウトされている restart や user の設定を適宜変更します。

$ emacs docker-compose.yml

 Mirakurunの操作は以下のコマンドで OK です。

$ [sudo] docker-compose start|stop|restart

 周辺機器は全て外し、間を置いて起動しないと動画がカクカクしました。 念のため CUI ログインにし、以後カクカクはめったに起きることがなくなりました (元からもう少し性能のいいマシンにインストールすれば全く問題なかったでしょう)。

 メモです。

NHK  http://192.168.1.200:40772/api/channels/GR/14/stream
NHK ETV http://192.168.1.200:40772/api/channels/GR/15/stream
RCC  http://192.168.1.200:40772/api/channels/GR/18/stream
広テレ  http://192.168.1.200:40772/api/channels/GR/19/stream
広ホーム  http://192.168.1.200:40772/api/channels/GR/22/stream
新広島  http://192.168.1.200:40772/api/channels/GR/23/stream

 思ったより画質がよく、TS でなく、圧縮して H.264 の mpeg で見ても画質については気になりません。 30分メインで90番組くらい録画してますが、3TB に対し、45GB 程度しか使用していません(4ヶ月経過)。 3TB をいっぱいにするには 20年くらいかかりそう……。 メイン機に動画をもってくるには、EPGStation から download であっというまにいけます(scp でやると大変です。ftp は高速ですがブラウザダウンロードがそれと同じくらい速いので無理に ftp でダウンロードする必要はありませんでした)。

EPGStation検索画面

 正規表現で1週間の番組の内容を検索し、そこから録画予約しています。
例: (名曲|自然|サイエンス)

 たまった録画内容はどうやら検索できないので、定期的に自分で、録画済コンテンツのタイトル、記事などをコピーし、定まったテキストファイルに貼り付け、全文検索にかかるフォルダに置いています。 そうすると「アーキテクツ 北欧発」とやると、NHK で放映された「建築家の幸せな住まい」というコンテンツにたどりついたりするわけです。

 取りかかってから完了するまで3日程度、思ったより時間がかかりました。 また、前段に書いたような不便もあることはありますが、自分で対処できるレベルで、全般的に非常によくできたシステムだと思います。 Mirakurun, EPGStation 製作者の方々に深く感謝いたします。
 最近はウォーキングのためでなく、老化した自分の備忘のために蓄えている方が多くなってきたのが困りものですが(笑)。

【付記1】: 先日、EPGStation の番組表が更新されず、B-CASカードリーダーの緑のランプが全く点滅しなくなったので変だなと思い、docker-compose [re]start コマンドを実行すると Error が出ます。 カードリーダーを何度か差し替えてみましたがダメでした。 いろいろコマンドでチェックしてみましたがラチがあきません。 挙げ句は、以下のコマンドが無応答になってしまいました。

$ lsusb | grep VidzMedia

 「おい、おい、故障か」と思いながら、PX-S1UD につながるコード類をもう一度全部きっちり差し直してみたところ、直りました(^^;。

【付記2】: 孫が B-CAS カードリーダの根元の線を引き抜いてしまい、気づくと保存動画は視聴可能ですが、番組表に欠落が出はじめ、調べると現在放映中の番組も見られなくなっていました。

 これは、docker 内の epgstation の log ディレクトリ、mirakuran の data ディレクトリを初期化し、PC を再起動したところ、直りました(^^;;。

【付記3】: 2022/3の Linux のセキュリティアップデートを施したところ、OS の動作が遅くなったためか、画面が乱れるようになりました。

 しかたなく i5 7400T で動かしているバックアップ等用の Ubuntu20.04(1日の大半は無駄に動いているという代物) に上記の要領でセットしました。 すると、予想通り問題なく動くようになりました。 EPGstationのバージョンも最新になったし、まあよいとします。

【付記4】: 付記3の状態で使っていると、録画は正常に行われますが、 TSフォーマットで録画した動画をH.264に変更しようとしてもできません。 しかし、予約時に元からH.264フォーマットを指定して行うとうまくいきます。 どこかに記述漏れがあるようです。 最悪手で ffmpeg -i ◯◯.m2ts ◯◯.mp4 を実行すればいいので これ以上いじらないことにしました。

参考: Ubuntu Server20.04にMirakurun+EPGStationで録画サーバを構築する

参考: PX-S1UDの扱いについて(ドライバのビルドなど不要)

Facebookシェア

🕍 同ジャンル最新記事(-5件)

PHP8.1 上の PukiWiki(2023/12/20)

PHP 7.4 上で稼働していた PukiWiki をそのまま PHP 8.1 上へ持ってくると、attach プラグインのせいか添付ファイルが正常に表示されない...

Fess のインストール(2023/12/14)

.txt, .tex, pdf, Officeファイル, Libre Officeファイル, html ファイルなどを対象にインデックス化され、検索できる...

Docker Desktop(Ubuntu22)(2023/12/13)

Docker Desktop を Ubuntu 22.04 に導入する方法です...

TeXで絵文字を使う(2022/07/28)

絵文字の最新事情もわかり、組版ソフト TeX が Unicode に対応してから時間も経ったことでもあり、TeX で絵文字をと考えるのは自然な流れでしょう...

NTT光でVPN(2022/07/27)

NTT光接続でつないでいる場合、デフォルトのゲートウェイ機で VPN できちゃいます。その具体的なプロセスです...