Skip to content

Instantly share code, notes, and snippets.

@siassaj
Created October 22, 2020 02:17
Show Gist options
  • Save siassaj/ac00cdbcf099c9bcf9d585113bc76f7e to your computer and use it in GitHub Desktop.
Save siassaj/ac00cdbcf099c9bcf9d585113bc76f7e to your computer and use it in GitHub Desktop.
# 360p
ffmpeg -hide_banner -y -i ./original.vid \
-vf scale=w=640:h=360:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 48 -keyint_min 48 -hls_time 4 -hls_playlist_type vod -b:v 800k -maxrate 856k -bufsize 1200k -b:a 96k -pix_fmt yuv420p -hls_segment_filename build/360p_%04d.ts build/360p.m3u8
if [[ $width -ge 842 && $height -ge 480 ]]; then
# 480p
ffmpeg -hide_banner -y -i ./original.vid \
-vf scale=w=842:h=480:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 48 -keyint_min 48 -hls_time 4 -hls_playlist_type vod -b:v 1400k -maxrate 1498k -bufsize 2100k -b:a 128k -pix_fmt yuv420p -hls_segment_filename build/480p_%04d.ts build/480p.m3u8
fi
if [[ $width -ge 1280 && $height -ge 720 ]]; then
# 720p
ffmpeg -hide_banner -y -i ./original.vid \
-vf scale=w=1280:h=720:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 48 -keyint_min 48 -hls_time 4 -hls_playlist_type vod -b:v 2800k -maxrate 2996k -bufsize 4200k -b:a 128k -pix_fmt yuv420p -hls_segment_filename build/720p_%04d.ts build/720p.m3u8
fi
if [[ $width -ge 1920 && $height -ge 1080 ]]; then
# 1080p
ffmpeg -hide_banner -y -i ./original.vid \
-vf scale=w=1920:h=1080:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 48 -keyint_min 48 -hls_time 4 -hls_playlist_type vod -b:v 5000k -maxrate 5350k -bufsize 7500k -b:a 192k -pix_fmt yuv420p -hls_segment_filename build/1080p_%04d.ts build/1080p.m3u8
fi
if [[ $width -ge 3840 && $height -ge 2160 ]]; then
ffmpeg -hide_banner -y -i ./original.vid \
-vf scale=w=3840:h=2160:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -c:v h264 -profile:v main -crf 20 -sc_threshold 0 -g 48 -keyint_min 48 -hls_time 4 -hls_playlist_type vod -b:v 14000k -maxrate 18200k -bufsize 21000k -b:a 192k -pix_fmt yuv420p -hls_segment_filename build/4k_%04d.ts build/4k.m3u8
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment