UbuntuのEPGStation_v2でCMカットエンコードする。
2021-01-23
はじめに
Linux環境でCMカットを自動で行うためのjoin logo scpを移植してしばらくたったある日、EPGStation v2が公開された。
EPGStationのおかげでTVをいつでもどこからでも視聴できる上、気が向いたときに録画予約を入れる事ができ大変便利である。
V2ではエンコード進捗を表示できる機能が新たに実装されており、感動した。
そこで私の移植したLinuxで動くJoinLogoScpTrialSetLinuxでエンコード進捗を表示できるようにした。
下記のように表示される。
EPGStation v2のエンコード進捗にてjoin logo scp trial linuxの進捗をとりあえず満足いく感じにすることができた。
— tobitti0 (@tobitti0) January 17, 2021
来週末くらいにはGitHubの連携例を更新しようかな。 pic.twitter.com/joTnUcCTJ8
そこで、V2での環境構築情報をここに記しておく。
(というか自分用のメモだが。)
もし、Linux環境にてEPGStation v2でCMカットしたいという人がいれば参考にしていただければ幸いである。
ただし、私が利用しているのはDockerを用いた環境であるため、今回はDockerを用いた環境での導入方法を説明する。
直接導入している人は一部異なると思われるので、本記事を参考に頑張ってもらいたい。
EPGStationのDockerにJoinLogoScpTrialSetLinuxの導入
どうでもいい前置きが長くなったが、導入手順を記載していく。
とりあえず、docker-mirakurun-epgstationを動作できるようにしておく。
動作できたことが確認できたら、一度downしておく。
docker-mirakurun-epgstation/epgstation/Dockerfile
を次の内容に置き換える。
Dockerfileの中で使っている移植したJoin_logo_scp_trial_setとdelogoはGitHubにおいてある。
次に、ホスト側のファイルを用意する。
以前からJoinLogoScpTrialSetLinuxを使っている方はlogoやJLやSettingを一旦避難させて、docker-mirakurun-epgstation/join_logo_scp_trial
を削除する。
つかってない人や、過去のものを削除したらdocker-mirakurun-epgstation
の中でgit clone https://github.com/tobitti0/join_logo_scp_trial
を実行する。
以前から使っていた人は実行したら避難させたものを戻す。
次にdocker-composeを修正する。
docker-mirakurun-epgstation/docker-compose.yml
内のepgstationのvolumesへ次の内容を追記する。
- ./join_logo_scp_trial/JL:/join_logo_scp_trial/JL
- ./join_logo_scp_trial/logo:/join_logo_scp_trial/logo
- ./join_logo_scp_trial/result:/join_logo_scp_trial/result
- ./join_logo_scp_trial/setting:/join_logo_scp_trial/setting
- ./join_logo_scp_trial/src:/join_logo_scp_trial/src
ここまでできたらdocker-compose up -d --build
でビルドする。
以前の解説と違い、FFmpegやl-smashなどを含んだdocker-avisynthplusというPackageをGithubにて公開したのでFFmpegなどのビルド時間がかからずに構築できるようになった。
nvencのためのタグもあるのでGPUエンコードにしたい人はベースイメージのタグをそれに変更し、nvidia-container-runtime等を入れて構築することもできる。 必要であれば解説を追加したいと思うが、とりあえずは書かないでおく。
ビルドできたらjoin_logo_scp_trialのlogoフォルダにロゴデータを入れておく。
エンコードスクリプトの設定
次にdocker-mirakurun-epgstation/epgstation/config
にjlse.jsを作成する。中身は次の通り。
FFmpeのオプションなどは各自好きなように設定してほしい。
docker-mirakurun-epgstation/epgstation/config/config.json
のencodeには次のような感じで記載する。
encode:
- name: jlse
cmd: '%NODE% %ROOT%/config/jlse.js'
suffix: .mp4
rate: 4.0
—–2021/05/16追記—–
EPGStationのConfig.templateにて設定されている録画ファイルの形式がデフォルトではm2ts
拡張子となった。
EPGStation #398
しかしながら本ツールはts
でしか動作を確認しておらず、ARIBの規格的にもts
が正しいと私は考えている。
そのため、本ツールを使用する場合は録画ファイルをts
にして頂く必要がある。
docker-mirakurun-epgstation/epgstation/config/config.json
内にあるrecordedFileExtension
の項目を.ts
に変更する。
(変更例)
recordedFileExtension: .ts
—–2021/05/16追記終—–
これでエンコードのところにjlse
の選択が現れるので、選択しエンコードすれば問題なく利用できると思う。
進捗も表示されるはずだ。
注意としては以前からJoinLogoScpTrialSetLinuxを利用していた場合はdocker-mirakurun-epgstation/join_logo_scp_trial
の中身を最新のものにしなければ、進捗は表示されない。
jlsの設定などはwindowsとかわらないのでwindowsの記事を参考に設定すれば問題ないはず。
jlsの設定ファイルなどはdocker-mirakurun-epgstation/join_logo_scp_trial/
の中をいじればよい。
おわりに
雑ですがとりあえず一通り導入方法を記載した。
導入方法に万一問題があればTwitterまで。
移植版に問題があればGitHubのissueに。
現状私が使用できているので、問題なく使用できるはずですが、暇があれば問題には対応します。たぶん。。。
謝辞
EPGStationやJoinLogoScpTrialなどを制作された様々な偉大なる先人達に感謝いたします。