本記事では、現時点で最新のEPGStation v2.6.20およびMirakurun 3.9.0-rc.2を使ってLinux&Docker&PX-W3U4で録画サーバを構築する手順を解説します。
Ubuntu 22.04 LTSで確認しましたので、地味ですが記事を更新しています(★2022.5更新)
半年程前にも録画サーバの構築手順を記事にしましたが、ソフトウェアのバージョンが上がったことで手順に乖離がありましたので記事をアップデートしました。
私が普段利用するうえではもはや何も問題ないくらいソフトウェアの品質は安定しています。
Linuxで録画サーバを構築したい方、現行のEPGStationとMirakurunで構築したい方、TS抜きしたい方は、本記事を参考にしてください。
長い記事ですが、最後までお付き合いよろしくお願いします
Contents
サーバ環境
今回、私が構築したベースマシンはECS LIVA Z n4200です。
チューナーはPX-W3U4です。
その他サーバ周辺機器やソフトウェア構成は以下の通りです。
ハードウェア
- Linuxサーバ
- ECS LIVA Z(n4200)CPU n4200 (QSV/vaapiに対応)
- eMMC 64GB
- 拡張ストレージ SSD 120GB(録画領域。外付けHDDでも可)
- メモリ 16GB(4GB以上あれば安心です)
- ECS LIVA Z(n4200)CPU n4200 (QSV/vaapiに対応)
- 地デジ・BS/CSチューナー
- PLEX PX-W3U4
- 4番組同時録画(地デジ×2、BS/CS×2)が可能です(W3PE4や8番組同時録画可能なプレクス社のpx-w3q4でもOK)
- PLEX PX-W3U4
- B-cas対応 ICカードリーダー
- NTTコミュニケーションズ SCR3310-NTTCom
- LinuxだとPX-W3U4内臓のカードリーダーが使えないので別途カードリーダを準備します
- NTTコミュニケーションズ SCR3310-NTTCom
上記の不足するものがあれば、事前にご用意ください。
今回の手順は以下のテレビチューナー製品に対応しています。
お好みの製品をご使用ください。
なお、本手順はPX-W3U4(USB接続タイプ)を前提としています。
サーバーはLinuxが導入できる機種であれば問題ありません。
ただし、私の経験上Raspberry pi 3B+だと性能的に動作が安定しませんでした(rpi4は未検証)。
以前Tinker board Sで録画サーバを構築しようとしましたが2番組以上の同時録画でノイズが出てしまいましたので、常時起動の録画サーバにする場合は、性能的に余裕を持たせた機種を使うことをオススメします。
未検証ですがRaspberry pi 4で構築できるという報告も多数あがっています。
私も次はラズパイで構築してみようかしら
ソフトウェア
- OS
- ubuntu 22.04 LTS
- raspbian等、Debian系OSなら同じ手順で実施できます
- CentOS等、Redhat系OSでも導入可能です(ドライバ導入手順は一部読み替えて実施する必要あり)
- ubuntu 22.04 LTS
- ミドルウェア
- Docker
- docker-compose
- git
- samba
- 必須ではないですが、あった方が便利です。
参考記事
sambaは録画システム構築に必須ではありませんが、Windowsのエクスプローラから参照できた方が便利かと思いますので、事前に入れておいた方が良いです。
dockerを使ったsambaの構築方法は以下の記事を参考にしてください。
sambaはKODIと連携する際にも便利です。
外出中にスマホから録画予約をしたい場合は以下の記事が参考になるかもしれません。
コメント
こもねさん
素早い対応ありがとうございました。
私のブログでも、こちらをリンクさせていただきます。
>simplelife0530さん
お待たせしてすみません。
こちらこそ、ご指摘いただいたおかげで記事にすることができました。
私の記事で良ければどなたでも自由にリンクを貼ってくださって結構です。
引き続きどうぞよろしくお願いいたします!
こもねさん
初めまして。録画サーバーを構築したいと思いこの記事に辿りつきました。
記事の通り進めているつもりですがEPGStationのビルドでつまってしまいました。相談などさせてもらってよろしいでしょうか?
どーぞ:)
当方、macにてターミナルで色々試したことはありますがOSとしてlinuxを使うのは初めてです。
今回、録画サーバーを実現したく、新たにPCを組んで取り組んでいます。
CPU: Intel Core i3 10100
マザーボード: ASRock H410M-HDV/M.2
OS: ubuntu-ja-20.04.1-desktop-amd64 (日本語リミックス)
新規にクリーンインストールしています。
完全にこちらの記事に従って構築を進めました。(“ubuntu 18.04 LTSにDockerとdocker-composeを簡単にインストールする方法”も行なっています。)
一点、途中、emacsが見つからなく、インストールを別途行なっています。
そんな感じでビルドまで来て実行したところ、エラーが出てうまく行きません。
以下、エラーの内容です。
npm WARN saveError ENOENT: no such file or directory, open ‘/app/package.json’
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open ‘/app/package.json’
npm WARN app No description
npm WARN app No repository field.
npm WARN app No README data
npm WARN app No license field.
up to date in 0.655s
found 0 vulnerabilities
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /app/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open ‘/app/package.json’
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-03-15T12_27_46_251Z-debug.log
ERROR: Service ‘mirakurun’ failed to build: The command ‘/bin/sh -c apt-get update && apt-get upgrade -y && apt-get install -y –no-install-recommends build-essential && npm install && npm run build && npm install -g –unsafe-perm –production’ returned a non-zero code: 254
$
apt-utils, npm, node.jsもインストールしてみましたが同様の結果となります。
本当に何から何まで頼りきりで、質問の仕方もよくわかっておりませんが、何卒ご教示いただければと思います。
>yupさん
記事の手順の通りにしてうまく行かないということでしょうか?
エラーの内容を見ると /app/package.json が無いと怒られているのですが、gitリポジトリからダウンロードしたMirakurunを使用されていますか?
>こもねさん
ありがとうございます。
ほんとうにお恥ずかしいですが、Mirakurunをダウンロードするディレクトリが間違っていました。正しい場所にインストールし、今度は止まることなくプロンプトが返って来、無事ビルドは終了したと思います。
しかし、また詰まってしまいました。
EPGstationのURLを開こうとしても、「正常に接続できませんでした。」と接続できません。
-Firefoxにて開こうとしています。
-ルータ関係全く設定していません。
-ipアドレスはこのpcの192.168….のものを入れています。
本当に基礎的なことかもしれませんが、何か心当たりあればお願いします。
>yupさん
問題は解決しましたでしょうか?
ご無沙汰しております。
やはりあまりにもlinuxのことがわかっていなかったので一から勉強しながらやっております。
もう少し理解が深まってから挑戦させていただきたいと思います。
おさわがせしてすいませんでした。
>yupさん
返信ありがとうございます。
この記事を参考にしてうまく行っている方は多くいらっしゃるので、yupさんもきっとできると思います。
分からないところをここで質問するのは、私は問題ないと思っています。
状況を詳細に(どこで詰まっていて、どんな状態なのか、どうしようとしたのか等)示してもらえれば、私含め答えられる方が答えてくれると思いますよ。
頑張ってください:)
Plex PX-MLT8PE(8ch チューナー)を使用して
本記事を参考にさせて頂き、デバイスに関わる部分の変更のみで
無事構築することができました。
ありがとうございました。
>つよぽんさん
嬉しいご報告ありがとうございます!
そのように言って頂けると、自分の記事がお役に立てたようで私も嬉しいです:)
本記事を参考にし、PX-Q3U4を使って録画システムを構築することができました。
ありがとうございます。
前回も本サイトを参考にDockerを使わない方法で構築していました。
rivarunを使って録画をしていたのですが、今回の記事での構築でもコマンドをrivarunを使って録画することができるのでしょうか。
>すたさん
この記事たお役に立てたようで何よりです。
rivarunはDockerで構築した場合はつかえません。
コンテナ内にインストールすれば使えると思います、が、、、rivarun必要ですか?
こもねさん、返信ありがとうございます。
使えないんですね…
現在、rivarunを使って24時間録画をしています。
Dockerでも同じことができたら他のマシンへの移植が楽になるのではないかと思い現在テストを行っていてこのような質問をさせていただきました。
Dockerを触るのが初めてなもので変な質問になってしまって申し訳ありません。
コンテナ内にインストールすれば使えるかも、ということなので作業してみます。
EPGStationでも時刻指定録画があるということを知ったのでこちらも併せて確認してみたいと思います。
コンテナの中に入ってインストールコマンドを叩いてみましたがエラーになってしまいました。何か根本的に間違っているような気がしています。
docker exec -i -t 649a237e4af0 /bin/bash
rivarunインストール
root@649a237e4af0:/app# npm install rivarun -g
root@649a237e4af0:/app# npm install -g npm
確認
root@649a237e4af0:/app# rivarun –list
Error: connect ENOENT /var/run/mirakurun.sock
EPGStationで時刻指定の録画できました。
設定等まだまだ不明な点が多いですがこちらを利用したほうが後々便利そうですね。
>すたさん
リコメントありがとうございます。
私がすたさんのrivarun活用法を理解していないので何とも言えませんが、EPGStation(MirakurunのAPI経由)で録画できるならその方がいいような気がします。
また、rivarunのインストールについて、想像でコメントしますが、
epgstationのコンテナにインストールしようとしていませんか?
Mirakurunのコンテナならうまく行きそうな気がしなくもないです。
docker exec -it mirakurun-3.5.0 npm install rivarun -g
取り急ぎ。
こもねさん、返信ありがとうございます。
(コメントに返信できなかったのでこちらで)
> epgstationのコンテナにインストールしようとしていませんか?
仰る通りでした。お恥ずかしい。
docker exec -it mirakurun-3.5.0 npm install rivarun -g
このコマンドでコンテナ内にインストールすることができ、ホストマシンから録画コマンドが使用可能となりました。
本当にありがとうございました。
>すたさん
どういたしまして、うまく行ってよかったです
差し支えなければすたさんのrivarun活用法を共有してもらえると嬉しいです
>こもねさん
24時間録画して好きな時に好きな番組を見るというような使い方をしています。
コマンドはこんな感じです。
docker exec mirakurun-3.5.0 rivarun –b25 –sid XXXX –ch GR/XX 86400 録画ファイル名
で、全く関係ないのですが2つのログファイルがコンテナ内に見るけられませんでした。これは別で設定しないと作成されないのでしょうか。
mirakurun.stderr.log
mirakurun.stdout.log
~$ docker exec -i -t mirakurun-3.5.0 bash
:/app# find / -name *mirakurun*
/run/mirakurun.sock
/app/bin/munin-plugins/mirakurun_status.js
>こもねさん
連投すみません、docker-composeでログファイル取得できました。
~/docker/docker-mirakurun-epgstation$ docker-compose logs | grep mirakurun-3.5.0
>すたさん
返信ありがとうございます。
rivarunで24時間録画してるんですね。
録画しっぱなしで良いなら、Mirakurunとチューナを分けてrecpt1を直に叩いても良さそうですね。
というか、それだと24時間の録画ファイルができませんか・・・?
EPGStationならキーワードを指定せず放送局だけ指定したルールを作れば、番組毎にファイルを分けて録画できそうです(未検証)。
私は録画番組が消化不良気味なので、録画番組を増やすとエラいことになりそうです。
> 連投すみません、docker-composeでログファイル取得できました。
> ~/docker/docker-mirakurun-epgstation$ docker-compose logs | grep mirakurun-3.5.0
docker-composeでログを見る場合は、docker-compose logs <サービス名> で見られますよ。
$docker-compose logs mirakurun
>こもねさん
いつもありがとうございます。
> 録画しっぱなしで良いなら、Mirakurunとチューナを分けてrecpt1を直に叩いても良さそうですね。
そう思って今試していますが、エラーが出てしまって録画ファイルを再生すると、映像が真っ暗で音が出ない状況になっています。
ワンセグ放送は映るのでデコードの問題なような気はしているのですが設定箇所がわからずつまずいてしまっています。
$ docker exec mirakurun-3.5.0 recpt1 –device /dev/px4video11 –sid 1024 –b25 27 30 /media/HDD2/TEST/TEST.m2ts
using device: /dev/px4video11
recpt1: unrecognized option ‘–b25’
pid = 4286
device = /dev/px4video11
C/N = 33.271662dB
Recording…
Available sid = 1024 1025 1408 65520
Chosen sid = 1024
Available PMT = 0x1f0 0x3f0 0x1fc8 0x1cf0
Recorded 30sec
カードリーダーへのアクセスできないかと思い、コンテナ内で以下コマンドを実行して確認しましたが問題なさそうです。
:/app# pcsc_scan
(略)
Japanese Chijou Digital B-CAS Card (pay TV)
> docker-composeでログを見る場合は、docker-compose logs <サービス名> で見られますよ。
> $docker-compose logs mirakurun
コマンドありがとうございます。
>すたさん
返信ありがとうございます。
おそらく、Mirakurunコンテナ内にarib25ライブラリ(libarib25)がインストールされていないのと、recpt1のb25のオプションが有効になっていないためだと思います。
以下の記事を参考にしてください。
https://komone-life.com/2020/05/06/how-to-install-epgstation-bcas/#libarib25
https://komone-life.com/2020/05/06/how-to-install-epgstation-bcas/#recpt1
>こもねさん
返信ありがとうございます。
こちらの記事を参考にコマンドが実行できるようになりました。
https://komone-life.com/2020/05/06/how-to-install-epgstation-bcas/#libarib25
https://komone-life.com/2020/05/06/how-to-install-epgstation-bcas/#recpt1
ありがとうございました。
EPGStation使いたい…
>すたさん
ご報告ありがとうございます。
うまくいってよかったです:)
参考にさせていただいております。
raspberry pi4 raspbianで手順通り実行し、
docker-compose pull && docker-compose build –no-cache && docker-compose up -d
Pulling mirakurun … done
Pulling mysql …
Pulling epgstation … done
ERROR: for mysql no matching manifest for unknown in the manifest list entries
ERROR: no matching manifest for unknown in the manifest list entries
と出ます。どうすればよろしいでしょうか?
>taroさん
mariadbのimageがラズパイに対応してなさそうですね。
私はラズパイ4を持っていないですが、
私だったら、docker-compose.ymlの40行目
image: mariadb:10.4
を
image: linuxserver/mariadb
に書き換えて試してみます
(ヨソのブログでは別のやり方をしているみたいですが)
試していただいて、結果を教えていただけないでしょうか?
お返事ありがとうございます。
書き換えてみたところ
+ mirakurun@3.5.0
added 1 package from 2 contributors in 6.333s
Removing intermediate container 501aeb632af0
—> 49f5dd86278b
Step 7/13 : FROM ${ARCH}node:14.15.4-buster-slim
ERROR: Service ‘mirakurun’ failed to build: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
となって止まってしまいました
また別のところでエラーが出てるみたいですケド、
そのエラーは修正を戻したら無くなりますか?
Successfully built 14745eaebf31
Successfully tagged docker-mirakurun-epgstation_epgstation:latest
Creating network “docker-mirakurun-epgstation_default” with the default driver
Creating volume “docker-mirakurun-epgstation_mysql-db” with local driver
Pulling mysql (mariadb:10.4)…
10.4: Pulling from library/mariadb
ERROR: no matching manifest for unknown in the manifest list entries
エラーになります
↑
実行したコマンドくらい書きましょう
何をどうしたときのログなのか、ログの抜粋なのか全てなのか、何を知りたいのか、情報が少なすぎてサッパリわかりません・・
エラーの切り分けをして頂きたかったのですが、docker-compose.ymlを修正して同じコマンドを打っただけじゃないですよね?
imageとvolumeは削除していますでしょうか?
すみません
docker-compose.ymlを修正して同じコマンドを打っただけです
適当に試してみます。ありがとうございました。
お世話になります。メルカリでPX-Q3PEを売ってPX-Q3PE4を購入しました。貴サイトを100%コピーさせていただき簡単に構築出来ました。次はCMカットに挑戦しようとtobitti0
さのサイト「UbuntuのEPGStation_v2でCMカットエンコードする。」を参考して何度かやってみましたがこちらのサイトみたいに解説が親切でないのでうまくいかないのであきらめました。こもねさんの方で是非記事にしていただければありがたいと思います。
>龍山さん
おめでとうございます、この記事が役に立ててよかったです:)
記事の執筆依頼については大変ありがたいお言葉です。
是非ともご要望に応えたいのですが、現状プライベートが忙しくて時間が確保できないので今すぐの対応は難しいです。
大変心苦しいですが、余裕ができたときにまだ需要がありそうなら検討させて頂きますm_ _m
せっかくご依頼いただいたのに、ご期待に沿えず本当に申し訳ございません。
PX-MLT8PEを購入し、OpenMediaVault(Debian系NAS用OS)にてMirakurun構築を図っております。
OMVだと簡単にmergerFS(複数ドライブ内のフォルダを固めて一つの大きなフォルダにし、ドライブが死んでもデータのみが死にプールは使い続けられる)とSnapRAID(複数ドライブのパリティを取得することでその時点のバックアップを取れる。二回目以降は差分のみなので軽量)を構築出来、WebUIから再起動等を行えるため録画サーバに便利そうです。
PX-MLT8PEはPX-W3U4と同じドライバから行けそうですし、OMVも一応Debian系なのでこちらのサイトを参考に入れてみようと思います。
最近はQSVやNVENCでのHEVCエンコードも高速みたいですし、そういう記事もあると便利そうです。
ffmpegのパラメータ解説とか。
と思ったらVAAPIはすでにあったのですね。失礼しました
。
何故かOpenMediaVaultだとWindowsにマウントできません。
メリット(WebUIが充実している、待機時は超軽量、プラグインが多い)もあるので、こもねさんに解説記事を書いてほしいです。
>sssさん
コメントありがとうございます。
PX-MLT8PEでのセットアップ、是非やってみて結果を教えてください:)
というのは、どういう状態でしょう?
Dockerを使ったsamba構築方法も記事にしていますので、よかったらそちらも参考にしてみてください(Dockerなので環境を汚すことなく現状復帰も容易です)。
https://komone-life.com/2020/03/08/how-to-install-samba/
OpenMediaVaultは需要があれば&気が向いたとき&時間ができたときに記事にしてみますw
(私はsambaに慣れているのでOpenMediaVaultにあまり必要性を感じていないのですが、これはジェネレーションギャップというやつでしょうか・・)
OMVが良いのは
・OS本体の導入が簡単であること
・最初からSAMBAが有効であること
・WebUIからディスクのマウントやフォーマットが行えること
・プラグインが豊富でWebUIから導入可能であること
・最初からデスクトップを持っていないため軽量であること
でしょうか。
OSの導入に関してはUbuntu Serverと同じく回答するだけですし、
ラズパイ用もあります。
WebUIに関しては再起動やCPU使用率ログ等が便利です。
プラグインはmergerFSやSnapRAID以外に、「OSはSSD/USBメモリから起動してRAMディスクに置いておき、変更は一旦RAMディスクに対して行い、後でまとめてSSD/USBメモリに書き込むことでフラッシュの延命を図る」みたいなのもあります。
インストール時のOS使用量が2GB、メモリも数百MBほどでした。
超高速長寿命のOptaneMemory16GBで使えます。
が、最初から有効なはずのSAMBAがうまくいっておらず、「共有フォルダが見えるものの0x80070032で接続不可」となっております。
OMVがNTFSの読み書きは可能なもののフォーマットが出来ないため、Windows10でフォーマットしたものをつなげてマウントしたのが悪いかもしれません。WebUIにてext4でフォーマットしてみようと思います。
OMV(Mirakurun)→ PC(EPGStation/Plex)
OMV (NAS) ← PC(EPGStation/Plex)
を試してみようと思います。
PCはWindowsにてNVEncでHEVC(2pass)エンコードしていますが、VAAPI経由で同レベルまで綺麗にエンコードできそうならもう全部まとめてしまおうと思います。
とりあえずext4でのフォーマットと、PX-MLT8PEのインストールやってみます。
詰まったところ、工夫して解消できたところはここに書いておきます(他の人のために)
EXT4化で読み書きできるようになりました。mergerFSはいったん置いておき、Mirakurunインストールです。
インストール時に
/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h:9:16: fatal error: stdint.h: そのようなファイルやディレクトリはありません
# include_next
というエラーが出ていたため、
apt install build-essential
しました。
流れの中でunzipが必要だったのでapt install unzipしました。
次はDockerファイルの話になると思います。
ん?OMV上でオンプレでMirakurunをインストールしてますか?
ぜひDockerでもやってみてください:)
すみません、表記が足りませんでした。
stdintやunzipはドライバのインストール時です。OMVはNAS用のためかUbuntuとプリインストールされているソフトやライブラリが異なるようです。
dockerで検討していますが、オンプレでしかインストールしたことがないのでdockerがよくわかっていません。
なぜかDecrypt失敗することが多いため、Decryptがうまくいくlibpcsclite.so.1.0.0を持っているので、これをdockerに記述すると思います。が、suだとTab補完が効かないためDockerでの構築は結構面倒ですね。コピペもうまくいかないのでなかなか先に進みません
OMV上で共有フォルダ、特にmergerFSで作ったフォルダを指定する等がわからず挫折です。
一旦おとなしくUbuntuServer20.04LTS?を入れなおします。
OMV関連は私が力になれずすみません、気を取り直してUbuntuで構築に挑戦してみてください!:)
すみませんということはないと思います!
su するとタブ補完等が効かないのですが、可能にする方法ご存じでしょうか。
ログインシェルが適用されてないだけでは?
試しに
su – user
でユーザを切り替えてみるとどうでしょう?#前も同じ質問に答えたと思いますが
あるいは、
su
したあとにbash
ですかね。お久しぶりです。simplelife0530です。
最近、epgstationのインストールで、一つ変更がありました。
以下の行を修正してください。
(修正前)cp epgstation/config/config.sample.yml epgstation/config/config.yml
(修正後)cp epgstation/config/config.yml.template epgstation/config/config.yml
よろしく。
>simplelife0530さん
ご無沙汰してます><
遅ればせながらリポジトリの変更確認しました。
記事の方も修正済です。
ご指摘ありがとうございました(助かりました)m_ _m
録画ファイル済みファイルが指定ホルダに出力されずに困っています。
指定ホルダ:/mnt/data1/tv
EPGStationの画面は、問題ないです。
出力済画面にはサムネイルを含めて表示されます。
録画詳細でSTREAMING→TS→視聴でWeb上で再生されます。
Ubuntu20.04 Serverをクリーンインストールしています。
変更箇所は、以下のとおりです。
docker-compose.ymlファイル
volumes:
– /media/tv_record:/app/recorded
↓↓
– /mnt/data1/tv:/app/recorded
epgstation/config/config.ymlファイル
recorded:
– name: recorded
path: ‘%ROOT%/recorded’
↓↓
path: ‘/mnt/data1/tv’
>弘志さん
はじめまして。
質問ありがとうございます。
epgstationのconfig.ymlの方は、修正不要かと思います。
修正を戻して
docker-compose restart epgstation
ってやるとどうでしょう?
早速のご返答ありがとうございます。
上記のepgstationのconfig.ymlを戻したら出力するようになりました。
簡単?なことでしたね、一週間ほど悩みました。
本当にありがとうございました。助かりました。
今後も色々と参考にさせてもらいます。
>弘志さん
どういたしまして。
うまくいってよかったです:)
初めまして、v1の記事から参考にさせていただいております。
Mirakurunをアップデートする際、今の手順だとおそらくgit stash → git pull → git stash applyとする必要があり、手間がかかってしまうと感じました。以下のようにchinachu/mirakurunをベースに構築すれば、Mirakurunのリポジトリのcloneも不要なのでインストール手順もシンプルになりそうです。
FROM chinachu/mirakurun
ENV DEV="build-essential libtool autoconf git automake cmake"
RUN apt-get update && apt-get install -y $DEV && \
\
# recpt1
\
git clone https://github.com/stz2012/recpt1 /tmp/recpt1 && \
cd /tmp/recpt1/recpt1 && \
./autogen.sh && \
./configure && \
make && \
make install && \
rm -rf /tmp/recpt1 && \
\
# mirakurun
\
apt-get -y remove $DEV && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
CMD ["./docker/container-init.sh"]
EXPOSE 40772 9229
これは好みですが、私はgit管理下のディレクトリを汚さないように、上のDockerfileをdocker-mirakurun-epgstationディレクトリの外に配置してdocker-compose.ymlで参照しています。
また、一部docker-compose.ymlのvolumeのところは元のsampleの通りに戻す必要があります。
はじめまして
初Linuxながらご丁寧な説明のおかげで無事録画迄たどり着くことができました
改めてこもね様に御礼申し上げます
録画ファイルネームについて一つアドバイスを頂きたくコメントさせて頂いております
egpstation config,json
recordedFormat: ‘%TITLE% – %YEAR%年%MONTH%月%DAY%日%HOUR%時%MIN%分%SEC%秒’
と訂正したのですが出来上がるファイルネームは2021年08月11日21時30分00秒-趣味どきっ! 人と暮らしと、台所~夏 [新](1)「高橋みどり(スタイリスト)」[解][字]
のようになっています
他にも設定場所がありましたら教えていただけたら幸いです
お忙しい中失礼をいたしました
>くわさん
コメントありがとうございます。
返信が遅くなりすみません。
ご質問の件ですが、録画ファイル名のフォーマットを変更したいということでしょうか?
もしかしたら、configの内容が反映されていないかもしれませんね。
プロジェクト配下で
docker-compose restart epgstation
とやってみて、状況が変わるか確認してみてください。
取り急ぎ。
こもね様、お世話になっております
早々のお返事ありがとうございます
はいそうです
録画ファイル名を変更したくてconfig.json内を書き換えました
recordedFormat: ‘%TITLE% – %YEAR%年%MONTH%月%DAY%日%HOUR%時%MIN%分%SEC%秒’
~/docker/docker-mirakurun-epgstation-v2$ docker-compose restart epgstation
Restarting epgstation-v2 … done
を行ってすぐに新たな録画を入れましたが録画ファイル名に変化はなく
2021年08月12日23時45分00秒-BSニュース4K+ふるさと という具合です
現在家族が喜びのあまり多数の予約を入れて録画中ですので
録画完了後、改めましてコンテナごと再起動を行い再テストを行い結果のご報告をさせて頂きます
どうぞ、よろしくお願いいたします
>くわさん
config.jsonをconfig.ymlにリネームですかね。
それでいけるかと。
以前、記事を参考にしてUbuntu18.04LTSで録画環境を構築し、特に問題なく便利に使ってきていたのですが、ディスクの交換を機に環境構築しなおすことにしてUbuntu20.04LTS上にv2環境を構築しました。v1からのマイグレーションをどうやるのかと思ってたところもあって、とても参考になりました。ありがとうございました。
素人質問で大変恐縮しますが、2点質問をさせてください。
1つ目は、enc.jsについて。記事の中ではenc.js.sampleのリネームが書かれてなかったように思いますが、このリネームをしないとエンコードがfailするようでした。リネームしたらエンコードできたのでこれかなと想像していますが、enc.jsはリネームするのが正しいでしょうか。
あと、v1の時よりエンコード後のファイルサイズが大きいようです。v1だとデフォルトはビットレートも1Mbps程度だったのがv2は3-4Mbpsとかのようで、ビットレートはどこで変更すればよいでしょうか?
よろしくお願いいたします。
以下の記事を拝見しました。
> ハードウェアエンコード可能なEPGStationをDockerで構築する方法~VAAPIで高速エンコード~
> https://komone-life.com/2020/09/12/epgstation-vaapi/
「私のサーバもどちらかと言えば非力なマシンということもあり、基本的にはエンコードせずにやりくりしています。」
と書かれているのにエンコードのことを質問してしまいすみません。
ハードウェアエンコードやCMカットの記事も拝見し、もう少し試行錯誤してみます。
自己解決できました。
enc.jsに以下、
解像度を指定したり、
Array.prototype.push.apply(args, [‘-s’, ‘960×720’]);
ビデオストリーム設定では、-crfで品質を指定したり(23はデフォルトですが)、
Array.prototype.push.apply(args, [‘-map’, ‘0:v’, ‘-c:v’, ‘libx264’, ‘-crf’, ’23’]);
presetも変えてみたりして、
Array.prototype.push.apply(args, [‘-preset’, ‘veryfast’]);
V1のときと同じくらいのファイルサイズで画質も我慢できるくらいになったので、
私的には解像度とveryfast指定することで様子を見ています。
突然の質問を入れてしまいすみませんでした。
こもねさんのサイトを見て録画サーバやOpenVPN等をDockerコンテナで立ててみましたが、
Dockerはとても便利ですし、手元でサーバをいじることができるのは楽しいですね。
引き続き参考にさせていただきます。
ありがとうございました。
>チキータさん
いつもブログを参考にして頂きありがとうございます。
コメントありがとうございます&亀レスすみません。
有益な情報ありがとうございます:)
そこのパラメタでエンコード速度や画質がずいぶん変わるので、色々試してみてください。
私はエンコードをあまりしないので、こういう情報はありがたいです。
引き続き、どうぞよろしくお願いします:)
こもね様 お世話になっております
録画ファイル名の件、うまく変更できました
config.ymlを変更するのですね、自動CMカットエンコードもうまく動作することができました
幾度となくフォロー頂きましてありがとうございます
現在はマシンスペックがCore2と化石なのでスペックアップしてみたいと思います
ありがとうございました!
こもねさん、
時間が経つと、mirakurunもepgstationもバージョンアップしていくので、
今までと同じようにインストールしても、いろいろERRORが増えたり、赤字の部分が
増えたりしています。
mirakurunは、3.9.0-beta3がインストールされますが、とりあえず問題なくインストール
動作しているようです。
epgstationは、現在インストールするとenc.jsがない状態になります。enc.js.templateという
ファイルをコピーしてenc.jsを作るよう、インストールガイドが変更されていました。
以上 ご報告まで。
>simplelife0530さん
追えていなくてすみません。
リアルタイムに更新するのは難しいですが、
なるべくこまめに記事を更新するようにしますので、ご容赦くださいm_ _m
Epgstationがメジャーアップデートされたら、新しい記事を書こうと思いますが、
それまでは気が向いたときにちょこちょこ修正したいとおもいます。
いつも気にかけてくださってありがとうございます:)
なぜか、コメントに返信いただいても、メールで送られてきません。
普通、コメントに返信すると、メールで知らせてくれますよね。
そうしないと、わざわざサイトに確認いかなければならないので、相当な手間です。
もしできるなら、設定で、返信のメール連絡をON にするようお願いいたします。
ご不便をおかけして、申し訳ありません。
管理画面で設定内容を見てみましたが、メール通知有無を変更できるような項目がみつかりませんでした。
恐縮ですが、当面は負担にならない範囲で当サイトを確認頂けると幸いです。
なお、これについておすすめのプラグイン等をご存知であれば、ご教示頂けると助かります。
意図的な設定ではありませんので、何卒ご容赦くださいませm_ _m
こもねさん、
設定になかったですか。私はwordpressを使ってますが、コメントはすべてメールで
きて、リンクをクリックするだけで、承認や返信ができます。
書き込むときに、メールアドレスも入力しているのに、残念な仕様ですね。
それじゃ、コメントの書き込みは、いつも自分でチェックしているわけですか?
ご苦労さまです。
ところで、git cloneで、MirakurunやEPGStationを持ってくる時、ブランチ指定
-bを使っていなかったので、ーb 3.5.0 -b v2を使ってみました。
Mirakurunは、v3.5.0になるのですが、EPGStationの-b v2は、最新がインストール
されてしまいます。そのため、docker-composeファイルまでいろいろ手直しが必要に
なってしまいます。
まあ、時々手入れは仕方ないですけどね。
私にはメール通知きてますよ。
#チェック頻度は低いですが
simplelife0530さんに通知メールが送信されない理由は分かりません-_-
時間をとれたら、もろもろ修正しますね。
いつもご指摘ありがとうございます:)
こもねさん
こちらの記事、参考にさせてもらっております、ありがとうございます。
さて、現在環境構築中なのですが、最後のdockerのビルドの部分でエラーが起きてしまいます。
エラー文は以下の通りです。
///
Successfully built a055fcae76c7
Successfully tagged chinachu/mirakurun:latest
Building epgstation
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/[ユーザー名]/RECserver/docker-mirakurun-epgstation/epgstation/Dockerfile: no such file or directory
ERROR: Service ‘epgstation’ failed to build : Build failed
///
mirakurunのビルド後、epgstationのビルドが、参照すべきDockerfileが見つからないため失敗しているように思えます。
恐縮ですが、お時間がある時にこちらのエラーの解消方法をお教え願います。
よろしくお願いします。
>はこさん
何かマズかったのかはわからないですが、
と書いてあるので、
docker-mirakurun-epgstation/epgstation/の配下にDockerfileがないのではないでしょうか?
概ね手順どおりで構築できました。ブログを書いていただきありがとうございます。
2021/10/2現在、少し詰まった箇所があったのでここに残させていただきます。(素人なので対処が間違っている可能性がありますが悪しからず)
EPGStatinのDockerfileがないと言われる→/docker-compose/epgstation/debian.DockerfileをDockerfileにリネーム
gitがインストールされていないと怒られる→MirakurunのDockerfileのapt-get installにgitを追加
git cloneで証明書がないと言われる→MirakurunのDockerfileに”apt-get install –reinstall ca-certificates -y && \”行を挿入
recpt1(./autogen.sh)でいろいろ怒られる→MirakurunのDockerfileのapt-get installにautomake、mercurialを追記
>りょうさん
コメントありがとうございます。
そう書いて頂けて、本当にありがたいです。
# むしろ、記事を更新で来てなくて申し訳ないです・・
頂いたコメントは、この記事を見る方の参考になりますので、非常に助かります。
時間がある時に記事をリライトしますので、その時に参考にさせて頂きますね:)
Successfully built 12b45188007f
Successfully tagged chinachu/mirakurun:latest
Building epgstation
ERROR: Cannot locate specified Dockerfile: Dockerfile
で止まってしまいます Dockerfileはあるのですが。。。
ご教授願お願いいたします。
りょう さん とほぼ一緒の症状でしたので りょうさんのように
debian.DockerfileをDockerfileにリネームしたら無事に解決できました。
こもね様 りょう様ありがとう御座いました。
>まきさん
コメントありがとうございます。
記事が追い付いていないところがあり、すみません。
りょうさん、まささん同様にこの部分で躓く方が他にもいそうなので、記事を追記しました。
また、時間が出来たら改めて記事を書き直します^^;;
素晴らしい知見の共有ありがとうございます。
おかげさまで無事に録画サーバーを建てることができました。
一つ質問させていただきたいです。
Mirakurunをクローンしてコンテナ化する場合、MirakurunのアップデートがCLIからできないため物凄く手間がかかるのではと思ったのですが、こちらの解決策はございますでしょうか。
アップデートの度に再クローン、Dockerfileの書き換え、各種ymlの書き換えをするのが負荷が高く、打開策があればと思ってご相談させていただきました。
基本的にアップデートは行わない想定での運用でしょうか?
こちら、お手隙でご回答いただけると幸いです。
>あおのさん
コメントありがとうございます。
何か特殊な事情がありますか?
Mirakurunをクローンしたあと、こんな感じでできませんか?
docker-compose down mirakurun
docker-compose build --no-cache mirakurun
docker-compose up -d