FFmpeg è un potente convertitore audio e video opensource. Usando FFmpeg, possiamo codificare, decodificare, transcodificare, mux, demux, registrare, ridimensionare, trasmettere in streaming, filtrare e riprodurre quasi tutti i tipi di file multimediali. Non solo, possiamo anche acquisire streaming audio/video dal vivo. FFmpeg viene fornito con molti filtri per eseguire diverse attività. Uno dei filtri meno conosciuti ma utili è zoompan . Usando il filtro zoompan, possiamo facilmente ingrandire e rimpicciolire i video in Linux. Lascia che ti mostri come farlo usando un comando di esempio.
Assicurati di aver installato FFmpeg sulla tua macchina Linux. Abbiamo documentato i passaggi per installare FFmpeg sui più diffusi sistemi operativi Linux nel seguente link.
- Come installare FFmpeg in Linux
Una volta installato FFmpeg, vai alla posizione in cui hai salvato il video ed esegui il seguente comando per ingrandire e rimpicciolire ogni X secondi:
$ ffmpeg -i input.mp4 -vf "zoompan=z='if(lte(mod(time,10),3),2,1)':d=1:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2):fps=30" output.mp4
Il comando sopra ingrandirà verso il centro del video per zoom 2x per i primi 3 secondi di ogni 10 secondi blocco di tempo. Sostituisci input.mp4
con il tuo nome file. Regola anche i valori secondo le tue esigenze e imposta l'FPS per il filtro in modo che corrisponda all'input. Il valore predefinito è 25.
Puoi trovare i dettagli FPS tra gli altri dettagli di un determinato video usando il seguente comando:
$ ffmpeg -i input.mp4
Ecco il video di input effettivo prima della conversione:
Ed ecco il video convertito (zoom-in-out):
Hai notato la differenza? Il video viene ingrandito a 2X per i primi 3 secondi e poi torna alla normalità (rimpicciolimento). Al decimo secondo esatto, il video viene nuovamente ingrandito per i primi 3 secondi e il ciclo continua fino alla fine del video.
Puoi anche provare le seguenti impostazioni di zoompan fornite nella sezione della guida del filtro zoompan di FFmpeg.
Ingrandisci fino a 1,5x e fai una panoramica contemporaneamente in un punto vicino al centro dell'immagine:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
Ingrandisci fino a 1,5x e fai una panoramica sempre al centro dell'immagine:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Come sopra ma senza pause:
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Ingrandisci 2x al centro dell'immagine solo per il primo secondo del video di input:
zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Per altri esempi di comandi FFmpeg, fare riferimento alla seguente guida:
- 20+ comandi FFmpeg per principianti
Spero che questo aiuti.