2023 Dec. 31.
2023 Dec. 30.
下記手法ではブラウザからmirakcにもEPGStationにもアクセスできなかった。
出典
tv-recorder/README.md at master · collelog/tv-recorder · GitHub
https://github.com/collelog/tv-recorder/tree/master
tv-recorder on Raspberry Pi 4B/8GB | ColleLog
ロケール、タイムゾーンを設定する
$ sudo apt update $ sudo apt install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 $ sudo timedatectl set-timezone Asia/Tokyo
時刻サーバーに同期させる
$ echo 'NTP=ntp.nict.jp' | sudo tee -a /etc/systemd/timesyncd.conf >/dev/null $ echo 'FallbackNTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp' | sudo tee -a /etc/systemd/timesyncd.conf >/dev/null // サービス再起動 $ sudo systemctl restart systemd-timesyncd // 状態確認 $ systemctl status systemd-timesyncd
(オプション)swapを無効化する
$ sudo swapoff --all $ sudo reboot
(オプション)/tmpをtmpfsにする
/etc/fstabに次の行を書き込み、システムを再起動する。
tmpfs /tmp tmpfs defaults,noatime 0 0
(オプション)ログをRAMディスクに書き込むようにする
$ echo "deb http://packages.azlux.fr/debian/ buster main" | sudo tee /etc/apt/sources.list.d/azlux.list $ wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add - $ sudo apt update $ sudo apt install -y log2ram
/etc/log2ram.confのSIZEとUSE_RSYNCの設定を次のようにする。
SIZE=256MB
USE_RSYNC=true
システムを再起動する。
PLEXチューナードライバをインストールする
参照先 PLEX PX-W3U4テレビチューナーをxubuntu 20.04で利用する - rokkonet
Docker (version 18.06.0 and higher), docker-compose (version 1.22.0 and higher)をインストールする
参照先 Docker、docker-composeをubuntuにインストール - rokkonet
録画ファイル保管場所と録画サムネイル画像ファイル保管場所を作成する
$ sudo mkdir /MY/RECORDED/FILE/DIR $ sudo mkdir /MY/RECORDED/FILE/DIR/thumbnail $ sudo chmod 777 /MY/RECORDED/FILE/DIR /MY/RECORDED/FILE/DIR/thumbnail
dockerファイルリポジトリをダウンロードする
$ mkdir ~/docker $ cd ~/docker $ git clone https://github.com/collelog/tv-recorder.git
docker-compose.ymlを作成する
$ cd ~/docker/tv-recorder $ cp epgstation2-mirakc-amd64.yml docker-compose.yml
mirakcのチューナーデバイスの設定
~/docker/tv-recorder/docker-compose.yml のdevicesセクションの "- /dev/px4videoX" の行をPX-W3U4に合わせ次の4行以外はコメントアウトする。
- /dev/px4video0
- /dev/px4video1
- /dev/px4video2
- /dev/px4video3
EPGStationの録画ファイル保管場所設定
~/docker/tv-recorder/docker-compose.yml のservices -> epgstation -> volumesセクションの該当行を先に作成した録画ファイル保管ディレクトリに合わせて変更する。
(オリジナル)
- ./epgstation2/thumbnail:/opt/epgstation/thumbnail
- ./recorded:/opt/epgstation/recorded
(変更後)
- /MY/RECORDED/FILE/DIR/thumbnail:/opt/epgstation/thumbnail
- /MY/RECORDED/FILE/DIR:/opt/epgstation/recorded
EPGStationが利用するデータベースシステムをmysqlに変更する
コメントアウトされているdocker-compose.ymlファイルのmysql設定を本文に戻す。
mysql -> volumesセクションの/var/lib/mysqlの設定を "- mysql-db:/var/lib/mysql" と「名前付きボリューム」とし、ホストと共有できるようにする。
mysql -> environmentセクションを一般ユーザ設定に変更する。
オリジナル
depends_on:
- mirakc
#mysql# - mysql
#mysql# mysql:
#mysql# <<: *default-service
#mysql# <<: *default-network
#mysql# container_name: epgstation2-mysql
#mysql# image: collelog/mariadb:latest-10.4-alpine
#mysql# ports:
#mysql# - "3306:3306"
#mysql# volumes:
#mysql# - /etc/localtime:/etc/localtime:ro
#mysql# - ./epgstation2-mysql/sock:/var/run/mysqld
#mysql# - ./epgstation2-mysql/db:/var/lib/mysql
#mysql# - ./epgstation2-mysql/init:/docker-entrypoint-initdb.d/
#mysql# environment:
#mysql# <<: *default-environment
#mysql# MYSQL_ROOT_PASSWORD: epgstation
#mysql# command: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --performance-schema=false --expire_logs_days=1
変更後
depends_on:
- mirakc
- mysql
mysql:
<<: *default-service
<<: *default-network
container_name: epgstation2-mysql
image: collelog/mariadb:latest-10.4-alpine
ports:
- "3306:3306"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./epgstation2-mysql/sock:/var/run/mysqld
# - ./epgstation2-mysql/db:/var/lib/mysql
- mysql-db:/var/lib/mysql
- ./epgstation2-mysql/init:/docker-entrypoint-initdb.d/
environment:
<<: *default-environment
# MYSQL_ROOT_PASSWORD: epgstation
MYSQL_USER: epgstation
MYSQL_PASSWORD: epgstation
MYSQL_ROOT_PASSWORD: epgstation
MYSQL_DATABASE: epgstation
TZ: "Asia/Tokyo"
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --performance-schema=false --expire_logs_days=1
EPGStationの設定ファイルを作成する
ファイルをバックアップしておく
$ cd ~/docker/tv-recorder/epgstation2/config $ mv config.yml config.yml.original
~/docker/tv-recorder/epgstation2/config/config.ymlを作成する
$ cd ~/docker/tv-recorder/epgstation2/config $ cp ~/docker/tv-recorder/example-config/epgstation2-mysql/base/config/config.yml ./config.yml
~/docker/tv-recorder/epgstation2/config/config.ymlを次のように編集する。
(変更部分を抜粋)
# mirakurunPath: http://mirakc:40772/
mirakurunPath: http://MY/MIRAKC/IP/ADDRESS:40772/
dbtype: mysql
mysql:
# host: epgstation2-mysql
host: 127.0.0.1
# recordedFormat: '%YEAR%%MONTH%%DAY%_%HALF_WIDTH_TITLE%'
recordedFormat: '%SHORTYEAR%%MONTH%%DAY%%HOUR%%MIN%%TYPE%%CH%-%SID%-%CHNAME%-%TITLE%'
recorded:
- name: recorded
path: '/opt/epgstation/recorded'
mirakc設定を行う
参考 mirakc/docs/config.md at main · mirakc/mirakc · GitHub
$ cd ~/docker/tv-recorder/mirakc/conf $ cp config.yml config.yml.original
~/docker/tv-recorder/mirakc/conf/config.yml を次の内容に編集する。
チャンネル設定、チューナー設定を行う。
次の内容とした。
epg:
cache-dir: /var/lib/mirakc/epg
server:
addrs:
- http: 0.0.0.0:40772
- unix: /var/run/mirakurun/mirakurun.sock
channels:
- name: NHK総合
type: GR
channel: '22'
- name: NHKEテレ
type: GR
channel: '13'
- name: サンテレビ
type: GR
channel: '26'
- name: MBS毎日放送
type: GR
channel: '16'
- name: ABCテレビ
type: GR
channel: '15'
- name: テレビ大阪
type: GR
channel: '18'
- name: 関西テレビ
type: GR
channel: '17'
- name: 読売テレビ
type: GR
channel: '14'
- name: J:COMテレビ
type: GR
channel: '19'
- name: J:COMチャンネル
type: GR
channel: '24'
- name: 'NHKBS1'
type: 'BS'
channel: 'BS15_0'
services: [101]
- name: 'NHKBS1'
type: 'BS'
channel: 'BS15_0'
services: [102]
- name: 'BS日テレ'
type: 'BS'
channel: 'BS13_0'
services: [141]
- name: 'BS日テレ'
type: 'BS'
channel: 'BS13_0'
services: [142]
- name: 'BS日テレ'
type: 'BS'
channel: 'BS13_0'
services: [143]
- name: 'BS朝日1'
type: 'BS'
channel: 'BS1_0'
services: [151]
- name: 'BS朝日2'
type: 'BS'
channel: 'BS1_0'
services: [152]
- name: 'BS朝日3'
type: 'BS'
channel: 'BS1_0'
services: [153]
- name: 'BS-TBS'
type: 'BS'
channel: 'BS1_1'
services: [161]
- name: 'BS-TBS'
type: 'BS'
channel: 'BS1_1'
services: [162]
- name: 'BS-TBS'
type: 'BS'
channel: 'BS1_1'
services: [163]
- name: 'BSテレ東'
type: 'BS'
channel: 'BS1_2'
services: [171]
- name: 'BSテレ東2'
type: 'BS'
channel: 'BS1_2'
services: [172]
- name: 'BSテレ東3'
type: 'BS'
channel: 'BS1_2'
services: [173]
- name: 'BSフジ・181'
type: 'BS'
channel: 'BS13_1'
services: [181]
- name: 'BSフジ・182'
type: 'BS'
channel: 'BS13_1'
services: [182]
- name: 'BSフジ・183'
type: 'BS'
channel: 'BS13_1'
services: [183]
- name: 'BS11イレブン'
type: 'BS'
channel: 'BS9_0'
services: [211]
- name: 'BS12トゥエルビ'
type: 'BS'
channel: 'BS9_2'
services: [222]
- name: '放送大学ex'
type: 'BS'
channel: 'BS11_1'
services: [231]
- name: '放送大学on'
type: 'BS'
channel: 'BS11_1'
services: [232]
- name: '放送大学ラジオ'
type: 'BS'
channel: 'BS11_1'
services: [531]
disabled: true
- name: 'BS松竹東急'
type: 'BS'
channel: 'BS23_3'
services: [260]
- name: 'BSJapanext'
type: 'BS'
channel: 'BS23_2'
services: [263]
- name: 'BSよしもと'
type: 'BS'
channel: 'BS23_1'
services: [265]
tuners:
- name: PX-W3U4_S1
types: [BS,CS]
command: >-
recpt1 --device /dev/px4video0 {{channel}} {{duration}} -
disabled: false
- name: PX-W3U4_S2
types: [BS,CS]
command: >-
recpt1 --device /dev/px4video1 {{channel}} {{duration}} -
disabled: false
- name: PX-W3U4_T1
types: [GR]
command: >-
recpt1 --device /dev/px4video2 {{channel}} {{duration}} -
disabled: false
- name: PX-W3U4_T2
types: [GR]
command: >-
recpt1 --device /dev/px4video3 {{channel}} {{duration}} -
disabled: false
filters:
decode-filter:
command: arib-b25-stream-test
pcscd の無効化
pcscdを確実に停止しておく
$ sudo systemctl stop pcscd.socket $ sudo systemctl disable pcscd.socket $ sudo systemctl status pcscd.socket
録画システム起動
$ cd ~/docker/tv-recorder $ docker-compose -f ./docker-compose.yml up -d
録画システム停止
$ cd ~/docker/tv-recorder $ docker-compose -f ./docker-compose.yml down