Linux memo 2024/05/23 録画サーバ編

● 概要
「Mirakurun + EPGStationで録画サーバを作ってみた」みたいな記事はもはやそこら中に溢れてるし、手順通りやると構築するだけなら難しくないので、ここではそういうのに書かれてなさそうな点を中心にメモしておく。

● パソコン
TRIGKEY G4 N95にした(Amazonアフィ)
ライセンスの怪しいWindowsは使わない、技適が怪しいBluetooth/WiFiは使わない。
以前にも書いたけど、BIOSで「Advacnced→Power→GT→RC6」を「Enable」にするとGPU消費電力を抑えやすい。あとは、PL1/PL2制限をキツめにし、Ethernetを100Base-TXに制限し、不要なUSBは接続しない(キーボード・マウス)、不必要なHDMIを接続しない、systemctlでbluetoothdを止める、/sys/devices/system/cpu/cpufreq/policy0以下で「energy_performance_preference = balance_power」「scaling_governor = powersave」「scaling_max_freq = 1500000」とかしておけば、idle時で5W前後にはなるはず。WiFiドライバやBluetoothドライバをrmmodしても特に変化は見られなかった。

● チューナ
PLEX PX-W3U4(Amazonアフィ)
px4_drv.git(@nns779)という非公式ドライバがあるが、メンテが止まっちゃっているので、forkしたこっち(@tsukumijima)のほうがいいかもしれない。Ubuntu-24.04LTSで試すと、UBSANのオーバラン誤検出でdmesgが汚れて困ったので、パッチ(0001-change-usage-for-variable-array.txt)作った。が、同じようなパッチを作った人がすでにいた(px4_drv_chrdev20240521.patch)

● ICカードリーダ
SCR3310/v2.0(Amazonアフィ)
可能なら、ICカードリーダはPX-W3U4に内蔵のを使ってみたかったが、Windowsで実際に動かしてUSBバスのダンプを取って...みたいなリバースエンジニアリングする気力までは出なかった。

● Mirakurun(チューナサーバ)
docker拾い食いに抵抗がないなら、docker-mirakurun-epgstation.gitが楽だと思う。recpt1を自分でコンパイルして準備し、tuners.ymlとchannels.ymlを整える必要はあるが、逆にそれだけ行えばもう動いてしまう。後述するが、私はEPGStationは自前で立てることにしたので、docker-compose.ymlでそのへんをごまかした。

● EPGStation(録画視聴サーバ)
Ubuntu-24.04LTSのaptで取れるffmpegでも、vaapiとIntelプロプラドライバを整えれば、QSVによるハードウェアエンコードができるということがわかったので、Ubuntuホストのffmpegを使うためにも、EPGStationはdocker板ではなくて自分で立てることにした。とはいえ公式のレポジトリから持ってきて手順通り動かすだけだけど。ffmpegをvaapiのh264で動かすために、config.ymlenc.jsを変更した。QSVを使うとN95の1.5GHzでもh264エンコードは余裕だった。まぁソフトエンコでも-threads対応だから200-300%くらいでリアルタイムでも回るんだけど。改めてN95/N100シリーズってすげぇ。

● サスペンド
いくら省電力とはいえ、何もやっていないときにも動かしっぱなしにするのはなにかもったいない。ということで、スケジュールをチェックしてサスペンドするsuspendd.plのPerlスクリプトを書いた。次の録画予約、3日に1回EPGデータ巡回、重要なプログラム(sshログイン・Sambaアクセス中・recpt1使用中)、をチェックして空いていたらサスペンドする(rtcwake -m mem -s 3600)ようにしてみた。注意点として、EPGStationは公式にはサスペンドをサポートしていないので、起き上がってきたらresettimer(curl -X POST "http://127.0.0.1:8888/api/recording/resettimer")をしてタイマーのイベントドリブンを再スケジュールする必要がある。しなかったらタイマーイベントがずれて録画予約に失敗する。

● その他
マジメに使い倒すならばデータ置き場をHDDにしたりもいいんだけど、まぁ遊びだから、たぶんこのくらいまでにとどめておくことになるんじゃないかなと思う。暇があれば、生のMPEG2-TSからパケットパースしてschedule EITやpf EITをひろってきて番組表を自力で作る、なんてのもいいのかもしれない。

このブログ記事について

このページは、らるるが2024年5月23日 23:36に書いたブログ記事です。

ひとつ前のブログ記事は「「鉄道会社vs地方自治体 データが突き付ける存続限界」読んだ」です。

次のブログ記事は「C++ Programmingメモ 2024/06/17 デストラクタ noexcept」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0