FFmpeg es un potente convertidor de audio y video de código abierto. Usando FFmpeg, podemos codificar, decodificar, transcodificar, mux, demux, grabar, cambiar el tamaño, transmitir, filtrar y reproducir casi todo tipo de archivos multimedia. No solo eso, también podemos capturar transmisiones de audio/video en vivo. FFmpeg viene con muchos filtros para realizar diferentes tareas. Uno de los filtros menos conocidos pero útiles es zoompan. . Usando el filtro zoompan, podemos acercar y alejar videos fácilmente en Linux. Déjame mostrarte cómo hacerlo usando un comando de ejemplo.
Asegúrese de haber instalado FFmpeg en su máquina Linux. Hemos documentado los pasos para instalar FFmpeg en los sistemas operativos Linux más populares en el siguiente enlace.
- Cómo instalar FFmpeg en Linux
Una vez que FFmpeg esté instalado, vaya a la ubicación donde guardó el video y ejecute el siguiente comando para acercar y alejar cada X segundos:
$ 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
El comando anterior acercará el zoom hacia el centro del video para zoom 2x durante los primeros 3 segundos de cada 10 segundos bloque de tiempo Reemplace input.mp4
con su nombre de archivo. También ajuste los valores según sus requisitos y configure el FPS para que el filtro coincida con la entrada. El valor predeterminado es 25.
Puede encontrar los detalles de FPS entre otros detalles de un video dado usando el siguiente comando:
$ ffmpeg -i input.mp4
Aquí está el video de entrada real antes de la conversión:
Y aquí está el video convertido (acercar y alejar):
¿Notaste la diferencia? El video se amplía a 2X durante los primeros 3 segundos y luego vuelve a la normalidad (alejar). Exactamente en el décimo segundo, el video vuelve a ampliarse durante los primeros 3 segundos y el ciclo continúa hasta que finaliza el video.
También puede probar las siguientes configuraciones de zoompan proporcionadas en la sección de ayuda del filtro zoompan de FFmpeg.
Acérquese hasta 1,5x y desplácese al mismo tiempo a algún punto cerca del centro de la imagen:
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
Acérquese hasta 1,5x y realice una panorámica siempre en el centro de la imagen:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Igual que el anterior pero sin pausa:
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Haga zoom 2x en el centro de la imagen solo durante el primer segundo del video de entrada:
zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Para obtener más ejemplos de comandos FFmpeg, consulte la siguiente guía:
- Más de 20 comandos FFmpeg para principiantes
Espero que esto ayude.