はじめに
以前の記事では、Ubuntu上に構築したPT2録画サーバーで、MirakurunとEPGStationを動かすところまで紹介しました。EPGStationのWeb画面を使えば、パソコンやスマートフォンからテレビを視聴できます。しかし、せっかくならテレビの前では、Webブラウザではなく普通のテレビに近い操作感で視聴したいところです。
そこで今回は、以前から使っていたLibreELECをEPGStationへ接続し、リビングのテレビで地上デジタル放送やBS放送を視聴できるようにしました。
Kodiの「PVR IPTV Simple Client」を利用すると、チャンネル一覧だけでなく、EPGStationの番組表も表示できます。
テレビに内蔵チューナーがあるのに、PT2サーバーを使う理由
テレビ放送を見るだけなら、テレビに内蔵されているチューナーを使うのが最も簡単です。それでも今回、あえてPT2サーバーからLibreELECへテレビ放送を配信する構成を試したのには理由があります。
将来的には、PT2サーバーのカードリーダーで使用しているB-CASカードの番号を使ってスカパー!を契約し、契約チャンネルをLibreELECから視聴したいと考えています。その場合でも、録画サーバー上だけでなく、テレビの前で普段どおり番組表を見ながらチャンネルを選び、テレビのリモコンで視聴できるようにしたいところです。
そこで今回は、スカパー!を契約する前のテストも兼ねて、現在PT2サーバーで受信できている地上デジタル放送とBS放送をLibreELECへ配信し、テレビ視聴端末として実用になるか確認しました。この構成が動けば、将来スカパー!を契約した際にも、PT2サーバーで適切に契約・受信できているチャンネルを、家庭内LAN経由でテレビから視聴できる見込みです。
また、PT2サーバーで受信しているチャンネルを、テレビだけでなく、家庭内LAN上のパソコンやスマートフォンなど複数の端末から視聴できる点もメリットです。チャンネル構成や番組表の配信元をEPGStationに一本化できるため、各端末で別々に番組情報を管理する必要がありません。一方、PT2サーバーや家庭内ネットワークが停止すると視聴できず、テレビ内蔵チューナーよりチャンネルの切り替えに時間がかかることもあります。テレビ内蔵チューナーを完全に置き換えるのではなく、将来のスカパー!視聴を見据えながら、すでに稼働しているPT2・Mirakurun・EPGStation環境の視聴先をテレビまで広げるのが、今回の目的です。
なお、本記事で想定しているのはBS・110度CSを利用する通常の「スカパー!」です。124度・128度CSを利用する「スカパー!プレミアムサービス」は受信方式が異なり、PT2では受信できません。有料放送は、各サービスの契約条件に従って利用する必要がありますので要注意です。
今回確認したのは、EPGStationから家庭内LANを経由してLibreELECで視聴するまでの経路です。スカパー!の契約チャンネルを実際に視聴できるかどうかは、契約後に改めて確認する予定です。
今回の構成
今回の検証に使用したソフトウェアと接続方法は、以下のとおりです。PT2、Mirakurun、EPGStationはUbuntu録画サーバー側で動作し、Raspberry Pi上のLibreELECをテレビ視聴端末として使用しています。
録画サーバー
| 項目 | 今回使用した環境 |
|---|---|
| Mirakurun | 3.9.0-rc.4 |
| EPGStation | 2.10.0 |
視聴端末(Raspberry Pi)
| 項目 | 今回使用した環境 |
|---|---|
| ハードウェア | Raspberry Pi 3 Model B Rev 1.2 |
| LibreELEC | 9.2.8(RPi2.arm) |
| Kodi | 18.9 Leia |
| PVR IPTV Simple Client | 3.10.1.1 |
テレビ
| 項目 | 今回使用した環境 |
|---|---|
| 映像・音声 | Raspberry PiからHDMIで接続 |
| リモコン操作 | HDMI-CEC(SHARP AQUOSファミリンク) |
機器間の接続を図にまとめました。構成図はMermaidで作成しています。

