1: 2021-07-28 (水) 08:54:35 yuji |
現: 2021-08-21 (土) 09:57:30 yuji |
| * Raspberry PiでPX-W3U4を使ってみる [#q15a18cf] | | * Raspberry PiでPX-W3U4を使ってみる [#q15a18cf] |
- | 出先でテレビを見たい時は,ノートPCとPX-W3U4を一緒に持って行ってるんだけど,自宅にいる時はPX-W3U4は使っていなかった。 | + | 旅先でテレビを見たい時はノートPCとPX-W3U4/B-CASカードを一緒に持って行ってるんだけど,自宅にいる時はPX-W3U4は使っていなかった。 |
| | | |
- | これではもったいないので,自宅でもRaspberry PiでPX-W3U4を使って,他のPCやスマートフォンからテレビ放送を視聴したり録画予約を出来るようにしてみることにした。 | + | これではもったいないので,自宅でもRaspberry PiとPX-W3U4を使って他のPCやスマートフォンからテレビ放送を視聴したり録画予約を出来るようにしてみることにした。 |
| | | |
| 使用するRaspberry Piは, | | 使用するRaspberry Piは, |
- | Raspberry Pi4B 4GB | + | - RPi: [[Raspberry Pi4B 4GB>/PC/RaspberryPi/スペック#y4caa92a]]~ |
- | OS: Raspbian buster 32bit | + | - OS: [[Raspbian buster 32bit>/PC/RaspberryPi/Linuxを動かしてみる/Raspbianのインストール]]~ |
| を使用している。 | | を使用している。 |
| | | |
- | 家のどのPCからも録画予約・録画や,テレビの視聴が出来るようになって便利に使えるようになった :) | + | 家のどのPCやスマートフォンからも録画予約・録画やテレビの視聴が出来るようになって(風呂でも見れる),便利になった :) |
| | | |
| * 録画保存場所をファイルサーバーにする [#p96b6792] | | * 録画保存場所をファイルサーバーにする [#p96b6792] |
- | 録画データは自宅のLAN上にあるファイルサーバーに保存するために,sambaを使ってマウントして保存先とする。~ | + | 録画データは自宅のLAN上にあるファイルサーバーに直接保存するために,sambaを使ってファイルサーバーのディレクトリをマウントして保存先とする。~ |
| + | |
| + | このファイルを保存するサーバーではDLNAサーバーが動作しているので,ここに録画ファイルを保存することにより,LAN上のDLNAクライアントで再生出来るようになるので便利になる。~ |
| | | |
| 必要なパッケージをインストールする。~ | | 必要なパッケージをインストールする。~ |
| | | |
| * PX-W3U4のデバイスドライバーをインストールする [#m337fa52] | | * PX-W3U4のデバイスドライバーをインストールする [#m337fa52] |
- | PX-W3U4を使用できるように,デバイスドライバーを用意する。 | + | Raspberry Pi(Rasbian)でPX-W3U4を使用できるように,デバイスドライバーを用意する。 |
| | | |
| ** 必要なパッケージを入れる [#uc674833] | | ** 必要なパッケージを入れる [#uc674833] |
- | 必要なパッケージをパッケージマネージャーでインストールしておく。 | + | デバイスドライバーをビルドするのに必要なパッケージを,パッケージマネージャーでインストールしておく。 |
| # apt install cmake automake autoconf exfat-utils git wget python | | # apt install cmake automake autoconf exfat-utils git wget python |
- | # apt install build-essential yasm libtool libssl-dev ffmpeg sqlite3 | + | # apt install build-essential yasm libtool |
| + | # apt install libssl-dev ffmpeg sqlite3 |
| # apt install raspberrypi-kernel-headers | | # apt install raspberrypi-kernel-headers |
| | | |
| ** PX-W3U4のデバイスドライバーの取得とインストール [#o7bbe34b] | | ** PX-W3U4のデバイスドライバーの取得とインストール [#o7bbe34b] |
- | [[PLEX社>http://plex-net.co.jp/]]からLinux用のデバイスドライバーは用意されているが,ソースコードが提供されない・Kernelが限定されているなどの問題がある。~ | + | [[PLEX社>http://plex-net.co.jp/]]からLinux用のデバイスドライバーは用意されているが, |
- | そこで,[[chardev版非公式なLinuxドライバー>https://github.com/nns779/px4_drv]]をありがたく使用する。~ | + | - ソースコードが提供されない~ |
| + | - Kernelのバージョンが限定されている~ |
| + | - 動作するプラットフォームやOSが限定されている~ |
| + | ARMのRaspbian用などは提供されていない。~ |
| + | |
| + | などの問題がある。~ |
| + | |
| + | そこで, nns779氏の[[px4_drv(chardev版非公式なLinux用ドライバー)>https://github.com/nns779/px4_drv]]をありがたく ;) 使用することにした。~ |
| | | |
| まずデバイスドライバーのソースコードを取得する。~ | | まずデバイスドライバーのソースコードを取得する。~ |
| $ cd ~/work | | $ cd ~/work |
- | $ git clone https://github.com/nns779/px4_drv | + | $ git clone https://github.com/nns779/px4_drv.git |
- | ソースコードは,work/px4_drvに取得される。 | + | ソースコードは,~/work/px4_drvに取得される。 |
| | | |
| *** ファームウェアの抽出とそのインストール [#r68cec67] | | *** ファームウェアの抽出とそのインストール [#r68cec67] |
- | この非公式なデバイスドライバーは,ファームウェアを公式ドライバより抽出して使用する。 | + | この非公式なpx4_drvデバイスドライバーによりPX-W3U4にファームウェアをアップロードする必要がある。~ |
- | | + | デバイスドライバーをビルドする前に,このファームウェアを公式デバイスドライバーより抽出し,所定の場所にインストールする。~ |
- | デバイスドライバーをビルドする前に,ファームウェアを公式ドライバより抽出しインストールを行う必要がある。~ | + | |
| | | |
- | 抽出ツールをビルドする。 | + | まず,抽出ツールをビルドする。 |
| $ cd ~/work/px4_drv/fwtool/ | | $ cd ~/work/px4_drv/fwtool/ |
| $ make | | $ make |
| | | |
- | 公式のWindows用のデバイスドライバー(pxw3u4v1.4.zip)をダウンロードして,そこからファームウェアを抽出する。~ | + | 公式のWindows用のデバイスドライバー([[pxw3u4v1.4.zip>http://plex-net.co.jp/download/pxw3u4v1.4.zip]])をダウンロードして,そこからファームウェアを抽出する。~ |
| $ wget http://plex-net.co.jp/download/pxw3u4v1.4.zip -O pxw3u4v1.4.zip | | $ wget http://plex-net.co.jp/download/pxw3u4v1.4.zip -O pxw3u4v1.4.zip |
| $ unzip -oj pxwu4v1.4.zip pxw3u4v1/x64/PXW3U4.sys | | $ unzip -oj pxwu4v1.4.zip pxw3u4v1/x64/PXW3U4.sys |
| $ ./fwtool PXW3U4.sys it930x-firmware.bin | | $ ./fwtool PXW3U4.sys it930x-firmware.bin |
| fwtool for px4 drivers | | fwtool for px4 drivers |
| + | |
| Driver file (in) : PXW3U4.sys | | Driver file (in) : PXW3U4.sys |
| Firmware file (out) : it930x-firmware.bin | | Firmware file (out) : it930x-firmware.bin |
| + | |
| Driver description: PX-W3U4 BDA Ver.1.4 64bit | | Driver description: PX-W3U4 BDA Ver.1.4 64bit |
| Firmware length: 7013 bytes | | Firmware length: 7013 bytes |
| | | |
| *** デバイスドライバーのビルドとインストール [#t35b26de] | | *** デバイスドライバーのビルドとインストール [#t35b26de] |
- | //DKMSを使用しない場合。~ | + | px4_drvデバイスドライバーをビルドしてインストールする。~ |
| $ cd ~/work/px4_drv/driver | | $ cd ~/work/px4_drv/driver |
| $ make | | $ make |
| $ sudo make install | | $ sudo make install |
- | $ cd .. | + | これで,ビルドしたデバイスドライバーが''/lib/modules/<kernel>/misc''にインストールされ,udev用のファイルが''/etc/udev/rules.d/99-px4video.rules''にインストールされる。 |
- | これで,デバイスドライバーが/lib/module/<kernel>/miscにインストールされ,udev用のファイルが/etc/udev/rules.d/99-px4video.rulesにインストールされる。 | + | |
| + | ''もしkernelが更新された場合は,再度ビルドし直してインストールする必要がある。''~ |
| | | |
- | //DKMSを使用する場合。~ | + | この後PX-W3U4を接続し,正常にデバイスドライバーがロードされているか確認する。~ |
- | // $ sudo cp -a ./ /usr/src/px4_drv-0.2.1 | + | # lsmod | grep px |
- | // $ sudo dkms add px4_drv/0.2.1 | + | |
- | // $ sudo dkms install px4_drv/0.2.1 | + | |
- | // | + | |
- | PX-W3U4を接続し,正常にデバイスドライバーがロードされているか確認する。~ | + | |
- | $ lsmod | grep px | + | |
| px4_drv 122880 0 | | px4_drv 122880 0 |
| と表示されていればデバイスドライバーがロードされている。~ | | と表示されていればデバイスドライバーがロードされている。~ |
| | | |
| もしロードされていない場合は, | | もしロードされていない場合は, |
- | $ sudo modprobe px4_drv | + | # modprobe px4_drv |
| として,手動でロードしてみる。 | | として,手動でロードしてみる。 |
| | | |
| また, | | また, |
- | $ ls /dev/px* | + | # ls /dev/px* |
| /dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4video3 | | /dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4video3 |
| のようにデバイスファイルが作成されている。~ | | のようにデバイスファイルが作成されている。~ |
| *** デバイスドライバーのアンインストール [#n771cdd2] | | *** デバイスドライバーのアンインストール [#n771cdd2] |
| デバイスドライバーのアンインストールは以下のようにする。 | | デバイスドライバーのアンインストールは以下のようにする。 |
- | | |
- | //DKMSを使用せずにインストールした場合。~ | |
| $ cd ~/work/px4_drv/driver | | $ cd ~/work/px4_drv/driver |
| $ sudo make uninstall | | $ sudo make uninstall |
| $ cd .. | | $ cd .. |
| | | |
- | //DKMSを使用してインストールした場合。~ | |
- | // $ sudo dkms remove px4_drv/0.2.1 --all | |
- | // $ sudo rm -rf /usr/src/px4_drv-0.2.1 | |
- | // | |
| ファームウェアのアンインストール。~ | | ファームウェアのアンインストール。~ |
- | $ sudo rm /lib/firmware/it930x-firmware.bin | + | # rm /lib/firmware/it930x-firmware.bin |
| | | |
| *** LNB電源の出力 [#f178807a] | | *** LNB電源の出力 [#f178807a] |
- | PX-W3U4では,出力無しと15Vの出力のみに対応している。~ | + | PX-W3U4では出力無しと15Vの出力のみに対応している。~ |
- | デフォルトは,LNB電源の出力を行わない。~ | + | デフォルトはLNB電源の出力を行わない。~ |
| | | |
| もしLNB電源の出力を行う場合は,recpt1(録画ツール)を実行する時にパラメータとして''--lnb 15''を追加する。 | | もしLNB電源の出力を行う場合は,recpt1(録画ツール)を実行する時にパラメータとして''--lnb 15''を追加する。 |
| ** ICカードリーダー(接触式)を用意する [#z5539c29] | | ** ICカードリーダー(接触式)を用意する [#z5539c29] |
| この非公式デバイスドライバーには,PX-W3U4の内蔵カードリーダーで読み書きするデバイスドライバーは用意されていない。~ | | この非公式デバイスドライバーには,PX-W3U4の内蔵カードリーダーで読み書きするデバイスドライバーは用意されていない。~ |
- | このためB-CASカードを読むためには,接触式ICカードリーダーを別途用意する必要がある。~ | + | このためB-CASカードを読むためには,''接触式ICカードリーダーを別途用意する必要がある。''~ |
| | | |
| 一般的な接触式のICカードリーダーであれば問題なく使用できると思われる。~ | | 一般的な接触式のICカードリーダーであれば問題なく使用できると思われる。~ |
- | 今回は,安価な接触式ICカードリーダーの[[SCR3310 v2.0>https://www.amazon.co.jp/IC%E3%82%AB%E3%83%BC%E3%83%89%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC%EF%BC%8F%E3%83%A9%E3%82%A4%E3%82%BF%E3%83%BC-B-CAS%E3%83%BB%E4%BD%8F%E5%9F%BA%E3%82%AB%E3%83%BC%E3%83%89%E5%AF%BE%E5%BF%9C-SCR3310-v2-0-%E3%80%90%E7%B0%A1%E6%98%93%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%93%81%E3%80%91/dp/B0085H4YZC/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=SCR3310+v2.0&qid=1627087191&sr=8-2]]を使用する。~ | |
| | | |
- | B-CASカード以外にも,マイナンバーカードなんかにも使えるので無駄にはならない。 | + | 今回は安価な接触式ICカードリーダーの[[SCR3310 v2.0>https://amzn.to/34FTaey]]を購入して使用する。~ |
| + | |
| + | B-CASカード以外にもマイナンバーカードなんかにも使えるので無駄にはならない。 |
| | | |
| *** SCR3310 v2.0を使用する場合 [#ob1ae31a] | | *** SCR3310 v2.0を使用する場合 [#ob1ae31a] |
| # apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools | | # apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools |
| | | |
- | B-CASカードをカードリーダーに挿入(コネクタ部分がある面を上にする)して,USBで接続する。~ | + | USBでカードリーダーと接続して,B-CASカードをカードリーダーに挿入(コネクタ部分がある面を上にする)する。~ |
- | B-CASカードが認識されているか確認する。~ | + | B-CASカードを認識しているか確認する。~ |
- | $pcsc_scan | grep B-CAS | + | # pcsc_scan | grep B-CAS |
| Japanese Chijou Digital B-CAS Card (pay TV) | | Japanese Chijou Digital B-CAS Card (pay TV) |
| このように表示されればB-CASカードを認識できている。Ctrl + C でコマンドを終了させる。~ | | このように表示されればB-CASカードを認識できている。Ctrl + C でコマンドを終了させる。~ |
- | | |
- | //*** SoftCasを使う場合 | |
- | //[[SoftCasを使う場合>./SoftCasを使う場合]]を参照する。 | |
| | | |
| ** リモコン [#be23b882] | | ** リモコン [#be23b882] |
| この非公式デバイスドライバーには,PX-W3U4のリモコン用のデバイスドライバーは用意されていない。~ | | この非公式デバイスドライバーには,PX-W3U4のリモコン用のデバイスドライバーは用意されていない。~ |
| なので,PX-W3U4のリモコンは使用できない。 | | なので,PX-W3U4のリモコンは使用できない。 |
| + | |
| + | [[Mirakurun>https://github.com/Chinachu/Mirakurun]](チューナー制御・テレビ放送受信・動画配信・番組表受信)を使用してクライアントからリモートでチャンネルを変更できるのでリモコンは特には必要無い。 |
| + | |
| + | クライアント・アプリをリモコンを使って操作する方法はいろいろ([[IRリモコン>/PC/IRリモコン]]とか[[PCをスマートフォンからリモートコントロール>/PC/PCをスマートフォンからリモートコントロール]]とか・・・)あるので,必要であればそれを使用する。 |
| | | |
| * 録画用ツールをインストールする [#g0a5e7a7] | | * 録画用ツールをインストールする [#g0a5e7a7] |
| 録画するためのツールとライブラリをインストールする。 | | 録画するためのツールとライブラリをインストールする。 |
| | | |
- | ** libarib25のインストール [#m503a9b3] | + | ** libarib25ライブラリーのインストール [#m503a9b3] |
- | 日本のデジタルテレビ放送は,暗号化されて配信されている。テレビ放送を受信してB-CASカードの情報を使って復号する必要があるのだが,このためにライブラリ化したのがlibarib25ライブラリー。 | + | 日本のデジタルテレビ放送は暗号化されて電波で配信されている。テレビ放送を受信してB-CASカードの情報を使って復号化する必要があるのだが,このための復号化するプログラムをライブラリ化したのがlibarib25ライブラリー。 |
| | | |
| ソースコードからビルドしてインストールする。~ | | ソースコードからビルドしてインストールする。~ |
| $ make | | $ make |
| $ sudo make install | | $ sudo make install |
- | //SoftCasを使うと,libarib25インストールすると無線LANが使用できなくなる。 | |
| | | |
| ** 録画ツールrecpt1(stz版)のインストール [#n3a13118] | | ** 録画ツールrecpt1(stz版)のインストール [#n3a13118] |
- | recpt1(stz版)は,テレビ放送を録画するツール。PC-W3U4でも使用できるみたいだ。~ | + | recpt1(stz版)は,チューナーのデバイスドライバーにアクセスしてテレビ放送を録画するツール。PC-W3U4でも使用できるみたいだ。~ |
| | | |
- | ソースコードを取得して,テレビ放送を復号化出来るようにするため''--enable-b25''オプションを付けてビルドした後インストールする。~ | + | ソースコードを取得して,テレビ放送をB-CASカードを使って復号化出来るようにするため''--enable-b25''オプションを付けて上記のlibarib25ライブラリーを使えるようにビルドしてインストールする。~ |
| $ cd ~/work | | $ cd ~/work |
| $ git clone https://github.com/stz2012/recpt1.git | | $ git clone https://github.com/stz2012/recpt1.git |
| $ cd | | $ cd |
| $ recpt1 --b25 --strip 24 10 test1.ts | | $ recpt1 --b25 --strip 24 10 test1.ts |
- | テレビ放送が保存出来ていれば動作は大丈夫。もしNo signalの場合,チャンネルの24を変えて実行してみる。~ | + | テレビ放送が保存出来ていれば動作は大丈夫。もしNo signalの場合,チャンネルの24を変えて実行してみる。チャンネル番号は地域ごとに違っているが,[[こちらから>http://www.maspro.co.jp/contact/channel.pdf]]確認出来る。 |
- | チャンネル番号は地域ごとに違っているので,[[こちらから>http://www.maspro.co.jp/contact/channel.pdf]]確認出来る。 | + | |
| | | |
| * MirakurunとEPGStationのインストール [#md170a53] | | * MirakurunとEPGStationのインストール [#md170a53] |
- | [[Mirakurun>https://github.com/Chinachu/Mirakurun]](チューナー制御・テレビ放送受信・動画配信)と[[EPGStation>https://github.com/l3tnun/EPGStation]](視聴・録画・動画配信・番組表)をインストールする。 | + | [[Mirakurun>https://github.com/Chinachu/Mirakurun]](チューナー制御・テレビ放送受信・動画配信・番組表受信)と[[EPGStation>https://github.com/l3tnun/EPGStation]](番組表表示・録画・視聴・動画配信)をインストールする。 |
| + | |
| + | 素晴らしいソフトウェアを作ってくれた作者に感謝です :) |
| | | |
| ** Mirakurunのインストール [#fce31539] | | ** Mirakurunのインストール [#fce31539] |
- | [[Mirakurun>https://github.com/Chinachu/Mirakurun]]は,地デジ・BS/CSチューナーを使用して,テレビ放送をネットワークに配信するためのチューナーサーバー。~ | + | [[Mirakurun>https://github.com/Chinachu/Mirakurun]]は,地デジ・BS/CSチューナーを使用してテレビ放送を受信し,受信データをネットワークに配信するためのチューナーサーバー。~ |
- | これにより,ネットワークに接続した複数のクライアントで視聴・録画することが出来るようになる。 | + | これにより,ネットワークに接続した複数のクライアントでテレビ放送を視聴・録画することが出来るようになる。 |
| | | |
- | MirakurunはNode.jsが必要。インストールされているNode.jsを確認する。~ | + | 動作には[[Node.js:https://nodejs.org/ja]]のv10かv12かv14が必要みたいだ。RasbianにインストールされているNode.jsを確認する。~ |
| $ node -v | | $ node -v |
| v10.24.0 | | v10.24.0 |
- | | + | Rasbian BusterでインストールされているNode.jsはv10.24.0になっている。とりあえずこのまま試してみた。~ |
- | もし未インストールの場合,インストールする。 | + | 後日Mirakurunをバージョン3.7.1に更新しようとしたところ,v12かv14かv16のNode.jsが必要になったので,Node.jsをバージョン14.17.4に更新した。(バージョン3.9.0-rc3からv14/v16/v18になった。)~ |
- | // $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - | + | もし未インストール(更新も)の場合,v16がいいのかな。~ |
- | // $ sudo apt install nodejs | + | $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - |
| + | $ sudo apt install nodejs |
| $ sudo apt install nodejs npm | | $ sudo apt install nodejs npm |
| | | |
- | Mirakurunをnpmを使ってインストールする。~ | + | 必要なツールとMirakurunはnpmを使ってインストール出来る。~ |
| $ sudo npm install pm2 -g | | $ sudo npm install pm2 -g |
| $ sudo npm install mirakurun -g --unsafe-perm --production | | $ sudo npm install mirakurun -g --unsafe-perm --production |
- | $ sudo npm install arib-b25-stream-test -g --unsafe | + | |
| + | |
| + | テレビ放送を復号化(スクランブル解除)するツールの''arib-b25-stream-test''とテスト用の録画ツールとして''rivarun''(Mirakurunクライアント)をインストールする。~ |
| + | //復号化(スクランブル解除)はrecpt1だけでも出来るが,Mirakurunのクライアントからスクランブル解除をOn/Offするために専用のツールを利用することにした。~ |
| + | $ sudo npm install arib-b25-stream-test -g --unsafe-perm |
| $ sudo npm install rivarun -g | | $ sudo npm install rivarun -g |
- | rivarunは,Mirakurunに接続して録画できるツール。~ | |
| | | |
| インストールが完了すると既にMirakurunは動作している。~ | | インストールが完了すると既にMirakurunは動作している。~ |
| 以下のコマンドで,Mirakurunのstatusがonlineなら正常起動している。~ | | 以下のコマンドで,Mirakurunのstatusがonlineなら正常起動している。~ |
| $ sudo pm2 status | | $ sudo pm2 status |
| + | |
| + | Mirakurunを更新する場合は, |
| + | $ sudo mirakurun stop |
| + | $ sudo npm install mirakurun -g --unsafe-perm --production |
| + | のようにする。 |
| + | |
| + | Mirakurunや録画ツールをアンインストールする場合は, |
| + | $ sudo pm2 stop mirakurun-server |
| + | $ sudo pm2 delete mirakurun-server |
| + | $ sudo pm2 save |
| + | $ sudo npm uninstall mirakurun -g --unsafe-perm |
| + | $ sudo npm uninstall arib-b25-stream-test -g --unsafe-perm |
| + | $ sudo npm uninstall rivarun -g |
| + | でアンインストールできる。~ |
| | | |
| 次に,Mirakurunの設定を行う。 | | 次に,Mirakurunの設定を行う。 |
| *** サーバーの設定 [#v0949e40] | | *** サーバーの設定 [#v0949e40] |
| ''/usr/local/etc/mirakurun/server.yml''を編集して,サーバーの設定を行う。~ | | ''/usr/local/etc/mirakurun/server.yml''を編集して,サーバーの設定を行う。~ |
- | logLevel: -2 | + | logLevel: -1 |
| disableIPv6: true | | disableIPv6: true |
- | にした。 | + | // # TSFilter is overflowing the buffer |
| + | // #highWaterMark: 25165824 # integer (bytes) |
| + | // highWaterMark: 67108864 # 64MB |
| + | // #highWaterMark: 134217728 # 128MB |
| + | // #highWaterMark: 268435456 # 256MB |
| + | // |
| + | // # EPG Update Timing |
| + | // #programGCInterval: 900000 # 15min イベント情報ガベージコレクション間隔 |
| + | // programGCInterval: 3600000 # 1h イベント情報ガベージコレクション間隔 |
| + | // #programGCInterval: 86400000 # 24h イベント情報ガベージコレクション間隔 |
| + | // #epgGatheringInterval: 900000 # 15min EPGを更新した後の休止時間(EPG収集間隔) |
| + | // #epgGatheringInterval: 1800000 # 30min EPGを更新した後の休止時間(EPG収集間隔) |
| + | // epgGatheringInterval: 3600000 # 30min EPGを更新した後の休止時間(EPG収集間隔) |
| + | // #epgGatheringInterval: 86400000 # 24h EPGを更新した後の休止時間(EPG収集間隔) |
| + | // epgRetrievalTime: 600000 # 10min EPG最大取得時間。 |
| + | // #logoDataInterval: 86400000 # 24h logoデータ収集間隔 |
| + | // logoDataInterval: 604800000 # 7d logoデータ収集間隔 |
| + | // maxBufferBytesBeforeReady: 8388608 # 8Mib(0x800000) |
| + | にして,ログをなるべく少なくなるようにしてみた。IPv6は使わない。~ |
| | | |
| *** チューナーの設定 [#fd17372d] | | *** チューナーの設定 [#fd17372d] |
- | ''/usr/local/etc/mirakurun/tuners.yml''を編集して,チューナーの設定を行う。~ | + | ''/usr/local/etc/mirakurun/tuners.yml''を編集して,チューナー(PX-W3U4)の設定を行う。~ |
| 以下のように設定した。 | | 以下のように設定した。 |
- | #code(text){{ | + | #code(text,nonumber){{ |
| - name: PX4-S1 | | - name: PX4-S1 |
| types: | | types: |
| - BS | | - BS |
| - CS | | - CS |
- | command: recpt1 --strip --device /dev/px4video0 <channel> - - | + | command: recpt1 --device /dev/px4video0 <channel> - - |
| decoder: arib-b25-stream-test | | decoder: arib-b25-stream-test |
| isDisabled: false | | isDisabled: false |
| - BS | | - BS |
| - CS | | - CS |
- | command: recpt1 --strip --device /dev/px4video1 <channel> - - | + | command: recpt1 --device /dev/px4video1 <channel> - - |
| decoder: arib-b25-stream-test | | decoder: arib-b25-stream-test |
| isDisabled: false | | isDisabled: false |
| types: | | types: |
| - GR | | - GR |
- | command: recpt1 --strip --device /dev/px4video2 <channel> - - | + | command: recpt1 --device /dev/px4video2 <channel> - - |
| decoder: arib-b25-stream-test | | decoder: arib-b25-stream-test |
| isDisabled: false | | isDisabled: false |
| types: | | types: |
| - GR | | - GR |
- | command: recpt1 --strip --device /dev/px4video3 <channel> - - | + | command: recpt1 --device /dev/px4video3 <channel> - - |
| decoder: arib-b25-stream-test | | decoder: arib-b25-stream-test |
| isDisabled: false | | isDisabled: false |
| }} | | }} |
| + | テレビ放送の復号化(スクランブル解除)は,''recpt1でも行えるがarib-b25-stream-testで行うようにした。''~ |
| + | これはクライアント側で復号化を行いたい場合に対応するため。~ |
| | | |
| *** チャンネル設定 [#h0ecb45e] | | *** チャンネル設定 [#h0ecb45e] |
| ''/usr/local/etc/mirakurun/channels.yml''を設定する。~ | | ''/usr/local/etc/mirakurun/channels.yml''を設定する。~ |
- | 下記のコマンドで地上波のチャンネルスキャンを実行してファイルに設定してくれる。かなり時間がかかるので注意。~ | + | 下記のコマンドでチャンネルスキャンを実行すると,設定ファイルを作成してくれる。かなり時間がかかる。~ |
- | $ sudo curl -X PUT "http://<RaspberryPiのIP>:40772/api/config/channels/scan" | + | $ sudo curl -X PUT "http://<mirakurunのIPAddress>:40772/api/config/channels/scan" |
- | うまく行けば,''/usr/local/etc/mirakurun/channels.yml''に地上波とBSのチャンネルが設定されている。(BSは3.4.0から対応されている。)~ | + | うまく行けば,''/usr/local/etc/mirakurun/channels.yml''ファイルに,地上波とBS/CSのチャンネルが設定されている。(BS/CSはバージョン3.4.0から対応されている。)~ |
- | #code(text){{ | + | //%%もしBS/CSが登録されていない場合は,[[ここ>https://gist.github.com/Connie-Wild/877b48382139fc03282eb448827c6d4b]]の情報を追加する。%%~ |
- | - name: NHKEテレ | + | #code(text,nonumber){{ |
| + | - name: NHKEテレ・大阪 |
| type: GR | | type: GR |
| channel: '13' | | channel: '13' |
| channel: '15' | | channel: '15' |
| isDisabled: false | | isDisabled: false |
- | - name: TOKYO MX | + | - name: MBS毎日放送 |
| type: GR | | type: GR |
| channel: '16' | | channel: '16' |
| channel: '20' | | channel: '20' |
| isDisabled: false | | isDisabled: false |
- | - name: フジテレビ | + | - name: NHK総合・大阪 |
- | type: GR | + | |
- | channel: '21' | + | |
- | - name: TBS | + | |
- | type: GR | + | |
- | channel: '22' | + | |
- | - name: テレビ東京 | + | |
- | type: GR | + | |
- | channel: '23' | + | |
- | - name: テレビ朝日 | + | |
| type: GR | | type: GR |
| channel: '24' | | channel: '24' |
- | - name: 日テレ | + | - name: サンテレビ |
- | type: GR | + | |
- | channel: '25' | + | |
- | - name: NHKEテレ・東京 | + | |
| type: GR | | type: GR |
| channel: '26' | | channel: '26' |
- | - name: NHK総合・東京 | + | - name: BS朝日 |
- | type: GR | + | |
- | channel: '27' | + | |
- | - name: BS朝日1 | + | |
| type: BS | | type: BS |
| channel: BS01_0 | | channel: BS01_0 |
| serviceId: 151 | | serviceId: 151 |
- | - name: BS朝日2 | + | - name: BS-TBS |
- | type: BS | + | |
- | channel: BS01_0 | + | |
- | serviceId: 152 | + | |
- | - name: BS-TBS | + | |
| type: BS | | type: BS |
| channel: BS01_1 | | channel: BS01_1 |
| serviceId: 161 | | serviceId: 161 |
- | - name: BSテレ東 | + | - name: BSテレ東 |
| type: BS | | type: BS |
| channel: BS01_2 | | channel: BS01_2 |
| serviceId: 171 | | serviceId: 171 |
- | - name: WOWOWプライム | + | - name: WOWOWプライム |
| type: BS | | type: BS |
| channel: BS03_0 | | channel: BS03_0 |
| serviceId: 191 | | serviceId: 191 |
- | isDisabled: true | + | - name: WOWOWライブ |
- | - name: NHKBSプレミアム | + | |
- | type: BS | + | |
- | channel: BS03_1 | + | |
- | serviceId: 104 | + | |
- | - name: NHKBSプレミアム | + | |
- | type: BS | + | |
- | channel: BS03_1 | + | |
- | serviceId: 103 | + | |
- | - name: WOWOWライブ | + | |
| type: BS | | type: BS |
| channel: BS05_0 | | channel: BS05_0 |
| serviceId: 192 | | serviceId: 192 |
- | isDisabled: true | + | - name: WOWOWシネマ |
- | - name: WOWOWシネマ | + | |
| type: BS | | type: BS |
| channel: BS05_1 | | channel: BS05_1 |
| serviceId: 193 | | serviceId: 193 |
- | isDisabled: true | + | - name: BS11 |
- | - name: BS11イレブン | + | |
| type: BS | | type: BS |
| channel: BS09_0 | | channel: BS09_0 |
| serviceId: 211 | | serviceId: 211 |
- | - name: BSスカパー! | + | - name: スター・チャンネル1 |
| + | type: BS |
| + | channel: BS09_1 |
| + | serviceId: 200 |
| + | - name: TwellV |
| + | type: BS |
| + | channel: BS09_2 |
| + | serviceId: 222 |
| + | - name: 放送大学ex |
| + | type: BS |
| + | channel: BS11_0 |
| + | serviceId: 231 |
| + | - name: 放送大学on |
| + | type: BS |
| + | channel: BS11_0 |
| + | serviceId: 232 |
| + | - name: BS釣りビジョン |
| type: BS | | type: BS |
| channel: BS11_1 | | channel: BS11_1 |
- | serviceId: 241 | + | serviceId: 251 |
- | - name: BS日テレ | + | - name: BS日テレ |
| type: BS | | type: BS |
| channel: BS13_0 | | channel: BS13_0 |
| serviceId: 141 | | serviceId: 141 |
- | - name: BS日テレ | + | - name: BSフジ |
- | type: BS | + | |
- | channel: BS13_0 | + | |
- | serviceId: 142 | + | |
- | - name: BSフジ・181 | + | |
| type: BS | | type: BS |
| channel: BS13_1 | | channel: BS13_1 |
| serviceId: 181 | | serviceId: 181 |
- | - name: NHK BS1 (Sub) | + | - name: BSアニマックス |
| type: BS | | type: BS |
- | channel: BS15_0 | + | channel: BS13_2 |
- | serviceId: 102 | + | serviceId: 236 |
- | - name: NHK BS1 | + | - name: NHK BS |
| type: BS | | type: BS |
| channel: BS15_0 | | channel: BS15_0 |
| serviceId: 101 | | serviceId: 101 |
| + | - name: スター・チャンネル2 |
| + | type: BS |
| + | channel: BS15_1 |
| + | serviceId: 201 |
| + | - name: スター・チャンネル3 |
| + | type: BS |
| + | channel: BS15_1 |
| + | serviceId: 202 |
| + | - name: J SPORTS 4 |
| + | type: BS |
| + | channel: BS19_0 |
| + | serviceId: 245 |
| + | - name: J SPORTS 1 |
| + | type: BS |
| + | channel: BS19_1 |
| + | serviceId: 242 |
| + | - name: J SPORTS 2 |
| + | type: BS |
| + | channel: BS19_2 |
| + | serviceId: 243 |
| + | - name: J SPORTS 3 |
| + | type: BS |
| + | channel: BS19_3 |
| + | serviceId: 244 |
| + | - name: WOWOWプラス |
| + | type: BS |
| + | channel: BS21_0 |
| + | serviceId: 252 |
| + | - name: 日本映画専門チャンネル |
| + | type: BS |
| + | channel: BS21_1 |
| + | serviceId: 255 |
| + | - name: グリーンチャンネル |
| + | type: BS |
| + | channel: BS21_2 |
| + | serviceId: 234 |
| + | - name: ディズニー・チャンネル |
| + | type: BS |
| + | channel: BS23_0 |
| + | serviceId: 256 |
| + | - name: BSよしもと |
| + | type: BS |
| + | channel: BS23_1 |
| + | isDisabled: false |
| + | serviceId: 265 |
| + | - name: BSJapanext |
| + | type: BS |
| + | channel: BS23_2 |
| + | isDisabled: false |
| + | serviceId: 263 |
| + | - name: BS松竹東急 |
| + | type: BS |
| + | channel: BS23_3 |
| + | isDisabled: false |
| + | serviceId: 260 |
| + | - name: TBSチャンネル1 |
| + | type: CS |
| + | channel: CS2 |
| + | serviceId: 296 |
| - name: テレ朝チャンネル1 | | - name: テレ朝チャンネル1 |
| type: CS | | type: CS |
| channel: CS2 | | channel: CS2 |
| serviceId: 298 | | serviceId: 298 |
- | isDisabled: true | |
| - name: テレ朝チャンネル2 | | - name: テレ朝チャンネル2 |
| type: CS | | type: CS |
| channel: CS2 | | channel: CS2 |
| serviceId: 299 | | serviceId: 299 |
- | isDisabled: true | + | - name: ディズニージュニア |
| + | type: CS |
| + | channel: CS2 |
| + | serviceId: 339 |
| + | - name: スカイA |
| + | type: CS |
| + | channel: CS4 |
| + | serviceId: 250 |
| + | - name: 時代劇専門ch |
| + | type: CS |
| + | channel: CS4 |
| + | serviceId: 292 |
| + | - name: エンタメ~テレ |
| + | type: CS |
| + | channel: CS4 |
| + | serviceId: 301 |
| + | - name: MTV |
| + | type: CS |
| + | channel: CS4 |
| + | serviceId: 323 |
| + | - name: ホームドラマch |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 294 |
| + | - name: ミュージック・エア |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 324 |
| + | - name: 歌謡ポップスch |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 329 |
| + | - name: カートゥーン |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 331 |
| + | - name: ディスカバリーチャンネル |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 340 |
| + | - name: アニマルプラネット |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 341 |
| + | - name: CNNj |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 354 |
| + | - name: 囲碁・将棋チャンネル |
| + | type: CS |
| + | channel: CS6 |
| + | serviceId: 363 |
| + | - name: 東映チャンネル |
| + | type: CS |
| + | channel: CS8 |
| + | serviceId: 218 |
| + | - name: 日テレNEWS24 |
| + | type: CS |
| + | channel: CS8 |
| + | serviceId: 349 |
| + | - name: 衛星劇場 |
| + | type: CS |
| + | channel: CS10 |
| + | serviceId: 219 |
| + | - name: スポーツライブ+ |
| + | type: CS |
| + | channel: CS10 |
| + | serviceId: 800 |
| + | - name: スカチャン1 |
| + | type: CS |
| + | channel: CS10 |
| + | serviceId: 801 |
| + | - name: GAORA |
| + | type: CS |
| + | channel: CS12 |
| + | serviceId: 254 |
| + | - name: エムオン! |
| + | type: CS |
| + | channel: CS12 |
| + | serviceId: 325 |
| + | - name: キッズステーション |
| + | type: CS |
| + | channel: CS12 |
| + | serviceId: 330 |
| + | - name: ナショナルジオグラフィック |
| + | type: CS |
| + | channel: CS12 |
| + | serviceId: 343 |
| + | - name: ザ・シネマ |
| + | type: CS |
| + | channel: CS14 |
| + | serviceId: 227 |
| + | - name: ファミリー劇場 |
| + | type: CS |
| + | channel: CS14 |
| + | serviceId: 293 |
| + | - name: スーパー!ドラマTV |
| + | type: CS |
| + | channel: CS14 |
| + | serviceId: 310 |
| + | - name: ヒストリーチャンネル |
| + | type: CS |
| + | channel: CS14 |
| + | serviceId: 342 |
| + | - name: SKY STAGE |
| + | type: CS |
| + | channel: CS16 |
| + | serviceId: 290 |
| + | - name: AXN海外ドラマ |
| + | type: CS |
| + | channel: CS16 |
| + | serviceId: 311 |
| + | - name: AXNミステリー |
| + | type: CS |
| + | channel: CS16 |
| + | serviceId: 316 |
| + | - name: スペシャプラス |
| + | type: CS |
| + | channel: CS16 |
| + | serviceId: 321 |
| - name: AT-X | | - name: AT-X |
| type: CS | | type: CS |
| channel: CS16 | | channel: CS16 |
| serviceId: 333 | | serviceId: 333 |
- | isDisabled: true | + | - name: BBCワールドニュース |
| + | type: CS |
| + | channel: CS16 |
| + | serviceId: 353 |
| + | - name: ムービープラス |
| + | type: CS |
| + | channel: CS18 |
| + | serviceId: 240 |
| + | - name: ゴルフネットワーク |
| + | type: CS |
| + | channel: CS18 |
| + | serviceId: 262 |
| + | - name: チャンネル銀河 |
| + | type: CS |
| + | channel: CS18 |
| + | serviceId: 305 |
| + | - name: 女性ch/LaLa |
| + | type: CS |
| + | channel: CS18 |
| + | serviceId: 314 |
| + | - name: フジテレビONE |
| + | type: CS |
| + | channel: CS20 |
| + | serviceId: 307 |
| + | - name: フジテレビTWO |
| + | type: CS |
| + | channel: CS20 |
| + | serviceId: 308 |
| + | - name: フジテレビNEXT |
| + | type: CS |
| + | channel: CS20 |
| + | serviceId: 309 |
| + | - name: スペースシャワーTV |
| + | type: CS |
| + | channel: CS20 |
| + | serviceId: 322 |
| + | - name: TBSチャンネル2 |
| + | type: CS |
| + | channel: CS22 |
| + | serviceId: 297 |
| + | - name: FOX |
| + | type: CS |
| + | channel: CS22 |
| + | serviceId: 312 |
| + | - name: TBS NEWS |
| + | type: CS |
| + | channel: CS22 |
| + | serviceId: 351 |
| + | - name: 映画ch・NECO |
| + | type: CS |
| + | channel: CS24 |
| + | serviceId: 223 |
| + | - name: 日テレG+ |
| + | type: CS |
| + | channel: CS24 |
| + | serviceId: 257 |
| + | - name: MONDO TV |
| + | type: CS |
| + | channel: CS24 |
| + | serviceId: 295 |
| - name: 日テレプラス | | - name: 日テレプラス |
| type: CS | | type: CS |
| channel: CS24 | | channel: CS24 |
| serviceId: 300 | | serviceId: 300 |
- | isDisabled: true | |
- | - name: AT-X HD | |
- | type: SKY | |
- | channel: ATXHD | |
- | serviceId: 33435 | |
- | satellite: JCSAT3A | |
- | isDisabled: true | |
- | - name: AXN HD | |
- | type: SKY | |
- | channel: AXNHD | |
- | serviceId: 33418 | |
- | satellite: JCSAT4A | |
- | isDisabled: true | |
- | - name: BS SPTV | |
- | type: SKY | |
- | channel: CH585 | |
- | serviceId: 33353 | |
- | satellite: JCSAT3A | |
- | isDisabled: true | |
| }} | | }} |
| + | 住んでいる所が大阪なんで,↑のようになった。~ |
| | | |
- | ''/usr/local/etc/mirakurun/channels.yml''でのチャンネル設定が出来たら,Mirakurunを再起動する。~ | + | ここ数年,放送が追加・停波などがあって以下のように修正している。~ |
| + | - 06/01/2021 修正~ |
| + | ''ディズニー・チャンネル''(BS3_2 → BS23_0)に修正。~ |
| + | - 03/27/2022 修正~ |
| + | ''BSよしもと''(BS23_1),''BSJapanext''(BS23_2),''BS松竹東急''(BS23_3)を追加。~ |
| + | - 11/01/2022 修正~ |
| + | ''BSスカパー!''(BS11_0)が停波したので削除。~ |
| + | ''放送大学ex''(BS11_1 → BS11_0),''放送大学on''(BS11_1 → BS11_0),''BS釣りビジョン''(BS11_2 → BS11_1)がそれぞれ繰り上がったので修正。~ |
| + | - 12/01/2023 修正~ |
| + | ''NHK BS1''が''NHK BS''(BS15_0のまま)になったので修正,''NHK プレミアム''(BS03_1)が停波(能登半島地震後,臨時目的放送として継続放送中)したので削除。~ |
| + | |
| + | ''/usr/local/etc/mirakurun/channels.yml''が作成できたら,Mirakurunを再起動する。~ |
| $ sudo mirakurun restart | | $ sudo mirakurun restart |
| | | |
- | //チャンネル設定を表示してみる。~ | + | //しばらく待っているとMirakurunでチャンネル情報が更新される。チャンネル情報を,rivarunを使って確認してみる。~ |
| // $ sudo rivarun --list | sed 's/},/},\n/g' | | // $ sudo rivarun --list | sed 's/},/},\n/g' |
- | //チャンネル設定は,住んでいる地域に応じて設定されているはず。~ | + | //この時,受信が出来ていないとrivarunで表示されない。servicesの[]の中身がないのは,情報更新が出来ない放送局。~ |
| + | // $ sudo rivarun --list | sed 's/},/},\n/g' | grep -v serviceId |
| // | | // |
- | 次にVLCを使ってMirakurunで配信される動画ストリームを再生してみる。~ | + | 録画出来るか試してみる。~ |
- | http://<RaspberryPiのIP>:40772/api/channels/GR/<チャンネル番号>/stream | + | // $ rivarun [--b25] [--mirakurun host:port] [--priority priority] [--sid SID] [--ch type/channel] rectime destfile |
| + | // |
| + | // $ rivarun --mirakurun localhost:40772 --b25 --sid 231 --ch BS/BS11_2 15 bs11_2-231.ts |
| + | // $ rivarun --mirakurun localhost:40772 --b25 --ch BS/BS11_2 15 bs11_2.ts |
| + | $ rivarun --mirakurun localhost:40772 --b25 --ch GR/22 15 22.ts |
| + | // $ rivarun --mirakurun localhost:40772 --b25 --sid 43008 --ch GR/22 15 22.ts |
| + | // # rivarun --mirakurun localhost:40772 --b25 --sid 1024 --ch GR/27 15 27.ts |
| + | // status: 200 |
| + | 15秒の録画ファイルが出来ていて,再生できれば問題ない。~ |
| + | |
| + | 次に他のPCでVLCを使ってMirakurunで配信される動画ストリームを再生してみる。~ |
| + | VLCのメニューのメディアを開く>ネットワークを開くで,~ |
| + | http://<mirakurunのIPAddress>:40772/api/channels/GR/<チャンネル番号>/stream |
| とか | | とか |
- | http://<RaspberryPiのIP>:40772/api/channels/BS/<チャンネル名>/services/<サービスID>/stream | + | http://<mirakurunのIPAddress>:40772/api/channels/BS/<チャンネル名>/services/<サービスID>/stream |
- | で,地デジやBS放送が視聴できれば正常に動作している。~ | + | で,地デジやBS放送が視聴できればMirakurunは正常に動作している。~ |
| チャンネル番号やサービスIDは,上記の''/usr/local/etc/mirakurun/channels.yml''に設定されている値を使う。 | | チャンネル番号やサービスIDは,上記の''/usr/local/etc/mirakurun/channels.yml''に設定されている値を使う。 |
| | | |
- | WEBブラウザで,http://<RaspberryPiのIP>:40772 にアクセスする。~ | + | WEBブラウザで,http://<mirakurunのIPAddress>:40772 にアクセスする。~ |
| Mirakurunの動作や設定管理が行えるので,必要であれば追加の設定をする。~ | | Mirakurunの動作や設定管理が行えるので,必要であれば追加の設定をする。~ |
| | | |
| ログを抑えるための設定をする。''/etc/logrotate.d/mirakurun''~ | | ログを抑えるための設定をする。''/etc/logrotate.d/mirakurun''~ |
| 下記の内容の''mirakurun''ファイルを作成する。 | | 下記の内容の''mirakurun''ファイルを作成する。 |
- | #code(text){{ | + | #code(text,nonumber){{ |
| /usr/local/var/log/mirakurun.stdout.log | | /usr/local/var/log/mirakurun.stdout.log |
| /usr/local/var/log/mirakurun.stderr.log | | /usr/local/var/log/mirakurun.stderr.log |
| { | | { |
- | daily | + | daily |
- | compress | + | compress |
- | rotate 7 | + | rotate 7 |
- | missingok | + | missingok |
- | notifempty | + | notifempty |
| } | | } |
| }} | | }} |
- | | |
- | //''/usr/local/etc/mirakurun/server.yml''ファイルを編集する。以下の一行を追加。~ | |
- | // highWaterMark: 268435456 | |
- | //キャッシュを増やす設定をしておく。~ | |
- | //''/usr/local/lib/node_modules/mirakurun/processes.json''ファイルを編集する。 | |
- | // "node_args" : "-r source-map-support/register --max_old_space_size=512", | |
- | // ↓ | |
- | // "node_args" : "--max_old_space_size=1024" | |
| | | |
| Mirakurunを再起動する。~ | | Mirakurunを再起動する。~ |
| | | |
| ** EPGStationのインストール [#y179d1cc] | | ** EPGStationのインストール [#y179d1cc] |
- | [[EPGStation>https://github.com/l3tnun/EPGStation]]は,テレビ放送の視聴・録画・動画配信・番組表に対応した録画サーバー。~ | + | [[EPGStation>https://github.com/l3tnun/EPGStation]]はテレビ放送の視聴・録画・動画配信・番組表予約に対応した録画サーバー。~ |
- | テレビ放送の番組を確認したり,録画予約をしたり,番組録画を行ったり,録画データの管理なんかが出来る。 | + | テレビ放送の番組を確認したり,録画予約をしたり,録画を行ったり,録画データの管理,テレビ・録画の視聴なんかがWEBブラウザ上で出来るようになる。 |
| | | |
- | [[EPGStation>https://github.com/l3tnun/EPGStation]]は,チューナーサーバーとして[[Mirakurun>https://github.com/Chinachu/Mirakurun]]を使用している。~ | + | EPGStationはTVチューナーとして[[Mirakurun>https://github.com/Chinachu/Mirakurun]]を使用している。 |
| + | EPGStationをMirakurunが動作しているマシン以外のマシンで動かすことも出来るが,今回はRaspberry Piで両方動かすようにしてみた。~ |
| + | |
| + | [[Node.js:https://nodejs.org/ja]]はv14またはv16(バージョン2.7.0からv18)が必要。また[[ffmpeg>http://ffmpeg.org/]],[[SQLite3:https://www.sqlite.org/]]か[[MySQL:https://www.mysql.com/jp/]]のDBも必要。~ |
| | | |
| 次のようにしてインストールした。 | | 次のようにしてインストールした。 |
- | $ cd ~/work | + | $ cd |
| $ git clone https://github.com/l3tnun/EPGStation.git | | $ git clone https://github.com/l3tnun/EPGStation.git |
| $ cd EPGStation | | $ cd EPGStation |
| $ npm run all-install | | $ npm run all-install |
| $ npm run build | | $ npm run build |
| + | このインストール作業は,かなり時間がかかる。~ |
| + | うまく行ったら設定ファイルを用意する。~ |
| $ cp config/config.yml.template config/config.yml | | $ cp config/config.yml.template config/config.yml |
| $ cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml | | $ cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml |
| $ cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml | | $ cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml |
| $ cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml | | $ cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml |
- | このインストール作業は,かなり時間がかかる。~ | + | $ cp config/enc.jp config/enc.jp |
| | | |
| DBにはデフォルトのSQLiteを使っている。SQLiteで正規表現を使えるようにする。 | | DBにはデフォルトのSQLiteを使っている。SQLiteで正規表現を使えるようにする。 |
- | $ wget https://www.sqlite.org/2019/sqli | + | $ wget https://www.sqlite.org/2019/sqlite-amalgamation-3290000.zip |
- | te-amalgamation-3290000.zip | + | |
| $ wget https://www.sqlite.org/2019/sqlite-src-3290000.zip | | $ wget https://www.sqlite.org/2019/sqlite-src-3290000.zip |
| $ unzip sqlite-amalgamation-3290000.zip | | $ unzip sqlite-amalgamation-3290000.zip |
| $ cd sqlite-amalgamation-3290000 | | $ cd sqlite-amalgamation-3290000 |
| $ gcc -g -fPIC -shared regexp.c -o regexp.so | | $ gcc -g -fPIC -shared regexp.c -o regexp.so |
- | $ sudo cp regexp.so ~/work/EPGStation/data/ | + | $ cp regexp.so ~/work/EPGStation/data/ |
| | | |
| *** EPGStationの設定 [#j2097540] | | *** EPGStationの設定 [#j2097540] |
| sqlite: | | sqlite: |
| extensions: | | extensions: |
- | - '/home/yuji/work/EPGStation/data/regexp.so' | + | - '/home/yuji/EPGStation/data/regexp.so' <-- 正規表現が使える |
| regexp: true | | regexp: true |
| + | |
| ffmpeg: '/usr/bin/ffmpeg' <-- ffmpegのパスを設定 | | ffmpeg: '/usr/bin/ffmpeg' <-- ffmpegのパスを設定 |
| ffprobe: '/usr/bin/ffprobe' <-- ffprobeのパスを設定 | | ffprobe: '/usr/bin/ffprobe' <-- ffprobeのパスを設定 |
- | | + | |
- | recordedFormat: '%HALF_WIDTH_TITLE% - %YEAR%-%MONTH%-%DAY%' <-- 録画ファイルのファイル名を設定 | + | |
| recorded: | | recorded: |
| - name: recorded | | - name: recorded |
| path: '/mnt/u3/video/record' <-- 録画ファイルの保存先を設定 | | path: '/mnt/u3/video/record' <-- 録画ファイルの保存先を設定 |
| | | |
- | ''config/config.yml''ファイルのliveのMP4セクションに以下を追加する。~ | + | 「Stream: live: MP4: 」セクションに以下を追加する。(リアルタイム視聴用)~ |
- | - name: h264_omx_3M | + | - name: h264_omx_4Mbps |
| cmd: | | cmd: |
- | '%FFMPEG% -dual_mono_mode main -re -i pipe:0 -sn -codec:a aac -ar 48000 -ac 2 -b:a 192k | + | '%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -c:a aac -ar 48000 -ac 2 -b:a 64k |
- | -c:v h264_omx -b:v 3000k -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 | + | -c:v h264_omx -b:v 4M -profile:v baseline -preset veryfast -tune fastdecode,zerolatency |
- | pipe:1' | + | -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 |
| + | pipe:1' |
| | | |
- | ''config/enc.js''ファイルを修正する。~ | + | ''config/enc.js''ファイルを修正する。(録画エンコード用)~ |
| 14行目あたりを~ | | 14行目あたりを~ |
| const codec = 'h264_omx'; | | const codec = 'h264_omx'; |
| + | に変更。~ |
| + | 35行目あたりを~ |
| + | if (videoHeight > 480) { |
| + | videoFilter += ',scale=-2:480' |
| + | } |
| に変更。~ | | に変更。~ |
| 40行目あたりに以下を追加する。~ | | 40行目あたりに以下を追加する。~ |
- | Array.prototype.push.apply(args, ['-b:v', '3000k']); | + | Array.prototype.push.apply(args, ['-b:v', '1500k']); |
| | | |
| EPGStationを起動する。~ | | EPGStationを起動する。~ |
| $ sudo pm2 startup | | $ sudo pm2 startup |
- | $ sudo pm2 start dist/server/index.js --name "epgstation" | + | $ sudo pm2 start dist/index.js --name "epgstation" |
| $ sudo pm2 save | | $ sudo pm2 save |
| | | |
| | | |
| WEBブラウザで以下のようにEPGStationアクセスする。 | | WEBブラウザで以下のようにEPGStationアクセスする。 |
- | http://<RaspberryPiのIP>:8888 | + | http://<EPGStationのIPAddress>:8888 |
- | しばらくしてら,番組表をクリックして番組表が表示されればOK。 | + | しばらくしてから,番組表をクリックして番組表が表示されれば動作している。 |
| + | #ref(epgstation.png,,40%) |
| + | |
| + | *** EPGStationの更新 [#cdf2270c] |
| + | バージョンアップ等で更新する場合は, |
| + | $ sudo pm2 stop epgstation |
| + | $ cd ~/EPGStation |
| + | $ git pull |
| + | $ npm run all-install |
| + | $ npm run build |
| + | とすると,更新できる。~ |
| + | もしエラー等が出てうまくインストール出来ない場合は,npmを更新してみるとかnpmのcacheをクリアーしたりする。~ |
| + | $ sudo npm install -g npm |
| + | その後,再度EPGStationを更新してみる。 |
| + | |
| + | うまく更新ができたら,EPGStationを再起動する。~ |
| + | $ sudo pm2 start dist/index.js --name "epgstation" |
| | | |
| * テレビ放送や録画したデータを見る方法 [#cce6fe4b] | | * テレビ放送や録画したデータを見る方法 [#cce6fe4b] |
- | テレビ放送や録画した動画データを再生するにはいくつか方法がある。~ | + | Mirakurun/EPGStationの環境でテレビ放送の視聴や録画した動画データを再生するには,いくつか方法がある。~ |
- | - EPGStationでストリーミング配信して,それをVLCなどのマルチメディアプレーヤーで視聴する。~ | + | - テレビ放送の視聴~ |
- | TV.m3u8ファイルのようなプレイリストを作っておけば,プレーヤー側で放送局を切り替えて視聴出来る。~ | + | -- WEBブラウザでEPGStationから視聴する~ |
- | - WindowsマシンのTVTestでテレビ放送を視聴する。~ | + | WEBブラウザを使ってEPGStationの放送中からテレビ放送を視聴することができる。~ |
- | [[BonDriver_Mirakurun>https://github.com/Chinachu/BonDriver_Mirakurun]]をTVTestのBonDriverに使うことで,TVTestでテレビ放送を視聴できる。~ | + | WEBブラウザで視聴する場合は,放送のMPEG2そのまま無変換で視聴する方法と,ffmpegでリアルタイムエンコードしたものを視聴する方法があるが,Rspberry Pi 4Bではリアルタイムエンコードの処理速度の問題でカクカクになってしまう。MP4でh264_omxを選んでもリアルタイムエンコードしながら視聴するのはちょっと厳しい。~ |
- | - 録画した動画ファイルをDLNAメディアサーバーなどで扱って,DLNAクライアントで見る。~ | + | EPGStationを十分な速度が出る別のマシンで動作させた場合,リアルタイムエンコードでの視聴も問題はない。~ |
- | - 録画した動画ファイルをSambaなどでファイル共有して,VLCなどのマルチメディアプレーヤーで見る。~ | + | //-- WEBブラウザで[[KonomiTV>https://github.com/tsukumijima/KonomiTV]]にアクセスして視聴する~ |
| + | //WEBサーバーとして[[KonomiTV>https://github.com/tsukumijima/KonomiTV]]が必要になる。~ |
| + | -- Windowsマシンで[[TVTest>/PC/PX-W3U4/px-w3u4でテレビを見る]]を使ってテレビ放送を視聴する~ |
| + | [[BonDriver_Mirakurun>https://github.com/Chinachu/BonDriver_Mirakurun]]もしくは[[BonDriver_EPGStation>https://github.com/xqq/BonDriver_EPGStation]]をTVTestのBonDriverに使うことで,TVTestでMirakurun(もしくはEPGStation)をチューナーとしてテレビ放送を視聴できる。~ |
| + | &ref(BonDriver_Mirakurun.zip,,自前ビルドしたBonDriver_Mirakurun); &ref(BonDriver_EPGStation.zip,,自前ビルドしたBonDriver_EPGStation);~ |
| + | -- VLCなどのマルチメディアプレーヤーで視聴する~ |
| + | MirakurunまたはEPGStationでストリーミング配信して,それを[[VLC>https://www.videolan.org/vlc/index.ja.html]]などのマルチメディアプレーヤーで視聴できる。スマートフォンやLinuxマシン,Windowsマシンなど多くの環境で使用できる。~ |
| + | TV.m3u8ファイルのようなプレイリストを作っておけば,マルチメディアプレーヤー側で放送局を切り替えて視聴出来るようになる。~ |
| + | http://<Mirakurunサーバー>:40772/api/iptv/playlist でプレイリストに直接アクセスできる。~ |
| + | http://<EPGSStationサーバー>:8888/api/iptv/channel.m3u8?mode=1 のようにするとリアルタイムエンコードするプレイリストに直接アクセスできる。~ |
| + | ただVLCだとプレイリストでのチャンネル選択が操作しづらい。~ |
| + | [[PotPlayer>https://potplayer.daum.net/]](Windowsのみ)だとプレイリストでのチャンネル選択も比較的やりやすい。~ |
| + | -- WindowsやLinux,Macで[[MirakTest>https://github.com/ci7lus/MirakTest]]でテレビ放送を視聴する~ |
| + | [[プラグイン>https://github.com/ci7lus/miraktest-plugins]]で機能を拡張できる。~ |
| + | -- [[Kodi>https://kodi.tv/]]と[[PVR IPTV Simple Client>https://github.com/kodi-pvr/pvr.iptvsimple/blob/Matrix/README.md]]アドオンを使ってテレビ放送を視聴する~ |
| + | KodiはWindows,Linux,Android,Raspberry Pi,macOS, iOSなんかで動作するメディアプレーヤー・アプリ。~ |
| + | MirakurunのM3U Playlist(チャンネル)とXMLTV(番組表)をKodiのIPTV Simple Clientアドオンに設定すればテレビ放送が視聴できる。~ |
| + | Fire TV Stickを使うと,リビングにあるテレビ(チューナーレステレビでも)でネットワーク経由で視聴できるようになって快適。~ |
| + | -- スマートフォンのアプリでテレビ放送を視聴する~ |
| + | IPTVクライアントアプリでMirakurunやEPGStationのM3U PlaylistとXMLTVを登録すれば,風呂でもテレビが見れる :) |
| + | --- Android:[[IPTV Pro>https://play.google.com/store/apps/details?id=ru.iptvremote.android.iptv.pro&hl=ja]]等~ |
| + | //や[[TiviMate IPTV Player>https://play.google.com/store/apps/details?id=ar.tvplayer.tv&hl=en_US]] |
| + | //や[[Smarters Player Lite>https://play.google.com/store/apps/details?id=com.nst.smartersplayer&hl=ja]] |
| + | --- iPhone:[[iPlayTV>https://apps.apple.com/us/app/iplaytv-iptv-m3u-player/id1072226801]]等~ |
| + | |
| + | - 録画予約をする~ |
| + | WEBブラウザ(Windows,Linux,Android端末...)からEPGStationを開いて,番組表や検索結果から録画予約・録画が出来る。~ |
| + | VPNで家のNetworkに接続すれば,外出先から録画予約をすることも出来る。~ |
| + | |
| + | - 録画した動画データを再生~ |
| + | -- WEBブラウザでEPGStationにアクセスして録画データを再生する~ |
| + | -- EPGStationで録画データーをストリーミング配信(HLSも可)して,それをVLCなどのマルチメディアプレーヤーやWEBブラウザなどで視聴する~ |
| + | -- 録画した動画ファイルをDLNAメディアサーバーなどで扱って,DLNAクライアントで視聴する~ |
| + | -- 録画した動画ファイルをSambaなどでファイル共有して,VLCなどのマルチメディアプレーヤーで視聴する~ |
| | | |
- | EPGStationで放送中のテレビ放送を,リアルタイムエンコードしてストリーム配信してVLCなんかで視聴する場合,Raspberry Pi4でffmpegによるリアルタイムエンコードを行うと動画がとぎれとぎれになってしまった。~ | + | EPGStationで放送中のテレビ放送をリアルタイムエンコードしてストリーム配信してVLCなんかで視聴する場合,Raspberry Pi4でffmpegによるリアルタイムエンコードを行うと動画がとぎれとぎれになってしまった。~ |
| m2tsの無変換(リアルタイムエンコードはしない)でストリーム配信して視聴する場合,使用しているネットワーク帯域が十分であれば(''NHK BSプレミアムだと18Mbps程度が必要'')うまく視聴できる。家のネットワーク環境ではギリギリだった。 | | m2tsの無変換(リアルタイムエンコードはしない)でストリーム配信して視聴する場合,使用しているネットワーク帯域が十分であれば(''NHK BSプレミアムだと18Mbps程度が必要'')うまく視聴できる。家のネットワーク環境ではギリギリだった。 |
| | | |
| 録画した動画ファイルを再生する場合は,ネットワーク上のファイルサーバーに保存しても特にとぎれとぎれになることはないみたいだ。 | | 録画した動画ファイルを再生する場合は,ネットワーク上のファイルサーバーに保存しても特にとぎれとぎれになることはないみたいだ。 |