上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/PX-W3U4/Raspberry PiでPX-W3U4を使ってみる
のソース
資料室
PC
/
PX-W3U4
/
Raspberry PiでPX-W3U4を使ってみる
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/PX-W3U4/Raspberry PiでPX-W3U4を使ってみる
へ行く。
« Prev
* Raspberry PiでPX-W3U4を使ってみる [#q15a18cf] 旅先でテレビを見たい時はノートPCとPX-W3U4/B-CASカードを一緒に持って行ってるんだけど,自宅にいる時はPX-W3U4は使っていなかった。 これではもったいないので,自宅でもRaspberry PiとPX-W3U4を使って他のPCやスマートフォンからテレビ放送を視聴したり録画予約を出来るようにしてみることにした。 使用するRaspberry Piは, - RPi: [[Raspberry Pi4B 4GB>/PC/RaspberryPi/スペック#y4caa92a]]~ - OS: [[Raspbian buster 32bit>/PC/RaspberryPi/Linuxを動かしてみる/Raspbianのインストール]]~ を使用している。 家のどのPCやスマートフォンからも録画予約・録画やテレビの視聴が出来るようになって(風呂でも見れる),便利になった :) * 録画保存場所をファイルサーバーにする [#p96b6792] 録画データは自宅のLAN上にあるファイルサーバーに直接保存するために,sambaを使ってファイルサーバーのディレクトリをマウントして保存先とする。~ このファイルを保存するサーバーではDLNAサーバーが動作しているので,ここに録画ファイルを保存することにより,LAN上のDLNAクライアントで再生出来るようになるので便利になる。~ 必要なパッケージをインストールする。~ # 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] Raspberry Pi(Rasbian)でPX-W3U4を使用できるように,デバイスドライバーを用意する。 ** 必要なパッケージを入れる [#uc674833] デバイスドライバーをビルドするのに必要なパッケージを,パッケージマネージャーでインストールしておく。 # apt install cmake automake autoconf exfat-utils git wget python # apt install build-essential yasm libtool # apt install libssl-dev ffmpeg sqlite3 # apt install raspberrypi-kernel-headers ** PX-W3U4のデバイスドライバーの取得とインストール [#o7bbe34b] [[PLEX社>http://plex-net.co.jp/]]からLinux用のデバイスドライバーは用意されているが, - ソースコードが提供されない~ - Kernelのバージョンが限定されている~ - 動作するプラットフォームやOSが限定されている~ ARMのRaspbian用などは提供されていない。~ などの問題がある。~ そこで, nns779氏の[[px4_drv(chardev版非公式なLinux用ドライバー)>https://github.com/nns779/px4_drv]]をありがたく ;) 使用することにした。~ まずデバイスドライバーのソースコードを取得する。~ $ cd ~/work $ git clone https://github.com/nns779/px4_drv.git ソースコードは,~/work/px4_drvに取得される。 *** ファームウェアの抽出とそのインストール [#r68cec67] この非公式なpx4_drvデバイスドライバーによりPX-W3U4にファームウェアをアップロードする必要がある。~ デバイスドライバーをビルドする前に,このファームウェアを公式デバイスドライバーより抽出し,所定の場所にインストールする。~ まず,抽出ツールをビルドする。 $ cd ~/work/px4_drv/fwtool/ $ make 公式の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 $ 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] px4_drvデバイスドライバーをビルドしてインストールする。~ $ cd ~/work/px4_drv/driver $ make $ sudo make install これで,ビルドしたデバイスドライバーが''/lib/modules/<kernel>/misc''にインストールされ,udev用のファイルが''/etc/udev/rules.d/99-px4video.rules''にインストールされる。 ''もしkernelが更新された場合は,再度ビルドし直してインストールする必要がある。''~ この後PX-W3U4を接続し,正常にデバイスドライバーがロードされているか確認する。~ # lsmod | grep px px4_drv 122880 0 と表示されていればデバイスドライバーがロードされている。~ もしロードされていない場合は, # 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] デバイスドライバーのアンインストールは以下のようにする。 $ cd ~/work/px4_drv/driver $ sudo make uninstall $ cd .. ファームウェアのアンインストール。~ # 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://amzn.to/34FTaey]]を購入して使用する。~ B-CASカード以外にもマイナンバーカードなんかにも使えるので無駄にはならない。 *** SCR3310 v2.0を使用する場合 [#ob1ae31a] ICカードリーダー用のライブラリ等をインスト-ルする。 # apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools USBでカードリーダーと接続して,B-CASカードをカードリーダーに挿入(コネクタ部分がある面を上にする)する。~ B-CASカードを認識しているか確認する。~ # pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) このように表示されればB-CASカードを認識できている。Ctrl + C でコマンドを終了させる。~ ** リモコン [#be23b882] この非公式デバイスドライバーには,PX-W3U4のリモコン用のデバイスドライバーは用意されていない。~ なので,PX-W3U4のリモコンは使用できない。 [[Mirakurun>https://github.com/Chinachu/Mirakurun]](チューナー制御・テレビ放送受信・動画配信・番組表受信)を使用してクライアントからリモートでチャンネルを変更できるのでリモコンは特には必要無い。 クライアント・アプリをリモコンを使って操作する方法はいろいろ([[IRリモコン>/PC/IRリモコン]]とか[[PCをスマートフォンからリモートコントロール>/PC/PCをスマートフォンからリモートコントロール]]とか・・・)あるので,必要であればそれを使用する。 * 録画用ツールをインストールする [#g0a5e7a7] 録画するためのツールとライブラリをインストールする。 ** libarib25ライブラリーのインストール [#m503a9b3] 日本のデジタルテレビ放送は暗号化されて電波で配信されている。テレビ放送を受信してB-CASカードの情報を使って復号化する必要があるのだが,このための復号化するプログラムをライブラリ化したのがlibarib25ライブラリー。 ソースコードからビルドしてインストールする。~ $ cd ~/work $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25/cmake $ cmake .. $ make $ sudo make install ** 録画ツールrecpt1(stz版)のインストール [#n3a13118] recpt1(stz版)は,チューナーのデバイスドライバーにアクセスしてテレビ放送を録画するツール。PC-W3U4でも使用できるみたいだ。~ ソースコードを取得して,テレビ放送をB-CASカードを使って復号化出来るようにするため''--enable-b25''オプションを付けて上記のlibarib25ライブラリーを使えるようにビルドしてインストールする。~ $ 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チューナーを使用してテレビ放送を受信し,受信データをネットワークに配信するためのチューナーサーバー。~ これにより,ネットワークに接続した複数のクライアントでテレビ放送を視聴・録画することが出来るようになる。 動作には[[Node.js:https://nodejs.org/ja]]のv10かv12かv14が必要みたいだ。RasbianにインストールされているNode.jsを確認する。~ $ node -v 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になった。)~ もし未インストール(更新も)の場合,v16がいいのかな。~ $ 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 テレビ放送を復号化(スクランブル解除)するツールの''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 インストールが完了すると既にMirakurunは動作している。~ 以下のコマンドで,Mirakurunのstatusがonlineなら正常起動している。~ $ 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の設定を行う。 *** サーバーの設定 [#v0949e40] ''/usr/local/etc/mirakurun/server.yml''を編集して,サーバーの設定を行う。~ logLevel: -1 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] ''/usr/local/etc/mirakurun/tuners.yml''を編集して,チューナー(PX-W3U4)の設定を行う。~ 以下のように設定した。 #code(text,nonumber){{ - name: PX4-S1 types: - BS - CS command: recpt1 --device /dev/px4video0 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX4-S2 types: - BS - CS command: recpt1 --device /dev/px4video1 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX4-T1 types: - GR command: recpt1 --device /dev/px4video2 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX4-T2 types: - GR command: recpt1 --device /dev/px4video3 <channel> - - decoder: arib-b25-stream-test isDisabled: false }} テレビ放送の復号化(スクランブル解除)は,''recpt1でも行えるがarib-b25-stream-testで行うようにした。''~ これはクライアント側で復号化を行いたい場合に対応するため。~ *** チャンネル設定 [#h0ecb45e] ''/usr/local/etc/mirakurun/channels.yml''を設定する。~ 下記のコマンドでチャンネルスキャンを実行すると,設定ファイルを作成してくれる。かなり時間がかかる。~ $ sudo curl -X PUT "http://<mirakurunのIPAddress>:40772/api/config/channels/scan" うまく行けば,''/usr/local/etc/mirakurun/channels.yml''ファイルに,地上波とBS/CSのチャンネルが設定されている。(BS/CSはバージョン3.4.0から対応されている。)~ //%%もしBS/CSが登録されていない場合は,[[ここ>https://gist.github.com/Connie-Wild/877b48382139fc03282eb448827c6d4b]]の情報を追加する。%%~ #code(text,nonumber){{ - name: NHKEテレ・大阪 type: GR channel: '13' isDisabled: false - name: 読売テレビ type: GR channel: '14' isDisabled: false - name: ABCテレビ type: GR channel: '15' isDisabled: false - name: MBS毎日放送 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: NHK総合・大阪 type: GR channel: '24' - name: サンテレビ type: GR channel: '26' - name: BS朝日 type: BS channel: BS01_0 serviceId: 151 - 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 - name: WOWOWライブ type: BS channel: BS05_0 serviceId: 192 - name: WOWOWシネマ type: BS channel: BS05_1 serviceId: 193 - name: BS11 type: BS channel: BS09_0 serviceId: 211 - 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 channel: BS11_1 serviceId: 251 - name: BS日テレ type: BS channel: BS13_0 serviceId: 141 - name: BSフジ type: BS channel: BS13_1 serviceId: 181 - name: BSアニマックス type: BS channel: BS13_2 serviceId: 236 - name: NHK BS type: BS channel: BS15_0 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 type: CS channel: CS2 serviceId: 298 - name: テレ朝チャンネル2 type: CS channel: CS2 serviceId: 299 - 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 type: CS channel: CS16 serviceId: 333 - 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: 日テレプラス type: CS channel: CS24 serviceId: 300 }} 住んでいる所が大阪なんで,↑のようになった。~ ここ数年,放送が追加・停波などがあって以下のように修正している。~ - 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 プレミアム''が停波したので削除。~ ''/usr/local/etc/mirakurun/channels.yml''が作成できたら,Mirakurunを再起動する。~ $ 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の動作や設定管理が行えるので,必要であれば追加の設定をする。~ *** ログの管理 [#z40b70ce] $ sudo pm2 install pm2-logrotate ログを抑えるための設定をする。''/etc/logrotate.d/mirakurun''~ 下記の内容の''mirakurun''ファイルを作成する。 #code(text,nonumber){{ /usr/local/var/log/mirakurun.stdout.log /usr/local/var/log/mirakurun.stderr.log { daily compress rotate 7 missingok notifempty } }} Mirakurunを再起動する。~ $ sudo mirakurun restart ** EPGStationのインストール [#y179d1cc] [[EPGStation>https://github.com/l3tnun/EPGStation]]はテレビ放送の視聴・録画・動画配信・番組表予約に対応した録画サーバー。~ テレビ放送の番組を確認したり,録画予約をしたり,録画を行ったり,録画データの管理,テレビ・録画の視聴なんかがWEBブラウザ上で出来るようになる。 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 $ 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 $ cp config/enc.jp config/enc.jp DBにはデフォルトのSQLiteを使っている。SQLiteで正規表現を使えるようにする。 $ wget https://www.sqlite.org/2019/sqlite-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 $ 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/EPGStation/data/regexp.so' <-- 正規表現が使える regexp: true ffmpeg: '/usr/bin/ffmpeg' <-- ffmpegのパスを設定 ffprobe: '/usr/bin/ffprobe' <-- ffprobeのパスを設定 recorded: - name: recorded path: '/mnt/u3/video/record' <-- 録画ファイルの保存先を設定 「Stream: live: MP4: 」セクションに以下を追加する。(リアルタイム視聴用)~ - name: h264_omx_4Mbps cmd: '%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 4M -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1' ''config/enc.js''ファイルを修正する。(録画エンコード用)~ 14行目あたりを~ const codec = 'h264_omx'; に変更。~ 35行目あたりを~ if (videoHeight > 480) { videoFilter += ',scale=-2:480' } に変更。~ 40行目あたりに以下を追加する。~ Array.prototype.push.apply(args, ['-b:v', '1500k']); EPGStationを起動する。~ $ sudo pm2 startup $ sudo pm2 start dist/index.js --name "epgstation" $ sudo pm2 save 起動しているか確認する。~ $ sudo pm2 list WEBブラウザで以下のようにEPGStationアクセスする。 http://<EPGStationのIPAddress>:8888 しばらくしてから,番組表をクリックして番組表が表示されれば動作している。 #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] Mirakurun/EPGStationの環境でテレビ放送の視聴や録画した動画データを再生するには,いくつか方法がある。~ - テレビ放送の視聴~ -- WEBブラウザでEPGStationから視聴する~ WEBブラウザを使ってEPGStationの放送中からテレビ放送を視聴することができる。~ WEBブラウザで視聴する場合は,放送のMPEG2そのまま無変換で視聴する方法と,ffmpegでリアルタイムエンコードしたものを視聴する方法があるが,Rspberry Pi 4Bではリアルタイムエンコードの処理速度の問題でカクカクになってしまう。MP4でh264_omxを選んでもリアルタイムエンコードしながら視聴するのはちょっと厳しい。~ EPGStationを十分な速度が出る別のマシンで動作させた場合,リアルタイムエンコードでの視聴も問題はない。~ //-- 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によるリアルタイムエンコードを行うと動画がとぎれとぎれになってしまった。~ m2tsの無変換(リアルタイムエンコードはしない)でストリーム配信して視聴する場合,使用しているネットワーク帯域が十分であれば(''NHK BSプレミアムだと18Mbps程度が必要'')うまく視聴できる。家のネットワーク環境ではギリギリだった。 録画した動画ファイルを再生する場合は,ネットワーク上のファイルサーバーに保存しても特にとぎれとぎれになることはないみたいだ。
« Prev
PC/PX-W3U4/Raspberry PiでPX-W3U4を使ってみる のバックアップ一覧
PC/PX-W3U4/Raspberry PiでPX-W3U4を使ってみる のバックアップソース(No. All)
1: 2021-07-28 (水) 08:54:35
yuji
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 (土) 09:57:30
yuji
Counter: 9516, today: 5, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