| コンポーネント | 用途 |
|---|---|
| AviSynth+ | 動画フレームワーク(logoframe/chapter_exeが使用) |
| L-SMASH Works | AviSynth+プラグイン:TSファイルを読み込む |
| chapter_exe | 無音・シーンチェンジ検出 → .scpファイル生成 |
| logoframe | ロゴON/OFF検出 → .logo.txtファイル生成 |
| join_logo_scp | CM位置推定 → Trim形式ファイル生成 |
| QSVEncC 8.16 | エンコーダー |
| 項目 | 内容 |
|---|---|
| ロゴファイル | Amatsukazeの .lgd ファイル(SID番号形式) |
| ロゴ配置先 | /mnt/data/docker/jls/logo/ |
| JLスクリプト配置先 | /mnt/data/docker/jls/JL/ |
録画完了(EPGStation Docker)
└→ encode.sh(コンテナ内から呼び出し)
├─ ファイルリネーム(TV局名除去・記号削除)
└─ encode_queueにジョブファイル登録
encode-watcher.service(systemd / ホスト上)
└→ inotifywaitでencode_queueを監視
└→ encode_host.sh(ホスト上で実行)
├─ jls_process.sh(CM検出 約8分)
│ ├─ ffmpeg -nostdin(音声WAV抽出)
│ ├─ chapter_exe(無音検出 → .scp)
│ ├─ logoframe(ロゴON/OFF → .logo.txt)
│ ├─ join_logo_scp(CM位置推定 → Trim)
│ ├─ .ffmeta生成(チャプター)
│ └─ .chapter.txt生成(OGM形式)
└─ encode_jls.sh(QSVEncCエンコード 約13分)
├─ 成功 → /mnt/data/TV/ にMP4保存
│ TSを /mnt/data/PT2/succeeded/ に移動
└─ 失敗 → TSを /mnt/data/PT2/ に残す
(Amatsukazeが朝5時に処理)
基本ビルドツールのインストール
sudo apt install -y build-essential cmake git nasm yasm
AviSynth+ / L-SMASH Works用インストール
sudo apt install -y \ libavcodec-dev \ libavformat-dev \ libavutil-dev \ libswresample-dev \ libswscale-dev
# 運用ツールのインストール
sudo apt install -y python3 python3-pip inotify-tools
AviSynth+ 3.7.5 のビルド
git clone --depth 1 https://github.com/AviSynth/AviSynthPlus.git cd AviSynthPlus && mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) && sudo make install && sudo ldconfig
l-smash のビルド
git clone https://github.com/l-smash/l-smash.git cd l-smash && ./configure --enable-shared make -j$(nproc) && sudo make install && sudo ldconfig
L-SMASH Works のビルド 依存パッケージのインストール
git clone https://github.com/tobitti0/L-SMASH-Works.git cd L-SMASH-Works/AviSynth # decode.c の AV_PIX_FMT_D3D12 を含む case文をコメントアウト LDFLAGS="-lavformat -lavcodec -lavutil -lswresample -lswscale -ll-smash" \ make -j$(nproc) sudo mkdir -p /usr/local/lib/avisynth sudo cp liblsmashsource.so /usr/local/lib/avisynth/ sudo ldconfig
chapter_exe インストール
git clone https://github.com/tobitti0/chapter_exe.git cd chapter_exe && make sudo cp chapter_exe /usr/local/bin/
logoframe のビルド
git clone https://github.com/tobitti0/logoframe.git cd logoframe && make sudo cp logoframe /usr/local/bin/
join_logo_scp のビルド
git clone https://github.com/tobitti0/join_logo_scp.git cd join_logo_scp && make sudo cp join_logo_scp /usr/local/bin/
QSVEncC 8.16 インストール
# https://github.com/rigaya/QSVEnc/releases から # qsvencc_8.16_amd64.deb をダウンロード(Windowsでダウンロード後サーバに転送) sudo apt install -y /path/to/qsvencc_8.16_amd64.deb qsvencc --version qsvencc --check-hw # Success: QuickSyncVideo available を確認
inotify-tools インストール
sudo apt install -y inotify-tools