|
1: 2021-07-28 (水) 08:54:35 yuji |
| + | * Raspberry PiでPX-W3U4を使ってみる [#q15a18cf] |
| + | 出先でテレビを見たい時は,ノートPCとPX-W3U4を一緒に持って行ってるんだけど,自宅にいる時はPX-W3U4は使っていなかった。 |
| | | |
| + | これではもったいないので,自宅でもRaspberry PiでPX-W3U4を使って,他のPCやスマートフォンからテレビ放送を視聴したり録画予約を出来るようにしてみることにした。 |
| + | |
| + | 使用するRaspberry Piは, |
| + | Raspberry Pi4B 4GB |
| + | OS: Raspbian buster 32bit |
| + | を使用している。 |
| + | |
| + | 家のどのPCからも録画予約・録画や,テレビの視聴が出来るようになって便利に使えるようになった :) |
| + | |
| + | * 録画保存場所をファイルサーバーにする [#p96b6792] |
| + | 録画データは自宅のLAN上にあるファイルサーバーに保存するために,sambaを使ってマウントして保存先とする。~ |
| + | |
| + | 必要なパッケージをインストールする。~ |
| + | # apt install cifs-utils |
| + | |
| + | マウントポイントを作成する。~ |
| + | # mkdir /mnt/u3 |
| + | # chmod 777 /mnt/u3 |
| + | |
| + | 試しにマウントしてみる。~ |
| + | # mount -t cifs //<サーバーのIPアドレス>/public /mnt/u3 -o username=user,password=password,file_mode=0777,dir_mode=0777,iocharset=utf8,defaults |
| + | |
| + | うまくマウント出来た場合は, |
| + | # umount /mnt/u3 |
| + | マウントを解除する。 |
| + | |
| + | ''/etc/fstab''に以下を追加する。~ |
| + | //<サーバーのIPアドレス>/public /mnt/u3 cifs username=user,password=password,file_mode=0777,dir_mode=0777,iocharset=utf8,noauto,x-systemd.automount 0 0 |
| + | |
| + | Raspberry Piを再起動して/mnt/u3にマウント出来ているか確認する。 |
| + | |
| + | * PX-W3U4のデバイスドライバーをインストールする [#m337fa52] |
| + | PX-W3U4を使用できるように,デバイスドライバーを用意する。 |
| + | |
| + | ** 必要なパッケージを入れる [#uc674833] |
| + | 必要なパッケージをパッケージマネージャーでインストールしておく。 |
| + | # apt install cmake automake autoconf exfat-utils git wget python |
| + | # apt install build-essential yasm libtool libssl-dev ffmpeg sqlite3 |
| + | # apt install raspberrypi-kernel-headers |
| + | |
| + | ** PX-W3U4のデバイスドライバーの取得とインストール [#o7bbe34b] |
| + | [[PLEX社>http://plex-net.co.jp/]]からLinux用のデバイスドライバーは用意されているが,ソースコードが提供されない・Kernelが限定されているなどの問題がある。~ |
| + | そこで,[[chardev版非公式なLinuxドライバー>https://github.com/nns779/px4_drv]]をありがたく使用する。~ |
| + | |
| + | まずデバイスドライバーのソースコードを取得する。~ |
| + | $ cd ~/work |
| + | $ git clone https://github.com/nns779/px4_drv |
| + | ソースコードは,work/px4_drvに取得される。 |
| + | |
| + | *** ファームウェアの抽出とそのインストール [#r68cec67] |
| + | この非公式なデバイスドライバーは,ファームウェアを公式ドライバより抽出して使用する。 |
| + | |
| + | デバイスドライバーをビルドする前に,ファームウェアを公式ドライバより抽出しインストールを行う必要がある。~ |
| + | |
| + | 抽出ツールをビルドする。 |
| + | $ cd ~/work/px4_drv/fwtool/ |
| + | $ make |
| + | |
| + | 公式のWindows用のデバイスドライバー(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 |
| + | $ ./fwtool PXW3U4.sys it930x-firmware.bin |
| + | fwtool for px4 drivers |
| + | |
| + | Driver file (in) : PXW3U4.sys |
| + | Firmware file (out) : it930x-firmware.bin |
| + | |
| + | Driver description: PX-W3U4 BDA Ver.1.4 64bit |
| + | Firmware length: 7013 bytes |
| + | Firmware CRC32: df0bf49a |
| + | OK. |
| + | // it930x-firmware.binは,CRC32が0b41a994のものがおすすめらしい。 |
| + | 抽出したファームウェアをシステム上に配置する。 |
| + | $ sudo mkdir -p /lib/firmware |
| + | $ sudo cp it930x-firmware.bin /lib/firmware/ |
| + | $ cd .. |
| + | |
| + | *** デバイスドライバーのビルドとインストール [#t35b26de] |
| + | //DKMSを使用しない場合。~ |
| + | $ cd ~/work/px4_drv/driver |
| + | $ make |
| + | $ sudo make install |
| + | $ cd .. |
| + | これで,デバイスドライバーが/lib/module/<kernel>/miscにインストールされ,udev用のファイルが/etc/udev/rules.d/99-px4video.rulesにインストールされる。 |
| + | |
| + | //DKMSを使用する場合。~ |
| + | // $ sudo cp -a ./ /usr/src/px4_drv-0.2.1 |
| + | // $ 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 |
| + | と表示されていればデバイスドライバーがロードされている。~ |
| + | |
| + | もしロードされていない場合は, |
| + | $ sudo modprobe px4_drv |
| + | として,手動でロードしてみる。 |
| + | |
| + | また, |
| + | $ ls /dev/px* |
| + | /dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4video3 |
| + | のようにデバイスファイルが作成されている。~ |
| + | チューナーは,px4video0からISDB-S, ISDB-S, ISDB-T, ISDB-Tというように、SとTが2つずつ交互に割り当てられる。~ |
| + | |
| + | *** デバイスドライバーのアンインストール [#n771cdd2] |
| + | デバイスドライバーのアンインストールは以下のようにする。 |
| + | |
| + | //DKMSを使用せずにインストールした場合。~ |
| + | $ cd ~/work/px4_drv/driver |
| + | $ 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 |
| + | |
| + | *** LNB電源の出力 [#f178807a] |
| + | PX-W3U4では,出力無しと15Vの出力のみに対応している。~ |
| + | デフォルトは,LNB電源の出力を行わない。~ |
| + | |
| + | もしLNB電源の出力を行う場合は,recpt1(録画ツール)を実行する時にパラメータとして''--lnb 15''を追加する。 |
| + | |
| + | ** ICカードリーダー(接触式)を用意する [#z5539c29] |
| + | この非公式デバイスドライバーには,PX-W3U4の内蔵カードリーダーで読み書きするデバイスドライバーは用意されていない。~ |
| + | このためB-CASカードを読むためには,接触式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カード以外にも,マイナンバーカードなんかにも使えるので無駄にはならない。 |
| + | |
| + | *** SCR3310 v2.0を使用する場合 [#ob1ae31a] |
| + | ICカードリーダー用のライブラリ等をインスト-ルする。 |
| + | # apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools |
| + | |
| + | B-CASカードをカードリーダーに挿入(コネクタ部分がある面を上にする)して,USBで接続する。~ |
| + | B-CASカードが認識されているか確認する。~ |
| + | $pcsc_scan | grep B-CAS |
| + | Japanese Chijou Digital B-CAS Card (pay TV) |
| + | このように表示されればB-CASカードを認識できている。Ctrl + C でコマンドを終了させる。~ |
| + | |
| + | //*** SoftCasを使う場合 |
| + | //[[SoftCasを使う場合>./SoftCasを使う場合]]を参照する。 |
| + | |
| + | ** リモコン [#be23b882] |
| + | この非公式デバイスドライバーには,PX-W3U4のリモコン用のデバイスドライバーは用意されていない。~ |
| + | なので,PX-W3U4のリモコンは使用できない。 |
| + | |
| + | * 録画用ツールをインストールする [#g0a5e7a7] |
| + | 録画するためのツールとライブラリをインストールする。 |
| + | |
| + | ** libarib25のインストール [#m503a9b3] |
| + | 日本のデジタルテレビ放送は,暗号化されて配信されている。テレビ放送を受信してB-CASカードの情報を使って復号する必要があるのだが,このためにライブラリ化したのがlibarib25ライブラリー。 |
| + | |
| + | ソースコードからビルドしてインストールする。~ |
| + | $ cd ~/work |
| + | $ git clone https://github.com/stz2012/libarib25.git |
| + | $ cd libarib25/cmake |
| + | $ cmake .. |
| + | $ make |
| + | $ sudo make install |
| + | //SoftCasを使うと,libarib25インストールすると無線LANが使用できなくなる。 |
| + | |
| + | ** 録画ツールrecpt1(stz版)のインストール [#n3a13118] |
| + | recpt1(stz版)は,テレビ放送を録画するツール。PC-W3U4でも使用できるみたいだ。~ |
| + | |
| + | ソースコードを取得して,テレビ放送を復号化出来るようにするため''--enable-b25''オプションを付けてビルドした後インストールする。~ |
| + | $ cd ~/work |
| + | $ git clone https://github.com/stz2012/recpt1.git |
| + | $ cd recpt1/recpt1 |
| + | $ ./autogen.sh |
| + | $ ./configure --enable-b25 |
| + | $ make |
| + | $ sudo make install |
| + | |
| + | 以下のようにして動作テストをしてみる。 |
| + | $ cd |
| + | $ recpt1 --b25 --strip 24 10 test1.ts |
| + | テレビ放送が保存出来ていれば動作は大丈夫。もしNo signalの場合,チャンネルの24を変えて実行してみる。~ |
| + | チャンネル番号は地域ごとに違っているので,[[こちらから>http://www.maspro.co.jp/contact/channel.pdf]]確認出来る。 |
| + | |
| + | * MirakurunとEPGStationのインストール [#md170a53] |
| + | [[Mirakurun>https://github.com/Chinachu/Mirakurun]](チューナー制御・テレビ放送受信・動画配信)と[[EPGStation>https://github.com/l3tnun/EPGStation]](視聴・録画・動画配信・番組表)をインストールする。 |
| + | |
| + | ** Mirakurunのインストール [#fce31539] |
| + | [[Mirakurun>https://github.com/Chinachu/Mirakurun]]は,地デジ・BS/CSチューナーを使用して,テレビ放送をネットワークに配信するためのチューナーサーバー。~ |
| + | これにより,ネットワークに接続した複数のクライアントで視聴・録画することが出来るようになる。 |
| + | |
| + | MirakurunはNode.jsが必要。インストールされているNode.jsを確認する。~ |
| + | $ node -v |
| + | v10.24.0 |
| + | |
| + | もし未インストールの場合,インストールする。 |
| + | // $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - |
| + | // $ sudo apt install nodejs |
| + | $ sudo apt install nodejs npm |
| + | |
| + | Mirakurunをnpmを使ってインストールする。~ |
| + | $ sudo npm install pm2 -g |
| + | $ sudo npm install mirakurun -g --unsafe-perm --production |
| + | $ sudo npm install arib-b25-stream-test -g --unsafe |
| + | $ sudo npm install rivarun -g |
| + | rivarunは,Mirakurunに接続して録画できるツール。~ |
| + | |
| + | インストールが完了すると既にMirakurunは動作している。~ |
| + | 以下のコマンドで,Mirakurunのstatusがonlineなら正常起動している。~ |
| + | $ sudo pm2 status |
| + | |
| + | 次に,Mirakurunの設定を行う。 |
| + | |
| + | *** サーバーの設定 [#v0949e40] |
| + | ''/usr/local/etc/mirakurun/server.yml''を編集して,サーバーの設定を行う。~ |
| + | logLevel: -2 |
| + | disableIPv6: true |
| + | にした。 |
| + | |
| + | *** チューナーの設定 [#fd17372d] |
| + | ''/usr/local/etc/mirakurun/tuners.yml''を編集して,チューナーの設定を行う。~ |
| + | 以下のように設定した。 |
| + | #code(text){{ |
| + | - name: PX4-S1 |
| + | types: |
| + | - 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] |
| + | ''/usr/local/etc/mirakurun/channels.yml''を設定する。~ |
| + | 下記のコマンドで地上波のチャンネルスキャンを実行してファイルに設定してくれる。かなり時間がかかるので注意。~ |
| + | $ sudo curl -X PUT "http://<RaspberryPiのIP>:40772/api/config/channels/scan" |
| + | うまく行けば,''/usr/local/etc/mirakurun/channels.yml''に地上波とBSのチャンネルが設定されている。(BSは3.4.0から対応されている。)~ |
| + | #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 |
| + | }} |
| + | |
| + | ''/usr/local/etc/mirakurun/channels.yml''でのチャンネル設定が出来たら,Mirakurunを再起動する。~ |
| + | $ sudo mirakurun restart |
| + | |
| + | //チャンネル設定を表示してみる。~ |
| + | // $ sudo rivarun --list | sed 's/},/},\n/g' |
| + | //チャンネル設定は,住んでいる地域に応じて設定されているはず。~ |
| + | // |
| + | 次に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の動作や設定管理が行えるので,必要であれば追加の設定をする。~ |
| + | |
| + | *** ログの管理 [#z40b70ce] |
| + | $ sudo pm2 install pm2-logrotate |
| + | |
| + | ログを抑えるための設定をする。''/etc/logrotate.d/mirakurun''~ |
| + | 下記の内容の''mirakurun''ファイルを作成する。 |
| + | #code(text){{ |
| + | /usr/local/var/log/mirakurun.stdout.log |
| + | /usr/local/var/log/mirakurun.stderr.log |
| + | { |
| + | daily |
| + | compress |
| + | rotate 7 |
| + | missingok |
| + | 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を再起動する。~ |
| + | $ sudo mirakurun restart |
| + | |
| + | ** EPGStationのインストール [#y179d1cc] |
| + | [[EPGStation>https://github.com/l3tnun/EPGStation]]は,テレビ放送の視聴・録画・動画配信・番組表に対応した録画サーバー。~ |
| + | テレビ放送の番組を確認したり,録画予約をしたり,番組録画を行ったり,録画データの管理なんかが出来る。 |
| + | |
| + | [[EPGStation>https://github.com/l3tnun/EPGStation]]は,チューナーサーバーとして[[Mirakurun>https://github.com/Chinachu/Mirakurun]]を使用している。~ |
| + | |
| + | 次のようにしてインストールした。 |
| + | $ cd ~/work |
| + | $ git clone https://github.com/l3tnun/EPGStation.git |
| + | $ cd EPGStation |
| + | $ npm run all-install |
| + | $ npm run build |
| + | $ cp config/config.yml.template config/config.yml |
| + | $ cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml |
| + | $ cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml |
| + | $ cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml |
| + | このインストール作業は,かなり時間がかかる。~ |
| + | |
| + | DBにはデフォルトのSQLiteを使っている。SQLiteで正規表現を使えるようにする。 |
| + | $ wget https://www.sqlite.org/2019/sqli |
| + | te-amalgamation-3290000.zip |
| + | $ wget https://www.sqlite.org/2019/sqlite-src-3290000.zip |
| + | $ unzip sqlite-amalgamation-3290000.zip |
| + | $ unzip sqlite-src-3290000.zip |
| + | $ cp sqlite-src-3290000/ext/misc/regexp.c sqlite-amalgamation-3290000 |
| + | $ cd sqlite-amalgamation-3290000 |
| + | $ gcc -g -fPIC -shared regexp.c -o regexp.so |
| + | $ sudo cp regexp.so ~/work/EPGStation/data/ |
| + | |
| + | *** EPGStationの設定 [#j2097540] |
| + | ''config/config.yml''ファイルで設定を行う。~ |
| + | 設定できるオプションとかいろいろある。[[作者のページ>https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md]]を参照して設定する。~ |
| + | sqlite: |
| + | extensions: |
| + | - '/home/yuji/work/EPGStation/data/regexp.so' |
| + | regexp: true |
| + | |
| + | ffmpeg: '/usr/bin/ffmpeg' <-- ffmpegのパスを設定 |
| + | ffprobe: '/usr/bin/ffprobe' <-- ffprobeのパスを設定 |
| + | |
| + | recordedFormat: '%HALF_WIDTH_TITLE% - %YEAR%-%MONTH%-%DAY%' <-- 録画ファイルのファイル名を設定 |
| + | |
| + | recorded: |
| + | - name: recorded |
| + | path: '/mnt/u3/video/record' <-- 録画ファイルの保存先を設定 |
| + | |
| + | ''config/config.yml''ファイルのliveのMP4セクションに以下を追加する。~ |
| + | - name: h264_omx_3M |
| + | cmd: |
| + | '%FFMPEG% -dual_mono_mode main -re -i pipe:0 -sn -codec:a aac -ar 48000 -ac 2 -b:a 192k |
| + | -c:v h264_omx -b:v 3000k -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 |
| + | pipe:1' |
| + | |
| + | ''config/enc.js''ファイルを修正する。~ |
| + | 14行目あたりを~ |
| + | const codec = 'h264_omx'; |
| + | に変更。~ |
| + | 40行目あたりに以下を追加する。~ |
| + | Array.prototype.push.apply(args, ['-b:v', '3000k']); |
| + | |
| + | EPGStationを起動する。~ |
| + | $ sudo pm2 startup |
| + | $ sudo pm2 start dist/server/index.js --name "epgstation" |
| + | $ sudo pm2 save |
| + | |
| + | 起動しているか確認する。~ |
| + | $ sudo pm2 list |
| + | |
| + | WEBブラウザで以下のようにEPGStationアクセスする。 |
| + | http://<RaspberryPiのIP>:8888 |
| + | しばらくしてら,番組表をクリックして番組表が表示されればOK。 |
| + | |
| + | * テレビ放送や録画したデータを見る方法 [#cce6fe4b] |
| + | テレビ放送や録画した動画データを再生するにはいくつか方法がある。~ |
| + | - EPGStationでストリーミング配信して,それをVLCなどのマルチメディアプレーヤーで視聴する。~ |
| + | TV.m3u8ファイルのようなプレイリストを作っておけば,プレーヤー側で放送局を切り替えて視聴出来る。~ |
| + | - WindowsマシンのTVTestでテレビ放送を視聴する。~ |
| + | [[BonDriver_Mirakurun>https://github.com/Chinachu/BonDriver_Mirakurun]]をTVTestのBonDriverに使うことで,TVTestでテレビ放送を視聴できる。~ |
| + | - 録画した動画ファイルをDLNAメディアサーバーなどで扱って,DLNAクライアントで見る。~ |
| + | - 録画した動画ファイルをSambaなどでファイル共有して,VLCなどのマルチメディアプレーヤーで見る。~ |
| + | |
| + | EPGStationで放送中のテレビ放送を,リアルタイムエンコードしてストリーム配信してVLCなんかで視聴する場合,Raspberry Pi4でffmpegによるリアルタイムエンコードを行うと動画がとぎれとぎれになってしまった。~ |
| + | m2tsの無変換(リアルタイムエンコードはしない)でストリーム配信して視聴する場合,使用しているネットワーク帯域が十分であれば(''NHK BSプレミアムだと18Mbps程度が必要'')うまく視聴できる。家のネットワーク環境ではギリギリだった。 |
| + | |
| + | 録画した動画ファイルを再生する場合は,ネットワーク上のファイルサーバーに保存しても特にとぎれとぎれになることはないみたいだ。 |