FFmpeg H.265/HEVCエンコードエラーの解決法
H.265(HEVC)はH.264より高圧縮ですが、エンコード時のエラーも多様です。本記事では代表的なエラーとその解決策をまとめます。
動作確認: ffmpeg 6.1 で確認済み
エラー1: libx265 が見つからない
エラーメッセージ
Unknown encoder 'libx265'
または
Encoder libx265 not found.
原因
FFmpegのビルドに libx265 が含まれていません。Ubuntu のデフォルトパッケージや一部の最小構成では除外されています。
確認方法
ffmpeg -buildconf | grep x265
--enable-libx265 が表示されればOK。表示されなければビルドに含まれていません。
解決方法
Ubuntu/Debian — フルビルド版をインストール:
# universe リポジトリを有効化
sudo add-apt-repository universe
sudo apt update && sudo apt install ffmpeg
それでも入らない場合は静的ビルドを使う:
# 静的ビルド版(johnvansickleのビルド)
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xf ffmpeg-release-amd64-static.tar.xz
macOS:
brew install ffmpeg
代替コーデックを使う:
# NVENC (NVIDIAハードウェアエンコード)
ffmpeg -i input.mp4 -c:v hevc_nvenc output.mp4
# VideoToolbox (macOS)
ffmpeg -i input.mp4 -c:v hevc_videotoolbox output.mp4
# QSV (Intel Quick Sync)
ffmpeg -i input.mp4 -c:v hevc_qsv output.mp4
エラー2: iPhoneやApple製品で再生できない
症状
FFmpegで作成したHEVCファイルがiPhoneやmacOSで再生できない、またはサムネイルが表示されない。
原因
Apple製品はHEVC動画のタグに hvc1 を要求しますが、FFmpegのデフォルト出力は hev1 です。
解決方法
-tag:v hvc1 を追加する:
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -tag:v hvc1 output.mp4
エラー3: プロファイル・レベルの問題
エラーメッセージ
x265 [error]: Main10 supported only on 10-bit compilations
または
x265 [error]: Rate control is not possible with QP 0 and ABR 0
解決方法
プロファイルを明示的に指定する:
# Mainプロファイル(8bit、最も互換性が高い)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -profile:v main output.mp4
# Main10プロファイル(10bit HDR向け)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -profile:v main10 output.mp4
よく使うレベル設定:
# レベルを明示する(デバイス互換性向上)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -level:v 4.1 output.mp4
エラー4: ファイルサイズが逆に大きくなる
H.265の方がH.264より大きいファイルが出力された場合、CRF値が低すぎる可能性があります。
推奨CRF値
| 用途 | CRF値 | 目安 |
|---|---|---|
| 高品質アーカイブ | 18〜22 | H.264 CRF 18相当 |
| バランス(推奨) | 24〜28 | H.264 CRF 23相当 |
| 小サイズ優先 | 30〜34 | 画質はやや低下 |
# バランスの取れた設定
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -preset medium -c:a aac output.mp4
エラー5: エンコードが極端に遅い
解決方法
preset を fast/faster に変更する:
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -preset fast output.mp4
presetの速度vs品質トレードオフ:
ultrafast > superfast > veryfast > faster > fast > medium > slow > slower > veryslow
←速い・サイズ大 遅い・サイズ小→
エラー6: x265 ログが大量に出て処理が止まって見える
解決方法
x265は進捗ログを標準エラーに出力します。-v quiet でFFmpegのログを抑制しつつ -stats で進捗だけ表示:
ffmpeg -v quiet -stats -i input.mp4 -c:v libx265 -crf 26 output.mp4
H.265の基本的なエンコードコマンド
# 基本(品質重視)
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -c:a aac output.mp4
# Apple互換性重視
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -tag:v hvc1 -c:a aac output.mp4
# 速度重視
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -preset fast -c:a aac output.mp4
関連リソース
よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。
関連記事
動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 & macOS 14
一次ソース: trac.ffmpeg.org/wiki/Encode/H.265