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〜22H.264 CRF 18相当
バランス(推奨)24〜28H.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 チートシート

関連記事


動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 & macOS 14
一次ソース: trac.ffmpeg.org/wiki/Encode/H.265