330円のtorneをPCで使ってみる!Ubuntu + Docker + Denpaでテレビサーバーを構築
はじめに
最近、SNSでPS3用の地上デジタルチューナー「torne」が話題になっていた。
どうやら、torne(トルネ)の地上デジタルチューナー CECH-ZD1J をPCで利用できるようにする非公式ソフトウェアが開発されたらしい。
テレビなんて何年も見ていないけど、こういう面白そうな話にはついつい興味を惹かれてしまう。
さっそくハードオフに行ってみると、本体のみ330円で売られていたので購入してみた。
今回は、このtorneを利用してUbuntu上にテレビサーバーを構築し、LAN内のPCやスマートフォンからテレビを視聴できる環境を作ってみる。
1. まずはWindowsで動作確認
まずは動作確認として、手元のWindows 11 PCに接続してみる。
B-CASカードとUSBケーブルは家にあったものを使用した。
利用したのは以下の3つ。
coax
BonDriver_coax
TVTest
BonDriver_coaxのREADMEに記載されている手順に従ってセットアップしたところ、特に問題もなく地デジを受信できた。
330円のジャンク品があっさり動いてしまった。
おお、凄い。
Till0196/BonDriver_coax
2. denpaでWebブラウザからテレビを視聴する
調べてみると、torneをPCで利用するためのソフトウェアはいくつか開発されているようだった。
その中で気になったのが、denpa というWebアプリケーション。
denpaを利用すると、Webブラウザからテレビのリアルタイム視聴や録画ができるらしい。
Webアプリケーションなので、サーバーと同じLAN内にあるWindows PCやAndroidスマートフォンなどからもアクセスできる。
これは面白そうなので、実際に試してみることにした。
danything/denpa
今回使用するサーバー
家に転がっていた、使っていないThinkCentreをサーバーとして利用する。
項目
構成
CPU
Intel Core i3-4130
メモリ
DDR3 2GB × 2(合計4GB)
OS
Ubuntu 24.04.5 LTS
チューナー
torne CECH-ZD1J
かなり古い構成だけど、テレビ視聴用のサーバーとしてどこまで使えるのか試してみる。
3. Docker Engineのインストール
denpaはDockerを利用して動作するため、まずはDocker Engineをインストールする。
今回はUbuntu公式パッケージではなく、Docker公式リポジトリからインストールした。
Docker公式インストール手順
古いバージョンのアンインストール
既存のDocker関連パッケージがある場合は、先に削除しておく。
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Docker公式GPGキーとリポジトリの登録
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL download.docker.com -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
続いて、Dockerの公式リポジトリを登録する。
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: download.docker.com
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Docker Engineのインストール
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
これでDocker Engineのインストールは完了。
4. denpaのインストール
続いてdenpaをインストールする。
denpa GitHub
公開されているインストール手順に従って、以下のコマンドを実行する。
curl -fsSL raw.githubusercontent.com | bash
なんと、これだけでインストールできてしまった。
あとはセットアップが完了するのを待つだけ。
こういう簡単に導入できる仕組みはありがたい。
5. 実際に使ってみる
インストールが完了したので、同じLAN内にあるWindows PCからブラウザでアクセスしてみる。
アクセスURLは以下のとおり。
http://<サーバーIPアドレス>:3000
例えば、サーバーのIPアドレスが 192.168.1.100 の場合は、
192.168.1.100
となる。
ブラウザで開くと…おお~、ちゃんとテレビが映った!
Androidスマートフォンからも問題なく視聴できた。
Webアプリケーションなので、専用アプリをインストールする必要もない。
映像の再生方式
denpaでは、映像の再生方法もいくつか用意されている。
MPEG-2のまま配信してブラウザ側でデコード
サーバー側でH.264にエンコードして配信
サーバー側でAV1にエンコードして配信
MPEG-2のデコードにはWebAssembly(Wasm)が利用されているようで、サーバー側で再エンコードしなくてもブラウザで視聴できる。
サーバーの負荷やクライアント側の対応状況に応じて再生方式を選べるのは便利。
録画機能
もちろんリアルタイム視聴だけでなく、録画にも対応している。
さらに、録画したTSファイルを自動的にH.264やAV1などにエンコードする機能もある。
CMのチャプター付けやカットにも対応しているため、録画後の動画整理まで任せられる。
TSファイルをそのまま保存するだけでなく、容量を節約した動画ファイルとして管理できるのはうれしい。
6. 追加設定
基本的な機能は問題なく動作したので、いくつか追加設定を行った。
設定を変更した後は、denpaのディレクトリ(~/denpa)に移動して、以下のコマンドを実行する。
cd ~/denpa
docker compose up -d
これにより、compose.override.yml の変更内容が反映され、必要なコンテナが再作成・起動される。
GPUハードウェアエンコードを有効化
今回使用しているCore i3-4130にはIntel HD Graphics 4400が搭載されており、Quick Sync VideoによるH.264のハードウェアエンコードに対応している。
せっかくなので、CPUだけでなく内蔵GPUも活用することにした。
denpaのDockerコンテナからGPUデバイスを利用できるように、~/denpa/compose.override.yml に以下の設定を追加する。
compose.override.yml
services:
denpa:
devices:
- /dev/dri:/dev/dri
これでコンテナからホスト側のGPUデバイスを利用できるようになる。
コンテナを再起動後に設定画面から有効化する。
古いCPUなので、こういったハードウェアエンコードを活用できるのはありがたい。
※ i3-4130で利用できるハードウェアエンコードはH.264。AV1のハードウェアエンコードには対応していない。
録画データをSambaで共有する
録画したTSファイルや、エンコード後の動画ファイルをサーバーの外から直接扱いたい。
そこでSambaを利用して、録画データをLAN内で共有することにした。
denpaのDockerボリュームをSambaコンテナにマウントすることで、録画データをWindowsなどから直接参照できるようにする。
同じく compose.override.yml に以下の設定を追加する。
compose.override.yml
services:
samba:
image: dperson/samba:latest
restart: unless-stopped
ports:
- "139:139"
- "445:445"
environment:
TZ: Asia/Tokyo
volumes:
1つの共有フォルダの中に両方のボリュームを読み取り専用でマウント
- denpa-library:/video/library:ro # エンコード後
- denpa-recorded:/video/recorded:ro # エンコード前(生TS)
command:
- '-u'
- '[ユーザー名];[パスワード]'
- '-s'
- 'video;/video;yes;yes;yes'
[ユーザー名] と [パスワード] は任意の値に変更する。
また、ボリュームは読み取り専用(:ro)でマウントしている。
これでWindowsのエクスプローラーなどから、録画データを直接参照できるようになった。
7. Tampermonkeyで音量スライダーを追加
実際に使ってみて、少し気になったのが音量調整。
スマートフォンでの利用を意識しているためか、標準のプレイヤーにはミュートボタンはあるものの、音量を細かく調整するスライダーが見当たらない。
PCで利用する場合は少し不便。
そこで、Tampermonkeyを使って音量スライダーを追加することにした。
ついでに、ミュート中に動画の左上に表示される「音を出す」ボタンも不要だったので非表示にしている。
Geminiで作成したスクリプトはこちら。
masamasa1029.github.io
Tampermonkeyにインストールするだけで利用できる。
ただし、スクリプト内の @match にアクセス先のサーバーIPアドレスを指定する必要がある。
// @match http://<サーバーIPアドレス>:3000/*
例えば、サーバーのIPアドレスが 192.168.1.100 の場合は、以下のように書き換える。
// @match 192.168.1.100
そのうちdenpa本体にも標準機能として追加されるかもしれないけど、とりあえずこれでPCからの操作もかなり快適になった。
8. まとめ
今回はハードオフで330円で購入したtorneを使って、Ubuntu上にdenpaを導入してみた。
結果として、かなり簡単にテレビサーバーを構築することができた。
330円のtorneで地デジを受信
Ubuntu + Dockerでdenpaを稼働
LAN内のPCやスマートフォンから視聴
MPEG-2 / H.264 / AV1での再生
録画と自動エンコード
CMのチャプター付けやカット
Sambaで録画データを共有
Tampermonkeyでプレイヤーをカスタマイズ
テレビ自体はめったに見ないので、このサーバーを常時稼働させるかは微妙なところ。
ただ、普段使わなくなった古い機器を再活用して、こういう環境を構築して遊べるのは結構楽しい。
330円でここまで遊べるなら十分すぎる。
denpaの開発者さんにも感謝!
danything/denpa
OSごとのチューナーやストリーミングの違いを吸収して統一的に扱うデーモンらしい
テレビ視聴環境の構築にすごく便利そう
yug1224 starred Till0196/coax
Till0196/coax
1 like
Till0196/coax
軽く読んだが
プラットフォームを限定しないということ
いい思想だと思う
あと"アニメから取った名前"を付けてないあたりが好感持てる
6 likes · 312 views
もうバレてるから言及していいと思うけど単にtorneをPCで使いたいだけなら一番最初に触れた既知解のスマートな実装であるcoaxを使ってください 純正FWいらないし!! 自分は使うのには一切いらん純正FW解析にそこそこトークン燃やしちゃったので
Till0196/coax
7 likes · 767 views
やったことメモ
Till0196/coax
からcoaxとdriver/windowsとBonDriver_coaxおとしてくる
解凍してbondriverフォルダにぶっこむ
install-winusb.batを実行してcech-zd1j-winusb.infを認識させる
TVtest 010の現行版を落としてきてBonDriver_coaxを指定
スマートカードにBCAS入れる
enjoy. t.co
349 likes · 45 reposts · 9,713 views
@tenn_zip coaxでいけるぽい
調べた内容やっただけで、正直に言うと俺も良く分かってない、、、(小声)
Till0196/coax
78 likes · 6 reposts · 11,325 views
これかどうやら純正ファームつかってないらしい 一応クリーンなのか...?
Till0196/coax
6 likes · 348 views
Mentions
330円のtorneをPCで使ってみる!Ubuntu + Docker + Denpaでテレビサーバーを構築 はじめに 最近、SNSでPS3用の地上デジタルチューナー「torne」が話題になっていた。 どうやら、torne(トルネ)の地上デジタルチューナー CECH-ZD1J をPCで利用できるようにする非公式ソフトウェアが開発されたらしい。 テレビなんて何年も見ていないけど、こういう面白そうな話にはついつい興味を惹かれてしまう。 さっそくハードオフに行ってみると、本体のみ330円で売られていたので購入してみた。 今回は、このtorneを利用してUbuntu上にテレビサーバーを構築し、LAN内のPCやスマートフォンからテレビを視聴できる環境を作ってみる。 1. まずはWindowsで動作確認 まずは動作確認として、手元のWindows 11 PCに接続してみる。 B-CASカードとUSBケーブルは家にあったものを使用した。 利用したのは以下の3つ。 coax BonDriver_coax TVTest BonDriver_coaxのREADMEに記載されている手順に従ってセットアップしたところ、特に問題もなく地デジを受信できた。 330円のジャンク品があっさり動いてしまった。 おお、凄い。 Till0196/BonDriver_coax 2. denpaでWebブラウザからテレビを視聴する 調べてみると、torneをPCで利用するためのソフトウェアはいくつか開発されているようだった。 その中で気になったのが、denpa というWebアプリケーション。 denpaを利用すると、Webブラウザからテレビのリアルタイム視聴や録画ができるらしい。 Webアプリケーションなので、サーバーと同じLAN内にあるWindows PCやAndroidスマートフォンなどからもアクセスできる。 これは面白そうなので、実際に試してみることにした。 danything/denpa 今回使用するサーバー 家に転がっていた、使っていないThinkCentreをサーバーとして利用する。 項目 構成 CPU Intel Core i3-4130 メモリ DDR3 2GB × 2(合計4GB) OS Ubuntu 24.04.5 LTS チューナー torne CECH-ZD1J かなり古い構成だけど、テレビ視聴用のサーバーとしてどこまで使えるのか試してみる。 3. Docker Engineのインストール denpaはDockerを利用して動作するため、まずはDocker Engineをインストールする。 今回はUbuntu公式パッケージではなく、Docker公式リポジトリからインストールした。 Docker公式インストール手順 古いバージョンのアンインストール 既存のDocker関連パッケージがある場合は、先に削除しておく。 sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1) Docker公式GPGキーとリポジトリの登録 sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL download.docker.com -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc 続いて、Dockerの公式リポジトリを登録する。 sudo tee /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: download.docker.com Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc EOF sudo apt update Docker Engineのインストール sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin これでDocker Engineのインストールは完了。 4. denpaのインストール 続いてdenpaをインストールする。 denpa GitHub 公開されているインストール手順に従って、以下のコマンドを実行する。 curl -fsSL raw.githubusercontent.com | bash なんと、これだけでインストールできてしまった。 あとはセットアップが完了するのを待つだけ。 こういう簡単に導入できる仕組みはありがたい。 5. 実際に使ってみる インストールが完了したので、同じLAN内にあるWindows PCからブラウザでアクセスしてみる。 アクセスURLは以下のとおり。 http://<サーバーIPアドレス>:3000 例えば、サーバーのIPアドレスが 192.168.1.100 の場合は、 192.168.1.100 となる。 ブラウザで開くと…おお~、ちゃんとテレビが映った! Androidスマートフォンからも問題なく視聴できた。 Webアプリケーションなので、専用アプリをインストールする必要もない。 映像の再生方式 denpaでは、映像の再生方法もいくつか用意されている。 MPEG-2のまま配信してブラウザ側でデコード サーバー側でH.264にエンコードして配信 サーバー側でAV1にエンコードして配信 MPEG-2のデコードにはWebAssembly(Wasm)が利用されているようで、サーバー側で再エンコードしなくてもブラウザで視聴できる。 サーバーの負荷やクライアント側の対応状況に応じて再生方式を選べるのは便利。 録画機能 もちろんリアルタイム視聴だけでなく、録画にも対応している。 さらに、録画したTSファイルを自動的にH.264やAV1などにエンコードする機能もある。 CMのチャプター付けやカットにも対応しているため、録画後の動画整理まで任せられる。 TSファイルをそのまま保存するだけでなく、容量を節約した動画ファイルとして管理できるのはうれしい。 6. 追加設定 基本的な機能は問題なく動作したので、いくつか追加設定を行った。 設定を変更した後は、denpaのディレクトリ(~/denpa)に移動して、以下のコマンドを実行する。 cd ~/denpa docker compose up -d これにより、compose.override.yml の変更内容が反映され、必要なコンテナが再作成・起動される。 GPUハードウェアエンコードを有効化 今回使用しているCore i3-4130にはIntel HD Graphics 4400が搭載されており、Quick Sync VideoによるH.264のハードウェアエンコードに対応している。 せっかくなので、CPUだけでなく内蔵GPUも活用することにした。 denpaのDockerコンテナからGPUデバイスを利用できるように、~/denpa/compose.override.yml に以下の設定を追加する。 compose.override.yml services: denpa: devices: - /dev/dri:/dev/dri これでコンテナからホスト側のGPUデバイスを利用できるようになる。 コンテナを再起動後に設定画面から有効化する。 古いCPUなので、こういったハードウェアエンコードを活用できるのはありがたい。 ※ i3-4130で利用できるハードウェアエンコードはH.264。AV1のハードウェアエンコードには対応していない。 録画データをSambaで共有する 録画したTSファイルや、エンコード後の動画ファイルをサーバーの外から直接扱いたい。 そこでSambaを利用して、録画データをLAN内で共有することにした。 denpaのDockerボリュームをSambaコンテナにマウントすることで、録画データをWindowsなどから直接参照できるようにする。 同じく compose.override.yml に以下の設定を追加する。 compose.override.yml services: samba: image: dperson/samba:latest restart: unless-stopped ports: - "139:139" - "445:445" environment: TZ: Asia/Tokyo volumes: 1つの共有フォルダの中に両方のボリュームを読み取り専用でマウント - denpa-library:/video/library:ro # エンコード後 - denpa-recorded:/video/recorded:ro # エンコード前(生TS) command: - '-u' - '[ユーザー名];[パスワード]' - '-s' - 'video;/video;yes;yes;yes' [ユーザー名] と [パスワード] は任意の値に変更する。 また、ボリュームは読み取り専用(:ro)でマウントしている。 これでWindowsのエクスプローラーなどから、録画データを直接参照できるようになった。 7. Tampermonkeyで音量スライダーを追加 実際に使ってみて、少し気になったのが音量調整。 スマートフォンでの利用を意識しているためか、標準のプレイヤーにはミュートボタンはあるものの、音量を細かく調整するスライダーが見当たらない。 PCで利用する場合は少し不便。 そこで、Tampermonkeyを使って音量スライダーを追加することにした。 ついでに、ミュート中に動画の左上に表示される「音を出す」ボタンも不要だったので非表示にしている。 Geminiで作成したスクリプトはこちら。 masamasa1029.github.io Tampermonkeyにインストールするだけで利用できる。 ただし、スクリプト内の @match にアクセス先のサーバーIPアドレスを指定する必要がある。 // @match http://<サーバーIPアドレス>:3000/* 例えば、サーバーのIPアドレスが 192.168.1.100 の場合は、以下のように書き換える。 // @match 192.168.1.100 そのうちdenpa本体にも標準機能として追加されるかもしれないけど、とりあえずこれでPCからの操作もかなり快適になった。 8. まとめ 今回はハードオフで330円で購入したtorneを使って、Ubuntu上にdenpaを導入してみた。 結果として、かなり簡単にテレビサーバーを構築することができた。 330円のtorneで地デジを受信 Ubuntu + Dockerでdenpaを稼働 LAN内のPCやスマートフォンから視聴 MPEG-2 / H.264 / AV1での再生 録画と自動エンコード CMのチャプター付けやカット Sambaで録画データを共有 Tampermonkeyでプレイヤーをカスタマイズ テレビ自体はめったに見ないので、このサーバーを常時稼働させるかは微妙なところ。 ただ、普段使わなくなった古い機器を再活用して、こういう環境を構築して遊べるのは結構楽しい。 330円でここまで遊べるなら十分すぎる。 denpaの開発者さんにも感謝! danything/denpa
OSごとのチューナーやストリーミングの違いを吸収して統一的に扱うデーモンらしい テレビ視聴環境の構築にすごく便利そう yug1224 starred Till0196/coax Till0196/coax
Till0196/coax 軽く読んだが プラットフォームを限定しないということ いい思想だと思う あと"アニメから取った名前"を付けてないあたりが好感持てる
もうバレてるから言及していいと思うけど単にtorneをPCで使いたいだけなら一番最初に触れた既知解のスマートな実装であるcoaxを使ってください 純正FWいらないし!! 自分は使うのには一切いらん純正FW解析にそこそこトークン燃やしちゃったので Till0196/coax
やったことメモ Till0196/coax からcoaxとdriver/windowsとBonDriver_coaxおとしてくる 解凍してbondriverフォルダにぶっこむ install-winusb.batを実行してcech-zd1j-winusb.infを認識させる TVtest 010の現行版を落としてきてBonDriver_coaxを指定 スマートカードにBCAS入れる enjoy. t.co
@tenn_zip coaxでいけるぽい 調べた内容やっただけで、正直に言うと俺も良く分かってない、、、(小声) Till0196/coax
これかどうやら純正ファームつかってないらしい 一応クリーンなのか...? Till0196/coax