Ubuntu20.04 FFmpeg + AviSynth + JoinLogoScp + delogo で自動CMカットエンコード環境構築

avisynth+ の公式インストール手順
AviSynthPlus/posix.rst at master · AviSynth/AviSynthPlus · GitHub


avisynth+ のインストール

# apt update
# apt install build-essential cmake git ninja-build checkinstall

# cd /usr/local/src
# git clone --depth 1 -b v3.6.1 https://github.com/AviSynth/AviSynthPlus.git
# cd AviSynthPlus
# mkdir avisynth-build
# cd avisynth-build
# CC=gcc-9 CXX=gcc-9 LD=gcc-9 cmake ../ -G Ninja
# ninja
# ninja install
# ldconfig


ffmpeg のインストール

# apt install nasm libfdk-aac-dev libx264-dev libx265-dev

# cd /usr/local/src
# git clone --depth 1 -b n4.3.1 git://git.ffmpeg.org/ffmpeg.git
# cd ffmpeg
# ./configure \
      --enable-gpl \
      --enable-version3 \
      --disable-doc \
      --disable-debug \
      --enable-avisynth \
      --enable-libfdk-aac \
      --enable-libx264 \
      --enable-libx265 \
      --enable-nonfree
# make
# make install


・l-smash のインストール

# cd /usr/local/src
# git clone --depth 1 https://github.com/l-smash/l-smash.git
# cd l-smash
# ./configure --enable-shared
# make
# make install
# ldconfig


・l-smash-works のインストール(avisynth で l-smash を使用するためのプラグイン

# apt install python3-pip
# pip3 install meson==0.62.0

# cd /usr/local/src
# git clone --depth 1 -b 20200728 https://github.com/HolyWu/L-SMASH-Works.git
# cd L-SMASH-Works/AviSynth
# LDFLAGS="-Wl,-Bsymbolic" meson build
# cd build
# ninja -v
# ninja install
# ldconfig


・JoinLogoScpTrialSet for Linux and Avisynth+3.5.x のインストール
https://github.com/tobitti0/JoinLogoScpTrialSetLinux

# cd /usr/local/src
# git clone --depth 1 --recursive https://github.com/tobitti0/JoinLogoScpTrialSetLinux.git
# cd JoinLogoScpTrialSetLinux/modules/chapter_exe/src/
# make
# cp -a chapter_exe /usr/local/bin/.
# cd ../../logoframe/src/
# make
# cp -a logoframe /usr/local/bin/.
# cd ../../join_logo_scp/src/
# make
# cp -a join_logo_scp /usr/local/bin/.


・join_logo_scp の動作確認

# cd ~
# vi join_temp.avs
TSFilePath="GR27_test.ts"
LWLibavVideoSource(TSFilePath, repeat=true, dominance=1)
AudioDub(last,LWLibavAudioSource(TSFilePath, av_sync=true))

# chapter_exe -v join_temp.avs -oa temp_inscp.txt
# logoframe join_temp.avs -logo GR27.lgd -oa temp_inlogo.txt
# join_logo_scp -inlogo temp_inlogo.txt -inscp temp_inscp.txt -incmd JL_標準.txt -o temp_join_logo_scp.txt

# cat temp_join_logo_scp.txt
※Trim情報が記載されていること


・透過性ロゴ フィルタ for AviSynth+ 3.5.x & Linux のインストール
https://github.com/tobitti0/delogo-AviSynthPlus-Linux

# apt install gcc-9 g++-9

# cd /usr/local/src/
# git clone --depth 1 https://github.com/tobitti0/delogo-AviSynthPlus-Linux.git
# cd delogo-AviSynthPlus-Linux/src
# make CC=gcc-9 CXX=gcc-9 LD=gcc-9
# make install
# ldconfig


・delogo の動作確認

# cd ~
# vi delogo_temp.avs
TSFilePath="GR27_test.ts"
LWLibavVideoSource(TSFilePath, repeat=true, dominance=1)
AudioDub(last,LWLibavAudioSource(TSFilePath, av_sync=true))
EraseLOGO(logofile="GR27.lgd", interlaced=true)

# ffmpeg -f avisynth -i delogo_temp.avs -c:v  libx264 -c:a libfdk_aac GR27_test.mp4