【メモ】ミニPCをテレビ視聴用のサーバにする方法

【メモ】ミニPCをテレビ視聴用のサーバにする方法

docker-mirakurun-epgstation DTV03A-1T1S-U

二度としたくない。

発狂しながら構築したから、今後同様のことで発狂しないように残しておく。

目的

  • 旅先でも東京MXでアニメリアタイしたい
  • あと、アニメのキャプ撮りたい
  • タブレットお風呂場に掛ける場所作れば、お風呂に入ってアニメのリアタイ実況できそう

という願望を果たすべく、テレビ以外で東京MXが見れる環境を作ろうと思ったわけ。

物理的な環境

こんな感じ。
ゴチャゴチャしすぎだ。

ミニPCにはUbuntu 24.04.2 LTSをインストールした。

元々入ってたWindowsOSは消える。

メインPCで操作したいので、IPアドレスはUbuntuの初期設定で固定したほうがいいと思う。

IP設定方法とかストレージのマウントの方法とかは割愛(ググれば出てくるし)

サーバにインストールするヤツ

docker-mirakurun-epgstation

テレビを見るためのアプリみたいなもの。

mirakurunってのが、裏でチューナー制御したりエラーとかのログ監視したりする。

epgstationってので、実際テレビ見たり録画する

px4_drv(フォーク版)

テレビチューナーの非公式ドライバ。

PLEXとかe-Betterから売られてるチューナーなら対応してるっぽい。

それ以外は知らない。

後で補足するけど、チューナーに内蔵されているカードリーダー機能は対応してない

ふざけんな。

recpt1(亜流版)

レックPTワンっていうらしい(フォロワーがそう呼んでた)

地デジとかのテレビ放送を受信するためのツール。

種類色々あったけど、コレでとりあえず動いたから作り直すってなったときもコレでいく。

でも、基本もう二度と作り直したくない。

libaribb25

読み方知らない。

B-CASの暗号化を解除するために必要。

コレがないと、番組表とかは取得できても実際に再生とかできない。

見る側(ノートパソコンとか)で復号できるなら不要だけど、サーバ側でやった方がいいと思う。


という、ここまでの色々を導入するにあたっても、前提のツールとかコマンドのインストールが必要。

そこは、まぁ、ChatGPTに聞いたりGitHubに直接書いてあったりしたのをそのまま試した。

おおまかな流れ

  1. ミニPCにTVチューナーとB-CASカードスキャナUSBで繋げる
  2. TVチューナーのドライバ(px4_drv(フォーク版))インストール
  3. docker-mirakurun-epgstationインストール
  4. recpt1(亜流版)インストール
  5. libaribb25インストール
  6. 様々なymlファイルを弄る
  7. /opt/mirakurun/opt/bin/にstartupってスクリプト作る
  8. sudo docker-compose up -dでmirakurun起動
  9. 上手くいったらラッキー、失敗したらログとか見ながら頑張る。。。

といった感じ。

もちろん、各項目ごとに前提条件があるからそれがクリアできてるかっていう確認が毎回必要。

例えば2番のdocker-mirakurun-epgstationインストールとかだと、「docker-compose」ってのが導入済じゃないとダメとか。

つまづいたところ

mirakurun環境構築という大前提

↑これをしないとrecpt1が動かなかった。

フォロワーに教えてもらって判明。

こんなページ分かるわけなくてウケる。

「Docker起動時にrecpt1を自動で読み込ませて動作確認するよ~」っていうスクリプトを作りなさい!みたいなことらしい。

様々なymlファイルつくるのダルすぎ

  • docker-compose.yml
  • tuners.yml
  • channels.yml

↑ここらへんのymlファイルを編集もしくは作成する必要あった。

docker-compose.yml

序盤だけ追記編集したから、序盤部分だけメモに残す。

version: '3.7'
services:
    mirakurun:
        image: chinachu/mirakurun
        cap_add:
            - SYS_ADMIN
            - SYS_NICE
        ports:
            - "40772:40772"
            - "9229:9229"
        volumes:
            - /mnt/record:/app/recorded
            - ./mirakurun/conf:/app-config
            - ./mirakurun/data:/app-data
            - /usr/local/bin/recpt1:/usr/local/bin/recpt1
            - /usr/local/lib/libaribb25.so.0:/usr/lib/libaribb25.so.0
            - /opt/mirakurun/opt/bin:/opt/mirakurun/opt/bin
        environment:
            TZ: "Asia/Tokyo"
        devices:
            - /dev/bus:/dev/bus
            - /dev/bus/usb:/dev/bus/usb
            - /dev/isdb2056video0:/dev/isdb2056video0
        restart: always
volumes

なんかパス色々追記したら動いた。 もしかしたら不要なパスあるかも。

devices

/dev/dvb:/dev/dvb

↑これを自分のチューナー用にする

つまり

/dev/isdb2056video0:/dev/isdb2056video0

こういう感じに書き換えるってこと

