GNU/Linux >> Tutoriales Linux >  >> Linux

Más de 20 comandos FFmpeg para principiantes

En esta guía, explicaré cómo usar el marco multimedia FFmpeg para realizar varias operaciones de transcodificación y conversión de audio y video con ejemplos. He compilado más de 20 comandos FFmpeg de uso común y frecuente para principiantes.

Seguiré actualizando esta guía agregando más ejemplos de vez en cuando. Marque esta guía como favorita y regrese en un momento para verificar las actualizaciones. Comencemos, ¿de acuerdo?

Instalar FFmpeg en Linux

Si aún no ha instalado FFmpeg en su sistema Linux, consulte la siguiente guía.

  • Instalar FFmpeg en Linux

Comandos FFmpeg con ejemplos

La sintaxis típica del comando FFmpeg es:

ffmpeg [global_options] {[input_file_options] -i input_url} ...
 {[output_file_options] output_url} ...

Ahora vamos a ver algunos comandos FFmpeg importantes y útiles.

1. Obtener información de archivos de audio/video

Para mostrar los detalles de un archivo multimedia, ejecute:

$ ffmpeg -i video.mp4

Salida de muestra:

ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181127
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
At least one output file must be specified

Como puede ver en el resultado anterior, FFmpeg muestra la información del archivo multimedia junto con los detalles de FFmpeg, como la versión, los detalles de configuración, el aviso de derechos de autor, las opciones de compilación y biblioteca, etc.

Si no desea ver el banner FFmpeg y otros detalles, sino solo la información del archivo multimedia, use -hide_banner marca como a continuación.

$ ffmpeg -i video.mp4 -hide_banner

Salida de muestra:

¿Ver? Ahora, solo muestra los detalles del archivo multimedia.

Lectura sugerida:

  • Mostrar información de archivos multimedia en Linux usando MediaInfo

2. Conversión de archivos de video a diferentes formatos

Dado que FFmpeg es un convertidor de audio y video potente y rico en funciones, es posible convertir archivos multimedia entre diferentes formatos. Digamos, por ejemplo, para convertir mp4 archivo a avi archivo , ejecuta:

$ ffmpeg -i video.mp4 video.avi

Del mismo modo, puede convertir archivos multimedia a cualquier formato de su elección.

Por ejemplo, para convertir YouTube flv formatear videos a mpeg formatear, ejecutar:

$ ffmpeg -i video.flv video.mpeg

Si desea preservar la calidad de su archivo de video fuente, use '-qscale 0' parámetro:

$ ffmpeg -i input.webm -qscale 0 output.mp4

Para verificar la lista de formatos admitidos por FFmpeg, ejecute:

$ ffmpeg -formats

3. Conversión de archivos de video a archivos de audio

Para convertir un archivo de video a un archivo de audio, simplemente especifique el formato de salida como .mp3 o .ogg , o cualquier otro formato de audio.

El comando anterior convertirá input.mp4 archivo de vídeo a output.mp3 archivo de audio.

$ ffmpeg -i input.mp4 -vn output.mp3

Además, puede usar varias opciones de transcodificación de audio para el archivo de salida, como se muestra a continuación.

$ ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

Aquí,

  • -vn - Indica que hemos deshabilitado la grabación de video en el archivo de salida.
  • -ar - Establecer la frecuencia de audio del archivo de salida. Los valores comunes utilizados son  22050 , 44100 , 48000 Hz.
  • -ac - Establecer el número de canales de audio.
  • -ab - Indica la tasa de bits de audio.
  • -f - Formato de archivo de salida. En nuestro caso, es mp3 formato.

El comando anterior mostrará un mensaje de advertencia como el siguiente.

[libmp3lame @ 0x5589ed539240] Bitrate 320 is extremely low, maybe you mean 320k
The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s

Esto se debe a que le hemos dado 320 bits/segundo como tasa de bits, que es muy baja. Esto creará un archivo de salida más pequeño. Para obtener resultados de la mejor calidad, utilice un valor de tasa de bits como 320k en lugar de solo 320 .

4. Cambiar el volumen de los archivos de audio

FFmpeg nos permite cambiar el volumen de un archivo de audio usando "volume filter" opción.

