
Ich verwende den folgenden Befehl, um eine HLS-Wiedergabeliste zu erstellen:
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"
Anschließend muss ich in einige Segmente ein dynamisches Wasserzeichen einfügen. Dazu verwende ich den Befehl:
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"
Beim Versuch, das Video abzuspielen, stürzt der Player jedoch bei der Wiedergabe eines Abschnitts ohne Wasserzeichen ab und wird fortgesetzt, wenn er den nächsten Abschnitt mit einem Wasserzeichen findet.
Ich kann das Wasserzeichen bei der ersten Konvertierung nicht hinzufügen, da das Wasserzeichen dynamisch ist. Daher sollte ich das Wasserzeichen erst hinzufügen, wenn der Benutzer das Video abspielt.