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, along with mov files with different gamma values. The code to generate these files is here. You can reorder the wedges to help with comparison by drag and drop.
Filtered views:
(OSX Only) -color_trc 2 = gamma 2.4 BT1886 mov | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc unknown -movflags write_colr+write_gama -mov_gamma 2.4 ./greyramp-osx/greyscale-gamma24.mov |
||
rec1886 png | |||
(OSX Only) -color_trc 2 = gamma 2.2 mov | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc unknown -movflags write_colr+write_gama -mov_gamma 2.2 ./greyramp-osx/greyscale-gamma22.mov |
||
-color_trc 4 = gamma 2.2 mp4 | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc gamma22 ./greyramp-osx/greyscale-gamma22.mp4 |
||
gamma2.2 png | |||
(OSX Only) -color_trc 2 = gamma 2.8 mov | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc unknown -movflags write_colr+write_gama -mov_gamma 2.8 ./greyramp-osx/greyscale-gamma28.mov |
||
-color_trc 5 = gamma 2.8 mp4 | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc gamma28 ./greyramp-osx/greyscale-gamma28.mp4 |
||
gamma2.8 png | |||
(OSX Only) -color_trc 2 = gamma 1 mov | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc unknown -movflags write_colr+write_gama -mov_gamma 1 ./greyramp-osx/greyscale-gamma1.mov |
||
-color_trc 8 = linear mp4 | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc linear ./greyramp-osx/greyscale-lin.mp4 |
||
Linear png | |||
raw mp4 | |||
raw png | |||
(OSX Only) -color_trc 2 = gamma 1.95 mov | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc unknown -movflags write_colr+write_gama -mov_gamma 1.95 ./greyramp-osx/greyscale-gamma195.mov |
||
-color_trc 1 = rec709 mp4 | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc bt709 ./greyramp-osx/greyscale-rec709.mp4 |
||
-color_trc 13 = sRGB mp4 | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc iec61966-2-1 ./greyramp-osx/greyscale-srgb.mp4 |
||
srgb png | |||
-color_trc 2 = unknown mp4 | ffmpeg -loop 1 -y -i ./greyramp-osx/greyscale-raw.png -sws_flags spline+accurate_rnd+full_chroma_int -vf "scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709" -c:v libx264 -t 5 -pix_fmt yuv420p -qscale:v 1 -color_range pc -colorspace bt709 -color_primaries bt709 -color_trc unknown ./greyramp-osx/greyscale-unknown.mp4 |