Por ejemplo, el siguiente comando reducirá el volumen a la mitad.

$ ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3

Del mismo modo, podemos aumentar el volumen como se muestra a continuación:

$ ffmpeg -i input.mp3 -af 'volume=1.5' output.mp3

5. Cambiar la resolución de los archivos de video

Si desea establecer una resolución particular para un archivo de video, puede usar el siguiente comando:

$ ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4

O,

$ ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

El comando anterior establecerá la resolución del archivo de video dado en 1280x720 .

Del mismo modo, para convertir el archivo anterior a 640x480 tamaño, ejecutar:

$ ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4

O,

$ ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4

Este truco te ayudará a escalar tus archivos de video a dispositivos de visualización más pequeños, como tabletas y teléfonos móviles.

6. Comprimir archivos de video

Siempre es una buena idea reducir el tamaño de los archivos multimedia a un tamaño más bajo para ahorrar espacio en el disco.

El siguiente comando comprimirá y reducirá el tamaño del archivo de salida.

$ ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

Tenga en cuenta que perderá calidad si intenta reducir el tamaño del archivo de video. Puedes bajar ese crf valor a 23 o menor si 24 es demasiado agresivo.

También puede transcodificar un poco el audio y convertirlo en estéreo para reducir el tamaño al incluir las siguientes opciones.

-ac 2 -c:a aac -strict -2 -b:a 128k

7. Comprimir archivos de audio

Al igual que comprimir archivos de video, también puede comprimir archivos de audio usando -ab bandera para ahorrar algo de espacio en disco.

Digamos que tienes un archivo de audio de 320 tasa de bits de kbps. Desea comprimirlo cambiando la tasa de bits a cualquier valor más bajo como se muestra a continuación.

$ ffmpeg -i input.mp3 -ab 128 output.mp3

La lista de varias tasas de bits de audio disponibles son:

  1. 96 kbps
  2. 112 kbps
  3. 128 kbps
  4. 160 kbps
  5. 192 kbps
  6. 256 kbps
  7. 320 kbps

8. Eliminación de secuencias de audio de un archivo de video

Si no desea audio de un archivo de video, use -an bandera.

$ ffmpeg -i input.mp4 -an output.mp4

Aquí, 'an' indica que no hay grabación de audio. En otras palabras, esta opción silenciará el audio.

El comando anterior deshará todas las banderas relacionadas con el audio.

9. Eliminación de transmisión de video de un archivo multimedia

Del mismo modo, si no desea la transmisión de video, puede eliminarla fácilmente del archivo multimedia usando 'vn' bandera. vn significa sin grabación de video. En otras palabras, este comando convierte el archivo multimedia dado en un archivo de audio.

El siguiente comando eliminará el video del archivo multimedia dado.

$ ffmpeg -i input.mp4 -vn output.mp3

También puede mencionar la tasa de bits del archivo de salida usando '-ab' como se muestra en el siguiente ejemplo.

$ ffmpeg -i input.mp4 -vn -ab 320 output.mp3

10. Extrayendo imágenes del video

Otra característica útil de FFmpeg es que podemos extraer fácilmente imágenes de un archivo de video. Esto podría ser muy útil si desea crear un álbum de fotos a partir de un archivo de video.

Para extraer imágenes de un archivo de video, use el siguiente comando:

$ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

Aquí,

  • -r - Establecer la velocidad de fotogramas. Es decir, el número de fotogramas que se extraerán en imágenes por segundo. El valor predeterminado es 25 .
  • -f - Indica el formato de salida, es decir, el formato de imagen en nuestro caso.
  • image-%2d.png - Indica cómo queremos nombrar las imágenes extraídas. En este caso, los nombres deberían comenzar como image-01.png , image-02.png , image-03.png y así. Si usa %3d , entonces el nombre de las imágenes comenzará como image-001.png , image-002.png y así sucesivamente.

11. Recortar vídeos

FFMpeg permite recortar un archivo multimedia dado en cualquier dimensión de nuestra elección.

La sintaxis para recortar un archivo de video se proporciona a continuación:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

