Mirakurun経由でLinux版EDCBを使う

前回はLinux版EDCBを使う方法について書きましたが、既にMirakurinやMIrakcを導入している環境だと、それを利用してEDCBを利用する方法のほうが安定性も高くおすすめです。オリジナルのrecisdbを使用している場合などでも有効ですね。
これは、こちらのサイトで詳しく解説されています。
「EDCB Material WebUIのインストール」までは前回通りですけれど、分かりやすいようにここでも。
現時点ではKonomiTVで視聴出来る環境があるという前提です。
(その環境に実行しようとしたら、なぜかdtvフォルダがroot権限になっていたので下記コマンドで権限追加)

sudo chown -R $USER:$USER ~/dtv

EDCB(EpgDataCap_Bon)のインストール

dtvフォルダ内に作成します。

cd ~/dtv
sudo apt install git make gcc g++ liblua5.2-dev lua-zlib curl ffmpeg -y
git clone https://github.com/xtne6f/EDCB
cd EDCB/Document/Unix
make
sudo make install
make extra
sudo make install_extra
sudo mkdir /var/local/edcb
sudo chown $USER /var/local/edcb
make setup_ini
cd ../../..

# EDCB Material WebUIのインストール
git clone https://github.com/EMWUI/EDCB_Material_WebUI
cd EDCB_Material_WebUI
cp -r HttpPublic /var/local/edcb/
cp -r Setting /var/local/edcb/
cd ..

BonDriver_LinuxMirakcのビルドとインストール

cd ~/dtv
git clone https://github.com/matching/BonDriver_LinuxMirakc.git --recurse-submodules
cd BonDriver_LinuxMirakc
make

sudo cp BonDriver_LinuxMirakc.so /usr/local/lib/edcb
sudo cp BonDriver_LinuxMirakc.so.ini_sample /usr/local/lib/edcb/BonDriver_LinuxMirakc.so.ini

チャンネルスキャン

前回のBonDriver_LinuxPTXを使うよりもスキャンは早いと思います。

/usr/local/bin/EpgDataCap_Bon -d BonDriver_LinuxMirakc.so -chscan

もしISDBScannerを使ってスキャンしたデータがあるなら、それをコピーすればOK。たとえば~/dtv/scanned以下にスキャンデータがあるならば次のコマンドでコピーします。

cp ~/dtv/scanned/EDCB-Wine/ChSet5.txt /var/local/edcb/Setting
cp ~/dtv/scanned/EDCB-Wine/'BonDriver_mirakc(BonDriver_mirakc).ChSet4.txt' /var/local/edcb/Setting/'BonDriver_LinuxMirakc(LinuxMirakc).ChSet4.txt'

ここからは前回と同様ですけど、このあともまとめて一気に。

EDCBの初期設定

# WebUIからの設定変更を可能に
sed -i -e 's/^ALLOW_SETTING=.*/ALLOW_SETTING=true/' /var/local/edcb/HttpPublic/legacy/util.lua

#Tailscaleからもアクセス出来るように
tee /var/local/edcb/EpgTimerSrv.ini << 'EOT'
[SET]
EnableHttpSrv=1
HttpAccessControlList=+127.0.0.0/8,+10.0.0.0/8,+172.16.0.0/12,+192.168.0.0/16,+169.254.0.0/16,+100.64.0.0/10
RecEndMode=0
Data=1
EnableTCPSrv=1
EOT

# 録画保存フォルダを/var/local/edcb/HttpPublic/videoに変更
mkdir /var/local/edcb/HttpPublic/video
tee /var/local/edcb/Common.ini << 'EOT'
[SET]
RecFolderPath0=/var/local/edcb/HttpPublic/video
RecFolderNum=1
EOT

# EDCBのサービス登録
sudo tee /etc/systemd/system/edcb.service << EOT
[Unit]
Description=EpgTimerSrv
After=network-online.target

[Service]
ExecStart=/usr/local/bin/EpgTimerSrv
Restart=always
StandardError=journal
StandardOutput=null
TimeoutStopSec=50
Type=simple
User=$USER

[Install]
WantedBy=default.target
EOT
sudo systemctl enable edcb

# EDCBの起動
sudo systemctl start edcb

