Unknown encoder 'libx264'Encoder not found など、コーデック関連のエラーはFFmpegで最も多く遭遇するエラーのひとつです。本記事では代表的なエラーパターンとその解決策をまとめます。

動作確認: FFmpeg 8.1 / Windows — 本記事のコマンド 9 件を検証スクリプトで実行し、全て成功しました(2026-09-06)


エラー1: Unknown encoder / Encoder not found

エラーメッセージ

Unknown encoder 'libx264'
Encoder libx265 not found.

原因

FFmpegのビルド時に対象のコーデックライブラリが含まれていない場合に発生します。多くのLinuxディストリビューションではライセンス問題から最小構成でパッケージングされることがあります。

解決方法

1. 利用可能なエンコーダを確認する:

ffmpeg -encoders | grep 264
ffmpeg -encoders | grep 265
ffmpeg -encoders | grep hevc

2. フルビルド版のFFmpegをインストールする:

# Ubuntu / Debian — universe リポジトリから
sudo apt update && sudo apt install ffmpeg

# macOS — Homebrew(gpl + nonfree オプション付き)
brew install ffmpeg

# Windows — 公式サイトのフルビルド版
# https://ffmpeg.org/download.html から "full_build" をダウンロード

3. 代替エンコーダを使う:

目的 推奨エンコーダ コマンド例
H.264 libx264 -c:v libx264
H.264(代替) libopenh264 -c:v libopenh264
H.265/HEVC libx265 -c:v libx265
AV1 libaom-av1 -c:v libaom-av1
AV1(高速) libsvtav1 -c:v libsvtav1
VP9 libvpx-vp9 -c:v libvpx-vp9

エラー2: codec not currently supported in container

エラーメッセージ

Encoder mpeg4 not supported in MPEG-4 Part 2 container.

または

Codec vp9 is not supported by the mp4 muxer.

原因

指定したコーデックと出力コンテナの組み合わせが非対応です。

解決方法

コンテナを変更する:

# VP9 は WebM コンテナを使う
ffmpeg -i input.mp4 -c:v libvpx-vp9 output.webm

# AV1 は MKV または WebM
ffmpeg -i input.mp4 -c:v libaom-av1 output.mkv

コーデックを変更する:

# MP4 コンテナなら H.264 を使う
ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4

エラー3: Requested output format ‘xxx’ is not a suitable output format

エラーメッセージ

Unable to find a suitable output format for 'output.mts'

原因

FFmpegが出力拡張子からフォーマットを判定できない場合です。

解決方法

-f でフォーマットを明示します:

ffmpeg -i input.mp4 -f mpegts output.mts

利用可能なフォーマット一覧:

ffmpeg -formats

エラー4: width/height not divisible by 2

エラーメッセージ

height not divisible by 2 (1280x721)

原因

H.264などは解像度の縦横が2の倍数である必要があります。

解決方法

ffmpeg -i input.mp4 -vf scale=1280:-2 output.mp4

-2 は「アスペクト比を保ちつつ2の倍数に調整」を意味します。


コーデックの互換性を事前確認

# 利用可能なエンコーダ一覧
ffmpeg -encoders

# 利用可能なデコーダ一覧
ffmpeg -decoders

# 特定コーデックの詳細
ffmpeg -h encoder=libx264

ビルドフラグを確認する方法

ffmpeg -buildconf | grep enable

--enable-libx264--enable-libx265 が含まれていればそのコーデックが使えます。


処理時間とサイズの目安

これは推定値です。 以下の数値は 1080p/30fps・2分という想定素材に対する見積もりで、 実機で計測したものではありません。当サイトが実測値を載せている記事では 計測環境(CPU/GPU/FFmpeg のバージョンと素材)を必ず明記しています — 例: 動画の圧縮。実測データそのものは データセットで公開しています。

同じ2分の1080p素材でも、コーデックを変えると処理時間とサイズは大きく変わります。たとえば H.264 入力を MP4 に出す場合、互換性重視なら次のようにします。

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

8コア程度のデスクトップ環境では、2分素材の処理時間は数分程度が目安です。HEVC(libx265)やAV1(libaom-av1)は同じ見た目で小さくできることがありますが、エンコード時間はH.264より長くなりがちです。

サーバーやCIで Unknown encoder が出る場合、素材やコマンドではなくFFmpegのビルド差が原因のことが多いです。ローカルで成功したら、サーバーでも ffmpeg -encodersffmpeg -buildconf を保存して比較すると切り分けが速くなります。環境により変動します。


関連記事


動作確認: FFmpeg 8.1 / Windows — 本記事のコマンド 9 件を検証スクリプトで実行し、全て成功しました(2026-09-06) 一次ソース: ffmpeg.org/ffmpeg-codecs.html


よくある質問

“Codec not currently supported in container” って?

音声 / 映像コーデックを許容しないコンテナに mux しようとしている(例: 厳格プロファイルの MP4 に Opus)。コンテナを変える(.mkv)か該当ストリームをトランスコードしてください。

なぜ Opus は MP4 で失敗する?

MP4 標準の Opus サポートは比較的新しく、古いプレーヤーは拒否します。AAC に再エンコード(-c:a aac)するか、もともと Opus 対応の MKV を使ってください。

サポートされてるコーデックを確認したい

ffmpeg -codecs でビルド済み全コーデック表示。ffmpeg -encoders-decoders で読み書き別の対応を確認。

コーデックチェックをバイパスできる?

-strict experimental を付けると実験的なコーデック / コンテナ組合せが許可されます。AV1 / VVC など標準が成熟途中の場合に有用 — ただしクライアント側で再生不可になることも。

ローカルで動いたコマンドがサーバーで失敗する

別の FFmpeg ビルド。サーバーは libfdk_aac、libx265、HW エンコーダ無しの最小ビルドが多い。サーバー上で ffmpeg -encoders を確認してください。