This is comparing a png file written with different ICC profiles (i.e. the underlying data is identical in all png files), and comparing it to mp4's where the only change is the -color_trc flag setting. The code to generate these files is here. You can reorder the wedges to help with comparison by drag and drop.
![]() | raw png png | ![]() | |
![]() | srgb png png | ![]() | |
![]() | rec1886 png png | ![]() | |
![]() | raw mp4 | ||
![]() | -color_trc 1 = bt709 mp4 | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=tv:out_color_matrix=bt709" -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc bt709 ./greyramp/greyscale-rec709.mp4 |
|
![]() | -color_trc 2 = unknown mp4 | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=tv:out_color_matrix=bt709" -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc unknown ./greyramp/greyscale-unknown.mp4 |
|
![]() | -color_trc 13 = sRGB mp4 | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=tv:out_color_matrix=bt709" -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc iec61966-2-1 ./greyramp/greyscale-srgb.mp4 |
|
![]() | -color_trc 4 = gamma 2.2 mp4 | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=tv:out_color_matrix=bt709" -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc gamma22 ./greyramp/greyscale-gamma22.mp4 |
|
![]() | -color_trc 5 = gamma 2.8 mp4 | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=tv:out_color_matrix=bt709" -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc gamma28 ./greyramp/greyscale-gamma28.mp4 |
|
![]() | -color_trc 8 = linear mp4 | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=tv:out_color_matrix=bt709" -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc linear ./greyramp/greyscale-lin.mp4 |
|
![]() | gamma 2.4 mov (OSX only) mov | ffmpeg -r 1 -y -i ./greyramp/greyscale-raw.png -c:v libx264 -pix_fmt yuv420p -qscale:v 1 -sws_flags spline+accurate_rnd+full_chroma_int -vf "colorspace=bt709:iall=bt601-6-625:fast=1" -color_range tv -colorspace bt709 -color_primaries bt709 -color_trc unknown -movflags write_colr+write_gama -mov_gamma 2.4 ./greyramp/h264-ffmpeg-gamma24alt.mov |