Color_trc comparison for OSX

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:

  • See all
  • bt1886
  • sRGB
  • gamma 2.2
  • gamma 2.2 and sRGB
  • gamma 2.8
  • linear
  • mp4's only.
  • png's only.
  • (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