Cómo poner una marca de agua en algún segmento .ts sin transcodificar el video completo

Cómo poner una marca de agua en algún segmento .ts sin transcodificar el video completo

Estoy usando el siguiente comando para crear una lista de reproducción 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" 

Después necesito poner una marca de agua dinámica en algunos segmentos, para esto estoy usando el comando:

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"

Pero cuando intento reproducir el vídeo, el reproductor falla al reproducir un segmento sin marca de agua y se reanuda cuando encuentra el siguiente segmento con marca de agua.

No puedo agregar la marca de agua en la primera conversión porque la marca de agua es dinámica, por lo que debo agregar la marca de agua solo cuando el usuario reproduce el video.

información relacionada