Como você está bem com alguma imprecisão, sugiro o seguinte método:
Segmente a entrada de vídeo
ffmpeg -i beach.mp4 -c copy -segment_time 20 -f segment beach_seg%02d.mp4
Logotipo de sobreposição no primeiro segmento
ffmpeg -i beach_seg00.mp4 -loop 1 -i logo.png
-filter_complex "[0:v][1:v] overlay=25:25:shortest=1"
-pix_fmt yuv420p -c:a copy overlay.mp4
Segmentos de concat
Primeiro, prepare um arquivo de texto segments.txt
file 'overlay.mp4'
file 'beach_seg01.mp4'
file 'beach_seg02.mp4'
file 'beach_seg03.mp4'
...
Então, concat
ffmpeg -f concat -i segments.txt -c copy beach_with_logo.mp4
A advertência aqui é que a base de tempo de sobreposição.mp4 pode não coincidir com a dos segmentos de praia. Nesse caso, verifique a base de tempo de um dos segmentos de praia (o tbn
) e adicione -video_track_timescale <tbn>
ao comando de sobreposição.