#!/bin/bash INPUT_FILE=/path/to/mp4 COMMON_OPTS="-c:v libx264 -movflags frag_keyframe+empty_moov -frag_duration 6000000 -sc_threshold 0 -g 144" ffmpeg \ -i $INPUT_FILE \ -threads 2 \ -filter_complex "[v:0]split=3[in1][in2][in3];[a:0]asplit=2[aud1][aud2];[in1]scale=w=1920:h=1080:force_original_aspect_ratio=decrease[out1];[in2]scale=w=1280:h=720:force_original_aspect_ratio=decrease[out2];[in3]scale=w=960:h=540:force_original_aspect_ratio=decrease[out3]" \ -map "[out1]" $COMMON_OPTS -b:v 8000k -maxrate 8000k -bufsize 4000k ./tmp/output_1080p.mp4 \ -map "[out2]" $COMMON_OPTS -b:v 3000k -maxrate 3000k -bufsize 1500k ./tmp/output_720p.mp4 \ -map "[out3]" $COMMON_OPTS -b:v 1200k -maxrate 1200k -bufsize 600k ./tmp/output_540p.mp4 \ -map "[aud1]" -c:a aac -b:a 128k -ac 2 ./tmp/output_audio_128.mp4 \ -map "[aud2]" -c:a aac -b:a 192k -ac 2 ./tmp/output_audio_196.mp4