iOS11から映像コーデックH.265に対応
iOS11から、新しく映像コーデックH.265に対応するようになりました。
iOS11はHEIC/HEVC(H.265)で写真と動画のデータ容量を50%縮小する事が可能 | IT Strike
H.265はiOS10以下で使用されていたH.264と比べて、動画のファイルサイズがおよそ半分くらいになります。
動画によりますが、試してみて一番軽くなった事例としては、H.264で27MBだった動画をH.265に変換したら4.2MBになりました。
H.264からH.265にコーデックを変えるだけなら、画質はほとんど変わりません(種々のパラメータの違いにより変わることもある気がしますが)。
ちなみにmacOSはHigh SierraからH.265に対応しているので、それよりも古いバージョンだと再生できません。
H.264からH.265への変換
ffmpegのオプションを繋いだら一発で変換可能でした。
インストール
ffmpegと、H.265用のライブラリが必要です。
本体と一緒にインストールします。
$ brew install ffmpeg --with-x265
# 〜省略〜
$ ffmpeg -version
ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.38)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
変換実行
変換は下記のコマンドです。
$ ffmpeg -i input.mp4 -c:v libx265 -tag:v hvc1 output.mp4
# もしくは
$ ffmpeg -i input.mp4 -vcodec libx265 -vtag hvc1 output.mp4
処理はどちらも同じです。
-c:v libx265
でコーデックをH.265に指定しています。
さらに、iOS11で再生できるのはFourCCがhvc1である動画ファイルなので、-tag:v hvc1
で指定しています。
tagを指定しないで変換するとFourCCがhev1になるので、iOS11で再生できません。
⌘iでファイルの情報を見たとき、詳細情報のコーデックが「hvc1, AAC」となっていれば大丈夫です。