tuners.yml

説明メンドイから、ここに自分のymlファイルの中身置いておく。

- name: ISDB2056
  types:
    - GR
  command: /usr/local/bin/recpt1 --device /dev/isdb2056video0 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

この記事読んで参考にしてる人は、「isdb2056video0」を、自分が使うチューナーのデバイス名にすればいい。

channels.yml

スキャンしてほしいチャンネルは isDisabled: false ってしないとダメっぽい。

- name: TOKYO MX
  type: GR
  channel: '16'
  isDisabled: false
- name: tvk
  type: GR
  channel: '18'
  isDisabled: false
- name: フジテレビ
  type: GR
  channel: '21'
  isDisabled: false
- name: TBS
  type: GR
  channel: '22'
  isDisabled: false
- name: テレ東
  type: GR
  channel: '23'
  isDisabled: false

こんな感じ。

px4_drv(フォーク版)はB-CASカード読み取り機能なし

驚愕の事実

TVチューナー内蔵のB-CASカード読み取り機能は使えない

TVチューナー内蔵の

B-CASカード読み取り機能は

使えない!!!!!!

え?

……4ねよ

というのも、僕の使用しているDTV03A-1T1S-Uというチューナーには、B-CASカード差込口があるんだ。

がしかし、その差込口にB-CASカード入れても反応しない。

何故なら、記事の最初の方に説明してたpx4_drv(フォーク版)のドライバは、アンテナ線から電波を受信する機能はあってもB-CASカードを読み込む機能を実装していないから。

意味が分からなかった。

そう、有識者が作った非公式ドライバということを見落としてた。

備考

内蔵カードリーダーやリモコンについて

このドライバは、各種対応デバイスに内蔵されているカードリーダーやリモコンの操作には対応していません。

また、今後対応を行う予定もありません。ご了承ください。

……書いてあった。

ここを完全に読み飛ばしたせいで、半日くらい迷走してしまった。

記述見つけた時乾いた笑い出ちゃったわ、ウザすぎて。

補足

一応、WindowsOSなら、専用のアプリを使用することで、差し込んだB-CASカードが読み込まれてテレビが見れる。

多分、WindowsOS用のドライバだとB-CASカード読み取り機能まで丸々入ってるんだと思う。

B-CASカードリーダーの向き

というわけで、追加でB-CASカードリーダーを購入した。

痛い出費。

…で、ここでもつまづいた。(この辺りで発狂限界に近かった)

つまづいたのは、B-CASカードの差込方向。

自分が購入したのはSCR3310/v2.0って製品。

コイツ、B-CASカードの表紙(ピンク背景の方)じゃなくて裏側を上にして差し込むのが正しかった。

↑コレが正解

説明書とかなく、本体だけがプチプチ梱包されて届いたから、分かるわけなくて爆笑。

発狂の末、動くようになった

こんな感じでブラウザで見れるようになる。

だから、色々調整すればスマホとかタブレットでもテレビが見れるというわけ。

ここまではあくまでスタートライン

ビックリすることに、ここまで紆余曲折あって全然ゴールじゃない。

何故なら

  • Tailscaleを導入して、外出先でテレビを視聴可能にする
  • スクリーンショット取得環境を整える
  • お風呂場用のタブレット購入と、ひっかける方法を模索
  • 今回の件と関係なく、サーバにSamba導入して共有ストレージ構築

という作業が残ってるから。

でも疲れたから一旦記事ここで終わる。

残りの内容は以下の記事を参考に進めることにする。

助けてくれたフォロワーのブログ

TVTest(高画質でテレビ見るアプリ)の導入方法

ちなみにお風呂場アニメリアタイの件、こういうシャワーラックにタブレット置けばいいのかなーって思ってる。

こういうの詳しい人いたら教えてほしい、Twitterとかで。

【BLKP】 パール金属 シャワー ラック 2段 風呂 収納 限定 ブラック BLKP 黒 AZ-5078 製品サイズ:(約)幅27.5×奥行14.5×高さ50cm

今回購入したオモチャたち

TVチューナー(DTV03A-1T1S-U)

地デジチューナー フルセグ BS CS 110° B-CASカード付属 再生ソフト有り USB チューナー 外付け パソコン ノートPC デスクトップ

B-CASカードスキャナ(SCR3310/v2.0)

SCM ICカードリーダー/ライター B-CAS・住基カード対応 usb対応 SCR3310/v2.0

アンテナ分配器

二幸電気工業 アンテナ分配器 2分配 (4K 8K BS CS CATV 地デジ) 屋内用 一端子電流通過型 SHマーク付 (SPA2K8) (1端子通電2分配器)

アンテナケーブル

ホーリック アンテナケーブル S-4C-FB同軸 3m 【4K8K放送(3224MHz)/BS/CS/地デジ/CATV 対応】 HSマーク登録 ホワイト L字差込式/ネジ式コネクタ HAT30-921LS