用树莓派4制作地面波录像服务器后编(使用docker-px4_drv版)
初版日期:2022年5月28日
最新更新日期:2023年8月19日
メンテナンス&トラブルシューティング
∟ 定期診断スクリプト
前編
1.树莓派和服务器概述
2.收集和购买录制所需的物品
3.操作系统的安装和设置
4.NAS的建立
后编(Docker-DVB版)
● 后编(Docker-PX4_DRV版)现在进行中!
5.引入调谐器驱动程序
6.引入Docker-Mirakurun-EPGStation
后编(非Docker版)
5.引入调谐器,进行测试录制
6.用于运营的工具,Mirakurun,EPGStation
运营实践编
7.录制管理方法
8.编码和播放
9.系统备份
附录.总结版
附录.手动设置Mirakurun频道
附录.为树莓派制作外壳
如果使用非官方驅動程式px4_drv,以下是兼容的設備:
– PX-W3U4
– PX-Q3U4
– PX-W3PE4
– PX-Q3PE4
– PX-W3PE5
– PX-Q3PE5
– PX-MLT5PE
– PX-MLT8PE
– DTV02-1T1S-U(實驗性)
– DTV02A-1T1S-U
– DTV02A-4TS-P
不支援PX-S1UD或Q1UD等設備,請參考dvb版。
非官方的调谐器(Plex等)驱动程序(px4_drv)
许多Plex Tuner的官方驱动程序似乎不稳定(经常出现丢包?),而非官方驱动程序px4_drv则稳定。需要注意的是:
– 不能使用dvb系列命令进行录制?
– 因此要使用recpt1命令
– 所以仅使用docker-mirakurun-epgstation是不行的
– 无法使用内置卡读卡器
Docker版是指
之後要出現的Mirakurun和EPGStation都有普通版本和使用虛擬化技術的Docker版,從這裡開始分叉。EPGStation的作者表示未來將以Docker版為主,如果可能的話,最好使用Docker版。優點是不容易受到庫的版本相依性的影響。缺點是內部的運作方式不太容易理解。
首先,Mirakurun和EPGStation是做什么的?
Mirakurun和Mirakc的作用是充当调谐器服务器。它可以分配多个调谐器并处理多个预约录制。此外,还可以在另一台设备上实时观看。
EPGStation和Chinachu的作用是使得可以通过浏览器从其他设备上查看节目表,并进行预约录制等操作。它们可以参考Mirakurun等的EPG数据。尽管主机设备需要一定的性能,但也可以通过浏览器实现实时观看。
这两者在从其他设备访问时很有用。如果直接将调谐器连接到平时使用的Windows设备上进行观看和预约,则不需要这些工具,只需使用tvtest即可完成。
5. 引入调谐器驱动程序
从这里开始进行调谐器相关的设置。步骤如下:
1. 安装调谐器的固件和驱动程序。
2. 使卡片阅读器能够读取B-Cas卡。
3. 安装录像命令recpt1(针对px4_drv目标调谐器,无法使用dvb命令,需要安装recpt1?)。
4. 停止卡片阅读器。
5. 安装docker和docker-compose。
6. 安装docker-mirakurun-epgstation。
这样进行设置。
引入调谐器的驱动程序
公式ドライバからファームを抽出する
git clone https://github.com/nns779/px4_drv
cd px4_drv/fwtool/
make
curl -O http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip
unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys
./fwtool PXW3U4.sys it930x-firmware.bin
sudo mkdir -p /lib/firmware
sudo cp it930x-firmware.bin /lib/firmware/
続いてドライバのインストール。最後にmodprobeで読み込ませる
cd ../
*現在px4_drvディレクトリ
sudo apt -y install raspberrypi-kernel-headers
cd driver
make
sudo make install
sudo modprobe px4_drv
読み込んでいることを確認
ls /dev
---------------
多くのplex
/dev/px4video*
MLT5PE
/dev/pxmlt5video*
MLT8PE
/dev/pxmlt8video*
e-Better DTV02-1T1S-U/DTV02A-1T1S-U
/dev/isdb2056video*
e-Better DTV02A-4TS-P
/dev/isdb6014video*
***もしここで読み込んでいない、かつここに至るまでに大きなエラーが見当たらない場合はチューナーの認識の方に問題があることもあるので、ラズパイとチューナー双方の電源を一度切って再度起動して、ls /devを再び試してみてください。
---------------
または
lsmod | grep -e ^px4_drv
---------------
# px4_drv 143360 0
---------------
*dkmsでカーネルドライバを自動的に設定することもできるが、この解説では行わない
sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid
B-CASカードの認識を確認
pcsc_scan
そのままだと永遠に続くのでCtrl+cで抜ける
dockerで入れる場合はリーダーは事前に停止しておく必要があるとのことで。
1行で
sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid;timeout 10 pcsc_scan;sudo systemctl stop pcscd.socket
*dockerの場合、mirakurunでスクランブル解除が入るようで、事前にb25をビルドしておく必要はないようです。
sudo apt install -y autoconf automake
git clone https://github.com/stz2012/recpt1.git
cd recpt1/recpt1/
./autogen.sh
./configure --enable-b25
make
sudo make install
b25入れていない場合、録画自体出来ても画面真っ暗なのでそこ考慮してください。
recpt1 --device /dev/px4video0 --lnb 15 --b25 --strip 13 10 test.m2ts
--lnb 15 はBSCSアンテナへの給電が不要/不可能ならなくてOKです。
↓MLT5の場合
recpt1 --device /dev/pxmlt5video0 --b25 --strip 13 10 test.m2ts
sudo systemctl stop pcscd.socket
sudo systemctl disable pcscd.socket
再び動かす場合は
sudo systemctl start pcscd.socket
sudo systemctl enable pcscd.socket
6.安装docker-mirakurun-epgstation
假设已经完成了调谐器的驱动程序安装,现在以此为前提进行下一步操作:
(·安装调谐器驱动程序:已完成)
·安装docker
∟安装docker软件包
∟安装python-pip和相关软件包
(如果将来发布了适用于arm的compose二进制文件,则可能不需要)
∟安装docker-compose软件包
·安装mirakurun-epgstation-docker
*使用docker版进行SoftCAS的人很少见。似乎不太可能,但并非不可能…
在这一带,我们将分别写下各自的指令。
dockerパッケージインストール
curl -sSL https://get.docker.com | sh
バージョンの確認
docker -v
権限の追加
sudo usermod -a -G docker $USER
python-pipおよび関連パッケージ導入
(今後、composeバイナリなどの状況でここら辺は変わるかもしれない)
sudo apt install -y libffi-dev libssl-dev python3 python3-pip python3-dev
docker-composeパッケージインストール
(なおmirakurun-epgstation入れる場合、どのサイトだったかcompose不要という記述があったが、私が試した限りではcomposeは必須のようです。)
sudo pip3 install docker-compose
docker-composeのバージョン確認
docker-compose -v
docker-mirakurun-epgstation在安装之前需要重新启动吗?不需要的话可以吗?
いきなりインストールしないのは、編集するファイルがあるため
git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b v2 docker-mirakurun-epgstation
cd docker-mirakurun-epgstation
cp docker-compose-sample.yml docker-compose.yml
如果是非官方的驱动程序,则需要在这里进行各种编辑。
cd docker-mirakurun-epgstation
*現在docker-mirakurun-epgstationディレクトリ
mkdir mirakurun/run
mkdir mirakurun/opt
mkdir mirakurun/opt/bin
cp -p /usr/local/bin/checksignal mirakurun/opt/bin/
cp -p /usr/local/bin/recpt1* mirakurun/opt/bin/
ls -la mirakurun/opt/bin/
※checksignal、recpt1、recpt1ctlがあることを確認する
サンプルからコピーし作成
cp epgstation/config/config.yml.template epgstation/config/config.yml
cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml
cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml
cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml
cp epgstation/config/enc.js.template epgstation/config/enc.js
もしくは右クリック等でテキストエディタで編集してもよい
・deviesで、dvbの削除(使わない場合)、使用するデバイスの登録
MLT5の場合、↓を加える
- /dev/pxmlt5video0:/dev/pxmlt5video0
- /dev/pxmlt5video1:/dev/pxmlt5video1
- /dev/pxmlt5video2:/dev/pxmlt5video2
- /dev/pxmlt5video3:/dev/pxmlt5video3
- /dev/pxmlt5video4:/dev/pxmlt5video4
dvbは、該当のチューナーをつないでいない場合は削除(コメント化?)
- /dev/dvb:/dev/dvb
volumes:
- ./mirakurun/conf:/app-config
- ./mirakurun/data:/app-data
とあるので、
- ./mirakurun/run:/var/run/
- ./mirakurun/opt:/opt/
を加える
【参考:しなくても普通に動いた】↓を修正する、mariadb:10.5はラズパイだと上手く動作しない、との記載のサイト様あり
mysql:
image: jsurf/rpi-mariadb
#!/bin/sh
git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
cd docker-mirakurun-epgstation
cp docker-compose-sample.yml docker-compose.yml
cp epgstation/config/enc.js.template epgstation/config/enc.js
cp epgstation/config/config.yml.template epgstation/config/config.yml
cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml
cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml
cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml
docker-compose run --rm -e SETUP=true mirakurun
この内容が終わった後に、↓を実行する
sudo docker-compose up -d
在这个阶段,自行启动是可行的。实际上,更好的做法是在修改了保存录制文件等相关位置之后再进行启动。先移动到目录,然后启动。注意,首次启动可能需要较长时间。cd docker-mirakurun-epgstation,更新命令是sudo docker-compose pull,启动命令是sudo docker-compose up -d。
channels.yml等を控えている場合はここで上書き可能に。
デフォだとアクセス権的に上書きできないので修正を
sudo chmod 666 docker-mirakurun-epgstation/mirakurun/conf/*.yml
パミッションを変更するとwin上からsamba経由で上書きコピー可能になる。mirakurun起動中でも可能ですが、その時はmirakurunのUI上などからmirakurunの再起動を行いましょう。
开机时的启动设置无需进行特别操作。
如果你想停止,请确保在移动目录后执行以下命令:sudo docker-compose down。
nano docker-mirakurun-epgstation/docker-compose.yml
なお、GUIでテキストエディタで開いて編集してもよい。
編集する場所は、epgstation>volumes>recordedの部分について、
- <録画ファイルを置く相対パスorフルパス>:/app/recorded にする。
docker-mirakurun-epgstationを停止→起動で変更適用されるはずです。
例: - ./recorded/recorded:/app/recorded
→ /home/pi/docker-mirakurun-epgstation/recorded/recordedに保存
通常版とは異なるので注意すること。
なお、理由はわからないが、_から始まるフォルダ名を指定すると録画できない現象が発生したので注意。
/home/pi/docker-mirakurun-epgstation/recordedにデータパーティションをマウントして、
その中にrecordedフォルダを作っておけば、
/home/pi/docker-mirakurun-epgstation/recorded/recorded、
つまりデータパーティション/recordedに録画される。
虽然无法确定所有的情况,但有些与Docker相关的重启命令无法生效。在这种情况下,您可以先执行停止命令,然后再执行启动命令以使其生效。
进入docker-mirakurun-epgstation目录;执行sudo docker-compose down命令;执行docker-compose up -d命令;返回主目录。
一方,关于保存文件名(默认情况下),通常版本和思考方式是相同的。
nano docker-mirakurun-epgstation/epgstation/config/config.yml
なお、GUIでテキストエディタで開いて編集してもよい。
書き換える場所は、recordedformat:の部分。まぁこれは見てわかるでしょう。
チューナー設定
dvbと異なり自動では設定してくれないよう。mirakurunのuiから、もしくはtuners.ymlを編集する。
sudo nano docker-mirakurun-epgstation/mirakurun/conf/tuners.yml
チャンネル設定については、スキャンする方法と手動で設定する方法がある。個人的には、できるなら手動で設定した方が早く確実だと思ってしまう。
チャンネルをスキャンする.
curl -X PUT "http://localhost:40772/api/config/channels/scan"
: '40772はmirakurunのデフォルトのポート'
なお、物理チャンネルとは名前の通り内部で認識している周波数域?のこと。テレビのリモコンとは異なるので注意。
<例>リモコン、放送局、物理チャンネル
1 RAB 28
2 NHKE 13
3 NHKG 16
5 ABA 32
6 ATV 30
sudo nano docker-mirakurun-epgstation/mirakurun/conf/channels.yml
docker-mi~フォルダ上で実行する場合
sudo nano mirakurun/conf/channels.yml
- name: NHKEテレ
type: GR
channel: '13'
- name: NHK総合
type: GR
channel: '16'
- name: RAB青森放送
type: GR
channel: '28'
- name: ATV青森テレビ
type: GR
channel: '30'
- name: ABA青森朝日放送
type: GR
channel: '32'
Mirakurun的调谐器设置
,虽然Docker能够自动进行设置,但对于我的情况来说,并没有特别的设置。所以我认为要么自己进行设置,要么使用备份文件。PX-MLT5PE的情况下。
- name: adapter0
types:
- GR
dvbDevicePath:
decoder: arib-b25-stream-test
command: >-
recpt1 --device /dev/pxmlt5video0 <channel> - -
- name: adapter1
types:
- GR
dvbDevicePath:
decoder: arib-b25-stream-test
command: >-
recpt1 --device /dev/pxmlt5video1 <channel> - -
- name: adapter2
types:
- GR
dvbDevicePath:
decoder: arib-b25-stream-test
command: >-
recpt1 --device /dev/pxmlt5video2 <channel> - -
- name: adapter3
types:
- GR
dvbDevicePath:
decoder: arib-b25-stream-test
command: >-
recpt1 --device /dev/pxmlt5video3 <channel> - -
- name: adapter4
types:
- GR
dvbDevicePath:
decoder: arib-b25-stream-test
command: >-
recpt1 --device /dev/pxmlt5video4 <channel> - -
备注:Docker的启动与停止
前往各个Docker安装文件夹,
停止
sudo docker-compose down
启动
sudo docker-compose up -d
重新启动
sudo docker-compose restart
关于Docker的命令
現在動いているコンテナ
docker ps
全コンテナ(動いている+動いていない)
docker ps -a
コンテナの削除
docker rm [コンテナID]
コンテナ全削除
docker rm `docker ps -a -q`
信号强度测量的例子
recdvb的版本至少为1.3.3(或已补丁)。
根据略先生所说,使用USB连接可以录制地面数字4个频道的调谐器PX-Q1UD。
如果CNR大于等于20、ERRBLK为0,且SIG值较小(大约下降到-45左右),应该是可以的吧?
有关脚本等内容,请参考维护和故障排解。
錄影時的問題。
使用中可能出现无法录制的问题。在这种情况下,应该检查哪些地方呢?
维护和故障排除
– 确认mirakurun的状态(http://192.168.1.**:40772/)。
下一节在这里→运用实践篇
后篇(Docker-DVB版)
后篇(非Docker版)