上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/PX-W3U4/Raspberry PiでPX-W3U4を使ってみる
をテンプレートにして作成
資料室
PC/PX-W3U4/Raspberry PiでPX-W3U4を使ってみる をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* Raspberry PiでPX-W3U4を使ってみる
旅先でテレビを見たい時はノートPCとPX-W3U4/B-CASカードを一...
これではもったいないので,自宅でもRaspberry PiとPX-W3U4を...
使用するRaspberry Piは,
- RPi: [[Raspberry Pi4B 4GB>/PC/RaspberryPi/スペック#y4ca...
- OS: [[Raspbian buster 32bit>/PC/RaspberryPi/Linuxを動か...
を使用している。
家のどのPCやスマートフォンからも録画予約・録画やテレビの...
* 録画保存場所をファイルサーバーにする
録画データは自宅のLAN上にあるファイルサーバーに直接保存す...
このファイルを保存するサーバーではDLNAサーバーが動作して...
必要なパッケージをインストールする。~
# apt install cifs-utils
マウントポイントを作成する。~
# mkdir /mnt/u3
# chmod 777 /mnt/u3
試しにマウントしてみる。~
# mount -t cifs //<サーバーのIPアドレス>/public /mnt/u3 ...
うまくマウント出来た場合は,
# umount /mnt/u3
マウントを解除する。
''/etc/fstab''に以下を追加する。~
//<サーバーのIPアドレス>/public /mnt/u3 cifs username=us...
Raspberry Piを再起動して/mnt/u3にマウント出来ているか確認...
* PX-W3U4のデバイスドライバーをインストールする
Raspberry Pi(Rasbian)でPX-W3U4を使用できるように,デバ...
** 必要なパッケージを入れる
デバイスドライバーをビルドするのに必要なパッケージを,パ...
# apt install cmake automake autoconf exfat-utils git wg...
# apt install build-essential yasm libtool
# apt install libssl-dev ffmpeg sqlite3
# apt install raspberrypi-kernel-headers
** PX-W3U4のデバイスドライバーの取得とインストール
[[PLEX社>http://plex-net.co.jp/]]からLinux用のデバイスド...
- ソースコードが提供されない~
- Kernelのバージョンが限定されている~
- 動作するプラットフォームやOSが限定されている~
ARMのRaspbian用などは提供されていない。~
などの問題がある。~
そこで, nns779氏の[[px4_drv(chardev版非公式なLinux用ド...
まずデバイスドライバーのソースコードを取得する。~
$ 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に取得される。
*** ファームウェアの抽出とそのインストール
この非公式なpx4_drvデバイスドライバーによりPX-W3U4にファ...
デバイスドライバーをビルドする前に,このファームウェアを...
まず,抽出ツールをビルドする。
$ cd ~/work/px4_drv/fwtool/
$ make
公式のWindows用のデバイスドライバー([[pxw3u4v1.4.zip>htt...
$ wget http://plex-net.co.jp/download/pxw3u4v1.4.zip -O ...
$ 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 ..
*** デバイスドライバーのビルドとインストール
px4_drvデバイスドライバーをビルドしてインストールする。~
$ cd ~/work/px4_drv/driver
$ make
$ sudo make install
これで,ビルドしたデバイスドライバーが''/lib/modules/<ker...
''もしkernelが更新された場合は,再度ビルドし直してインス...
この後PX-W3U4を接続し,正常にデバイスドライバーがロードさ...
# lsmod | grep px
px4_drv 122880 0
と表示されていればデバイスドライバーがロードされている。~
もしロードされていない場合は,
# modprobe px4_drv
として,手動でロードしてみる。
また,
# ls /dev/px*
/dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4...
のようにデバイスファイルが作成されている。~
チューナーに対応して,px4video0からISDB-S, ISDB-S, ISDB-T...
*** デバイスドライバーのアンインストール
デバイスドライバーのアンインストールは以下のようにする。
$ cd ~/work/px4_drv/driver
$ sudo make uninstall
ファームウェアのアンインストール。~
# rm /lib/firmware/it930x-firmware.bin
*** デバイスドライバーが動作しなくなった
突然PX-W3U4が動作しなくなっていた。~
PX-W3U4をUSBでPCに接続すると本来はVID:PID=0511:083fで接続...
EEPROMが書き換わってしまったようなのだが元の書き込んであ...
*** LNB電源の出力
PX-W3U4では出力無しと15Vの出力のみに対応している。~
デフォルトはLNB電源の出力を行わない。~
もしLNB電源の出力を行う場合は,recpt1(録画ツール)を実行...
** ICカードリーダー(接触式)を用意する
この非公式デバイスドライバーpx4_drvには,PX-W3U4の内蔵カ...
このためB-CASカードを読むために''接触式ICカードリーダーを...
一般的な接触式のICカードリーダーであれば問題なく使用でき...
今回は安価な接触式ICカードリーダーの[[SCR3310 v2.0>https:...
B-CASカード以外にもマイナンバーカードなんかにも使えるので...
*** SCR3310 v2.0を使用する場合
ICカードリーダー用のライブラリ等をインスト-ルする。
# apt install pcscd libpcsclite1 libpcsclite-dev libccid...
USBでカードリーダーと接続して,B-CASカードをカードリーダ...
B-CASカードを認識しているか確認する。~
# pcsc_scan | grep B-CAS
Japanese Chijou Digital B-CAS Card (pay TV)
このように表示されればB-CASカードを認識できている。Ctrl +...
** リモコン
この非公式デバイスドライバーには,PX-W3U4のリモコン用のデ...
なので,PX-W3U4のリモコンは使用できない。
[[Mirakurun>https://github.com/Chinachu/Mirakurun]](チュ...
クライアント・アプリをリモコンを使って操作する方法はいろ...
* 録画用ツール・ライブラリをインストールする
録画するためのツールとライブラリをインストールする。
** libarib25ライブラリーのインストール
日本のデジタルテレビ放送は暗号化されて電波で配信されてい...
ソースコードからビルドしてインストールする。~
$ cd ~/work
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
** 録画ツールrecpt1(stz版)のインストール
recpt1(stz版)は,チューナーデバイスにアクセスしてテレビ...
ソースコードを取得して,テレビ放送をB-CASカードを使って復...
$ 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の...
* MirakurunとEPGStationのインストール
[[Mirakurun>https://github.com/Chinachu/Mirakurun]](チュ...
素晴らしいソフトウェアを作ってくれた作者に感謝です((寄付...
** Mirakurunのインストール
[[Mirakurun>https://github.com/Chinachu/Mirakurun]]は,地...
これにより,ネットワークに接続した複数のクライアントでテ...
動作には[[Node.js:https://nodejs.org/ja]]のv10かv12かv14...
$ node -v
v10.24.0
Rasbian BusterでインストールされているNode.jsはv10.24.0に...
後日Mirakurunをバージョン3.7.1に更新しようとしたところ,v...
もし未インストール(更新も)の場合,v16がいいのかな。~
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo ...
$ 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-...
//復号化(スクランブル解除)はrecpt1だけでも出来るが,Mir...
$ 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の設定を行う。
*** サーバーの設定
''/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を更新した...
// #epgGatheringInterval: 1800000 # 30min EPGを更新した...
// epgGatheringInterval: 3600000 # 30min EPGを更新した...
// #epgGatheringInterval: 86400000 # 24h EPGを更新した...
// epgRetrievalTime: 600000 # 10min EPG最大取得時...
// #logoDataInterval: 86400000 # 24h logoデータ収集間隔
// logoDataInterval: 604800000 # 7d logoデータ収集間隔
// maxBufferBytesBeforeReady: 8388608 # 8Mib(0x800000)
にして,ログをなるべく少なくなるようにしてみた。IPv6は使...
*** チューナーの設定
''/usr/local/etc/mirakurun/tuners.yml''を編集して,チュー...
以下のように設定した。~
#code(text,nonumber,,tuners.yml)
テレビ放送の復号化(スクランブル解除)は,''recpt1でも行...
これはMirakurun側で復号化を行わず,クライアント側で復号化...
*** チャンネル設定
''/usr/local/etc/mirakurun/channels.yml''を設定する。~
下記のコマンドでチャンネルスキャンを実行すると,設定ファ...
$ sudo curl -X PUT "http://<mirakurunのIPAddress>:4077...
うまく行けば,''/usr/local/etc/mirakurun/channels.yml''フ...
BSとCSは,
$ sudo curl -X PUT "http://<mirakurunのIPAddress>:4077...
$ sudo curl -X PUT "http://<mirakurunのIPAddress>:4077...
でチャンネルが設定される。(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,ch25...
- 03/27/2022 修正~
''BS松竹東急''(BS23_3,ch260),''BSJapanext''(BS23_2,...
- 11/01/2022 修正~
''BSスカパー!''(BS11_0,ch241)が停波したので削除。~
''放送大学ex''(BS11_1,ch231) → ''放送大学テレビ(メ...
''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) → ''スター・チャ...
''スター・チャンネル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,...
''放送大学テレビ(サブ)''(BS11_0,ch232)が(BS13_2,ch...
- 01/10/2025 予定~
''BSJapanext''(BS23_2,ch263)が''BS10''(BS15_1,ch200...
*** ログの管理
ログファイルが肥大化しないように,以下のパッケージをイン...
$ 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の再起動
''/usr/local/etc/mirakurun/channels.yml''が作成・修正した...
$ sudo mirakurun restart
Mirakurunがテレビ放送電波を受信してチャンネル情報等を登録...
//しばらく待っているとMirakurunでチャンネル情報が更新され...
// $ sudo rivarun --list | sed 's/},/},\n/g'
//この時,受信が出来ていないとrivarunで表示されない。serv...
// $ sudo rivarun --list | sed 's/},/},\n/g' | grep -v se...
//
録画出来るか試してみる。~
// $ rivarun [--b25] [--mirakurun host:port] [--priority ...
//
// $ rivarun --mirakurun localhost:40772 --b25 --sid 231 ...
// $ rivarun --mirakurun localhost:40772 --b25 --ch BS/BS...
$ rivarun --mirakurun localhost:40772 --b25 --ch GR/22 1...
// $ rivarun --mirakurun localhost:40772 --b25 --sid 4300...
// # rivarun --mirakurun localhost:40772 --b25 --sid 1024...
// status: 200
15秒の録画ファイルが出来ていて,再生できれば問題ない。~
次に他のPCでVLCを使ってMirakurunで配信される動画ストリー...
VLCのメニューのメディアを開く>ネットワークを開くで,~
http://<mirakurunのIPAddress>:40772/api/channels/GR/<...
とか
http://<mirakurunのIPAddress>:40772/api/channels/BS/<...
で,地デジやBS放送が視聴できればMirakurunは正常に動作して...
チャンネル番号やサービスIDは,上記の''/usr/local/etc/mira...
WEBブラウザで,http://<mirakurunのIPAddress>:40772 にア...
Mirakurunの動作や設定管理が行えるので,必要であれば追加の...
** EPGStationのインストール
[[EPGStation>https://github.com/l3tnun/EPGStation]]はテレ...
テレビ放送の番組を確認したり,録画予約をしたり,録画を行...
EPGStationはTVチューナーとして[[Mirakurun>https://github....
EPGStationをMirakurunが動作しているマシン以外のマシンで動...
[[Node.js:https://nodejs.org/ja]]はv14またはv16(バージョ...
次のようにしてインストールした。
$ 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/operator...
$ cp config/epgUpdaterLogConfig.sample.yml config/epgUpd...
$ cp config/serviceLogConfig.sample.yml config/serviceLo...
$ cp config/enc.jp config/enc.jp
DBにはデフォルトのSQLiteを使っている。SQLiteで正規表現を...
$ wget https://www.sqlite.org/2019/sqlite-amalgamation-3...
$ 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-amalgam...
$ cd sqlite-amalgamation-3290000
$ gcc -g -fPIC -shared regexp.c -o regexp.so
$ cp regexp.so ~/work/EPGStation/data/
*** EPGStationの設定
''config/config.yml''ファイルで設定を行う。~
設定できるオプションとかいろいろある。[[作者のページ>http...
sqlite:
extensions:
- '/home/yuji/EPGStation/data/regexp.so' ...
regexp: true
ffmpeg: '/usr/bin/ffmpeg' ...
ffprobe: '/usr/bin/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 -...
-c:v h264_omx -b:v 4M -profile:v baseline -pre...
-movflags frag_keyframe+empty_moov+faststart+d...
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の更新
バージョンアップ等で更新する場合は,
$ sudo pm2 stop epgstation
$ cd ~/EPGStation
$ git pull
$ npm run all-install
$ npm run build
とすると,更新できる。~
もしエラー等が出てうまくインストール出来ない場合は,npmを...
$ sudo npm install -g npm
その後,再度EPGStationを更新してみる。
うまく更新ができたら,EPGStationを再起動する。~
$ sudo pm2 start dist/index.js --name "epgstation"
* テレビ放送や録画したデータを見る方法
Mirakurun/EPGStationの環境でテレビ放送の視聴や録画した動...
- テレビ放送の視聴~
-- WEBブラウザでEPGStationから視聴する~
WEBブラウザを使ってEPGStationの放送中からテレビ放送を視聴...
WEBブラウザで視聴する場合は,放送のMPEG2そのまま無変換で...
EPGStationを十分な速度が出る別のマシンで動作させた場合,...
//-- WEBブラウザで[[KonomiTV>https://github.com/tsukumiji...
//WEBサーバーとして[[KonomiTV>https://github.com/tsukumij...
-- Windowsマシンで[[TVTest>/PC/PX-W3U4/px-w3u4でテレビを...
[[BonDriver_Mirakurun>https://github.com/Chinachu/BonDriv...
&ref(BonDriver_Mirakurun.zip,,ビルドしたBonDriver_Mirakur...
-- Macで[[Meruru>https://github.com/castaneai/Meruru]]を...
-- WindowsやLinux,Macで[[MirakTest>https://github.com/ci...
[[プラグイン>https://github.com/ci7lus/miraktest-plugins]...
-- VLCなどのマルチメディアプレーヤーで視聴する~
MirakurunまたはEPGStationでストリーミング配信して,それを...
TV.m3u8ファイルのようなプレイリストを作っておけば,マルチ...
http://<Mirakurunサーバー>:40772/api/iptv/playlist でプレ...
http://<EPGSStationサーバー>:8888/api/iptv/channel.m3u8?m...
ただVLCだとプレイリストでのチャンネル選択が操作しづらい。~
[[PotPlayer>https://potplayer.daum.net/]](Windowsのみ)...
-- [[Kodi>https://kodi.tv/]]と[[PVR IPTV Simple Client>ht...
KodiはWindows,Linux,Android,Raspberry Pi,macOS, iOSな...
MirakurunのM3U Playlist(チャンネル)とXMLTV(番組表)をK...
Fire TV Stickを使うと,リビングにあるテレビ(チューナーレ...
-- スマートフォンのアプリでテレビ放送を視聴する~
IPTVクライアントアプリでMirakurunやEPGStationのM3U Playli...
--- Android:[[IPTV Pro>https://play.google.com/store/app...
//や[[TiviMate IPTV Player>https://play.google.com/store/...
//や[[Smarters Player Lite>https://play.google.com/store/...
--- iPhone:[[iPlayTV>https://apps.apple.com/us/app/iplay...
- 録画予約をする~
WEBブラウザ(Windows,Linux,Android端末...)からEPGStati...
VPNで家のNetworkに接続すれば,外出先から録画予約をするこ...
- 録画した動画データを再生~
-- WEBブラウザでEPGStationにアクセスして録画データを再生...
-- EPGStationで録画データーをストリーミング配信(HLSも可...
-- 録画した動画ファイルをDLNAメディアサーバーなどで扱って...
-- 録画した動画ファイルをSambaなどでファイル共有して,VLC...
EPGStationで放送中のテレビ放送をリアルタイムエンコードし...
m2tsの無変換(リアルタイムエンコードはしない)でストリー...
録画した動画ファイルを再生する場合は,ネットワーク上のフ...
終了行:
* Raspberry PiでPX-W3U4を使ってみる
旅先でテレビを見たい時はノートPCとPX-W3U4/B-CASカードを一...
これではもったいないので,自宅でもRaspberry PiとPX-W3U4を...
使用するRaspberry Piは,
- RPi: [[Raspberry Pi4B 4GB>/PC/RaspberryPi/スペック#y4ca...
- OS: [[Raspbian buster 32bit>/PC/RaspberryPi/Linuxを動か...
を使用している。
家のどのPCやスマートフォンからも録画予約・録画やテレビの...
* 録画保存場所をファイルサーバーにする
録画データは自宅のLAN上にあるファイルサーバーに直接保存す...
このファイルを保存するサーバーではDLNAサーバーが動作して...
必要なパッケージをインストールする。~
# apt install cifs-utils
マウントポイントを作成する。~
# mkdir /mnt/u3
# chmod 777 /mnt/u3
試しにマウントしてみる。~
# mount -t cifs //<サーバーのIPアドレス>/public /mnt/u3 ...
うまくマウント出来た場合は,
# umount /mnt/u3
マウントを解除する。
''/etc/fstab''に以下を追加する。~
//<サーバーのIPアドレス>/public /mnt/u3 cifs username=us...
Raspberry Piを再起動して/mnt/u3にマウント出来ているか確認...
* PX-W3U4のデバイスドライバーをインストールする
Raspberry Pi(Rasbian)でPX-W3U4を使用できるように,デバ...
** 必要なパッケージを入れる
デバイスドライバーをビルドするのに必要なパッケージを,パ...
# apt install cmake automake autoconf exfat-utils git wg...
# apt install build-essential yasm libtool
# apt install libssl-dev ffmpeg sqlite3
# apt install raspberrypi-kernel-headers
** PX-W3U4のデバイスドライバーの取得とインストール
[[PLEX社>http://plex-net.co.jp/]]からLinux用のデバイスド...
- ソースコードが提供されない~
- Kernelのバージョンが限定されている~
- 動作するプラットフォームやOSが限定されている~
ARMのRaspbian用などは提供されていない。~
などの問題がある。~
そこで, nns779氏の[[px4_drv(chardev版非公式なLinux用ド...
まずデバイスドライバーのソースコードを取得する。~
$ 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に取得される。
*** ファームウェアの抽出とそのインストール
この非公式なpx4_drvデバイスドライバーによりPX-W3U4にファ...
デバイスドライバーをビルドする前に,このファームウェアを...
まず,抽出ツールをビルドする。
$ cd ~/work/px4_drv/fwtool/
$ make
公式のWindows用のデバイスドライバー([[pxw3u4v1.4.zip>htt...
$ wget http://plex-net.co.jp/download/pxw3u4v1.4.zip -O ...
$ 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 ..
*** デバイスドライバーのビルドとインストール
px4_drvデバイスドライバーをビルドしてインストールする。~
$ cd ~/work/px4_drv/driver
$ make
$ sudo make install
これで,ビルドしたデバイスドライバーが''/lib/modules/<ker...
''もしkernelが更新された場合は,再度ビルドし直してインス...
この後PX-W3U4を接続し,正常にデバイスドライバーがロードさ...
# lsmod | grep px
px4_drv 122880 0
と表示されていればデバイスドライバーがロードされている。~
もしロードされていない場合は,
# modprobe px4_drv
として,手動でロードしてみる。
また,
# ls /dev/px*
/dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4...
のようにデバイスファイルが作成されている。~
チューナーに対応して,px4video0からISDB-S, ISDB-S, ISDB-T...
*** デバイスドライバーのアンインストール
デバイスドライバーのアンインストールは以下のようにする。
$ cd ~/work/px4_drv/driver
$ sudo make uninstall
ファームウェアのアンインストール。~
# rm /lib/firmware/it930x-firmware.bin
*** デバイスドライバーが動作しなくなった
突然PX-W3U4が動作しなくなっていた。~
PX-W3U4をUSBでPCに接続すると本来はVID:PID=0511:083fで接続...
EEPROMが書き換わってしまったようなのだが元の書き込んであ...
*** LNB電源の出力
PX-W3U4では出力無しと15Vの出力のみに対応している。~
デフォルトはLNB電源の出力を行わない。~
もしLNB電源の出力を行う場合は,recpt1(録画ツール)を実行...
** ICカードリーダー(接触式)を用意する
この非公式デバイスドライバーpx4_drvには,PX-W3U4の内蔵カ...
このためB-CASカードを読むために''接触式ICカードリーダーを...
一般的な接触式のICカードリーダーであれば問題なく使用でき...
今回は安価な接触式ICカードリーダーの[[SCR3310 v2.0>https:...
B-CASカード以外にもマイナンバーカードなんかにも使えるので...
*** SCR3310 v2.0を使用する場合
ICカードリーダー用のライブラリ等をインスト-ルする。
# apt install pcscd libpcsclite1 libpcsclite-dev libccid...
USBでカードリーダーと接続して,B-CASカードをカードリーダ...
B-CASカードを認識しているか確認する。~
# pcsc_scan | grep B-CAS
Japanese Chijou Digital B-CAS Card (pay TV)
このように表示されればB-CASカードを認識できている。Ctrl +...
** リモコン
この非公式デバイスドライバーには,PX-W3U4のリモコン用のデ...
なので,PX-W3U4のリモコンは使用できない。
[[Mirakurun>https://github.com/Chinachu/Mirakurun]](チュ...
クライアント・アプリをリモコンを使って操作する方法はいろ...
* 録画用ツール・ライブラリをインストールする
録画するためのツールとライブラリをインストールする。
** libarib25ライブラリーのインストール
日本のデジタルテレビ放送は暗号化されて電波で配信されてい...
ソースコードからビルドしてインストールする。~
$ cd ~/work
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
** 録画ツールrecpt1(stz版)のインストール
recpt1(stz版)は,チューナーデバイスにアクセスしてテレビ...
ソースコードを取得して,テレビ放送をB-CASカードを使って復...
$ 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の...
* MirakurunとEPGStationのインストール
[[Mirakurun>https://github.com/Chinachu/Mirakurun]](チュ...
素晴らしいソフトウェアを作ってくれた作者に感謝です((寄付...
** Mirakurunのインストール
[[Mirakurun>https://github.com/Chinachu/Mirakurun]]は,地...
これにより,ネットワークに接続した複数のクライアントでテ...
動作には[[Node.js:https://nodejs.org/ja]]のv10かv12かv14...
$ node -v
v10.24.0
Rasbian BusterでインストールされているNode.jsはv10.24.0に...
後日Mirakurunをバージョン3.7.1に更新しようとしたところ,v...
もし未インストール(更新も)の場合,v16がいいのかな。~
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo ...
$ 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-...
//復号化(スクランブル解除)はrecpt1だけでも出来るが,Mir...
$ 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の設定を行う。
*** サーバーの設定
''/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を更新した...
// #epgGatheringInterval: 1800000 # 30min EPGを更新した...
// epgGatheringInterval: 3600000 # 30min EPGを更新した...
// #epgGatheringInterval: 86400000 # 24h EPGを更新した...
// epgRetrievalTime: 600000 # 10min EPG最大取得時...
// #logoDataInterval: 86400000 # 24h logoデータ収集間隔
// logoDataInterval: 604800000 # 7d logoデータ収集間隔
// maxBufferBytesBeforeReady: 8388608 # 8Mib(0x800000)
にして,ログをなるべく少なくなるようにしてみた。IPv6は使...
*** チューナーの設定
''/usr/local/etc/mirakurun/tuners.yml''を編集して,チュー...
以下のように設定した。~
#code(text,nonumber,,tuners.yml)
テレビ放送の復号化(スクランブル解除)は,''recpt1でも行...
これはMirakurun側で復号化を行わず,クライアント側で復号化...
*** チャンネル設定
''/usr/local/etc/mirakurun/channels.yml''を設定する。~
下記のコマンドでチャンネルスキャンを実行すると,設定ファ...
$ sudo curl -X PUT "http://<mirakurunのIPAddress>:4077...
うまく行けば,''/usr/local/etc/mirakurun/channels.yml''フ...
BSとCSは,
$ sudo curl -X PUT "http://<mirakurunのIPAddress>:4077...
$ sudo curl -X PUT "http://<mirakurunのIPAddress>:4077...
でチャンネルが設定される。(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,ch25...
- 03/27/2022 修正~
''BS松竹東急''(BS23_3,ch260),''BSJapanext''(BS23_2,...
- 11/01/2022 修正~
''BSスカパー!''(BS11_0,ch241)が停波したので削除。~
''放送大学ex''(BS11_1,ch231) → ''放送大学テレビ(メ...
''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) → ''スター・チャ...
''スター・チャンネル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,...
''放送大学テレビ(サブ)''(BS11_0,ch232)が(BS13_2,ch...
- 01/10/2025 予定~
''BSJapanext''(BS23_2,ch263)が''BS10''(BS15_1,ch200...
*** ログの管理
ログファイルが肥大化しないように,以下のパッケージをイン...
$ 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の再起動
''/usr/local/etc/mirakurun/channels.yml''が作成・修正した...
$ sudo mirakurun restart
Mirakurunがテレビ放送電波を受信してチャンネル情報等を登録...
//しばらく待っているとMirakurunでチャンネル情報が更新され...
// $ sudo rivarun --list | sed 's/},/},\n/g'
//この時,受信が出来ていないとrivarunで表示されない。serv...
// $ sudo rivarun --list | sed 's/},/},\n/g' | grep -v se...
//
録画出来るか試してみる。~
// $ rivarun [--b25] [--mirakurun host:port] [--priority ...
//
// $ rivarun --mirakurun localhost:40772 --b25 --sid 231 ...
// $ rivarun --mirakurun localhost:40772 --b25 --ch BS/BS...
$ rivarun --mirakurun localhost:40772 --b25 --ch GR/22 1...
// $ rivarun --mirakurun localhost:40772 --b25 --sid 4300...
// # rivarun --mirakurun localhost:40772 --b25 --sid 1024...
// status: 200
15秒の録画ファイルが出来ていて,再生できれば問題ない。~
次に他のPCでVLCを使ってMirakurunで配信される動画ストリー...
VLCのメニューのメディアを開く>ネットワークを開くで,~
http://<mirakurunのIPAddress>:40772/api/channels/GR/<...
とか
http://<mirakurunのIPAddress>:40772/api/channels/BS/<...
で,地デジやBS放送が視聴できればMirakurunは正常に動作して...
チャンネル番号やサービスIDは,上記の''/usr/local/etc/mira...
WEBブラウザで,http://<mirakurunのIPAddress>:40772 にア...
Mirakurunの動作や設定管理が行えるので,必要であれば追加の...
** EPGStationのインストール
[[EPGStation>https://github.com/l3tnun/EPGStation]]はテレ...
テレビ放送の番組を確認したり,録画予約をしたり,録画を行...
EPGStationはTVチューナーとして[[Mirakurun>https://github....
EPGStationをMirakurunが動作しているマシン以外のマシンで動...
[[Node.js:https://nodejs.org/ja]]はv14またはv16(バージョ...
次のようにしてインストールした。
$ 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/operator...
$ cp config/epgUpdaterLogConfig.sample.yml config/epgUpd...
$ cp config/serviceLogConfig.sample.yml config/serviceLo...
$ cp config/enc.jp config/enc.jp
DBにはデフォルトのSQLiteを使っている。SQLiteで正規表現を...
$ wget https://www.sqlite.org/2019/sqlite-amalgamation-3...
$ 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-amalgam...
$ cd sqlite-amalgamation-3290000
$ gcc -g -fPIC -shared regexp.c -o regexp.so
$ cp regexp.so ~/work/EPGStation/data/
*** EPGStationの設定
''config/config.yml''ファイルで設定を行う。~
設定できるオプションとかいろいろある。[[作者のページ>http...
sqlite:
extensions:
- '/home/yuji/EPGStation/data/regexp.so' ...
regexp: true
ffmpeg: '/usr/bin/ffmpeg' ...
ffprobe: '/usr/bin/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 -...
-c:v h264_omx -b:v 4M -profile:v baseline -pre...
-movflags frag_keyframe+empty_moov+faststart+d...
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の更新
バージョンアップ等で更新する場合は,
$ sudo pm2 stop epgstation
$ cd ~/EPGStation
$ git pull
$ npm run all-install
$ npm run build
とすると,更新できる。~
もしエラー等が出てうまくインストール出来ない場合は,npmを...
$ sudo npm install -g npm
その後,再度EPGStationを更新してみる。
うまく更新ができたら,EPGStationを再起動する。~
$ sudo pm2 start dist/index.js --name "epgstation"
* テレビ放送や録画したデータを見る方法
Mirakurun/EPGStationの環境でテレビ放送の視聴や録画した動...
- テレビ放送の視聴~
-- WEBブラウザでEPGStationから視聴する~
WEBブラウザを使ってEPGStationの放送中からテレビ放送を視聴...
WEBブラウザで視聴する場合は,放送のMPEG2そのまま無変換で...
EPGStationを十分な速度が出る別のマシンで動作させた場合,...
//-- WEBブラウザで[[KonomiTV>https://github.com/tsukumiji...
//WEBサーバーとして[[KonomiTV>https://github.com/tsukumij...
-- Windowsマシンで[[TVTest>/PC/PX-W3U4/px-w3u4でテレビを...
[[BonDriver_Mirakurun>https://github.com/Chinachu/BonDriv...
&ref(BonDriver_Mirakurun.zip,,ビルドしたBonDriver_Mirakur...
-- Macで[[Meruru>https://github.com/castaneai/Meruru]]を...
-- WindowsやLinux,Macで[[MirakTest>https://github.com/ci...
[[プラグイン>https://github.com/ci7lus/miraktest-plugins]...
-- VLCなどのマルチメディアプレーヤーで視聴する~
MirakurunまたはEPGStationでストリーミング配信して,それを...
TV.m3u8ファイルのようなプレイリストを作っておけば,マルチ...
http://<Mirakurunサーバー>:40772/api/iptv/playlist でプレ...
http://<EPGSStationサーバー>:8888/api/iptv/channel.m3u8?m...
ただVLCだとプレイリストでのチャンネル選択が操作しづらい。~
[[PotPlayer>https://potplayer.daum.net/]](Windowsのみ)...
-- [[Kodi>https://kodi.tv/]]と[[PVR IPTV Simple Client>ht...
KodiはWindows,Linux,Android,Raspberry Pi,macOS, iOSな...
MirakurunのM3U Playlist(チャンネル)とXMLTV(番組表)をK...
Fire TV Stickを使うと,リビングにあるテレビ(チューナーレ...
-- スマートフォンのアプリでテレビ放送を視聴する~
IPTVクライアントアプリでMirakurunやEPGStationのM3U Playli...
--- Android:[[IPTV Pro>https://play.google.com/store/app...
//や[[TiviMate IPTV Player>https://play.google.com/store/...
//や[[Smarters Player Lite>https://play.google.com/store/...
--- iPhone:[[iPlayTV>https://apps.apple.com/us/app/iplay...
- 録画予約をする~
WEBブラウザ(Windows,Linux,Android端末...)からEPGStati...
VPNで家のNetworkに接続すれば,外出先から録画予約をするこ...
- 録画した動画データを再生~
-- WEBブラウザでEPGStationにアクセスして録画データを再生...
-- EPGStationで録画データーをストリーミング配信(HLSも可...
-- 録画した動画ファイルをDLNAメディアサーバーなどで扱って...
-- 録画した動画ファイルをSambaなどでファイル共有して,VLC...
EPGStationで放送中のテレビ放送をリアルタイムエンコードし...
m2tsの無変換(リアルタイムエンコードはしない)でストリー...
録画した動画ファイルを再生する場合は,ネットワーク上のフ...
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