Aquí,

  • input.mp4 - archivo de vídeo de origen.
  • -filter:v - Indica el filtro de video.
  • crop - Indica filtro de cultivo.
  • w - Ancho del rectángulo que queremos recortar del video de origen.
  • h - Altura del rectángulo.
  • x - x coordenada del rectángulo que queremos recortar del video de origen.
  • y - coordenada y del rectángulo.

Digamos que quieres un video con un ancho de 640 píxeles y una altura de 480 píxeles , desde la posición (200,150 ) , el comando sería:

$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

Tenga en cuenta que recortar videos afectará la calidad. No haga esto a menos que sea necesario.

12. Convierte una parte específica de un video

A veces, es posible que desee convertir solo una parte específica (duración) del archivo de video a un formato diferente. Digamos, por ejemplo, que el siguiente comando convertirá el primer 10 segundos del archivo video.mp4 dado al formato video.avi.

$ ffmpeg -i input.mp4 -t 10 output.avi

Aquí especificamos el tiempo en segundos. Además, es posible especificar la hora en hh.mm.ss formato.

13. Establece la relación de aspecto a video

Puede establecer la relación de aspecto de un archivo de video usando -aspect marca como a continuación.

$ ffmpeg -i input.mp4 -aspect 16:9 output.mp4

Las relaciones de aspecto comúnmente utilizadas son:

  • 16:9
  • 4:3
  • 16:10
  • 5:4
  • 2:21:1
  • 2:35:1
  • 2:39:1

14. Agregar imagen de póster a archivos multimedia

Puede agregar las imágenes del póster a sus archivos, para que las imágenes se muestren mientras se reproducen los archivos de audio o video. Esto podría ser útil para alojar archivos de audio en sitios web para compartir o alojar videos.

$ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

15. Recortar un archivo multimedia utilizando las horas de inicio y finalización

Para recortar un video a un clip más pequeño usando los tiempos de inicio y finalización, podemos usar el siguiente comando.

$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

Aquí,

  • --s - Indica la hora de inicio del videoclip. En nuestro ejemplo, la hora de inicio es el segundo 50.
  • -t - Indica la duración total del tiempo.

Esto es muy útil cuando desea cortar una parte de un archivo de audio o video utilizando el tiempo de inicio y finalización.

Del mismo modo, podemos recortar el archivo de audio como se muestra a continuación.

$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

16. Dividir archivos de audio/video en varias partes

Algunos sitios web le permitirán cargar solo un tamaño específico de video. Por ejemplo, Whatsapp solo permitirá 15 segundos videos para establecer como mensaje de estado para los usuarios en la India. En tales casos, puede dividir los archivos de video grandes en varias partes más pequeñas, como se muestra a continuación.

$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4

Aquí, -t 00:00:30 indica una parte que se crea desde el comienzo del video hasta el segundo 30 del video. -ss 00:00:30 muestra la marca de tiempo de inicio de la siguiente parte del video. Significa que la segunda parte comenzará desde el segundo 30 y continuará hasta el final del archivo de video original.

Recommended Download - Free Guide: "How to Start Your Own Successful Podcast"

17. Unir o fusionar múltiples partes de audio/video en una

FFmpeg también unirá las múltiples partes de video y creará un solo archivo de video.

Crear join.txt archivo que contiene las rutas exactas de los archivos que desea unir. Todos los archivos deben tener el mismo formato (mismo códec). El nombre de la ruta de todos los archivos debe mencionarse uno por uno como se muestra a continuación.

file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4

Ahora, une todos los archivos usando el comando:

$ ffmpeg -f concat -i join.txt -c copy output.mp4

Si obtiene un error como el siguiente;

