EpgrecUNA を使ってみる

 RaspberryPi 3B の microSD が壊れました。

 2016 年にセットアップしてずっと電源を入れたままにしていたサーバの micsoSD が死にました。地デジの録画に使っていたサーバでした。

 新しい microSD に Bullseye のイメージを書き込んで起動させたら、本体は何も問題なさそうでした。そこで環境を整えていったら、録画システムの Epgrec が動きませんでした。Epgrec は PHP5 でなければ動かないようです。いろいろ探したら、EpgrecUNA というものがありました。ダウンロードの際にキーワードを入れるのですが、何を入れるのかわからなかったので調べたところ、サイトのプロフィールにヒントがあるということでした。なんとかプロフィールから推測してダウンロードできました。わかってしまえば簡単でしたが、ちょっと苦労しました。こちらが動きそうだったのですが、動かそうとパッケージを入れていたら、起動しなくなってしまいました。

 そこで、今度は Buster を書き込んで設定していきました。一見動いたように見えましたが、一部でエラーが出て修正が必要でした。

作業内容

必要なパッケージのインストール

 libusb-dev libudev-dev libssl-dev libpcsclite-dev samba apache2 php at mariadb-client mariadb-server php-mysql php-xml php-fpm php-mbstring をインストールしました。

/etc/at.deny から www-data の行を削除

 録画予約の際に www-data が at を使います。

epg 取得のために、recfsusb2i を修正

 recfsusb2i が –sid オプションをエラーにせず無視するように修正しました。

www-data を video グループに追加(/etc/group)

 video グループに属していないと recfsusb2i が実行できません。

config.php を修正

 放送局のチャンネルを自分の地域に合わせて定義します。また、使うのは、FSUSB2/V3 1 台なので、TUNER_UNIT1 は 1 を設定し、PT1_CMD_NUM を 2 に設定します。

 rec_cmds の recfsusb2n の項目の cmd を recfsusb2i に、b25 は空に、epgTs を TRUE に変更します。

 録画後に色々やるので、USE_DORECORD を TRUE に設定して、do-record.sh を epgrec のディレクトリに作成

EpgrecUNA を修正

 そのままでは EpgrecUNA が動きませんでした。

 まず、templates/programTable.html 内の 16 進数表記 (0xXX) がエラーになるので 10 進数表記に変更しました。

 次に番組検索からのキーワード登録がうまく行かないので、DBRecord.class.php 内で空の値を設定する際、空の値を許容しないフィールドには’0′ を設定するように変更しました。また、epg 取得用のスクリプトがワーニングを出してしまうので、shepherd.php と storeProgram.inc.php も修正しました。

MariaDB でデータベースとユーザを作成

 データベースとユーザを作成します。このあたりは、Epgrec と変わりません。

Web ページで設定

 この辺も、Epgrec と同じです。

epg データ(番組表) の自動取得

 /etc/cron.d に epgrec/cron.d/shepherd をコピーすれば OK です。

ffmpeg のコンパイル

 字幕取り出し、ハードウェアエンコードができるように ffmpeg をコンパイルし、do-record.sh 内で、録画後に h264 で圧縮して字幕と一緒に mkv に変換するように修正しました。

以上でなんとかもとの環境と同じ様に録画出来ました。

Raspberry Pi

Posted by sirius