以降の設定画面は、このバージョンで確認したものです。LibreELECやKodiのバージョンが異なる場合、メニューの名称や配置も異なることがあります。
PT2、Mirakurun、EPGStationはUbuntu録画サーバー上で動作しています。家庭内LAN上のRaspberry PiにはLibreELECとKodiを導入し、PVR IPTV Simple ClientでEPGStationから映像と番組表を取得します。Raspberry PiとテレビはHDMIで接続し、テレビ付属リモコンからHDMI-CECでKodiを操作します。iPhoneからもEPGStationにアクセスし、番組表データが出力されることを確認しました。
テレビ放送の受信とチューナー管理は既存のPT2サーバーが担当し、LibreELECはEPGStationから映像と番組表を受け取る視聴端末として使用します。
注意事項
本記事は、契約済みの放送を家庭内LAN経由で視聴するための環境構築例です。
NHK受信料や有料放送の契約が不要になるものではありません。NHKや有料チャンネルについては、視聴環境に応じて必要な契約を行ってください。
また、同じ家庭内で使用することを前提にしています。EPGStationやMirakurunのポートを、そのままインターネットへ公開することはおすすめしません。
PVR IPTV Simple Clientをインストールする
LibreELECを起動して、Kodiのアドオン画面を開きます。
次の順番で進みました。
Add-ons
→ Install from repository
→ LibreELEC Add-ons
→ PVR clients

PVRクライアントの一覧から、次のアドオンを選択します。
PVR IPTV Simple Client

今回の環境では、バージョン3.10.1.1がインストールされました。

EPGStationのM3Uプレイリストを設定する
PVR IPTV Simple Clientの画面で「Configure」を選択します。
「General」の「Location」は、次の設定にします。
Remote Path (Internet address)
続いて「M3U Play List URL」に、EPGStationのチャンネル配信用URLを入力します。
http://EPGStationのIPアドレス:8888/api/iptv/channel.m3u8?mode=0
今回の環境では次のURLになりました。
http://192.168.111.124:8888/api/iptv/channel.m3u8?mode=0


IPアドレスとポート番号は、それぞれのEPGStation環境に合わせて変更してください。
modeの番号について
URL末尾のmode=0は、EPGStationに設定されているライブ配信モードを指定しています。
配信モードは0から数えます。
たとえば、EPGStationのconfig.ymlが次の順番になっている場合、
stream:
live:
ts:
m2ts:
- name: 720p
cmd: ...
- name: 無変換対応関係は次のようになります。
mode=0:720p
mode=1:無変換
今回の環境ではmode=0で映像を再生できました。
端末の性能やネットワーク環境によって再生できない場合は、別の配信モードを試す方法もあります。
KodiにTVメニューが追加された
設定を保存してKodiを再起動すると、ホーム画面に「TV」が追加されました。

「Channels」を開くと、EPGStationに登録されている地上デジタル放送やBS放送のチャンネルが表示されます。
チャンネルを選択すると、PT2サーバーから家庭内LAN経由で映像が配信されました。
チャンネルロゴも表示されており、視聴端末としてはかなりテレビらしい画面です。
なお、チャンネル一覧に有料放送が表示されていても、契約していない放送を視聴できるわけではありません。
番組表のXMLTV URLを設定する
映像は再生できましたが、この時点では番組表が空のままでした。


番組表を表示するには、PVR IPTV Simple ClientへEPGStationのXMLTV URLを設定します。
PVR IPTV Simple Clientの設定画面から「EPG Settings」を開き、「Location」を次のように設定します。
Remote Path (Internet address)
「XMLTV URL」には次のURLを入力します。
http://EPGStationのIPアドレス:8888/api/iptv/epg.xml?days=5
今回入力したURLは次のとおりです。
http://192.168.111.124:8888/api/iptv/epg.xml?days=5
days=5は、5日分の番組表データを取得する指定です。
EPGStationでは1日から8日まで指定できます。

映像は映るのに番組表が表示されない
XMLTV URLを設定しても、番組表は空のままでした。
そこでKodi本体から、番組表データのキャッシュを削除しました。
次の順番で設定画面を開きます。
Settings
→ PVR & Live TV
→ Guide
→ Clear data


