上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
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 nns779氏のpx4_drvをフォークしていくつか修正されたpx4_drvのソースコードを利用する場合は, $ git clone https://github.com/tsukumijima/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 ファームウェアのアンインストール。~ # 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] PX-W3U4では出力無しと15Vの出力のみに対応している。~ デフォルトはLNB電源の出力を行わない。~ もしLNB電源の出力を行う場合は,recpt1(録画ツール)を実行する時にパラメータとして''--lnb 15''を追加する。 ** ICカードリーダー(接触式)を用意する [#z5539c29] この非公式デバイスドライバーpx4_drvには,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 $ mkdir build $ cd build $ 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 %%パッチ&ref(recpt1.patch);を当てる。%%~ // $ patch < ../recpt1.patch ビルドする。~ $ ./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,,tuners.yml) テレビ放送の復号化(スクランブル解除)は,''recpt1でも行えるがarib-b25-stream-testで行うようにした。''~ これはMirakurun側で復号化を行わず,クライアント側で復号化を行いたい場合に対応するため。~ *** チャンネル設定 [#h0ecb45e] ''/usr/local/etc/mirakurun/channels.yml''を設定する。~ 下記のコマンドでチャンネルスキャンを実行すると,設定ファイルを作成してくれる。かなり時間がかかる。~ $ sudo curl -X PUT "http://<mirakurunのIPAddress>:40772/api/config/channels/scan?type=GR&refresh=true" うまく行けば,''/usr/local/etc/mirakurun/channels.yml''ファイルに,地上波のチャンネルが設定される。~ BSとCSは, $ 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''を作成・編集しても問題なかった。~ #code(text,nonumber,,channels.yml) 住んでいる所が大阪なんで,↑のようになった。BS/CSは全国共通だと思う。~ ここ数年,放送が追加・停波・変更などがあって以下のように修正している。~ - 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] ログファイルが肥大化しないように,以下のパッケージをインストールする。~ $ sudo pm2 install pm2-logrotate ''/etc/logrotate.d/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の再起動 [#f8e2442d] ''/usr/local/etc/mirakurun/channels.yml''が作成・修正したら,Mirakurunを再起動する。~ $ sudo mirakurun restart Mirakurunがテレビ放送電波を受信してチャンネル情報等を登録するのを,15-30分程度待つ。~ //しばらく待っていると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>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でTV放送の視聴や番組表を見たり,録画予約などの操作ができる :) *** 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);~ -- 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に接続すれば,外出先から録画予約をすることも出来る。~ - 録画した動画データを再生~ -- 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 (土) 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
Counter: 11666, today: 1, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