overlay video ritardato usando ffmpeg


2

Voglio sovrapporre un video a un altro ma con un aspetto ritardato. Io ho:

  • source1.mp4 che dura 20 sec.
  • source2.mp4 che dura 5 sec.

Voglio creare un output finale in cui si source2.mp4sovrappone source1.mp4da 00:00:07 a 00:00:12. Come posso raggiungere questo obiettivo?

Ho provato a seguire i comandi, ma nessuno di questi serve ciò che voglio:

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

L'ho chiesto su entrambi i siti perché era confuso se si tratta di una domanda relativa alla programmazione. Tuttavia non ho ancora ricevuto alcuna risposta su entrambi i siti per questa domanda.
modifica il

Risposte:


5

Per fare questo hai bisogno dell'ultima versione di ffmpeg (2.2) . Quindi dovresti eseguire il comando like

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

Il trucco è impostare PTS per il secondo video a +7 sec (PTS-STARTPTS + 7 / TB) e quindi solo sovrapporre 2 stream.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.