ubuntu
カテゴリ
TV録画後のCMカットとエンコード
2026/04/18 20時tv
EPGStationの公式イメージはDebian版(master-debian)またはAlpine版のみ提供されているので、ホストとコンテナ内の ffmpeg のヴァージョンが違っている、またEPGStationの公式イメージには nkf・locales が、含まれていないため、Dockerfileで追加したカスタムイメージを作成し、GLIBC互換性問題のため comskip はホスト側にインストールし、FIFOデーモン経由で使用。

■Windows版EDBCとAmatsukazeの環境を構築目指す
役割
ホスト (Ubuntu 24.04)物理マシン。ffmpeg v6.1.1、comskip、VAAPIドライバを直接持つ
Dockerコンテナ管理。EPGStation・Mirakurunを隔離環境で動かす
コンテナ (Debian 12)EPGStation本体。ffmpeg v5.1.8を内蔵(VAAPI対応)
項目詳細
ホストのGLIBC2.38 (Ubuntu 24.04)
コンテナのGLIBC2.36 (Debian 12)
問題ホストのcomskip/nsenterがコンテナ内で動かない
解決策FIFOデーモン方式:ホスト側にcomskip-daemonを常駐させFIFO経由でジョブを投げる
ソフトウェアバージョン・備考
MirakurunDocker (docker-compose)
EPGStationv2.10.0 Docker (カスタムイメージ)
ffmpeg (ホスト)v6.1.1 (apt) / VAAPI対応
ffmpeg (コンテナ)v5.1.8 (Debian apt) / VAAPI対応
comskipv0.82.011 (ホストにインストール)
nkfコンテナ内 (Dockerfile)
comskip-daemonsystemdサービス (ホスト側常駐)
Tailscaleサブネットルーティング
録画完了 (EPGStation)

録画後スクリプト呼び出し
├─ 通常ルール → encode.sh(CMカット+VAAPI MP4化)
└─ JSPORTSルール → skip.sh(何もしない or TSをそのまま移動)

エンコード成功 → MP4を /mnt/data/TV/ へ
TSを /mnt/data/PT2/succeeded/ へ
エンコード失敗 → TSを /mnt/data/PT2/failed/ へ
ログ → /mnt/data/PT2/log/ へ(毎月1日に先々月分削除)

ディレクトリ作成
sudo mkdir -p /mnt/data/PT2/succeeded
sudo mkdir -p /mnt/data/PT2/failed
sudo mkdir -p /mnt/data/PT2/log
sudo mkdir -p /mnt/data/TV
sudo mkdir -p /mnt/data/docker/encoder/scripts
sudo chown -R $USER:$USER /mnt/data/PT2 /mnt/data/TV /mnt/data/docker/encoder

ホスト側ffmpeg と IntelのVAAPIドライバのインストール
sudo apt install -y ffmpeg
sudo apt install -y vainfo intel-media-va-driver-non-free
ffmpeg -hwaccels | grep vaapi
ffmpeg -encoders | grep vaapii

■CMカットツール
項目comskipjoin_logo_scp (JLS)Amatsukaze
logo検出✅ 可能(logo.txtファイル)✅ 可能(.lgdファイル)✅ 可能(.lgdファイル)
logo形式独自形式(logo.txt/bitmap)Amatsukaze用(.lgd)独自(.lgd)
CM検出ロゴ+映像変化+無音+輝度等ロゴ+無音+シーンチェンジロゴ+無音+シーンチェンジ
TV対応△(海外向け設計)◎(日本TV専用)◎(日本TV専用)
精度普通高精度最高精度
ThinkPad L380 は、第8世代 インテル Core i5 8250U を搭載しているので、ハードウェアエンコード IntelのVAAPIドライバ が用意されているので、快適にエンコードが可能だったが、CMカットの精度は、ロゴファイルを用意しても精度は低く、Amatusukazeには及ばなかった。

しかし、JLSとAmatsukazeはほぼ同じエンジンを使っているので、JLparam_set1.csvのチャンネル設定を行い、数ヶ月の試行錯誤で、精度は上る可能性はあるようだ。

今は、Ubuntu Server で録画したデータを、Windows版Amatuskazeに渡すスクリプトを作成して運用する。
記事一覧