sobreposição de vídeo atrasada usando o ffmpeg

2

Eu estou querendo sobrepor um vídeo para outro, mas com uma aparência atrasada. Eu tenho:

  • source1.mp4 , que tem duração de 20 s.
  • source2.mp4 , que tem duração de 5 s.

Eu quero criar uma saída final na qual source2.mp4 sobrepõe source1.mp4 de 00:00:07 a 00:00:12. Como posso conseguir isso?

Eu tentei seguir os comandos, mas nenhum deles serve o que eu quero:

ffmpeg -i source1.mp4 -itsoffset 7 -i source2.mp4 -map 0:0 -map 1:1 -c copy -y output.mp4

ffmpeg -itsoffset 7 -i source2.mp4 -i source1.mp4 -filter_complex 'overlay=0:0' output.mp4 

ffmpeg -i source1.mp4 -i source2.mp4 -filter_complex "overlay" -strict -2 output.mp4
    
por alter 27.03.2014 / 11:24

1 resposta

4

Para fazer isso, você precisa da versão mais recente do ffmpeg (2.2) . Então você deve executar o comando como

ffmpeg -i sample1.mp4 -i sample2.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS[v0];[1:v]setpts=PTS-STARTPTS+7/TB[v1];[v0][v1]overlay=eof_action=pass[out1]" -map [out1]  /tmp/final.mp4

O truque é configurar o PTS para o segundo vídeo em +7 segundos (PTS-STARTPTS + 7 / TB) e, em seguida, apenas sobrepor dois fluxos.

    
por 30.03.2014 / 00:01