はじめに
こんにちわ streampack の木村です。
事の発端は、自分の業務用 MAC で ffmpeg を弄って HEVC エンコードをしようとした際に、以下のエラーで怒られちゃいました。
Unknown encoder 'libx265'
ffmpeg は色々なマシンに入れてあるので、「あれ、自分のマシンには x265 入れてなかったっけ?」ってことで確認することに。
確か brew で入れたはず。
$ brew ls ffmpeg lame x264 xvid
はい、おりませんね。
$ brew install ffmpeg
オプションを指定せず上記コマンドだけでインストールすると lame
x264
xvid
しかインストールされません。
ffmpeg のソース持ってきて、x265 を git から clone してソースからコンパイルすればできますが、面倒なので Homebrew を使ってインストールコマンド一発で HEVC 対応の ffmpeg をインストールします。
あ、Homebrew がインストールされていること前提です。
インストール
ついでなので他に必要そうなものもまとめて入れてしまいましょう!reinstall
で uninstall
後に install
つまり再インストールになります。
下記コマンドを叩いて待つこと10分程度・・・
$ brew reinstall ffmpeg --with-fdk-aac --with-freetype --with-libass --with-libvpx --with-sdl2 --with-x265
インストールされていますね。
$ brew ls cairo graphite2 pcre fdk-aac harfbuzz pixman ffmpeg icu4c pkg-config fontconfig lame texi2html freetype libass x264 fribidi libffi x265 gettext libpng xvid glib libvpx gobject-introspection nasm
インストール時の情報は brew info formula
で確認できます。
$ brew info ffmpeg ffmpeg: stable 3.4.2 (bottled), HEAD Play, record, convert, and stream audio and video https://ffmpeg.org/ /usr/local/Cellar/ffmpeg/3.4.2 (253 files, 54.6MB) * Built from source on 2018-03-09 at 16:11:20 with: --with-fdk-aac --with-libass --with-sdl2 --with-x265 --with-freetype --with-libvpx From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb ==> Dependencies Build: nasm ✔, pkg-config ✔, texi2html ✔ Recommended: lame ✔, x264 ✔, xvid ✔ Optional: chromaprint ✘, fdk-aac ✔, fontconfig ✔, freetype ✔, frei0r ✘, game-music-emu ✘, libass ✔, libbluray ✘, libbs2b ✘, libcaca ✘, libgsm ✘, libmodplug ✘, librsvg ✘, libsoxr ✘, libssh ✘, libvidstab ✘, libvorbis ✘, libvpx ✔, opencore-amr ✘, openh264 ✘, openjpeg ✘, openssl ✘, opus ✘, rtmpdump ✘, rubberband ✘, sdl2 ✔, snappy ✘, speex ✘, tesseract ✘, theora ✘, two-lame ✘, wavpack ✘, webp ✘, x265 ✔, xz ✘, zeromq ✘, zimg ✘ ==> Options --with-chromaprint Enable the Chromaprint audio fingerprinting library --with-fdk-aac Enable the Fraunhofer FDK AAC library --with-fontconfig Build with fontconfig support --with-freetype Build with freetype support --with-frei0r Build with frei0r support --with-game-music-emu Build with game-music-emu support --with-libass Enable ASS/SSA subtitle format --with-libbluray Build with libbluray support --with-libbs2b Build with libbs2b support --with-libcaca Build with libcaca support --with-libgsm Build with libgsm support --with-libmodplug Build with libmodplug support --with-librsvg Enable SVG files as inputs via librsvg --with-libsoxr Enable the soxr resample library --with-libssh Enable SFTP protocol via libssh --with-libvidstab Enable vid.stab support for video stabilization --with-libvorbis Build with libvorbis support --with-libvpx Build with libvpx support --with-opencore-amr Enable Opencore AMR NR/WB audio format --with-openh264 Enable OpenH264 library --with-openjpeg Enable JPEG 2000 image format --with-openssl Enable SSL support --with-opus Build with opus support --with-rtmpdump Enable RTMP protocol --with-rubberband Enable rubberband library --with-sdl2 Enable FFplay media player --with-snappy Enable Snappy library --with-speex Build with speex support --with-tesseract Enable the tesseract OCR engine --with-theora Build with theora support --with-tools Enable additional FFmpeg tools --with-two-lame Build with two-lame support --with-wavpack Build with wavpack support --with-webp Enable using libwebp to encode WEBP images --with-x265 Enable x265 encoder --with-xz Enable decoding of LZMA-compressed TIFF files --with-zeromq Enable using libzeromq to receive commands sent through a libzeromq client --with-zimg Enable z.lib zimg library --without-gpl Disable building GPL licensed parts of FFmpeg --without-lame Disable MP3 encoder --without-qtkit Disable deprecated QuickTime framework --without-securetransport Disable use of SecureTransport --without-x264 Disable H.264 encoder --without-xvid Disable Xvid MPEG-4 video encoder --HEAD Install HEAD version
早速エンコードを試してみます
$ ffmpeg -i IMG_7611.MOV -vcodec libx265 -acodec copy IMG_7611.mp4 {中略} video:10865kB audio:297kB subtitle:0kB other streams:0kB global headers:2kB muxing overhead: 0.393741% x265 [info]: frame I: 7, Avg QP:28.87 kb/s: 17503.11 x265 [info]: frame P: 380, Avg QP:30.63 kb/s: 9583.81 x265 [info]: frame B: 1137, Avg QP:36.81 kb/s: 1378.84 x265 [info]: Weighted P-Frames: Y:45.0% UV:42.4% x265 [info]: consecutive B-frames: 0.5% 2.6% 1.8% 92.8% 2.3% encoded 1524 frames in 181.72s (8.39 fps), 3498.76 kb/s, Avg QP:35.23
もう怒られませんね!