HDDの容量が少なくなってきたので、アニメをH.265(HEVC)で圧縮したい!
プロファイル
動画
- H.265
- 1280x720
古いデバイスばかり使っているので、H.265は若干重い(CPU使用率が目に見えて上がる)のですが、容量とのトレードオフということです。
音声
オーディオまわりには全く拘りがありません。1MBのFLACと200KBのAACであれば後者以外の選択肢はありえません(そもそも、音質を聞き分けられるオーディオ機器持っていません)。
AACのエンコードライブラリは、FDK-AAC・AppleのCoreAudio(qaac)の二強らしい。品質はApple (QAAC) ≒ fdk-aac > nero ≒ ffmpeg
とのこと。
FDK-AACは、--enable-libfdk-aac
フラグを付けてffmpegをビルドする必要がある。
qaacはWindows用ソフトウェアだし、必要なDLLはiTunesに含まれている。つまりLinuxでは動かすことができないが、Wineを使えばどうにかなる。
ffmpegのビルド
libx264、libx265、libfdk-aacを有効にしたffmpegをビルドする。AV1やVP9などのライブラリが必要な場合は適宜追加してください。
// ffmpeg本体と署名をダウンロード $ wget https://ffmpeg.org/releases/ffmpeg-4.4.tar.gz{,asc} // 公開鍵をインポート $ curl -s https://ffmpeg.org/ffmpeg-devel.asc | gpg --import - // 検証 $ gpg --verify ffmpeg-4.4.tar.gz.asc // 展開 $ tar xf ffmpeg-4.4.tar.gz
必要なパッケージをインストールします。(公式ドキュメントには無いlibunistring-dev
が必要でした)
# apt install -y \ autoconf \ automake \ build-essential \ cmake \ git-core \ libass-dev \ libfreetype6-dev \ libgnutls28-dev \ libtool \ libvorbis-dev \ meson \ ninja-build \ pkg-config \ texinfo \ wget \ yasm \ zlib1g-dev \ nasm \ libx264-dev libx265-dev libnuma-dev libfdk-aac-dev libmp3lame-dev libopus-dev \ libunistring-dev
ビルドします。
$ cd ./ffmpeg-4.4 $ ./configure \ --pkg-config-flags="--static" \ --extra-libs="-lpthread -lm" \ --ld="g++" \ --enable-gpl \ --enable-gnutls \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree // コンパイル $ make -j$(nproc) // インストール(/usr/local/binにffmpegなどがコピーされるので注意) $ make install