2024 Jan. 14.
2023 Dec. 30.
2023 Nov. 13.
2023 Oct. 09.
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 2 | 小茂根の暮らし
PLEXチューナーでのチューナーデバイスと録画コマンド
PLEXチューナーで使うpx4_drvドライバではチューナーデバイスは /dev/px4_drv[n] となる。
/dev/px4_drv[n]は、Mirakurun標準の録画コマンドdvbv5-zapでは利用できず、recpt1コマンドで利用できる。
MirakurunでPLEXチューナーを使うには、Mirakurunが/dev/px4_drv[n]にアクセスでき、recpt1を利用できるようにする必要がある。
Mirakurunでのaribデコードにはarib-b25-stream-testが使われるので、libarib25は不要。
利用するMirakurunとEPGStationについて
- Docker版EPGStation : GitHub - l3tnun/docker-mirakurun-epgstation: Mirakurun + EPGStation on Docker
このリポジトリにはmirakurunとEPGStationが含まれるが、ここ含まれるmirakurunはDVBドライバ向けのdvbv5-zapを録画コマンドに使っていて、px4_drvドライバを使ったPX-W3U4では使えない。EPGStationのみ利用する。
px4_drvドライバで作られるデバイスを利用できる録画コマンドrecpt1が同梱されたMirakurunを別途用意する必要がある。
- Docker版Mirakurun : GitHub - Chinachu/Mirakurun: A Modern DVR Tuner Server for Japanese TV.
このリポジトリを元に、recpt1が同梱されたMirakurunのコンテナを作成する。
このページの手順で「Windows 11 + VMware Workstation Player + Xubuntu 22.04」の構成のXubuntu 22.04にインストールしたところ、Mirakurunは稼働したが、EPGStationのHTTPサーバーが起動しなかった。
(手順)
PCにPLEX PX-W3U4チューナー、B-CAS ICカードリーダ、録画ファイル保存用ストレージを接続する。
ロケール、タイムゾーンを設定する
$ 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
ビルドツール、インストールツールをインストール
$ sudo apt install build-essential git unzip dkms pkg-config automake cmake curl libssl-dev libtool libboost-all-dev yasm
(オプション)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
システムを再起動する。
$ sudo reboot
稼働確認
$ df -h | grep "log2ram" log2ram 256M 60M 197M 24% /var/log
チューナー Plex PX-W3U4がPCに接続されていることを確認
$ lsusb Bus 002 Device 002: ID 0511:083f N'Able (DataBook) Technologies, Inc. PXW3U4
次の記事を参考に、PLEX PX-W3U4をXubuntuにインストールする。
PLEX PX-W3U4 TVチューナー ドライバをxubuntu 22.04にインストール - rokkonet
次の記事を参考に、B-CASカードリーダをXubuntuにインストールする
ICカードリーダライタSCR3310-NTTComをxubuntuにインストール - rokkonet
pcscdを停止する
Mirakurunでは pcscdが稼働していてはいけない。
$ sudo systemctl stop pcscd.socket $ sudo systemctl disable pcscd.socket $ pcsc_scan 次の出力があれば成功 SCardEstablishContext: Service not available.
次の記事を参考に、Docker (version 18.06.0 and higher), docker-compose (version 1.22.0 and higher)をインストールする
Docker、docker-composeをubuntuにインストール - rokkonet
Docker版のMirakurun、MySQL、EPGStationを運用する任意の一般ユーザーを決める(ここではtvユーザーとする)
tvユーザーをdockerグループ、sudoグループ、videoグループに所属させ、ログインしなおす
・所属グループ追加
$ sudo usermod -aG docker,sudo,video tv
・いったんXubuntuからログアウトし、tvユーザーで再度ログインする
dockerディレクトリを作成する
$ su - tv $ mkdir ~/docker
Docker版Mirakurunをインストールする
https://github.com/Chinachu/Mirakurun にアクセスし、Codeタブ画面にて最新タグを確認する。(ブランチ・ドロップダウンで Tags をクリックすると確認できる) 現時点では 3.9.0-rc.4 が最新タグ。
git clone コマンドの"-b"オプションで最新タグを指定する。
Mirakurunインストール
ホスト側(Dockerコンテナ外)のMirakurun用ディレクトリを作成する。
$ sudo mkdir -p /opt/mirakurun/run $ sudo mkdir /opt/mirakurun/opt $ sudo mkdir /opt/mirakurun/config $ sudo mkdir /opt/mirakurun/data $ sudo chmod 755 /opt/mirakurun /opt/mirakurun/* $ sudo mkdir -p /RECORDED/FILES/DIR/thumbnail $ sudo chmod 777 /RECORDED/FILES/DIR /RECORDED/FILES/DIR/thumbnail
まずEPGStationリポジトリをダウンロードする
参考
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 4 | 小茂根の暮らし
https://github.com/l3tnun/docker-mirakurun-epgstation にアクセスし、Codeタブ画面にて最新ブランチを確認する。(ブランチ・ドロップダウンで View all branches をクリックすると確認できる) 現時点では v2 ブランチが最新。
git clone コマンドの"-b"オプションで最新ブランチを指定する。
$ su - tv $ cd ~/docker $ git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b v2 docker-mirakurun-epgstation $ cd docker-mirakurun-epgstation
docker-mirakurun-epgstationディレクトリ内のファイル状況
(この中のmirakurunは利用しない)
$ ls LICENSE Readme.md docker-compose-sample.yml docs epgstation mirakurun recorded setup.sh
Docker版Mirakurunのgitリポジトリを~/docker/docker-mirakurun-epgstationにダウンロード
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 4 | 小茂根の暮らし
https://github.com/Chinachu/Mirakurun にアクセスし、Codeタブ画面でブランチ・ドロップダウンをクリックしTagsタブをクリックし、最新バージョンもしくは最新rc版を確認する。現時点では 3.9.0-rc.4 もしくは 3.8.0。
git clone コマンドの"-b"オプションに最新タグを指定する。
$ cd ~/docker/docker-mirakurun-epgstation $ git clone https://github.com/Chinachu/Mirakurun -b 3.9.0-rc.4
docker-mirakurun-epgstationディレクトリ内のファイル状況
$ ls LICENSE Mirakurun Readme.md docker-compose-sample.yml docs epgstation mirakurun recorded setup.sh
mirakurun が docker-mirakurun-epgstation にあったものでPlexチューナー(recpt1コマンド)を利用できない。Mirakurun が Mirakurun -b 3.9.0-rc.4で git clone したものでPlexチューナー(recpt1コマンド)を利用できる。
MirakurunのDockerfileを作成する
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 4 | 小茂根の暮らし
$ mv ~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile ~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile.original
~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile ファイルを次の内容にする。(ここでは docker-mirakurun-epgstation/mirakurun/ ではなく docker-mirakurun-epgstation/Mirakurun/ を扱う)
(参考)マルチステートビルドDockerfile
Dockerのマルチステージビルドでimageを軽量化する
下記のDockerfileは recpt1とarib25をインストールするようになっている。
~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockdrfile
ARG ARCH= # FROM --platform=$BUILDPLATFORM ${ARCH}node:18.15.0-buster AS build FROM ${ARCH}node:18.15.0-buster AS build WORKDIR /app ENV DOCKER=YES NODE_ENV=production ADD . . RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends build-essential && \ npm install --production=false && \ npm run build && \ npm install -g --unsafe-perm --production FROM ${ARCH}node:18.15.0-buster-slim WORKDIR /app ENV DEV="build-essential libtool autoconf git automake" RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ ca-certificates \ make \ gcc \ g++ \ pkg-config \ pcscd \ libpcsclite-dev \ libccid \ # libdvbv5-dev \ pcsc-tools \ # dvb-tools \ $DEV && \ \ # arib25 \ apt install -y --no-install-recommends \ autoconf \ build-essential \ cmake \ curl \ git \ libssl-dev \ libtool \ libboost-all-dev \ pkg-config \ yasm && \ git clone https://github.com/stz2012/libarib25.git && \ cd libarib25 && \ cmake . && \ make && \ make install && \ ldconfig && \ \ # recpt1 \ git clone https://github.com/stz2012/recpt1 /tmp/recpt1 && \ cd /tmp/recpt1/recpt1 && \ ./autogen.sh && \ ./configure --enable-b25 && \ make && \ make install && \ rm -rf /tmp/recpt1 && \ \ apt-get -y remove $DEV && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY --from=build /usr/local/lib/node_modules/mirakurun /app CMD ["./docker/container-init.sh"] EXPOSE 40772 9229
EPGStationのDockerfileを作成する(ファイルをコピーするだけ)
$ cd ~/docker/docker-mirakurun-epgstation/epgstation $ cp debian.Dockerfile Dockerfile
docker-compose.ymlを作成する
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
次の内容で~/docker/docker-mirakurun-epgstation/docker-compose.ymlを作成する。
81行目あたりの"- ./epgstation/thumbnail:/app/thumbnail"は録画サムネイルファイル保存用パスに合わせる。
83行目あたりの"- ./recorded:/app/recorded"は録画ファイル保存用パスに合わせる。
書式 - ホスト側のPath:コンテナの絶対Path
Ver. 2024 Jan. 08
version: '3' services: mirakurun: container_name: mirakurun-3.9.0-rc.4 build: context: Mirakurun dockerfile: docker/Dockerfile # image: chinachu/mirakurun image: chinachu/mirakurun:3.9.0-rc.4 cap_add: - SYS_ADMIN - SYS_NICE ports: - "40772:40772" - "9229:9229" environment: TZ: "Asia/Tokyo" # DOCKER_NETWORK: host # network_mode: host devices: - /dev/px4video0:/dev/px4video0 - /dev/px4video1:/dev/px4video1 - /dev/px4video2:/dev/px4video2 - /dev/px4video3:/dev/px4video3 - /dev/bus:/dev/bus volumes: # ** CAUTION ** # (default) `/usr/local/mirakurun/*` has been moved to `/opt/mirakurun/*` # try: # sudo mv -vf /usr/local/mirakurun /opt/mirakurun # sudo mkdir -p /opt/mirakurun/run /opt/mirakurun/opt /opt/mirakurun/config /opt/mirakurun/data # you can change to any location if required. - type: bind source: /opt/mirakurun/run/ target: /var/run/ - type: bind source: /opt/mirakurun/opt/ target: /opt/ - type: bind source: /opt/mirakurun/config/ target: /app-config/ - type: bind source: /opt/mirakurun/data/ target: /app-data/ restart: always logging: driver: json-file options: max-file: "1" max-size: 10m mysql: container_name: mysql-epgstation image: mariadb:10.5 # image: mysql:8.0 # 囲み文字を使用する場合 volumes: - mysql-db:/var/lib/mysql environment: MYSQL_USER: epgstation MYSQL_PASSWORD: epgstation MYSQL_ROOT_PASSWORD: epgstation MYSQL_DATABASE: epgstation TZ: "Asia/Tokyo" # for mariadb command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --performance-schema=false --expire_logs_days=1 # for mysql # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_090 0_as_ci --performance-schema=false --expire_logs_days=1 --default-authentication -plugin=mysql_native_password # for myql restart: always logging: options: max-size: "10m" max-file: "3" epgstation: container_name: epgstation-v2.7.3 build: context: epgstation dockerfile: Dockerfile volumes: - ./epgstation/config:/app/config - ./epgstation/data:/app/data - ./epgstation/thumbnail:/app/thumbnail - ./epgstation/logs:/app/logs - ./recorded:/app/recorded # VMware仮想マシンへのインストールでは ./recorded を共有フォルダにしておく environment: TZ: "Asia/Tokyo" depends_on: - mirakurun - mysql ports: - "8888:8888" - "8889:8889" # user: "1000:1000" # devices: # - /dev/dri:/dev/dri restart: always volumes: mysql-db: driver: local
Ver. 2024 Jan. 07
services: mirakurun: container_name: mirakurun-3.9.0-rc.4 build: context: Mirakurun dockerfile: docker/Dockerfile # image: chinachu/mirakurun image: chinachu/mirakurun:3.9.0-rc.4 cap_add: - SYS_ADMIN - SYS_NICE ports: - "40772:40772" - "9229:9229" environment: TZ: "Asia/Tokyo" # DOCKER_NETWORK: host # network_mode: host devices: - /dev/px4video0:/dev/px4video0 - /dev/px4video1:/dev/px4video1 - /dev/px4video2:/dev/px4video2 - /dev/px4video3:/dev/px4video3 - /dev/bus:/dev/bus volumes: # ** CAUTION ** # (default) `/usr/local/mirakurun/*` has been moved to `/opt/mirakurun/*` # try: # sudo mv -vf /usr/local/mirakurun /opt/mirakurun # sudo mkdir -p /opt/mirakurun/run /opt/mirakurun/opt /opt/mirakurun/config /opt/mirakurun/data # you can change to any location if required. - type: bind source: /opt/mirakurun/run/ target: /var/run/ - type: bind source: /opt/mirakurun/opt/ target: /opt/ - type: bind source: /opt/mirakurun/config/ target: /app-config/ - type: bind source: /opt/mirakurun/data/ target: /app-data/ restart: always logging: driver: json-file options: max-file: "1" max-size: 10m mysql: container_name: mysql-epgstation image: mariadb:10.5 # image: mysql:8.0 # 囲み文字を使用する場合 volumes: - mysql-db:/var/lib/mysql environment: MYSQL_USER: epgstation MYSQL_PASSWORD: epgstation MYSQL_ROOT_PASSWORD: epgstation MYSQL_DATABASE: epgstation TZ: "Asia/Tokyo" # for mariadb command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --performance-schema=false --expire_logs_days=1 # for mysql # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_090 0_as_ci --performance-schema=false --expire_logs_days=1 --default-authentication -plugin=mysql_native_password # for myql restart: always logging: options: max-size: "10m" max-file: "3" epgstation: container_name: epgstation-v2.6.20 build: context: "./epgstation" volumes: - ./epgstation/config:/app/config - ./epgstation/data:/app/data - ./epgstation/thumbnail:/app/thumbnail - ./epgstation/logs:/app/logs - /YOUR/RECORDED/FILES/DIR:/app/recorded environment: TZ: "Asia/Tokyo" depends_on: - mirakurun - mysql ports: - "8888:8888" - "8889:8889" # user: "1000:1000" # devices: # - /dev/dri:/dev/dri restart: always volumes: mysql-db: driver: local
Mirakurun用チューナー情報ファイルを作成する
$ cd ~/docker/docker-mirakurun-epgstation/Mirakurun/config $ mv tuners.yml tuners.yml.original
次の内容で~/docker/docker-mirakurun-epgstation/Mirakurun/config/tuners.ymlを作成する。
参考 【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 5 | 小茂根の暮らし
- name: PX-W3U4_S1 types: - BS - CS command: recpt1 --device /dev/px4video0 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3U4_S2 types: - BS - CS command: recpt1 --device /dev/px4video1 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3U4_T1 types: - GR command: recpt1 --device /dev/px4video2 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3U4_T2 types: - GR command: recpt1 --device /dev/px4video3 <channel> - - decoder: arib-b25-stream-test isDisabled: false
Mirakurun用チャンネル情報ファイルを作成する
$ cd ~/docker/docker-mirakurun-epgstation/Mirakurun/config $ mv channels.yml channels.yml.original
参考 mirakurun BSCSチャンネル設定(2023/04/19現在) · GitHub
次の内容で ~/docker/docker-mirakurun-epgstation/Mirakurun/config/channels.yml を作成する。
神戸チャンネル フォーマット
(見ないチャンネルには "isDisabled: true"行を書き込む)
- name: NHK総合 type: GR channel: '22' isDisabled: false - name: NHKEテレ type: GR channel: '13' isDisabled: false - name: サンテレビ type: GR channel: '26' isDisabled: false - name: MBS毎日放送 type: GR channel: '16' isDisabled: false - name: ABCテレビ type: GR channel: '15' isDisabled: false - name: テレビ大阪 type: GR channel: '18' isDisabled: false - name: 関西テレビ type: GR channel: '17' isDisabled: false - name: 読売テレビ type: GR channel: '14' isDisabled: false - name: J:COMテレビ type: GR channel: '19' isDisabled: false - name: J:COMチャンネル type: GR channel: '24' isDisabled: false - name: NHK BS1 type: BS channel: BS15_0 serviceId: 101 - name: NHK BSプレミアム type: BS channel: BS03_1 serviceId: 103 - name: BS日テレ type: BS channel: BS13_0 serviceId: 141 - name: BS朝日 type: BS channel: BS01_0 serviceId: 151 - name: BS-TBS type: BS channel: BS01_1 serviceId: 161 - name: BSテレ東 type: BS channel: BS01_2 serviceId: 171 - name: BSフジ type: BS channel: BS13_1 serviceId: 181 - name: WOWOWプライム type: BS channel: BS03_0 serviceId: 191 isDisabled: true - name: WOWOWライブ type: BS channel: BS05_0 serviceId: 192 isDisabled: true - name: WOWOWシネマ type: BS channel: BS05_1 serviceId: 193 isDisabled: true - name: スター・チャンネル1 type: BS channel: BS09_1 serviceId: 200 isDisabled: true - name: スター・チャンネル2 type: BS channel: BS15_1 serviceId: 201 isDisabled: true - name: スター・チャンネル3 type: BS channel: BS15_1 serviceId: 202 isDisabled: true - name: BS11 type: BS channel: BS09_0 serviceId: 211 - name: TwellV type: BS channel: BS09_2 serviceId: 222 - name: 放送大学 BS1 type: BS channel: BS11_0 serviceId: 231 - name: 放送大学 BS2 type: BS channel: BS11_0 serviceId: 232 - name: グリーンチャンネル type: BS channel: BS21_2 serviceId: 234 isDisabled: true - name: BSアニマックス type: BS channel: BS13_2 serviceId: 236 isDisabled: true - name: J SPORTS 1 type: BS channel: BS19_1 serviceId: 242 isDisabled: true - name: J SPORTS 2 type: BS channel: BS19_2 serviceId: 243 isDisabled: true - name: J SPORTS 3 type: BS channel: BS19_3 serviceId: 244 isDisabled: true - name: J SPORTS 4 type: BS channel: BS19_0 serviceId: 245 isDisabled: true - name: BS釣りビジョン type: BS channel: BS11_1 serviceId: 251 isDisabled: true - name: WOWOWプラス type: BS channel: BS21_0 serviceId: 252 isDisabled: true - name: 日本映画専門チャンネル type: BS channel: BS21_1 serviceId: 255 isDisabled: true - name: ディズニー・チャンネル type: BS channel: BS23_0 serviceId: 256 isDisabled: true - name: BS松竹東急 type: BS channel: BS23_3 serviceId: 260 - name: BSJapanext type: BS channel: BS23_2 serviceId: 263 - name: BSよしもと type: BS channel: BS23_1 serviceId: 265
EPGStationの設定ファイルを作成する
参考 PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
$ cd ~/docker/docker-mirakurun-epgstation/epgstation/config $ cp config.yml.template config.yml
次のように、録画ファイル保管先・データベース設定等を記述する。
参考
~/docker/docker-mirakurun-epgstation/epgstation/config/config.yml
# mirakurunPath: http+unix://%2Fvar%2Frun%2Fmirakurun.sock/ mirakurunPath: 'http://127.0.0.1:40772' # dbtype: sqlite # sqlite: # extensions: # - '/hoge/regexp.dylib' # regexp: true dbtype: mysql mysql: host: 127.0.0.1 port: 3306 user: epgstation password: epgstation database: epgstation charset: utf8mb4 recordedFormat: '%SHORTYEAR%%MONTH%%DAY%%HOUR%%MIN%%TYPE%%CH%-%SID%-%CHNAME%-%TITLE%' recorded: - name: recorded # ブラウザ上に表示される保存場所名 path: '%ROOT%/recorded' # docker-compose.ymlのEPGStationのvolume設定でrecordedをホストとの共有ディレクトリにしておく thumbnail: '%ROOT%/thumbnail' # docker-compose.ymlのEPGStationのvolume設定でthumbnailをホストとの共有ディレクトリにしておく ffmpeg: /usr/bin/ffmpeg # システム構築後にepgstationコンテナに入り、pathを確認する ffprobe: /usr/bin/ffprobe # システム構築後にepgstationコンテナに入り、pathを確認する
EPGStationのログ設定ファイルを作成する
参考 PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
$ cd ~/docker/docker-mirakurun-epgstation/epgstation/config $ cp operatorLogConfig.sample.yml operatorLogConfig.yml $ cp epgUpdaterLogConfig.sample.yml epgUpdaterLogConfig.yml $ cp serviceLogConfig.sample.yml serviceLogConfig.yml $ cp enc.js.template enc.js
コンテナ作成
pcscdを確実に停止しておく $ sudo systemctl stop pcscd.socket $ sudo systemctl disable pcscd.socket $ sudo systemctl status pcscd.socket Dockerの稼働確認<BR> $ sudo systemctl status docker.service (docker.serviceが稼働していなければ) $ sudo systemctl start docker.service $ sudo systemctl status docker.service コンテナ作成 $ cd ~/docker/docker-mirakurun-epgstation $ docker-compose pull $ docker-compose build --no-cache かなり時間がかかる
初回セットアップ
$ cd ~/docker/docker-mirakurun-epgstation $ docker-compose run --rm -e SETUP=true mirakurun
チューナー情報ファイル確認
~/docker/docker-mirakurun-epgstation/Mirakurun/config/tuners.yml が先に作成した内容であることを確認する。
チャンネル設定ファイル確認
~/docker/docker-mirakurun-epgstation/Mirakurun/config/channels.yml が先に作成した内容であることを確認する。
コンテナ起動
$ cd ~/docker/docker-mirakurun-epgstation $ docker-compose up -d
ffmpeg、ffprobeのパスを確認し、~/docker/docker-mirakurun-epgstation/epgstation/config/config.ymlに反映する
ffmpeg: /usr/local/bin/ffmpeg # システム構築後にepgstationコンテナに入り、pathを確認する ffprobe: /usr/local/bin/ffprobe # システム構築後にepgstationコンテナに入り、pathを確認する
Mirakurun稼働確認
http://localhost:40772/ にアクセスして確認する。
正常にインストールされていれば、次回からPC起動すればログインせずとも自動起動される
コンテナ停止
$ docker-compose down
ポート開放
40772ポートをLAN内に開放する $ sudo ufw enable $ sudo ufw allow proto tcp from YOUR.NETWORK.ADDRESS.0/24 to any port 40772 $ sudo ufw allow proto udp from YOUR.NETWORK.ADDRESS.0/24 to any port 40772 $ sudo ufw reload OpenVPNクライアントからのアクセス許可する $ sudo ufw enable $ sudo ufw allow proto tcp from 10.8.0.0/24 to any port 40772 $ sudo ufw allow proto udp from 10.8.0.0/24 to any port 40772 $ sudo ufw reload
(2023 Dec. 23. ここまで記述した)
MySQL
Epgstation
$ node --version
$ curl -o - http://
以下の方法では、Mirakurunは稼働したが、Epgstation画面がブラウザに表示されなかった。
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 2 | 小茂根の暮らし
PLEXチューナーでのチューナーデバイスと録画コマンド
PLEXチューナーで使うpx4_drvドライバではチューナーデバイスは /dev/px4_drv[n] となる。
/dev/px4_drv[n]は、Mirakurun標準の録画コマンドdvbv5-zapでは利用できず、recpt1コマンドで利用できる。
MirakurunでPLEXチューナーを使うには、Mirakurunが/dev/px4_drv[n]にアクセスでき、recpt1を利用できるようにする必要がある。
Mirakurunでのaribデコードにはarib-b25-stream-testが使われるので、libarib25は不要。
利用するMirakurunとEPGStationについて
Docker版EPGStation : GitHub - l3tnun/docker-mirakurun-epgstation: Mirakurun + EPGStation on Docker
このリポジトリにはMirakurunとEPGStationが含まれるが、ここ含まれるmirakurunはDVBドライバ向けのdvbv5-zapを録画コマンドに使っていて、px4_drvドライバを使ったPX-W3U4では使えない。EPGStationのみ利用する。
px4_drvドライバで作られるデバイスを利用できる録画コマンドrecpt1をインストールしたMirakurunを別途用意する必要がある。Docker版Mirakurun : GitHub - Chinachu/Mirakurun: A Modern DVR Tuner Server for Japanese TV.
このリポジトリを元に、recpt1をインストールしたMirakurunのコンテナを作成する。
任意の録画用ユーザーを作成し、sudo,グループ、videoグループに所属させ、そのユーザーでログインする(tvとした)
$ sudo useradd -d /home/tv-xubuntu2204 -m -s /bin/bash -u 1234 tv $ sudo passwd tv $ sudo usermod -aG sudo,video tv
(念のためシステム再起動し)tvユーザーでログイン
$ sudo reboot
$ su - tv
作業用ディレクトリ作成
$ mkdir ~/work
パッケージリスト更新・タイムゾーン設定
$ sudo apt update $ sudo timedatectl set-timezone Asia/Tokyo
ビルドツール、インストールツールをインストール
$ sudo apt install build-essential git unzip dkms pkg-config automake cmake curl libssl-dev libtool libboost-all-dev yasm
チューナー Plex PX-W3U4がPCに接続されていることを確認
$ lsusb Bus 002 Device 002: ID 0511:083f N'Able (DataBook) Technologies, Inc. PXW3U4
チューナー Plex PX-W3U4のドライバをインストール
参考ページ 録画サーバーOS更新
ファームウェア抽出ツール作成 $ cd ~/work $ git clone https://github.com/nns779/px4_drv.git $ cd px4_drv/fwtool/ $ make ファームウェア抽出 $ cd ~/work $ wget http://plex-net.co.jp/download/pxw3pe4v1.4.zip $ unzip pxw3pe4v1.4.zip $ cd px4_drv/fwtool/ $ sudo ./fwtool ../../pxw3pe4v1.4/x64/PXW3PE4.sys it930x-firmware.bin $ sudo cp -p it930x-firmware.bin /lib/firmware/ $ ls /lib/firmware/ | grep it930 it930x-firmware.binが表示されれば成功 ドライバのdkms対応化 $ sudo apt install dkms $ cd ~/work/px4_drv px4_drvディレクトリ内に以下の内容の dkms.install ファイルを作成する $ vim dkms.install (dkms.install) +++ ここから . ./dkms.conf cp -a `pwd` /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION dkms add -m $PACKAGE_NAME -v $PACKAGE_VERSION dkms build -m $PACKAGE_NAME -v $PACKAGE_VERSION dkms install -m $PACKAGE_NAME -v $PACKAGE_VERSION +++ ここまで dkms対応でドライバをインストール $ sudo bash dkms.install ドライバ組み込みと確認 $ sudo modprobe px4_drv $ ls /dev | grep 'px4' 次の出力があれば成功 px4video0 px4video1 px4video2 px4video3 システム起動時のドライバ自動組み込み 以下の内容(1行のみ)の/etc/modules-load.d/px4_drv.confファイルを作成する $ sudo vim /etc/modules-load.d/px4_drv.conf (px4_drv.conf) +++ ここから px4_drv +++ ここまで システム再起動 $ sudo reboot tvユーザーでログインする $ su - tv チューナーデバイスを確認 $ ls /dev | grep 'px4' 次の出力があれば成功 px4video0 px4video1 px4video2 px4video3
チューナードライバのアンインストール方法
出典 【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 2 | 小茂根の暮らし
# DKMSを使用してインストールした場合(アンインストール) $ cd ~/work/px4_drv $ sudo dkms remove px4_drv/0.2.1 --all $ sudo rm -rf /usr/src/px4_drv-0.2.1 # ファームウェアのアンインストール $ sudo rm /lib/firmware/it930x-firmware.bin
カードリーダー用ソフトをインストール
参考ページ 録画サーバーOS更新
$ sudo apt install pcscd pcsc-tools libpcsclite-dev $ sudo systemctl status pcscd.socket (期待される出力例) ● pcscd.socket - PC/SC Smart Card Daemon Activation Socket Loaded: loaded (/lib/systemd/system/pcscd.socket; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-10-29 10:49:13 JST; 18s ago Triggers: ● pcscd.service Listen: /run/pcscd/pcscd.comm (Stream) CGroup: /system.slice/pcscd.socket (pcscdが動作していなかったら) $ sudo systemctl restart pcscd.socket カードリーダーにカードをB-CASを挿入し、動作確認 $ pcsc_scan 次の出力があれば成功 Japanese Chijou Digital B-CAS Card (pay TV)
pcscd の無効化
Mirakurunでは pcscdが稼働していてはいけない
$ sudo systemctl stop pcscd.socket $ sudo systemctl disable pcscd.socket $ pcsc_scan 次の出力があれば成功 SCardEstablishContext: Service not available.
Dockerをインストール
$ sudo apt update && sudo apt install docker.io Dockerがインストールされたことを確認する。 $ sudo docker version Dockerの自動起動設定 $ sudo systemctl start docker.service $ sudo systemctl enable docker.service $ sudo usermod -aG docker tv
docker-composeをインストール
$ sudo apt install docker-compose
docker-composeがインストールされたことを確認する。
$ sudo docker-compose -v
dokcerディレクトリを作成する。
$ su - tv $ mkdir ~/docker
システムからログアウトし、tvユーザーで再度ログインする。
最新バージョンのDockerを利用する場合(必須ではない)
参考ページ 録画サーバーOS更新
+++ ここから +++
$ sudo snap remove docker $ sudo apt purge docker $ sudo reboot
システムが再起動したらtvユーザーでログインする
$ su - tv $ cd ~/ $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg $ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y $ sudo apt update $ sudo apt install docker-ce docker-ce-cli containerd.io -y $ sudo usermod -aG docker tv
システムからログアウトし、tvユーザーで再度ログインする。
+++ ここまで +++
(録画ファイル保管ディレクトリ)作成
$ sudo mkdir /YOUR/RECORDED/FILES/DIR $ sudo mkdir /YOUR/RECORDED/FILES/DIR/thumbnail $ sudo chmod 777 /YOUR/RECORDED/FILES/DIR /YOUR/RECORDED/FILES/DIR/thumbnail
Docker版Mirakurunをインストールする
https://github.com/Chinachu/Mirakurun にアクセスし、Codeタブ画面でブランチ・ドロップダウンをクリックしTagsタブをクリックし、最新バージョンもしくは最新rc版を確認する。現時点では 3.9.0-rc.4 もしくは 3.8.0。
git clone コマンドの"-b"オプションに最新タグを指定する。
$ su - tv $ mkdir ~/docker $ cd ~/docker $ git clone https://github.com/Chinachu/Mirakurun -b 3.9.0-rc.4 $ sudo systemctl status docker.service (docker.serviceが稼働していなければ) $ sudo systemctl enable docker.service $ sudo systemctl start docker.service $ cd ~/docker/Mirakurun/docker $ docker-compose pull "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"となったらdocker.serviceが稼働していない
MirakurunのDockerfileを作成する
EPGStationリポジトリをダウンロード
参考
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 4 | 小茂根の暮らし
https://github.com/l3tnun/docker-mirakurun-epgstation にアクセスし、Codeタブ画面にて最新ブランチを確認する。(ブランチ・ドロップダウンで View all branches をクリックすると確認できる) 現時点では v2 ブランチが最新。
git clone コマンドの"-b"オプションで最新ブランチを指定する。
$ su - tv $ mkdir ~/docker $ cd ~/docker $ git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b v2 docker-mirakurun-epgstation $ cd docker-mirakurun-epgstation
docker-mirakurun-epgstationディレクトリ内のファイル状況
$ ls LICENSE Readme.md docker-compose-sample.yml docs epgstation mirakurun recorded setup.sh
Docker版Mirakurunのgitリポジトリを~/docker/docker-mirakurun-epgstationにダウンロード
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 4 | 小茂根の暮らし
https://github.com/Chinachu/Mirakurun にアクセスし、Codeタブ画面でブランチ・ドロップダウンをクリックしTagsタブをクリックし、最新バージョンもしくは最新rc版を確認する。現時点では 3.9.0-rc.4 もしくは 3.8.0。
git clone コマンドの"-b"オプションに最新タグを指定する。
$ cd ~/docker/docker-mirakurun-epgstation $ git clone https://github.com/Chinachu/Mirakurun -b 3.9.0-rc.4
docker-mirakurun-epgstationディレクトリ内のファイル状況
$ ls LICENSE Mirakurun Readme.md docker-compose-sample.yml docs epgstation mirakurun recorded setup.sh
mirakurun が docker-mirakurun-epgstation にあったものでPlexチューナー(recpt1コマンド)を利用できない。Mirakurun が Mirakurun -b 3.9.0-rc.2で git clone したものでPlexチューナー(recpt1コマンド)を利用できる。
ホスト側ディレクトリ(録画ファイル保管)作成
$ sudo mkdir /YOUR/RECORDED/FILES/DIR $ sudo mkdir /YOUR/RECORDED/FILES/DIR/thumbnail $ sudo chmod 777 /YOUR/RECORDED/FILES/DIR /YOUR/RECORDED/FILES/DIR
MirakurunのDockerfileを作成する
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 4 | 小茂根の暮らし
$ cp ~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile ~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile.original
~/docker/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile ファイルを次の内容にする。(ここでは docker-mirakurun-epgstation/mirakurun/ ではなく docker-mirakurun-epgstation/Mirakurun/ を扱う)
(参考)マルチステートビルドDockerfile
Dockerのマルチステージビルドでimageを軽量化する
ARG ARCH= FROM ${ARCH}node:16.14.0-buster AS build WORKDIR /app ENV DOCKER=YES NODE_ENV=production ADD . . RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends build-essential && \ npm install --production=false && \ npm run build && \ npm install -g --unsafe-perm --production FROM ${ARCH}node:16.14.0-buster-slim WORKDIR /app ENV DEV="build-essential libtool autoconf git automake" RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ ca-certificates \ make \ gcc \ g++ \ pkg-config \ pcscd \ libpcsclite-dev \ libccid \ pcsc-tools \ $DEV && \ \ # arib25 \ apt install -y --no-install-recommends \ autoconf \ build-essential \ cmake \ curl \ git \ libssl-dev \ libtool \ libboost-all-dev \ pkg-config \ yasm && \ git clone https://github.com/stz2012/libarib25.git && \ cd libarib25 && \ cmake . && \ make && \ make install && \ ldconfig && \ \ # recpt1 \ git clone https://github.com/stz2012/recpt1 /tmp/recpt1 && \ cd /tmp/recpt1/recpt1 && \ ./autogen.sh && \ ./configure --enable-b25 && \ make && \ make install && \ rm -rf /tmp/recpt1 && \ apt-get -y remove $DEV && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* COPY --from=build /usr/local/lib/node_modules/mirakurun /app CMD ["./docker/container-init.sh"] EXPOSE 40772 9229
EPGStationのDockerfileを作成する(ファイルをコピーするだけ)
$ cd ~/docker/docker-mirakurun-epgstation/epgstation $ cp debian.Dockerfile Dockerfile
recpt1用のdocker-compose.ymlを作成する
参考
【家】録画鯖のリプレース(その他 その他)by @由貴 - みんカラ
PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
$ cd ~/docker/docker-mirakurun-epgstation
次の内容で~/docker/docker-mirakurun-epgstation/docker-compose.ymlを作成する。
62行目の"- /media/tv_record:/app/recorded"は録画ファイル保存用パスに合わせる。
書式 [ホスト側のPath]:コンテナの絶対Path
version: '3' services: mirakurun: container_name: mirakurun-3.9.0-rc.4 build: context: Mirakurun dockerfile: docker/Dockerfile image: chinachu/mirakurun cap_add: - SYS_ADMIN - SYS_NICE ports: - "40772:40772" - "9229:9229" volumes: - ./Mirakurun/config/:/app-config/ - ./Mirakurun/data/:/app-data/ environment: TZ: "Asia/Tokyo" devices: - /dev/px4video0:/dev/px4video0 - /dev/px4video1:/dev/px4video1 - /dev/px4video2:/dev/px4video2 - /dev/px4video3:/dev/px4video3 - /dev/bus:/dev/bus restart: always logging: driver: json-file options: max-file: "1" max-size: 10m mysql: container_name: mysql-epgstation image: mariadb:10.5 # image: mysql:8.0 # 囲み文字を使用する場合 volumes: - mysql-db:/var/lib/mysql environment: MYSQL_USER: epgstation MYSQL_PASSWORD: epgstation MYSQL_ROOT_PASSWORD: epgstation MYSQL_DATABASE: epgstation TZ: "Asia/Tokyo" command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --performance-schema=false --expire_logs_days=1 # for mariadb # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_090 0_as_ci --performance-schema=false --expire_logs_days=1 --default-authentication -plugin=mysql_native_password # for myql restart: always logging: options: max-size: "10m" max-file: "3" epgstation: container_name: epgstation-v2.6.20 build: context: "./epgstation" volumes: - ./epgstation/config:/app/config - ./epgstation/data:/app/data - ./epgstation/thumbnail:/app/thumbnail - ./epgstation/logs:/app/logs - /YOUR/RECORDED/FILES/DIR:/app/recorded environment: TZ: "Asia/Tokyo" depends_on: - mirakurun - mysql ports: - "8888:8888" - "8889:8889" # user: "1000:1000" # devices: # - /dev/dri:/dev/dri restart: always volumes: mysql-db: driver: local
tuners.ymlを作成する
参考 【完全解説】LinuxとPX-W3U4でEPGStation v2を構築する方法(PX-Q3U4/W3PE4/Q3PE4) | ページ 5 | 小茂根の暮らし
$ cp ~/docker/docker-mirakurun-epgstation/Mirakurun/config/tuners.yml ~/docker/docker-mirakurun-epgstation/Mirakurun/config/tuners.yml.original
次の内容で~/docker/docker-mirakurun-epgstation/Mirakurun/config/tuners.ymlを作成する。
- name: PX-W3U4_S1 types: - BS - CS command: recpt1 --device /dev/px4video0 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3U4_S2 types: - BS - CS command: recpt1 --device /dev/px4video1 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3U4_T1 types: - GR command: recpt1 --device /dev/px4video2 <channel> - - decoder: arib-b25-stream-test isDisabled: false - name: PX-W3U4_T2 types: - GR command: recpt1 --device /dev/px4video3 <channel> - - decoder: arib-b25-stream-test isDisabled: false
channels.ymlを作成する
$ cp ~/docker/docker-mirakurun-epgstation/Mirakurun/config/channels.yml ~/docker/docker-mirakurun-epgstation/Mirakurun/config/channels.yml.original
参考 mirakurun BSCSチャンネル設定(2023/04/19現在) · GitHub
編集ファイル:~/docker/docker-mirakurun-epgstation/Mirakurun/config/channels.yml
神戸チャンネル フォーマット
(見ないチャンネルには "isDisabled: true"行を書き込む)
- name: NHK総合 type: GR channel: '22' isDisabled: false - name: NHKEテレ type: GR channel: '13' isDisabled: false - name: サンテレビ type: GR channel: '26' isDisabled: false - name: MBS毎日放送 type: GR channel: '16' isDisabled: false - name: ABCテレビ type: GR channel: '15' isDisabled: false - name: テレビ大阪 type: GR channel: '18' isDisabled: false - name: 関西テレビ type: GR channel: '17' isDisabled: false - name: 読売テレビ type: GR channel: '14' isDisabled: false - name: J:COMテレビ type: GR channel: '19' isDisabled: false - name: J:COMチャンネル type: GR channel: '24' isDisabled: false - name: NHK BS1 type: BS channel: BS15_0 serviceId: 101 - name: NHK BSプレミアム type: BS channel: BS03_1 serviceId: 103 - name: BS日テレ type: BS channel: BS13_0 serviceId: 141 - name: BS朝日 type: BS channel: BS01_0 serviceId: 151 - name: BS-TBS type: BS channel: BS01_1 serviceId: 161 - name: BSテレ東 type: BS channel: BS01_2 serviceId: 171 - name: BSフジ type: BS channel: BS13_1 serviceId: 181 - name: WOWOWプライム type: BS channel: BS03_0 serviceId: 191 isDisabled: true - name: WOWOWライブ type: BS channel: BS05_0 serviceId: 192 isDisabled: true - name: WOWOWシネマ type: BS channel: BS05_1 serviceId: 193 isDisabled: true - name: スター・チャンネル1 type: BS channel: BS09_1 serviceId: 200 isDisabled: true - name: スター・チャンネル2 type: BS channel: BS15_1 serviceId: 201 isDisabled: true - name: スター・チャンネル3 type: BS channel: BS15_1 serviceId: 202 isDisabled: true - name: BS11 type: BS channel: BS09_0 serviceId: 211 - name: TwellV type: BS channel: BS09_2 serviceId: 222 - name: 放送大学 BS1 type: BS channel: BS11_0 serviceId: 231 - name: 放送大学 BS2 type: BS channel: BS11_0 serviceId: 232 - name: グリーンチャンネル type: BS channel: BS21_2 serviceId: 234 isDisabled: true - name: BSアニマックス type: BS channel: BS13_2 serviceId: 236 isDisabled: true - name: J SPORTS 1 type: BS channel: BS19_1 serviceId: 242 isDisabled: true - name: J SPORTS 2 type: BS channel: BS19_2 serviceId: 243 isDisabled: true - name: J SPORTS 3 type: BS channel: BS19_3 serviceId: 244 isDisabled: true - name: J SPORTS 4 type: BS channel: BS19_0 serviceId: 245 isDisabled: true - name: BS釣りビジョン type: BS channel: BS11_1 serviceId: 251 isDisabled: true - name: WOWOWプラス type: BS channel: BS21_0 serviceId: 252 isDisabled: true - name: 日本映画専門チャンネル type: BS channel: BS21_1 serviceId: 255 isDisabled: true - name: ディズニー・チャンネル type: BS channel: BS23_0 serviceId: 256 isDisabled: true - name: BS松竹東急 type: BS channel: BS23_3 serviceId: 260 - name: BSJapanext type: BS channel: BS23_2 serviceId: 263 - name: BSよしもと type: BS channel: BS23_1 serviceId: 265
EPGStationの設定ファイルを作成する
参考 PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
$ cd ~/docker/docker-mirakurun-epgstation/epgstation/config $ cp config.yml.template config.yml
録画ファイル保管先・データベース設定等を記述する。
参考
~/docker/docker-mirakurun-epgstation/epgstation/config/config.yml
# mirakurunPath: http+unix://%2Fvar%2Frun%2Fmirakurun.sock/ mirakurunPath: http://localhost:40772 # dbtype: sqlite # sqlite: # extensions: # - '/hoge/regexp.dylib' # regexp: true dbtype: mysql mysql: host: localhost port: 3306 user: epgstation password: epgstation database: epgstation recordedFormat: '%SHORTYEAR%%MONTH%%DAY%%HOUR%%MIN%%TYPE%%CH%-%SID%-%CHNAME%-%TITLE%' recorded: - name: recorded # ブラウザ上に表示される保存場所名 path: '%ROOT%/recorded' # epgstationのDockerfileのvolume設定でrecordedをホストとの共有ディレクトリにしておく ffmpeg: /usr/local/bin/ffmpeg # システム構築後にepgstationコンテナに入り、pathを確認する ffprobe: /usr/local/bin/ffprobe # システム構築後にepgstationコンテナに入り、pathを確認する
EPGStationのログ設定ファイルを作成する
参考 PLEX PX-Q3PE4 で docker-mirakurun-epgstation を使いたい #Docker - Qiita
$ cd ~/docker/docker-mirakurun-epgstation/epgstation/config $ cp operatorLogConfig.sample.yml operatorLogConfig.yml $ cp epgUpdaterLogConfig.sample.yml epgUpdaterLogConfig.yml $ cp serviceLogConfig.sample.yml serviceLogConfig.yml $ cp enc.js.template enc.js
コンテナ起動
念のため、pcscdを確実に停止しておく $ sudo systemctl stop pcscd.socket $ sudo systemctl disable pcscd.socket コンテナ作成 $ cd ~/docker/docker-mirakurun-epgstation/ $ docker-compose pull $ docker-compose build --no-cache かなり時間がかかる コンテナ起動 $ docker-compose up -d
epgstationコンテナに入り、ffmpegとffprobeのパスを確認し、epgstationのconfig.ymlに反映する。
$ docker exec -it epgstation-v2.7.3 bash # which ffmpeg /usr/local/bin/ffmpeg # which ffprobe /usr/local/bin/ffprobe # exit
次のコマンドで recpt1 が出力されている間は番組データ読み込み中。
$ ps ax | grep "recpt1" | grep -v "grep"
番組データ読み込み完了まで待った上で、下記urlにアクセスして確認する。
チャンネル取得状況 http://YOUR.HOST.IP.ADDRESS:40772/api/channels
Mirakurun http://YOUR.HOST.IP.ADDRESS:40772
EPGStation http://YOUR.HOST.IP.ADDRESS:8888
地上デジタルチャンネル登録について
~/docker/docker-mirakurun-epgstation/Mirakurun/config/channels.yml 内の地上デジタルチャンネル設定を削除し、次のコマンドを実行すれば自動的に登録される。
$ sudo apt-get install curl $ curl -X PUT "http://localhost:40772/api/config/channels/scan"
Docker再起動
$ docker-compose down # コンテナ停止 $ docker-compose up -d # コンテナ起動
手動録画
(1) Mirakurunコンテナ内で録画する。
(2) Mirakurunコンテナとホストが共有できるディレクトリに録画ファイルを保存する。
(共有ディレクトリ)
Mirakurunコンテナの /app-data
ホストの ~/docker/docker-mirakurun-epgstation/Mirakurun/data
(3) Mirakurunコンテナを抜けホストに出て、録画ファイルを所定のディレクトリに移動する。
$ cd ~/docker/docker-mirakurun-epgstation $ docker exec -it mirakurun-3.9.0-rc.4 bash (recpt1のオプション確認) # recpt1 --help # recpt1 --b25 --strip --sid hd --device /dev/px4video2 15 22 /app-data/TVREC22CH15SEC.ts # exit $ cd ~/docker/docker-mirakurun-epgstation/Mirakurun/data $ mv ./TVREC22CH15SEC.ts /YOUR/RECFILE/DIR/
mysql利用
$ cd ~/docker/docker-mirakurun-epgstation/Mirakurun $ docker exec -it mysql-epgstation bash # mysql -u epgstation -p epgstation > show tables ; > exit # exit