ナマケモノの家

ナマケモノ

はじめに

CMcut4U2 Ver 0.2.0 で追加された字幕処理についての説明です。

config.rb

字幕処理を有効にするには、config.rb に下記の定義を行う。

Subtitling  = true    # 字幕の処理を行う

これにより arib字幕が入った TSファイルの場合に下記の処理を行う。

  1. TSファイルから字幕データの抽出
  2. CMカット情報から、字幕のタイミングを変換
  3. エンコード後の mp4 ファイルに字幕データを重畳する。
  4. 出力ファイルのフォーマットは mkv になる。

制限事項

arib字幕処理が可能な ffmpeg の作り方

必要なパッケージのインストール

% sudo apt install make autoconf libtool libaribb24-dev nasm pkg-config libx265-dev libx264-dev vainfo libvdpau-dev libva-dev nvidia-cuda-dev libass-dev libsdl2-dev

NVidia headers のインストール

% git clone https://github.com/FFmpeg/nv-codec-headers.git
% cd nv-codec-headers
% sudo make install PREFIX=/usr

ffmpeg のインストール

% git clone https://github.com/FFmpeg/FFmpeg.git --depth 1 -b n4.3
% cd FFmpeg
% ./configure --prefix=/usr/local/ffmpeg/4.3 --enable-gpl --enable-libx265 --enable-libx264  --enable-libaribb24 --enable-libass --enable-version3 --enable-sdl
% make -j 4
% sudo make install

必要な機能が有効になっているかの確認

% ./ffmpeg -hide_banner -encoders 2>&1 | egrep "(libx264|libx265|nvenc_h264|aac)"
 V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... libx265              libx265 H.265 / HEVC (codec hevc)
 A..... aac                  AAC (Advanced Audio Coding)

% ./ffmpeg -hide_banner -decoders 2>&1 | egrep "(arib|ASS|srt)"
 S..... libaribb24           libaribb24 ARIB STD-B24 caption decoder (codec arib_caption)
 S..... ssa                  ASS (Advanced SubStation Alpha) subtitle (codec ass)
 S..... ass                  ASS (Advanced SubStation Alpha) subtitle
 S..... srt                  SubRip subtitle (codec subrip)

% ./ffmpeg -hide_banner -hwaccels
Hardware acceleration methods:
vdpau
cuda
vaapi

config.rb に下記の定義を行う。

FFMPEG_BIN  = "/usr/local/ffmpeg/4.3/bin/ffmpeg"