[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted

Agregue "-safe 0" :

$ ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4

El comando anterior se unirá a part1.mp4 , part2.mp4 , part3.mp4 y part4.mp4 archivos en un solo archivo llamado "output.mp4" .

Alternativamente, puede usar el siguiente comando de una sola línea para unir todos los archivos en un directorio. Vaya al directorio donde tiene archivos y ejecute el siguiente comando para unir los archivos llamados audio1.mp3 , audio2,mp3 y audio3.mp3 en output.mp3 .

$ ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3

18. Agregar subtítulos a un archivo de video

También podemos agregar subtítulos a un archivo de video usando FFmpeg. Descargue el subtítulo correcto para su video y agréguelo a su video como se muestra a continuación.

$ fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

19. Obtenga una vista previa o pruebe archivos de video o audio

Es posible que desee obtener una vista previa para verificar o probar si el archivo de salida se transcodificó correctamente o no. Para hacerlo, puedes jugarlo desde tu Terminal con el comando:

$ ffplay video.mp4

Del mismo modo, puede probar los archivos de audio como se muestra a continuación.

$ ffplay audio.mp3

20. Aumentar/disminuir la velocidad de reproducción de video

FFmpeg le permite ajustar la velocidad de reproducción de video.

Para aumentar la velocidad de reproducción del video, ejecute:

$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

El comando duplicará la velocidad del video.

Para reducir la velocidad de su video, debe usar un multiplicador mayor que 1 . Para disminuir la velocidad de reproducción, ejecuta:

$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

21. Aumentar/disminuir la velocidad de reproducción de audio

Para aumentar o disminuir la velocidad de reproducción de audio, use el "atempo" filtro de sonido El siguiente comando duplicará la velocidad del audio.

$ ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4

Puede usar cualquier valor entre 0.5 y 2.0 para audio.

22. Crear GIF animado

Usamos imágenes GIF en casi todas las redes sociales y profesionales para diversos fines. Usando FFmpeg, podemos crear fácil y rápidamente archivos de video animados.

La siguiente guía explica cómo crear un archivo GIF animado usando FFmpeg e ImageMagick en sistemas Linux y similares a Unix.

  • Cómo crear un GIF animado en Linux

Lectura sugerida:

  • Gifski:un codificador de GIF multiplataforma de alta calidad

23. Crea videos a partir de archivos PDF

Recopilé muchos archivos PDF, en su mayoría tutoriales de Linux, a lo largo de los años y los guardé en mi Tablet PC. A veces me da pereza leerlos desde la tablet.

Entonces, decidí crear un video a partir de archivos PDF y verlo en dispositivos de pantalla grande como un televisor o una computadora. Si alguna vez se preguntó cómo crear un archivo de película a partir de una colección de archivos PDF, la siguiente guía lo ayudará.

  • Cómo crear un video a partir de archivos PDF en Linux

24. Rotar vídeos

Si tiene archivos de video con una orientación diferente (vertical u horizontal), puede rotarlos como se describe en la siguiente guía.

  • Cómo rotar videos usando FFMpeg desde la línea de comandos

25. Convertir videos a formato de video de WhatsApp

WhatsApp no ​​admite algunos videos. No puede compartirlos con sus contactos o configurarlos en el estado de WhatsApp. ¡No hay problema! Podemos convertir fácilmente videos en formato de video compatible con WhatsApp con FFmpeg como se describe en el siguiente enlace.

  • Convertir videos al formato de video de WhatsApp con FFmpeg

26. Acercar y alejar videos

FFmpeg tiene muchos filtros útiles para realizar una tarea específica. Uno de ellos es zoompan. Usando el filtro zoompan, podemos acercar y alejar fácilmente cada X segundos periódicamente. Consulte el siguiente enlace para obtener más detalles:

  • Cómo acercar y alejar videos usando FFmpeg

27. Obtener ayuda

En esta guía, he cubierto los comandos FFmpeg más utilizados. Tiene muchas más opciones diferentes para hacer varias funciones avanzadas. Para obtener más información al respecto, consulte la página del manual.

$ man ffmpeg

Lectura relacionada:

  • Tutorial de Youtube-dl con ejemplos para principiantes

Y eso es todo. Espero que esta guía le haya brindado suficientes ejemplos de comandos de FFmpeg para comenzar a usar FFmpeg.


Linux
  1. 10 comandos de Linux para diagnóstico de red

  2. Ejemplos de comandos DNF para principiantes

  3. YAML para principiantes

  4. Linux para principiantes:10 comandos para comenzar en la terminal

  5. Linux para principiantes:10 comandos más para manipular archivos

Tutorial de Bash Heredoc para principiantes

Los comandos FFmpeg más útiles para la conversión de audio y video

Comandos básicos de Linux para principiantes

20 comandos básicos de Ubuntu para principiantes

Los 40 comandos útiles del servidor Linux para principiantes y profesionales

Los 17 mejores comandos de solución de problemas y redes de Linux para principiantes