確認画面が表示されたら「Yes」を選択します。
スマートフォンのKodiリモコンアプリにも「Clear data」は表示されますが、リモートアプリからは実行できませんでした。テレビに表示されているKodi本体の設定画面から操作する必要があります。
しかし、キャッシュを消しても番組表は表示されません。
EPGStationのXMLTV出力を確認する
EPGStation側が番組表データを出力しているか確認するため、スマートフォンのWebブラウザからXMLTV URLを直接開きました。
http://192.168.111.124:8888/api/iptv/epg.xml?days=5
ブラウザには番組名や番組内容が大量に表示されました。

これにより、EPGStation側では番組表データが正常に生成されていると判断できます。
原因はURLに入った空白だった
改めてKodiのXMLTV URLを確認すると、IPアドレスとポート番号の間に空白が入っていました。
誤:http://192.168.111.124[半角スペース]:8888/api/iptv/epg.xml?days=5
正:http://192.168.111.124:8888/api/iptv/epg.xml?days=5
テレビ画面のソフトウェアキーボードで長いURLを入力していたため、気づかないうちに空白が入っていたようです。空白を削除して設定を保存し、もう一度「Clear data」を実行すると、無事に番組表が表示されました。

映像が再生できているのに番組表だけ表示されない場合は、次の点を確認するとよさそうです。
- XMLTV URLをブラウザから開けるか
- IPアドレスとポート番号が正しいか
- URLの途中に空白が入っていないか
- epg.xmlやdaysの綴りが正しいか
- Kodiの番組表キャッシュを削除したか
- PVR IPTV Simple Clientを再起動したか
テレビのリモコンで操作できる
LibreELEC端末とテレビのHDMI-CECが有効になっていれば、テレビ付属のリモコンからKodiを操作できます。
今回の環境でも、リモコンの上下左右キーと決定ボタンを使って、チャンネル一覧や番組表を操作できました。
一般的なテレビのようにチャンネル上下ボタンだけで直接切り替えられるかどうかは、テレビやリモコン、HDMI-CECの実装によって異なります。
確実なのは、チャンネル一覧または番組表を開き、上下左右キーと決定ボタンで選局する方法です。
iPhoneのKodiリモコンアプリから「Live TV」を開いて操作することもできます。

IPTV Simple Clientでは録画操作に制限がある
KodiのTV画面には「Recordings」や「Timers」も表示されますが、PVR IPTV Simple Clientは基本的にM3UプレイリストとXMLTV番組表を読み込むためのクライアントです。
EPGStationの録画予約や録画番組管理を、Kodiから完全に操作できるわけではありません。
録画予約や録画済み番組の管理については、これまでどおりEPGStationのWeb画面を使用するのが確実です。
今回のLibreELECは、主にリアルタイム視聴と番組表の確認に使用します。
まとめ
今回は、PT2、Mirakurun、EPGStationで構築したテレビ環境へLibreELECを接続しました。
PVR IPTV Simple Clientに次の2つのURLを設定することで、Kodiからテレビ放送と番組表を利用できます。
チャンネル配信用URL:
http://EPGStationのIPアドレス:8888/api/iptv/channel.m3u8?mode=0
番組表配信用URL:
http://EPGStationのIPアドレス:8888/api/iptv/epg.xml?days=5
設定後は、LibreELECを接続したテレビから、チャンネル一覧や番組表を使って放送を選べるようになりました。WebブラウザでEPGStationを開く方法に比べると、テレビのリモコンで操作できるKodiのほうが、リビングの視聴端末らしい使い方ができます。
今回はXMLTV URLに入った空白によって、映像は映るのに番組表だけ表示されない状態にも遭遇しました。EPGStation側のURLをブラウザで直接確認することで、サーバー側とKodi側のどちらに原因があるのかを切り分けられました。古いPT2サーバーでも、MirakurunとEPGStationを経由することで、LibreELECをネットワークテレビ端末として活用できました。
今回確認できたのは、PT2サーバーで受信した放送をEPGStationから家庭内LANへ配信し、LibreELECを接続したテレビで視聴するまでの経路です。将来スカパー!を契約した際には、契約チャンネルについても同じ構成で視聴できるか、改めて確認したいと思います。
