PX-Q1UDで地デジ録画サーバーを作る!Emby + mirakc 構築手順

当ページのリンクには広告が含まれています。

海外に住んでいると、日本のテレビ番組を自由に見られないことがよくあります。
ニュースやバラエティ、アニメなど、日常的に見ていた番組が見られなくなって不便に感じている方も多いのではないでしょうか。

私自身アメリカで生活していて、日本のテレビを好きな時間に、できれば録画して楽しみたいと思うようになりました。そこで今回、実家に地デジ録画サーバーを構築し、録画した番組を Emby 経由で PC やスマホから再生できる環境を整えました。これにより、海外にいても快適に日本のテレビ番組を楽しめるようになりました。

使用したのは、Linux環境でも使えるUSB接続型地デジチューナー「PX-Q1UD」と、B-CASカードを読み取るICカードリーダー「SCR3310/v2.0」を使いました
※このほかに、アンテナケーブルと有効なB-CASカードが別途必要です。

プレクス
¥14,800 (2025/09/11 13:21時点 | Amazon調べ)
SCM Microsystems
¥2,480 (2025/09/11 13:21時点 | Amazon調べ)

この記事では、Docker を使った Emby mirakc の構築手順を中心に紹介していきます。
これから録画環境を整えたい方、日本のテレビを海外でも楽しみたい方は、ぜひ参考にしてみてください。

本構成は正規のB-CASカードを用い、自宅内や個人利用の範囲での録画・視聴を目的としており、第三者への配信や再配布などの行為を含みません。著作権および暗号回避に関する法律に従って、再配信や不正改造は行っていません。

目次

録画サーバーの構成と必要なもの

今回構築した録画サーバーは、Ubuntu Server 24.04 LTSDocker Compose をベースに Embymirakc を組み合わせたシンプルかつ拡張性の高い構成です。

テレビ番組を録画・視聴できる環境を構築するために、以下のようなハードウェアとソフトウェアを使用しました。

使用したハードウェア

製品名用途備考
PX-Q1UDUSB接続型地デジチューナーPX-S1UDを4基内蔵した地デジチューナー
SCR3310/v2.0ICカードリーダーB-CASカードを認識するために使用
アンテナケーブル地上波アンテナとチューナーの接続用宅内アンテナ設備と接続
B-CASカード地デジ視聴のために必須有効なB-CASカードが必要

使用したソフトウェアとバージョン

ソフトウェア名バージョン説明
Ubuntu Server24.04.2 LTSサーバーOS
Docker Engine28.2.2コンテナを使った仮想環境
Emby4.8.11.0メディアサーバー
mirakc3.4.21チューナー制御・EPG取得などを行うサーバー
b25自作ビルドB-CASデコード処理を行うプロキシサーバー
bcas自作ビルドICカードリーダーからB-CASカードを読み取るPCSCサーバー

録画サーバーの全体構成

この録画サーバーは、複数のDocker コンテナで構成され、それぞれが役割を分担しています。

中心となる Emby が録画の管理とストリーミング配信を担い、Mirakurun の軽量版フォークである mirakc がチューナー制御と番組表の管理を行います。mirakc は EPG(番組表)情報の取得・管理も行い、Emby と連携することで録画予約や番組視聴が可能になります。

mirakc 自体には暗号化された地デジストリーム(B-CAS)をデコードする機能がないため、TSストリームのデコード処理には libaribb25 を使用する b25 コンテナと、ICカードリーダーからB-CASカードの情報を提供する bcas コンテナを併用しています。これにより、mirakc が受信したストリームはデコードされて Emby に渡され、録画や視聴が可能になります。

Embyを使ってライブTVや録画ファイルを再生するには、Emby Premiere(有料プラン)への加入が必要です。

ディレクトリ構成図

tv-server/
├── emby/
│ ├── compose.yml
│ └── config/

└── mirakc/
├── compose.yml
├── config.yml
├── b25/
│ ├── Dockerfile
│ └── main.sh
└── bcas/
├── Dockerfile
└── main.sh

初期設定とセットアップ

ファームウェアのインストール

今回使用する PX-Q1UD は、内部的に PX-S1UD を4つ搭載した構成になっており、Linux では PX-S1UD 用のファームウェアを流用することで正しく認識されます。そのため、まず PX-S1UD 用のファームウェアをシステムに導入し、再起動してチューナーを有効化する必要があります。

# ファームウェアのダウンロードと設置
wget 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 reboot now

チューナーの認識確認

以下のコマンドでadapter0adapter3 が表示されていれば、PX-Q1UDが4チューナーとして正しく認識されています。

ls /dev/dvb
# adapter0  adapter1  adapter2  adapter3

ディレクトリ構成の準備

このプロジェクト用に必要なディレクトリをまとめて作成します。

mkdir -p ~/tv-server/{emby/config,mirakc/b25,mirakc/bcas}
cd ~/tv-server

ファイルの配置

本構成では、emby と mirakc の compose.yml や設定ファイルをコンテナごとに整理しておくことで、メンテナンス性と可読性の高い構成を実現しています。mirakc/config.yml公式ドキュメントを参考にしながら、自分の環境に合わせてカスタマイズしてください。

b25・bcas コンテナのセットアップ手順は、以下の公式ドキュメントまたは GitHubの構成例を確認してください。

ここでは以下の3つの主要ファイルを例として紹介します。

