#### SETUP # Get a recent FFmpeg build with libx264 and libvmaf. # Source: https://github.com/BtbN/ffmpeg-builds/releases # Get a high-bitrate reference video. # Source: https://www.pexels.com/video/scuba-divers-explore-vibrant-coral-reef-33791780/ wget -O water-reference.mp4 "https://www.pexels.com/download/video/33791780/?fps=59.94&h=2160&w=3840" # Get a low-bitrate reference video. # Source: https://www.pexels.com/video/burning-firewood-1717998/ wget -O fire-reference.mp4 "https://videos.pexels.com/video-files/1717998/1717998-uhd_3840_2160_25fps.mp4" # Make a combined water+fire video. ffmpeg \ -i water-reference.mp4 \ -ss 00:00:18.000 \ -i fire-reference.mp4 \ -filter_complex "[0:v]fps=fps=25[water];[water][1:v]concat=n=2:v=1:a=0[vOut]" \ -map "[vOut]" \ -fps_mode cfr \ -codec:v libx264 \ -qp 0 \ -g 25 \ -bf 0 \ -preset ultrafast \ -an \ -movflags +faststart \ combined-reference.mp4 #### WATER VIDEO # Encode using CRF mode: VMAF 89.763550 ffmpeg \ -i water-reference.mp4 \ -fps_mode cfr \ -codec:v libx264 \ -profile:v high \ -crf 25 \ -g 300 \ -bf 3 \ -preset fast \ -an \ -movflags +faststart \ water-crf.mp4 ffmpeg \ -i water-crf.mp4 \ -i water-reference.mp4 \ -filter_complex libvmaf='model=version=vmaf_4k_v0.6.1neg:log_path=water-crf.xml' \ -f null \ - # Encode using CBR mode: VMAF 89.386095 ffmpeg \ -i water-reference.mp4 \ -fps_mode cfr \ -codec:v libx264 \ -profile:v high \ -b:v 46M \ -minrate 46M \ -maxrate 46M \ -bufsize 46M \ -g 300 \ -bf 3 \ -preset fast \ -x264-params "nal-hrd=cbr" \ -an \ -movflags +faststart \ water-cbr.mp4 ffmpeg \ -i water-cbr.mp4 \ -i water-reference.mp4 \ -filter_complex libvmaf='model=version=vmaf_4k_v0.6.1neg:log_path=water-cbr.xml' \ -f null \ - #### FIRE VIDEO # Encode using CRF mode: VMAF 98.853343 ffmpeg \ -i fire-reference.mp4 \ -fps_mode cfr \ -codec:v libx264 \ -profile:v high \ -crf 25 \ -g 125 \ -bf 3 \ -preset fast \ -an \ -movflags +faststart \ fire-crf.mp4 ffmpeg \ -i fire-crf.mp4 \ -i fire-reference.mp4 \ -filter_complex libvmaf='model=version=vmaf_4k_v0.6.1neg:log_path=fire-crf.xml' \ -f null \ - # Encode using CBR mode: VMAF 98.854866 ffmpeg \ -i fire-reference.mp4 \ -fps_mode cfr \ -codec:v libx264 \ -profile:v high \ -b:v 10M \ -minrate 10M \ -maxrate 10M \ -bufsize 10M \ -g 125 \ -bf 3 \ -preset fast \ -x264-params "nal-hrd=cbr" \ -an \ -movflags +faststart \ fire-cbr.mp4 ffmpeg \ -i fire-cbr.mp4 \ -i fire-reference.mp4 \ -filter_complex libvmaf='model=version=vmaf_4k_v0.6.1neg:log_path=fire-cbr.xml' \ -f null \ - #### COMBINED VIDEO # Encode using CRF mode: VMAF 96.526387 ffmpeg \ -i combined-reference.mp4 \ -fps_mode cfr \ -codec:v libx264 \ -profile:v high \ -crf 25 \ -g 125 \ -bf 3 \ -preset fast \ -an \ -movflags +faststart \ combined-crf.mp4 ffmpeg \ -i combined-crf.mp4 \ -i combined-reference.mp4 \ -filter_complex libvmaf='model=version=vmaf_4k_v0.6.1neg:log_path=combined-crf.xml' \ -f null \ - # Encode using CBR mode: VMAF 98.596695 ffmpeg \ -i combined-reference.mp4 \ -fps_mode cfr \ -codec:v libx264 \ -profile:v high \ -b:v 46M \ -minrate 46M \ -maxrate 46M \ -bufsize 46M \ -g 125 \ -bf 3 \ -preset fast \ -x264-params "nal-hrd=cbr" \ -an \ -movflags +faststart \ combined-cbr.mp4 ffmpeg \ -i combined-cbr.mp4 \ -i combined-reference.mp4 \ -filter_complex libvmaf='model=version=vmaf_4k_v0.6.1neg:log_path=combined-cbr.xml' \ -f null \ -