
아래 명령을 사용하여 HLS 재생 목록을 만듭니다.
ffmpeg -i "Full.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 -vcodec libx264 -crf 22 -preset medium -c:a copy -filter:v:0 scale=w=480:h=360:force_original_aspect_ratio=decrease -maxrate:v:0 600k -b:a:0 64k -filter:v:1 scale=w=640:h=480:force_original_aspect_ratio=decrease -maxrate:v:1 800k -b:a:1 128k -filter:v:2 scale=w=1280:h=720:force_original_aspect_ratio=decrease -maxrate:v:2 1000k -b:a:2 128k -var_stream_map "v:0,a:0,name:360p v:1,a:1,name:480p v:2,a:2,name:720p" -f hls -hls_playlist_type vod -hls_flags independent_segments -master_pl_name "playlist.m3u8" "%v.m3u8"
그런 다음 일부 세그먼트에 동적 워터마크를 삽입해야 합니다. 이를 위해 다음 명령을 사용합니다.
ffmpeg -i "360p0.ts" -i logo.png -filter_complex "[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -preset ultrafast -c:v libx264 -maxrate 600k -codec:a copy "360p0-watermark.ts"
그런데 비디오를 재생하려고 하면 워터마크가 없는 세그먼트를 재생할 때 플레이어가 충돌하고 워터마크가 있는 다음 세그먼트를 찾으면 다시 시작됩니다.
워터마크는 동적이기 때문에 첫 번째 변환에서는 워터마크를 추가할 수 없으므로 사용자가 동영상을 재생할 때만 워터마크를 추가해야 합니다.