tobitti0
Blog
About

UbuntuのEPGStation_v2でCMカットエンコードする。

2021-01-23

はじめに

Linux環境でCMカットを自動で行うためのjoin logo scpを移植してしばらくたったある日、EPGStation v2が公開された。
EPGStationのおかげでTVをいつでもどこからでも視聴できる上、気が向いたときに録画予約を入れる事ができ大変便利である。
V2ではエンコード進捗を表示できる機能が新たに実装されており、感動した。
そこで私の移植したLinuxで動くJoinLogoScpTrialSetLinuxでエンコード進捗を表示できるようにした。
下記のように表示される。

そこで、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などを制作された様々な偉大なる先人達に感謝いたします。