emby/compose.yml
services:
  emby:
    image: emby/embyserver:latest
    container_name: emby
    restart: unless-stopped
    environment:
      - UID=1000
      - GID=100
      - GIDLIST=100
      - TZ=Asia/Tokyo
    volumes:
      - ./config:/config
      - ./recordings:/recordings
    ports:
      - 8096:8096
      - 8920:8920
mirakc/compose.yml
services:
  mirakc:
    image: docker.io/mirakc/mirakc:alpine
    container_name: mirakc
    init: true
    restart: unless-stopped
    environment:
      TZ: Asia/Tokyo
      RUST_LOG: info
    devices:
      - /dev/dvb:/dev/dvb
    volumes:
      - mirakc-epg:/var/lib/mirakc/epg
      - ./config.yml:/etc/mirakc/config.yml:ro
    ports:
      - 40772:40772

  b25:
    container_name: b25
    build:
      context: ./b25
    depends_on:
      - bcas
    init: true
    restart: unless-stopped
    ports:
      - 40773:40773
    environment:
      BCAS_SERVER: bcas:40774
      TZ: Asia/Tokyo

  bcas:
    container_name: bcas
    build:
      context: ./bcas
    init: true
    restart: unless-stopped
    devices:
      - /dev/bus/usb
    ports:
      - 40774:40774

volumes:
  mirakc-epg:
mirakc/config.yml
epg:
  cache-dir: /var/lib/mirakc/epg

server:
  addrs:
    - http: '0.0.0.0:40772'

channels:
  - name: "NHK総合"
    type: "GR"
    channel: "19"

  - name: "NHK教育"
    type: "GR"
    channel: "26"

tuners:
  - name: "PX-Q1UD_0"
    types: [GR]
    command: >-
      recdvb --dev 0 {{channel}} {{duration}} -

  - name: "PX-Q1UD_1"
    types: [GR]
    command: >-
      recdvb --dev 1 {{channel}} {{duration}} -

  - name: "PX-Q1UD_2"
    types: [GR]
    command: >-
      recdvb --dev 2 {{channel}} {{duration}} -

  - name: "PX-Q1UD_3"
    types: [GR]
    command: >-
      recdvb --dev 3 {{channel}} {{duration}} -

filters:
  decode-filter:
    command: >-
      socat - tcp-connect:b25:40773

録画・視聴のテストと確認

ここからは、実際に録画サーバーとして正しく動作するかを確認していきます。各コンテナの起動、Embyの初期設定、mirakcの動作確認、必要に応じたログ確認まで順に進めましょう。

コンテナの起動

まず、作成した compose.yml があるディレクトリに移動し、以下のようにコンテナを起動します。emby と mirakc に加え、b25・bcas の2つの補助コンテナも正常に立ち上がっているか確認してください。

cd emby
docker compose up -d

cd ../mirakc
docker compose up -d

Embyにアクセスして初期設定

ブラウザで以下のURLにアクセスし、Embyの初期セットアップ(言語・ユーザー登録・パスワード設定など)を行ってください。

http://<サーバーのIPアドレス>:8096

mirakcのバージョン・状態確認

APIから mirakc が正常に起動しているか確認するには、以下のコマンドを実行します。

curl http://localhost:40772/api/version
# {"current":"3.4.21","latest":"3.4.21"}

また、動作に問題がある場合は各コンテナのログを確認して、エラーが出ていないかを調べてください。

docker logs mirakc
docker logs b25
docker logs bcas

EmbyにM3UとXMLTVを追加する

STEP

TV ソース(M3Uチューナー)の追加

  1. EmbyのWeb UIで「Live TV」→「TV ソースを追加」をクリックします。
  2. ソースタイプを 「M3U Tuner」 に設定します。
  3. M3U URL は以下のように設定します。

http://<サーバーのIPアドレス>:40772/api/iptv/playlist

コンテナを host ネットワークモードにしていない場合、localhost ではなく IP アドレスを使用してください。

STEP

TV ガイドデータプロバイダ(XMLTV)の追加

  1. 「Live TV」→「TV ガイドデータプロバイダを追加」へ進みます。
  2. ソースタイプを 「XMLTV」 に設定します。
  3. XMLTV URL を以下のように設定します。

http://<サーバーのIPアドレス>:40772/api/iptv/xmltv

設定が完了すると、Emby が番組表を取得し、チャンネル一覧が自動的に表示されるようになります。
この状態で「ライブTV」タブから、リアルタイムで地デジを視聴・録画できるようになります。

まとめ

今回は自宅に地デジ録画サーバーを構築することで、外出先からでもテレビ番組を録画・視聴できる、快適なテレビ環境を手に入れることができました。

当初は Mirakurun を使用していましたが、Emby との相性の問題により InternalServerError が発生することがありました。そのため、活発にメンテナンスされておりより軽量な mirakc に切り替えたところ、問題なく録画・再生ができるようになりました。

録画した番組は Emby を通じて PC やスマホから再生でき、ネットワーク環境が整っていれば 自宅外からでもアクセスできるのが大きなメリットです。さらに、番組表連携による録画予約や、アプリからの視聴もスムーズに行えるため、普段テレビを見る時間が取りにくい方にとっても便利な仕組みです。

Emby + mirakc による録画サーバーは、テレビの楽しみ方を大きく広げてくれるツールだと実感しています。ぜひ自分のスタイルに合わせた環境構築にチャレンジしてみてください。

この記事をシェア!
  • URLをコピーしました!

コメント

コメントする


目次