epgrec unaを愛用していましたが
下記の記事のように、かれこれ2015年11月から約9年近くepgrec unaを利用しつづけていましたがが何の不満もありませんでした(え
epgrec unaの弱い所
細かい所を言えば以下がunaの弱点でしょうか?
- モバイル向けにUIが最適化されていない
- 既に開発が止まっている(個人開発だから仕方ない)
また、録画ストレージは2THDDを使用していましたが、既に90%以上の使用率でディスクの拡張を行いたいという思惑もあり、現在主流だと思われるmirakurun/epgstationで録画サーバを新規構築することにしました。
諸先輩方の記事も多いですが備忘録のために、構築ログを残しておきます。
気づいたらこのサイトの更新するの久しぶりやな・・・(最後は2020年9月19日)
mirakurun/epgstationの構築
mirakurun、epgstationとは
mirakurunは日本の番組向けのDVR(デジタル録画機)サーバであり、epgstationはmirakurunを使用した録画管理ソフトです。
録画サーバを構築するには両方を導入する必要がありますが、以下のようにdocker-composeでセットで簡単に導入できます。(今はdocker composeが推奨です)
環境
下記のOS、H/Wで構築します
- Ubuntu 22.04.4 LTS(2024年4月時点で最新のLTS)
- 富士通 PRIMERGY TX1310 M1
- CPU:Core i7-4770K CPU(4C/8T)
- RAM:16GB( DDR3 1600MHz LV-Unbuffered DIMM )
- DISK1:320GB(WDの青いやつ)
- DISK2:6TB(WDの赤いやつ。録画データ用)
- TVチューナー:PT3(既に終売。故障したらPLEXのやつにするかな)
- ICカードリーダ: SCR3310
既に生産終了となっているPT3を継続するか否か、悩んだのですが、PLEXのチューナは良いお値段するので壊れたら買うこととします。
ざっと調べてみたところ、PLEXのチューナでも動くようなのでPT3をお持ちでない方はチャレンジしてみてください。
PT3の場合、同時録画は最大4ch(地デジ:2、BS/CS:2)だったと思いますのでCPUはそこまで性能要らなそうです。4Cでも行けると思います。
録画データを保存するDISKは予算の都合上6TBとしましたが、余裕がある方はもっと大容量のものでも良いと思います。
Ubuntuのインストール
OSのインストールはメインの話ではないので省略します。
- ISOファイルを公式サイトダウンロード(Ubuntu Server 22.04.4 LTS)
- EtcherなどのソフトでISOファイルをUBSメモリに書き出す
- PCに挿したUBSメモリからUbuntuを起動してインストール
- 最小構成
- ネットワークはお好みで(DHCPまたは固定)
- ストレージはシステムディスクのみ設定(この時点では追加DISKは接続していない)
- SSHは設定しておきましょう(セットアップ後にリモートアクセスします)
ちなみに上記OSインストール時はPT3、ICカードリーダ、追加DISKはセットアップしていません。
追加H/WはOSのセットアップが正常に完了してから接続しています。
A start job is running for wait for network to be configured .
ちなみにUbuntuを新規構築すると必ずと言っていいほど起動するときに悩まされます。
A start job is running for wait for network to be configured.
今回の場合、原因は2つあるNICのうち、1つは利用しないためネットワークの設定を行おうとしているらしいです(ありがた迷惑w)
再起動するたびに2分ほど待たされるので、以下のように設定変更しておきます。
ExecStartのパラメータに–igonoreを追加して不要なNIC(ここではenp0s25)を無効化します。
$ sudo vi /usr/lib/systemd/system/systemd-networkd-wait-online.service
#省略
[Service]
Type=oneshot
ExecStart=/lib/systemd/systemd-networkd-wait-online --ignore=enp0s25
RemainAfterExit=yes
#省略
再起動して同じメッセージが表示されて待たされないか、確認しましょう。
& sudo reboot
OSのインストールが完了したら一度停止し、追加H/Wを接続して再度起動します。
追加DISKの設定
録画データを保存するための追加HDDを設定していきます。
追加DISKを確認します。(今回は/dev/sdb。partedが無かったらaptでインストール)
$ sudo apt install parted
$ sudo parted -l
#省略
Error: /dev/sdb: unrecognised disk label
Model: ATA WDC WD60EFPX-68C (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
設定していきます。
$ sudo parted /dev/sdb
ラベルを作成
(parted) mklabel gpt
パーティションを作成
(parted) mkpart
パーティション名は空白でOK
Partition name? []?
ファイルシステムはシステムDISKと同じext4にしました
File system type? [ext2]? ext4
それぞれ0%と100%を指定します
Start? 0%
End? 100%
確認します。問題無さそうです
(parted) p
Model: ATA WDC WD60EFPX-68C (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 6001GB 6001GB ext4
抜けます
(parted) quit
Information: You may need to update /etc/fstab.
パーティションの確認。問題無さげ
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 298.1G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 296.1G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 296.1G 0 lvm /
sdb 8:16 0 5.5T 0 disk
└─sdb1 8:17 0 5.5T 0 part
sr0 11:0 1 1024M 0 rom
フォーマット。partedで設定しているはずなので、不要な気もする
$ sudo mkfs.ext4 /dev/sdb1
追加DISK用のフォルダを作成
$ sudo mkdir /video3
マウントします
$ sudo mount /dev/sdb1 /video3/
確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 1.2M 1.6G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 291G 11G 266G 4% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 129M 1.7G 8% /boot
tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
/dev/sdb1 5.5T 28K 5.2T 1% /video3
再起動するとマウントが外れてしまうのでfstabへ追記
$ sudo vi /etc/fstab
#省略
/dev/sdb1 /video3 ext4 defaults 0 0
自動更新の無効化
完全ローカルで利用するし、更新は無効でええやろ(え
1から0へ変更します。
$ sudo vi /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
docker
今回はdockerコンテナで必要ソフトをインストールします。
$ sudo apt -y install docker.io
$ sudo apt install docker-compose
$ sudo docker --version
ユーザでコマンドを実行できるように追加しておきましょう
$ sudo usermod -aG docker $USER
再起動
$ sudo reboot
その他の事前準備
UbuntuにはPT3用のドライバーが標準で入っているらしい
$ sudo ls /dev/dvd
必要そうなパッケージ
$ sudo apt install -y dkms git
$ sudo apt install dvb-tools
$ sudo apt install curl
$ sudo apt install vim
ICカードリーダをインストール
$ sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid
確認
$ pcsc_scan
ホストOS側のICカードリーダは停止しておく必要がある
$ sudo systemctl stop pcscd.socket
$ sudo systemctl disable pcscd.socket
$ sudo systemctl status pcscd
mirakurun/epgstationのインストール
$ curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s
事前にチャンネル設定をしておきます。ご自宅の環境に合わせて適宜変更してください。
我が家は横浜のケーブルテレビなのでちょっと変則的になっています(BS/CSは見ない)
$ cd docker-mirakurun-epgstation/
$ sudo vi mirakurun/conf/channels.yml
- name: フジテレビ
type: GR
channel: '21'
- name: TBS
type: GR
channel: '22'
- name: テレビ東京
type: GR
channel: '23'
- name: テレビ朝日
type: GR
channel: '24'
- name: 日テレ
type: GR
channel: '25'
- name: NHKEテレ・東京
type: GR
channel: '26'
- name: NHK総合・東京
type: GR
channel: '19'
- name: テレビ神奈川
type: GR
channel: '18'
追加ディスクを録画データの保存先に変更(volumesの/app/recordedのところ)
$ vi docker-compose.yml
#省略
epgstation:
build:
context: "./epgstation"
dockerfile: "debian.Dockerfile"
volumes:
- ./epgstation/config:/app/config
- ./epgstation/data:/app/data
- ./epgstation/thumbnail:/app/thumbnail
- ./epgstation/logs:/app/logs
- /video3:/app/recorded
#省略
コンテナを起動。(初回はイメージ作成のため5分~10分くらいかかる)
$ docker-compose up -d
確認
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f44a67e65a37 docker-mirakurun-epgstation_epgstation "npm start" 4 hours ago Up 4 hours 0.0.0.0:8888-8889->8888-8889/tcp, :::8888-8889->8888-8889/tcp docker-mirakurun-epgstation_epgstation_1
74d11fd71172 mariadb:10.5 "docker-entrypoint.s…" 4 hours ago Up 4 hours 3306/tcp docker-mirakurun-epgstation_mysql_1
644ec275f5c9 chinachu/mirakurun "docker-entrypoint.s…" 4 hours ago Up 4 hours 0.0.0.0:9229->9229/tcp, :::9229->9229/tcp, 0.0.0.0:40772->40772/tcp, :::40772->40772/tcp docker-mirakurun-epgstation_mirakurun_1
mirakurun/epgstation へのアクセス
mirakurun
OS設定時の「IPアドレス:40772」でブラウザでアクセス。
下記のIPは例です。
epgstation
OS設定時の「IPアドレス:8888」でブラウザでアクセス。
下記のIPは例です。
ひとまず、ほぼデフォルトの設定ですが録画サーバの構築は完了しました。
録画も問題無く可能でした。
使い方やカスタマイズは後日に遊んでみます。
ひとまずの感想
- スマホから見やすいUIが嬉しい
- VLCメディアプレーヤなどのアプリを利用せずブラウザでそのまま視聴できるの便利すぎる
- 字幕がちゃんと表示される(デフォルトのTSファイル)
- リアルタイム視聴もできる
まとめ
- 録画システムも進化している
- docker便利すなぁ
- epgrec無印から使っているオジサンからすると進化の度合いがえげつない
嫁「もっと早くに入れて欲しかった」
ワイ「(面倒くさかったなんて言えない)」