È possibile eseguire una semplice sovrapposizione di immagini utilizzando la sintassi seguente:
ffmpeg -i input.mp4 -i image.png \
-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" \
-pix_fmt yuv420p -c:a copy \
output.mp4
overlay=25:25
significa che vogliamo posizionare l'immagine 25px a destra e 25px in basso, originando dall'angolo in alto a sinistra (0: 0).
enable='between(t,0,20)'
significa che vogliamo che l'immagine venga mostrata tra il secondo 0 e il 20.
[0:v][1:v]
significa che vogliamo che il primo file video con cui importiamo -i
, nel nostro caso input.mp4 o come ffmpeg lo veda il file di input video numero 0, sia nel file di input video 1, nel nostro caso image.png. :v
significa solo che vogliamo video 0 e video 1. [0:a]
significherebbe che vogliamo la prima traccia audio importata. Che verrebbe anche da input.mp4 ma punta alla traccia audio anziché alla traccia video nel file mp4.
Se si desidera una determinata qualità / impostazioni dell'immagine e non le impostazioni scelte da ffmpeg, aggiungere l'immagine e / o le opzioni di codifica audio che si desidera utilizzare. Il codificatore video predefinito sarà x264. Controlla la guida alla codifica H.264 per le possibili impostazioni.
Il -acodec copy
/ -c:a copy
che hai nel tuo comando fe semplicemente riutilizzerebbe l'audio dal file sorgente. Anche se ovviamente non puoi farlo con il video (in questo caso), questo deve essere transcodificato perché stiamo creando una nuova sorgente video.
Se si desidera transcodificare l'audio, rimuovere la -c:a copy
parte. Potrebbe essere necessario specificare esplicitamente un codificatore, ad es -c:a aac -strict experimental
. Consulta la guida alla codifica AAC per maggiori informazioni.