2: 2021-08-06 (金) 07:28:24 yuji Deleted an attach file: BonDriver_Mirakurun.zip at 2021-08-17 (火) 14:11:12 |
現: 2021-08-21 (土) 10:57:30 yuji Deleted an attach file: channels.yml at 2024-10-24 (木) 17:51:57 at 2024-10-24 (木) 17:55:28 at 2024-11-13 (水) 17:15:53, Deleted an attach file: recpt1.patch at 2024-11-17 (日) 10:19:39 at 2024-11-17 (日) 10:43:05 |
||
---|---|---|---|
Line 1: | Line 1: | ||
* Raspberry PiでPX-W3U4を使ってみる [#q15a18cf] | * Raspberry PiでPX-W3U4を使ってみる [#q15a18cf] | ||
- | 旅行とかでテレビを見たい時はノートPCとPX-W3U4/B-CASカードを一緒に持って行ってるんだけど,自宅にいる時は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>/PC/RaspberryPi/スペック#y4caa92a]]~ | + | - 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クライアントで再生出来るようになるので便利になる。~ | ||
必要なパッケージをインストールする。~ | 必要なパッケージをインストールする。~ | ||
Line 34: | Line 37: | ||
* 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用のデバイスドライバーは用意されているが, |
- | そこで, nns779氏の[[px4_drv(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に取得される。 | + | nns779氏のpx4_drvをフォークしていくつか修正されたpx4_drvのソースコードを利用する場合は, |
+ | $ git clone https://github.com/tsukumijima/px4_drv.git | ||
+ | で取得する。 | ||
+ | |||
+ | ソースコードは,~/work/px4_drvに取得される。 | ||
*** ファームウェアの抽出とそのインストール [#r68cec67] | *** ファームウェアの抽出とそのインストール [#r68cec67] | ||
この非公式なpx4_drvデバイスドライバーによりPX-W3U4にファームウェアをアップロードする必要がある。~ | この非公式なpx4_drvデバイスドライバーによりPX-W3U4にファームウェアをアップロードする必要がある。~ | ||
- | デバイスドライバーをビルドする前に,このファームウェアを公式デバイスドライバーより抽出し所定の場所にインストールする必要がある。~ | + | デバイスドライバーをビルドする前に,このファームウェアを公式デバイスドライバーより抽出し,所定の場所にインストールする。~ |
まず,抽出ツールをビルドする。 | まず,抽出ツールをビルドする。 | ||
Line 59: | Line 74: | ||
$ 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 | ||
Line 80: | Line 95: | ||
*** デバイスドライバーのビルドとインストール [#t35b26de] | *** デバイスドライバーのビルドとインストール [#t35b26de] | ||
px4_drvデバイスドライバーをビルドしてインストールする。~ | px4_drvデバイスドライバーをビルドしてインストールする。~ | ||
- | //DKMSを使用しない場合。~ | ||
$ 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にインストールされる。 | + | |
- | //DKMSを使用する場合。~ | + | ''もしkernelが更新された場合は,再度ビルドし直してインストールする必要がある。''~ |
- | // $ sudo cp -a ./ /usr/src/px4_drv-0.2.1 | + | |
- | // $ sudo dkms add px4_drv/0.2.1 | + | この後PX-W3U4を接続し,正常にデバイスドライバーがロードされているか確認する。~ |
- | // $ sudo dkms install px4_drv/0.2.1 | + | # lsmod | grep px |
- | // | + | |
- | 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 | ||
のようにデバイスファイルが作成されている。~ | のようにデバイスファイルが作成されている。~ | ||
- | チューナーは,px4video0からISDB-S, ISDB-S, ISDB-T, ISDB-Tというように、SとTが2つずつ交互に割り当てられる。~ | + | |
+ | チューナーに対応して,px4video0からISDB-S, ISDB-S, ISDB-T, ISDB-Tというように、SとTが2つずつ割り当てられるデバイスファイルが作成される。~ | ||
*** デバイスドライバーのアンインストール [#n771cdd2] | *** デバイスドライバーのアンインストール [#n771cdd2] | ||
デバイスドライバーのアンインストールは以下のようにする。 | デバイスドライバーのアンインストールは以下のようにする。 | ||
- | |||
- | //DKMSを使用せずにインストールした場合。~ | ||
$ cd ~/work/px4_drv/driver | $ cd ~/work/px4_drv/driver | ||
$ sudo make uninstall | $ sudo make uninstall | ||
- | $ 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 |
+ | |||
+ | *** デバイスドライバーが動作しなくなった [#n2b5c3b8] | ||
+ | 突然PX-W3U4が動作しなくなっていた。~ | ||
+ | PX-W3U4をUSBでPCに接続すると本来はVID:PID=0511:083fで接続するはずなのだが,なぜかVID:PID=048d:9306に変わってしまっていて,デバイスドライバーが正常にロード出来ない。~ | ||
+ | |||
+ | EEPROMが書き換わってしまったようなのだが元の書き込んであるデータがわからないので,しょうがないので[[px-w3u4が動作しなくなった>../px-w3u4が動作しなくなった#d0ad29e0]]のようにソースコードを修正してビルドしなおして使用している。~ | ||
*** 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の内蔵カードリーダーで読み書きするデバイスドライバーは用意されていない。~ | + | この非公式デバイスドライバーpx4_drvには,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] | ||
Line 141: | Line 152: | ||
# 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] | ||
Line 154: | Line 162: | ||
なので,PX-W3U4のリモコンは使用できない。 | なので,PX-W3U4のリモコンは使用できない。 | ||
- | * 録画用ツールをインストールする [#g0a5e7a7] | + | [[Mirakurun>https://github.com/Chinachu/Mirakurun]](チューナー制御・テレビ放送受信・動画配信・番組表受信)を使用してクライアントからリモートでチャンネルを変更できるのでリモコンは特には必要無い。 |
+ | |||
+ | クライアント・アプリをリモコンを使って操作する方法はいろいろ([[IRリモコン>/PC/IRリモコン]]とか[[PCをスマートフォンからリモートコントロール>/PC/PCをスマートフォンからリモートコントロール]]とか・・・)あるので,必要であればそれを使用する。 | ||
+ | |||
+ | * 録画用ツール・ライブラリをインストールする [#g0a5e7a7] | ||
録画するためのツールとライブラリをインストールする。 | 録画するためのツールとライブラリをインストールする。 | ||
- | ** libarib25のインストール [#m503a9b3] | + | ** libarib25ライブラリーのインストール [#m503a9b3] |
- | 日本のデジタルテレビ放送は,暗号化されて配信されている。テレビ放送を受信してB-CASカードの情報を使って復号する必要があるのだが,このためにライブラリ化したのがlibarib25ライブラリー。 | + | 日本のデジタルテレビ放送は暗号化されて電波で配信されている。テレビ放送を受信してB-CASカードの情報を使って復号化する必要があるのだが,このための復号化するプログラムをライブラリ化したのがlibarib25ライブラリー。 |
ソースコードからビルドしてインストールする。~ | ソースコードからビルドしてインストールする。~ | ||
$ cd ~/work | $ cd ~/work | ||
$ git clone https://github.com/stz2012/libarib25.git | $ git clone https://github.com/stz2012/libarib25.git | ||
- | $ cd libarib25/cmake | + | $ cd libarib25 |
+ | $ mkdir build | ||
+ | $ cd build | ||
$ cmake .. | $ cmake .. | ||
$ 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 recpt1/recpt1 | $ cd recpt1/recpt1 | ||
+ | %%パッチ&ref(recpt1.patch);を当てる。%%~ | ||
+ | // $ patch < ../recpt1.patch | ||
+ | ビルドする。~ | ||
$ ./autogen.sh | $ ./autogen.sh | ||
$ ./configure --enable-b25 | $ ./configure --enable-b25 | ||
Line 184: | Line 200: | ||
$ 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チューナーを使用してテレビ放送を受信し,受信データをネットワークに配信するためのチューナーサーバー。~ |
- | これにより,ネットワークに接続した複数のクライアントで視聴・録画することが出来るようになる。 | + | これにより,ネットワークに接続した複数のクライアントでテレビ放送を視聴・録画することが出来るようになる。 |
- | インストールされている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になっている。とりあえずこのまま試してみた。~ | Rasbian BusterでインストールされているNode.jsはv10.24.0になっている。とりあえずこのまま試してみた。~ | ||
- | 後日バージョン3.7.1に更新しようとしたところ,v12かv14かv16のNode.jsが必要になったので,Node.jsをバージョン14.17.4に更新した。~ | + | 後日Mirakurunをバージョン3.7.1に更新しようとしたところ,v12かv14かv16のNode.jsが必要になったので,Node.jsをバージョン14.17.4に更新した。(バージョン3.9.0-rc3からv14/v16/v18になった。)~ |
- | + | もし未インストール(更新も)の場合,v16がいいのかな。~ | |
- | もし未インストール(更新も)の場合,v14をインストールする。 | + | |
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - | $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - | ||
$ sudo apt install nodejs | $ 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は動作している。~ | ||
Line 217: | Line 236: | ||
Mirakurunを更新する場合は, | Mirakurunを更新する場合は, | ||
+ | $ sudo mirakurun stop | ||
$ sudo npm install mirakurun -g --unsafe-perm --production | $ sudo npm install mirakurun -g --unsafe-perm --production | ||
のようにする。 | のようにする。 | ||
- | Mirakurunをアンインストールする場合は, | + | Mirakurunや録画ツールをアンインストールする場合は, |
+ | $ sudo pm2 stop mirakurun-server | ||
+ | $ sudo pm2 delete mirakurun-server | ||
+ | $ sudo pm2 save | ||
$ sudo npm uninstall mirakurun -g --unsafe-perm | $ sudo npm uninstall mirakurun -g --unsafe-perm | ||
+ | $ sudo npm uninstall arib-b25-stream-test -g --unsafe-perm | ||
+ | $ sudo npm uninstall rivarun -g | ||
でアンインストールできる。~ | でアンインストールできる。~ | ||
Line 228: | Line 253: | ||
*** サーバーの設定 [#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,,tuners.yml) |
- | - name: PX4-S1 | + | テレビ放送の復号化(スクランブル解除)は,''recpt1でも行えるがarib-b25-stream-testで行うようにした。''~ |
- | types: | + | これはMirakurun側で復号化を行わず,クライアント側で復号化を行いたい場合に対応するため。~ |
- | - BS | + | |
- | - CS | + | |
- | command: recpt1 --strip --device /dev/px4video0 <channel> - - | + | |
- | decoder: arib-b25-stream-test | + | |
- | isDisabled: false | + | |
- | + | ||
- | - name: PX4-S2 | + | |
- | types: | + | |
- | - BS | + | |
- | - CS | + | |
- | command: recpt1 --strip --device /dev/px4video1 <channel> - - | + | |
- | decoder: arib-b25-stream-test | + | |
- | isDisabled: false | + | |
- | + | ||
- | - name: PX4-T1 | + | |
- | types: | + | |
- | - GR | + | |
- | command: recpt1 --strip --device /dev/px4video2 <channel> - - | + | |
- | decoder: arib-b25-stream-test | + | |
- | isDisabled: false | + | |
- | + | ||
- | - name: PX4-T2 | + | |
- | types: | + | |
- | - GR | + | |
- | command: recpt1 --strip --device /dev/px4video3 <channel> - - | + | |
- | decoder: arib-b25-stream-test | + | |
- | isDisabled: false | + | |
- | }} | + | |
*** チャンネル設定 [#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?type=GR&refresh=true" |
- | うまく行けば,''/usr/local/etc/mirakurun/channels.yml''に地上波とBSのチャンネルが設定されている。(BSは3.4.0から対応されている。)~ | + | うまく行けば,''/usr/local/etc/mirakurun/channels.yml''ファイルに,地上波のチャンネルが設定される。~ |
- | #code(text){{ | + | |
- | - name: NHKEテレ | + | |
- | type: GR | + | |
- | channel: '13' | + | |
- | isDisabled: false | + | |
- | - name: 読売テレビ | + | |
- | type: GR | + | |
- | channel: '14' | + | |
- | isDisabled: false | + | |
- | - name: ABCテレビ | + | |
- | type: GR | + | |
- | channel: '15' | + | |
- | isDisabled: false | + | |
- | - name: TOKYO MX | + | |
- | type: GR | + | |
- | channel: '16' | + | |
- | - name: 関西テレビ | + | |
- | type: GR | + | |
- | channel: '17' | + | |
- | isDisabled: false | + | |
- | - name: テレビ大阪 | + | |
- | type: GR | + | |
- | channel: '18' | + | |
- | isDisabled: false | + | |
- | - name: スカパー!ナビ | + | |
- | type: GR | + | |
- | channel: '20' | + | |
- | isDisabled: false | + | |
- | - name: フジテレビ | + | |
- | type: GR | + | |
- | channel: '21' | + | |
- | - name: TBS | + | |
- | type: GR | + | |
- | channel: '22' | + | |
- | - name: テレビ東京 | + | |
- | type: GR | + | |
- | channel: '23' | + | |
- | - name: テレビ朝日 | + | |
- | type: GR | + | |
- | channel: '24' | + | |
- | - name: 日テレ | + | |
- | type: GR | + | |
- | channel: '25' | + | |
- | - name: NHKEテレ・東京 | + | |
- | type: GR | + | |
- | channel: '26' | + | |
- | - name: NHK総合・東京 | + | |
- | type: GR | + | |
- | channel: '27' | + | |
- | - name: BS朝日1 | + | |
- | type: BS | + | |
- | channel: BS01_0 | + | |
- | serviceId: 151 | + | |
- | - name: BS朝日2 | + | |
- | type: BS | + | |
- | channel: BS01_0 | + | |
- | serviceId: 152 | + | |
- | - name: BS-TBS | + | |
- | type: BS | + | |
- | channel: BS01_1 | + | |
- | serviceId: 161 | + | |
- | - name: BSテレ東 | + | |
- | type: BS | + | |
- | channel: BS01_2 | + | |
- | serviceId: 171 | + | |
- | - name: WOWOWプライム | + | |
- | type: BS | + | |
- | channel: BS03_0 | + | |
- | serviceId: 191 | + | |
- | isDisabled: true | + | |
- | - name: NHKBSプレミアム | + | |
- | type: BS | + | |
- | channel: BS03_1 | + | |
- | serviceId: 104 | + | |
- | - name: NHKBSプレミアム | + | |
- | type: BS | + | |
- | channel: BS03_1 | + | |
- | serviceId: 103 | + | |
- | - name: WOWOWライブ | + | |
- | type: BS | + | |
- | channel: BS05_0 | + | |
- | serviceId: 192 | + | |
- | isDisabled: true | + | |
- | - name: WOWOWシネマ | + | |
- | type: BS | + | |
- | channel: BS05_1 | + | |
- | serviceId: 193 | + | |
- | isDisabled: true | + | |
- | - name: BS11イレブン | + | |
- | type: BS | + | |
- | channel: BS09_0 | + | |
- | serviceId: 211 | + | |
- | - name: BSスカパー! | + | |
- | type: BS | + | |
- | channel: BS11_1 | + | |
- | serviceId: 241 | + | |
- | - name: BS日テレ | + | |
- | type: BS | + | |
- | channel: BS13_0 | + | |
- | serviceId: 141 | + | |
- | - name: BS日テレ | + | |
- | type: BS | + | |
- | channel: BS13_0 | + | |
- | serviceId: 142 | + | |
- | - name: BSフジ・181 | + | |
- | type: BS | + | |
- | channel: BS13_1 | + | |
- | serviceId: 181 | + | |
- | - name: NHK BS1 (Sub) | + | |
- | type: BS | + | |
- | channel: BS15_0 | + | |
- | serviceId: 102 | + | |
- | - name: NHK BS1 | + | |
- | type: BS | + | |
- | channel: BS15_0 | + | |
- | serviceId: 101 | + | |
- | - name: テレ朝チャンネル1 | + | |
- | type: CS | + | |
- | channel: CS2 | + | |
- | serviceId: 298 | + | |
- | isDisabled: true | + | |
- | - name: テレ朝チャンネル2 | + | |
- | type: CS | + | |
- | channel: CS2 | + | |
- | serviceId: 299 | + | |
- | isDisabled: true | + | |
- | - name: AT-X | + | |
- | type: CS | + | |
- | channel: CS16 | + | |
- | serviceId: 333 | + | |
- | isDisabled: true | + | |
- | - name: 日テレプラス | + | |
- | type: CS | + | |
- | channel: CS24 | + | |
- | 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 | + | |
- | }} | + | |
- | BS/CSを全て登録したい場合は,[[ここ>https://gist.github.com/Connie-Wild/877b48382139fc03282eb448827c6d4b]]の情報を追加する。 | + | |
- | ''/usr/local/etc/mirakurun/channels.yml''でのチャンネル設定が出来たら,Mirakurunを再起動する。~ | + | BSとCSは, |
- | $ sudo mirakurun restart | + | $ sudo curl -X PUT "http://<mirakurunのIPAddress>:40772/api/config/channels/scan?type=BS&refresh=true" |
+ | $ sudo curl -X PUT "http://<mirakurunのIPAddress>:40772/api/config/channels/scan?type=CS&refresh=true" | ||
+ | でチャンネルが設定される。(BS/CSはバージョン3.4.0から対応されている。)~ | ||
- | //チャンネル設定を表示してみる。~ | + | ''/usr/local/etc/mirakurun/channels.yml''を作成・編集しても問題なかった。~ |
- | // $ sudo rivarun --list | sed 's/},/},\n/g' | + | #code(text,nonumber,,channels.yml) |
- | //チャンネル設定は,住んでいる地域に応じて設定されているはず。~ | + | 住んでいる所が大阪なんで,↑のようになった。BS/CSは全国共通だと思う。~ |
- | // | + | |
- | 次にVLCを使ってMirakurunで配信される動画ストリームを再生してみる。~ | + | |
- | http://<RaspberryPiのIP>:40772/api/channels/GR/<チャンネル番号>/stream | + | |
- | とか | + | |
- | http://<RaspberryPiのIP>:40772/api/channels/BS/<チャンネル名>/services/<サービスID>/stream | + | |
- | で,地デジやBS放送が視聴できれば正常に動作している。~ | + | |
- | チャンネル番号やサービスIDは,上記の''/usr/local/etc/mirakurun/channels.yml''に設定されている値を使う。 | + | |
- | WEBブラウザで,http://<RaspberryPiのIP>:40772 にアクセスする。~ | + | ここ数年,放送が追加・停波・変更などがあって以下のように修正している。~ |
- | Mirakurunの動作や設定管理が行えるので,必要であれば追加の設定をする。~ | + | - 06/01/2021 修正~ |
+ | ''ディズニー・チャンネル''(BS3_2,ch256)→(BS23_0,ch256)に修正。~ | ||
+ | - 03/27/2022 修正~ | ||
+ | ''BS松竹東急''(BS23_3,ch260),''BSJapanext''(BS23_2,ch263),''BSよしもと''(BS23_1,ch265)を追加。~ | ||
+ | - 11/01/2022 修正~ | ||
+ | ''BSスカパー!''(BS11_0,ch241)が停波したので削除。~ | ||
+ | ''放送大学ex''(BS11_1,ch231) → ''放送大学テレビ(メイン)''(BS11_0,ch231),''放送大学on''(BS11_1,ch232) → ''放送大学テレビ(サブ)''(BS11_0,ch232)に名称変更・繰り上がったので修正。~ | ||
+ | ''BS釣りビジョン''(BS11_2,ch251)→(BS11_1,ch251)が繰り上がったので修正。~ | ||
+ | - 12/01/2023 修正~ | ||
+ | ''NHK BS1''(BS15_0,ch101)が''NHK BS''になったので修正。~ | ||
+ | ''NHK プレミアム''(BS03_1,ch102)が停波(能登半島地震後,臨時目的放送として一時放送。)したので削除。~ | ||
+ | - 03/01/2024 修正~ | ||
+ | ''FOX''(CS22,ch312)の名称が''Dlife''(CS22,ch312)に変更されたので修正。~ | ||
+ | - 06/01/2024 修正~ | ||
+ | ''スター・チャンネル1''(BS09_1, ch200)が停波したので削除。~ | ||
+ | ''スター・チャンネル2''(BS15_1, ch201) → ''スター・チャンネル''(BS15_1, ch200)になったので修正。~ | ||
+ | ''スター・チャンネル3''(BS15_1, ch202)が停波したので削除。~ | ||
+ | - 10/19/2024 修正~ | ||
+ | ''BSアニマックス''(BS13_2, ch236)が(BS03_01, ch236)に変更されたので修正。~ | ||
+ | ''BS釣りビジョン''(BS11_1, ch251)が(BS03_02, ch251)に変更されたので修正。~ | ||
+ | - 11/11/2024 予定~ | ||
+ | ''放送大学テレビ(メイン)''(BS11_0,ch231)が(BS13_2,ch231)に, | ||
+ | ''放送大学テレビ(サブ)''(BS11_0,ch232)が(BS13_2,ch232)に変更されたので修正。~ | ||
+ | - 01/10/2025 予定~ | ||
+ | ''BSJapanext''(BS23_2,ch263)が''BS10''(BS15_1,ch200)に,''スター・チャンネル''(BS15_1, ch200)が''BS10スター・チャンネル''(BS15_1,ch201)に変更予定。~ | ||
*** ログの管理 [#z40b70ce] | *** ログの管理 [#z40b70ce] | ||
+ | ログファイルが肥大化しないように,以下のパッケージをインストールする。~ | ||
$ sudo pm2 install pm2-logrotate | $ sudo pm2 install pm2-logrotate | ||
- | ログを抑えるための設定をする。''/etc/logrotate.d/mirakurun''~ | + | ''/etc/logrotate.d/mirakurun''ファイルを下記の内容で作成する。~ |
- | 下記の内容の''mirakurun''ファイルを作成する。 | + | #code(text,nonumber){{ |
- | #code(text){{ | + | |
/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''ファイルを編集する。以下の一行を追加。~ | + | *** Mirakurunの再起動 [#f8e2442d] |
- | // highWaterMark: 268435456 | + | ''/usr/local/etc/mirakurun/channels.yml''が作成・修正したら,Mirakurunを再起動する。~ |
- | //キャッシュを増やす設定をしておく。~ | + | $ sudo mirakurun restart |
- | //''/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がテレビ放送電波を受信してチャンネル情報等を登録するのを,15-30分程度待つ。~ |
- | $ sudo mirakurun restart | + | |
+ | //しばらく待っているとMirakurunでチャンネル情報が更新される。チャンネル情報を,rivarunを使って確認してみる。~ | ||
+ | // $ sudo rivarun --list | sed 's/},/},\n/g' | ||
+ | //この時,受信が出来ていないとrivarunで表示されない。servicesの[]の中身がないのは,情報更新が出来ない放送局。~ | ||
+ | // $ sudo rivarun --list | sed 's/},/},\n/g' | grep -v serviceId | ||
+ | // | ||
+ | 録画出来るか試してみる。~ | ||
+ | // $ 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://<mirakurunのIPAddress>:40772/api/channels/BS/<チャンネル名>/services/<サービスID>/stream | ||
+ | で,地デジやBS放送が視聴できればMirakurunは正常に動作している。~ | ||
+ | チャンネル番号やサービスIDは,上記の''/usr/local/etc/mirakurun/channels.yml''に設定されている値を使う。 | ||
+ | |||
+ | WEBブラウザで,http://<mirakurunのIPAddress>:40772 にアクセスする。~ | ||
+ | Mirakurunの動作や設定管理が行えるので,必要であれば追加の設定をする。~ | ||
** EPGStationのインストール [#y179d1cc] | ** EPGStationのインストール [#y179d1cc] | ||
- | [[EPGStation>https://github.com/l3tnun/EPGStation]]は,テレビ放送の視聴・録画・動画配信・番組表に対応した録画サーバー。~ | + | [[EPGStation>https://github.com/l3tnun/EPGStation]]はテレビ放送の視聴・録画・動画配信・番組表予約に対応した録画サーバー。~ |
- | テレビ放送の番組を確認したり,録画予約をしたり,番組録画を行ったり,録画データの管理なんかがWEB上で出来るようになる。 | + | テレビ放送の番組を確認したり,録画予約をしたり,録画を行ったり,録画データの管理,テレビ・録画の視聴なんかがWEBブラウザ上で出来るようになる。 |
- | [[EPGStation>https://github.com/l3tnun/EPGStation]]は,チューナーサーバーとして[[Mirakurun>https://github.com/Chinachu/Mirakurun]]を使用している。(Node.jsはv14またはv16が必要。またffmpegも必要。)~ | + | 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も必要。~ | ||
次のようにしてインストールした。 | 次のようにしてインストールした。 | ||
Line 486: | Line 389: | ||
$ 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で正規表現を使えるようにする。 | ||
Line 500: | Line 405: | ||
$ 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] | ||
Line 507: | Line 412: | ||
sqlite: | sqlite: | ||
extensions: | extensions: | ||
- | - '/home/yuji/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を起動する。~ | ||
Line 542: | Line 451: | ||
WEBブラウザで以下のようにEPGStationアクセスする。 | WEBブラウザで以下のようにEPGStationアクセスする。 | ||
- | http://<RaspberryPiのIP>:8888 | + | http://<EPGStationのIPAddress>:8888 |
- | しばらくしてら,番組表をクリックして番組表が表示されればOK。 | + | しばらくしてから,番組表をクリックして番組表が表示されれば動作している。 |
+ | #ref(epgstation.png,,40%) | ||
+ | |||
+ | これで,EPGSTationでTV放送の視聴や番組表を見たり,録画予約などの操作ができる :) | ||
*** EPGStationの更新 [#cdf2270c] | *** EPGStationの更新 [#cdf2270c] | ||
- | 更新は, | + | バージョンアップ等で更新する場合は, |
$ sudo pm2 stop epgstation | $ sudo pm2 stop epgstation | ||
$ cd ~/EPGStation | $ cd ~/EPGStation | ||
Line 552: | Line 464: | ||
$ npm run all-install | $ npm run all-install | ||
$ npm run build | $ npm run build | ||
- | とした後,EPGStationを再起動する。 | + | とすると,更新できる。~ |
+ | もしエラー等が出てうまくインストール出来ない場合は,npmを更新してみるとかnpmのcacheをクリアーしたりする。~ | ||
+ | $ sudo npm install -g npm | ||
+ | その後,再度EPGStationを更新してみる。 | ||
+ | |||
+ | うまく更新ができたら,EPGStationを再起動する。~ | ||
$ sudo pm2 start dist/index.js --name "epgstation" | $ sudo pm2 start dist/index.js --name "epgstation" | ||
* テレビ放送や録画したデータを見る方法 [#cce6fe4b] | * テレビ放送や録画したデータを見る方法 [#cce6fe4b] | ||
- | テレビ放送の視聴や録画した動画データを再生するにはいくつか方法がある。~ | + | Mirakurun/EPGStationの環境でテレビ放送の視聴や録画した動画データを再生するには,いくつか方法がある。~ |
- テレビ放送の視聴~ | - テレビ放送の視聴~ | ||
- | -- WindowsマシンのTVTestでテレビ放送を視聴する。~ | + | -- WEBブラウザでEPGStationから視聴する~ |
- | [[BonDriver_Mirakurun>https://github.com/Chinachu/BonDriver_Mirakurun]]をTVTestのBonDriverに使うことで,TVTestでMirakurunをチューナーとしてテレビ放送を視聴できる。~ | + | WEBブラウザを使ってEPGStationの放送中からテレビ放送を視聴することができる。~ |
- | &ref(BonDriver_Mirakurun.zip,,ビルドしたBonDriver_Mirakurun);~ | + | WEBブラウザで視聴する場合は,放送のMPEG2そのまま無変換で視聴する方法と,ffmpegでリアルタイムエンコードしたものを視聴する方法があるが,Rspberry Pi 4Bではリアルタイムエンコードの処理速度の問題でカクカクになってしまう。MP4でh264_omxを選んでもリアルタイムエンコードしながら視聴するのはちょっと厳しい。~ |
- | -- MirakurunまたはEPGStationでストリーミング配信して,それをVLCなどのマルチメディアプレーヤーで視聴する。~ | + | EPGStationを十分な速度が出る別のマシンで動作させた場合,リアルタイムエンコードでの視聴も問題はない。~ |
- | TV.m3u8ファイルのようなプレイリストを作っておけば,プレーヤー側で放送局を切り替えて視聴出来る。~ | + | //-- WEBブラウザで[[KonomiTV>https://github.com/tsukumijima/KonomiTV]]にアクセスして視聴する~ |
- | また,http://<Mirakurunサーバー>:40772/api/iptv/playlist でプレイリストにアクセスできる。~ | + | //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);~ | ||
+ | -- Macで[[Meruru>https://github.com/castaneai/Meruru]]を使ってテレビ放送を視聴する~ | ||
+ | -- WindowsやLinux,Macで[[MirakTest>https://github.com/ci7lus/MirakTest]]でテレビ放送を視聴する~ | ||
+ | [[プラグイン>https://github.com/ci7lus/miraktest-plugins]]で機能を拡張できる。~ | ||
+ | -- 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のみ)だとプレイリストでのチャンネル選択も比較的やりやすいのでおすすめ。~ | ||
+ | -- [[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に接続すれば,外出先から録画予約をすることも出来る。~ | ||
- 録画した動画データを再生~ | - 録画した動画データを再生~ | ||
- | -- EPGStationで録画データをWEB上で再生する。~ | + | -- WEBブラウザでEPGStationにアクセスして録画データを再生する~ |
- | -- EPGStationで録画データーをストリーミング配信して,それをVLCなどのマルチメディアプレーヤーで視聴する。~ | + | -- EPGStationで録画データーをストリーミング配信(HLSも可)して,それをVLCなどのマルチメディアプレーヤーやWEBブラウザなどで視聴する~ |
- | -- 録画した動画ファイルをDLNAメディアサーバーなどで扱って,DLNAクライアントで見る。~ | + | -- 録画した動画ファイルをDLNAメディアサーバーなどで扱って,DLNAクライアントで視聴する~ |
- | -- 録画した動画ファイルをSambaなどでファイル共有して,VLCなどのマルチメディアプレーヤーで見る。~ | + | -- 録画した動画ファイルをSambaなどでファイル共有して,VLCなどのマルチメディアプレーヤーで視聴する~ |
- | EPGStationで放送中のテレビ放送を,リアルタイムエンコードしてストリーム配信してVLCなんかで視聴する場合,Raspberry Pi4でffmpegによるリアルタイムエンコードを行うと動画がとぎれとぎれになってしまった。~ | + | EPGStationで放送中のテレビ放送をリアルタイムエンコードしてストリーム配信してVLCなんかで視聴する場合,Raspberry Pi4でffmpegによるリアルタイムエンコードを行うと動画がとぎれとぎれになってしまった。~ |
m2tsの無変換(リアルタイムエンコードはしない)でストリーム配信して視聴する場合,使用しているネットワーク帯域が十分であれば(''NHK BSプレミアムだと18Mbps程度が必要'')うまく視聴できる。家のネットワーク環境ではギリギリだった。 | m2tsの無変換(リアルタイムエンコードはしない)でストリーム配信して視聴する場合,使用しているネットワーク帯域が十分であれば(''NHK BSプレミアムだと18Mbps程度が必要'')うまく視聴できる。家のネットワーク環境ではギリギリだった。 | ||
録画した動画ファイルを再生する場合は,ネットワーク上のファイルサーバーに保存しても特にとぎれとぎれになることはないみたいだ。 | 録画した動画ファイルを再生する場合は,ネットワーク上のファイルサーバーに保存しても特にとぎれとぎれになることはないみたいだ。 |