あとは、http://127.0.0.1:5510 などにアクセスして、BonDriverが「BonDriver_LinuxMirakc」になっているか確認し、チューナー数を指定して「変更」ボタンをクリック。続いて、EDCBを再起動します。

sudo systemctl restart edcb

再起動したら先ほどのEDCB legacyの画面で「EPG取得」ボタンを押します。チャンネル数が多ければ30分くらいはかかります。気長に待ちましょう。
進行状況は表示されませんが、下記コマンドでEPGデータを確認し、tmpファイルが無くなれば完了です(全部したら環境にもよるけれど.datが12ファイルくらい?)。

ls /var/local/edcb/Setting/EpgData

完了したらEDCB Material WebUI(http://IPアドレス:5510/EMWUI/epg.html)にアクセスしてEPG読み込みし表示されればOK。
ちなみに最近取得した、同じ環境のEpgDataがあればコピーしても可。最後に示した方法でバックアップしておいたなら次のコマンドでコピーします。

cp ~/dtv/edcbSetting/Setting/EpgData /var/local/edcb/Setting -r

KonomiTVと連携

KonomiTVにアクセスし、バックエンドを「EDCB」にしたり、受信は常にMirakurun経由、保存フォルダに下記を追加。

/var/local/edcb/HttpPublic/video

サーバ設定を更新」ボタンを押して、「KonomiTVサーバーを再起動」ボタンを押せば完了です。バックエンドをEDCBにすれば番組表からそのまま録画出来たりして便利です。録画が開始されない場合、一度パソコンを再起動すればいけるはず。

バックアップと復元

バックアップ

cd ~
cp /usr/local/bin/recisdb ~/dtv
cp /usr/local/etc/bcas_keys  ~/dtv
cp  -r /usr/local/lib ~/dtv
cp /usr/local/bin/isdb-scanner ~/dtv
cp /usr/local/bin/isdb-scanner ~/dtv
cp /usr/local/bin/EpgDataCap_Bon ~/dtv
cp /usr/local/bin/EpgTimerSrv ~/dtv

mkdir ~/dtv/bon
mkdir ~/dtv/edcbSetting
cp -r /usr/local/lib/edcb ~/dtv/bon
cp -r /var/local/edcb/Setting ~/dtv/edcbSetting

cd ~
tar czvf dtv-backup.tar.gz dtv

復元

Ubuntuのセットアップ直後を想定。バックアップしておいたdtv-backup.tar.gzを解凍し、中のdtvフォルダをホームフォルダのルートに保存している状態です。上で解説した事と重なりますが数クリックで出来るように。

# ドライバ
sudo apt install -y ~/dtv/px4-drv-dkms_0.5.5_all.deb
sudo modprobe px4_drv

#各種ファイル
sudo cp ~/dtv/lib/libsobacas.a /usr/local/lib
sudo cp ~/dtv/lib/libsobacas.so.0 /usr/local/lib
sudo cp ~/dtv/lib/libyakisoba.la /usr/local/lib
sudo cp ~/dtv/lib/libyakisoba.so.0.0.1 /usr/local/lib
sudo cp ~/dtv/lib/libsobacas.la  /usr/local/lib
sudo cp ~/dtv/lib/libsobacas.so.0.0.0 /usr/local/lib
sudo cp ~/dtv/lib/libyakisoba.so /usr/local/lib
sudo cp ~/dtv/lib/libsobacas.so /usr/local/lib
sudo cp ~/dtv/lib/libyakisoba.a /usr/local/lib
sudo cp ~/dtv/lib/libyakisoba.so.0 /usr/local/lib

sudo cp  ~/dtv/bcas_keys  /usr/local/etc

sudo cp ~/dtv/isdb-scanner /usr/local/bin/isdb-scanner
sudo chmod +x /usr/local/bin/isdb-scanner

sudo cp -a ~/dtv/recisdb /usr/local/bin

sudo cp -r ~/dtv/lib/pkgconfig /usr/local/lib

cd ~/dtv
sudo apt install -y build-essential libclang-dev cmake libdvbv5-dev libpcsclite-dev libudev-dev pkg-config

# Mirakurun
sudo apt install curl
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

sudo npm install -g pm2
sudo npm install -g --unsafe-perm --foreground-scripts --production mirakurun@3.9.0-rc.4

# yml
sudo mirakurun stop
sudo cp -a ~/dtv/scanned/Mirakurun/channels.yml /usr/local/etc/mirakurun/channels.yml
sudo cp -a ~/dtv/scanned/Mirakurun/tuners.yml /usr/local/etc/mirakurun/tuners.yml
sudo chown -R root /usr/local/etc/mirakurun/
sudo mirakurun start

# EDCB
sudo apt install git make gcc g++ liblua5.2-dev lua-zlib curl ffmpeg -y
cd ~/dtv/EDCB/Document/Unix
make
sudo make install
make extra
sudo make install_extra
sudo mkdir /var/local/edcb
sudo chown $USER /var/local/edcb
make setup_ini

cd ~/dtv/EDCB_Material_WebUI
cp -r HttpPublic /var/local/edcb/
cp -r Setting /var/local/edcb/

cd ~/dtv/BonDriver_LinuxMirakc
make

sudo cp BonDriver_LinuxMirakc.so /usr/local/lib/edcb
sudo cp BonDriver_LinuxMirakc.so.ini_sample /usr/local/lib/edcb/BonDriver_LinuxMirakc.so.ini

cp ~/dtv/scanned/EDCB-Wine/ChSet5.txt /var/local/edcb/Setting
cp ~/dtv/scanned/EDCB-Wine/'BonDriver_mirakc(BonDriver_mirakc).ChSet4.txt' /var/local/edcb/Setting/'BonDriver_LinuxMirakc(LinuxMirakc).ChSet4.txt'

cd ~/dtv
# WebUIからの設定変更を可能に
sed -i -e 's/^ALLOW_SETTING=.*/ALLOW_SETTING=true/' /var/local/edcb/HttpPublic/legacy/util.lua

#Tailscaleからもアクセス出来るように
tee /var/local/edcb/EpgTimerSrv.ini << 'EOT'
[SET]
EnableHttpSrv=1
HttpAccessControlList=+127.0.0.0/8,+10.0.0.0/8,+172.16.0.0/12,+192.168.0.0/16,+169.254.0.0/16,+100.64.0.0/10
RecEndMode=0
Data=1
EnableTCPSrv=1
EOT

# 録画保存フォルダを/var/local/edcb/HttpPublic/videoに変更
mkdir /var/local/edcb/HttpPublic/video
tee /var/local/edcb/Common.ini << 'EOT'
[SET]
RecFolderPath0=/var/local/edcb/HttpPublic/video
RecFolderNum=1
EOT

# EDCBのサービス登録
sudo tee /etc/systemd/system/edcb.service << EOT
[Unit]
Description=EpgTimerSrv
After=network-online.target

[Service]
ExecStart=/usr/local/bin/EpgTimerSrv
Restart=always
StandardError=journal
StandardOutput=null
TimeoutStopSec=50
Type=simple
User=$USER

[Install]
WantedBy=default.target
EOT
sudo systemctl enable edcb

# EPGデータコピー
cp ~/dtv/edcbSetting/Setting/EpgData /var/local/edcb/Setting -r
sudo systemctl restart edcb

# EDCBの起動
sudo systemctl start edcb

# KonomiTV
chmod +x ~/dtv/KonomiTV-Installer.elf
sudo ~/dtv/KonomiTV-Installer.elf

問題なければKonomiTVのインストール画面に。各自の設定だけれど、設定例として。バックエンドはEDCBに。

/home/user/KonomiTV
tcp://127.0.0.1:4510/
/var/local/edcb/HttpPublic/video

無事KonomiTVのインストールが完了したら、EDCBの設定。http://IPアドレス:5510/にアクセスしてBonDriverの数を設定します。「変更」ボタンを押したらEDCBをリスタート。

sudo systemctl restart edcb

最後にKonomiTVのWeb画面にアクセスして、サーバ設定で受信は常にMirakurun経由に変更。「サーバ設定を更新」ボタンを押して、「KonomiTVサーバーを再起動」ボタンを押せば完了です。

タイトルとURLをコピーしました