FFmpeg 16進数カラーを正確に一致させる

FFmpeg 16進数カラーを正確に一致させる

次のコマンドを使用して、ffmpeg を使用してカラー背景のビデオを生成しようとしています。

ffmpeg.exe -t 5 -f lavfi -i color=c=0x1E3932:s=1094x863 -vcodec libx264 -pix_fmt yuv420p output_test.mp4

しかし、間違った緑が生成されます。#1B3531ビデオのスクリーンショットを撮って色をサンプリングすると、この色が生成されます。Web サイトの背景色と一致させる必要があるため、特定のコーデックとピクセル形式が必要です。サポートする必要があるプラットフォーム/ブラウザーでは、webm または別のコーデックを使用できません。

color必要な色空間で正しい 16 進数値を出力するソースを取得する方法はありますか?colorspaceまたはcolormatrixフィルターを使用してこの効果を実現する方法はありますか (私の理解では、この色の変化は RGB から YUV への変換によって発生します)?

答え1

-vf scale=out_color_matrix=bt709 を使用してマトリックスに変換し、-colorspace 1 を使用して出力にタグを付ける必要があります。また、-color_range tv (scale のデフォルト) にタグを付け、-color_trc iec61966_2_1 にタグを付け、-color_primaries に bt709 にタグを付けることもおすすめです。

関連情報