Gallery

Blog | en| ru|

Generate HLS playlists for the video in multiple resolution/quality

Contents


Generate content available in multiple quality variants

ffmpeg -i video.mp4 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 \
    -c:v h264_nvenc -c:a libfdk_aac -ar 44100 -b:a 128k -ac 2 \
    -filter:v:0 scale=w=640:h=360 -maxrate:v:0 512k -b:a:0 80k \
    -filter:v:1 scale=w=1280:h=720 -maxrate:v:1 1700k -b:a:1 128k \
    -maxrate:v:2 3200k -b:a:2 160k \
    -var_stream_map "v:0,a:0,name:360p v:1,a:1,name:720p v:2,a:2,name:1080p" \
    -profile:v high -level:v 4.1 \
    -f hls -hls_time 10 -hls_flags independent_segments -hls_list_size 24 \
    -master_pl_name video.m3u8 -y hls/video-%v.m3u8

Generate singular HLS

ffmpeg -i video.mp4 -c:v copy -c:a \
    libfdk_aac -b:v 1750k -ar 44100 -b:a 160k \
    -f hls -hls_time 4 -hls_flags independent_segments -hls_list_size 0 \
    -y hls-video/video.m3u8