GNU/Linux >> Tutoriales Linux >  >> Linux

La guía completa para usar ffmpeg en Linux

Resumen:esta guía detallada muestra cómo instalar ffmpeg en Ubuntu y otras distribuciones de Linux. También muestra algunos comandos ffmpeg útiles para uso práctico.

ffmpeg es una utilidad CLI (basada en la línea de comandos) para procesar archivos multimedia. Es un framework con multitud de funcionalidades y, debido a su licencia de código abierto, es la base de muchas apps muy extendidas como VLC, YouTube, iTunes y muchas más. Varios editores de video de Linux usan ffmpeg debajo de la GUI.

Lo que me encanta aún más de ffmpeg es que se puede usar solo para realizar muchas tareas de procesamiento de una manera muy simple (con uno o dos comandos). Sin embargo, es un programa muy poderoso que se puede usar de formas más complejas e incluso reemplazar un flujo de trabajo de edición.

En este tutorial de ffmpeg, le mostraré cómo instalar ffmpeg y cubriré sus diferentes usos. Incluso entraré en algunas características más complejas.

Estas son las secciones de esta guía:

  • Instalando ffmpeg
  • Uso básico de ffmpeg
  • Uso avanzado de ffmpeg
  • Aspectos básicos de los filtros

Estaré explicando todo en detalle para que puedas entender lo que está pasando incluso si eres nuevo en el mundo de Linux.

Usaré Ubuntu 18.04 , pero estos comandos también deberían funcionar para otras distribuciones.

Nota: Aunque he investigado ffmpeg a fondo y probé todo lo que mencionaré en este artículo, no edito videos (u otros medios) a diario. Si tienes alguna sugerencia, consejo o corrección, ¡házmelo saber en los comentarios!

¡Vamos a por ello!

Instalación de ffmpeg en Ubuntu y otros Linux

Instalando ffmpeg es un proceso sencillo. Es una aplicación popular y está disponible en la mayoría de las distribuciones de Linux a través del administrador de paquetes.

Instalar ffmpeg en Ubuntu

En Ubuntu, ffmpeg está disponible en el repositorio de Universe, así que asegúrese de habilitar el repositorio de Universe. y luego actualice la lista de paquetes e instale ffmpeg. Puede hacer todo esto usando los siguientes comandos en una terminal:

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg

¡Eso debería ser! Puede verificar la instalación simplemente escribiendo:

ffmpeg

Esto debería mostrar un texto que describa su ffmpeg configuración (incluida la versión ).

Como puede ver en la captura de pantalla anterior, la versión instalada es 3.4.4 . Sin embargo, la última versión de ffmpeg al momento de escribir este artículo es 4.1 . Para instalar cualquier 4.x versión, tendrás que usar el ffmpeg ppa . Haga clic para expandir la siguiente sección para ver los detalles de la instalación de ffmpeg a través de PPA.

Instalar el último ffmpeeg en distribuciones basadas en Ubuntu con PPA

Hay un PPA no oficial que puede usar para instalar la última versión de ffmpeg. Simplemente use estos comandos:

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg -y

Instalar ffmpeg en distribuciones basadas en Arch

Para instalar ffmpeg en distribuciones basadas en Arch, use el siguiente comando:

sudo pacman -S ffmpeg

Instalar ffmpeg en distribuciones basadas en Fedora

Para instalar ffmpeg en distribuciones de Linux basadas en Fedora, puede usar este comando:

sudo dnf install ffmpeg

Cómo usar ffmpeg:conceptos básicos

Con ffmpeg instalado, repasaré los comandos básicos para que pueda comenzar a usar esta poderosa herramienta.

0. Comandos ffmpeg

La forma básica un comando ffmpeg es:

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

Debe tener en cuenta que todas las opciones de archivo se aplican solo al archivo que las sigue (tendrá que volver a escribirlas para el siguiente archivo).

Cualquier archivo no precedido por -i se considera un archivo de salida. Fmpeg usa tantas entradas y salidas como usted proporcione. También puede usar el mismo nombre para un archivo de entrada y uno de salida, pero tendrá que agregar -y etiqueta antes del nombre del archivo de salida.

Nota

No debes mezclar entradas y salidas; especifique los archivos de entrada primero, luego especifique los archivos de salida.

1. Obtener información del archivo multimedia

El primer uso de ffmpeg está mostrando información sobre un archivo multimedia. Esto se puede hacer al no ingresar ningún archivo de salida. Simplemente escriba:

ffmpeg -i file_name

Esto funciona tanto para archivos de audio como de video:

ffmpeg -i video_file.mp4 
ffmpeg -i audio_file.mp3

Aunque útil, este comando mostrará demasiada información que no es relevante para su archivo (información sobre ffmpeg). Para omitir eso, agregue -hide_banner bandera:

ffmpeg -i video_file.mp4 -hide_banner 
ffmpeg -i audio_file.mp3 -hide_banner

Como puede ver, el comando ahora solo muestra detalles relacionados con el archivo multimedia que especificó (codificador, transmisiones, etc.).

2. Convertir archivos multimedia

Otra forma muy útil de usar ffmpeg es para una conversión sin problemas entre diferentes formatos de medios. Solo tienes que especificar los archivos de entrada y salida, ya que ffmpeg obtendrá el formato requerido de las extensiones de archivo. Esto funciona para conversiones de video a video y de audio a audio.

Estos son algunos ejemplos:

ffmpeg -i video_input.mp4 video_output.avi 
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac

Incluso puede especificar más archivos de salida:

ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg

Esto convertirá los archivos de entrada a todos los formatos especificados.

Para ver una lista de todos los formatos admitidos, use:

ffmpeg -formats

Nuevamente, puede agregar -hide_banner para omitir información sobre la aplicación.

Puede especificar el -qscale 0 parámetro antes del archivo de salida para preservar la calidad de un archivo de video:

ffmpeg -i video_input.wav -qscale 0 video_output.mp4

Además, puede especificar códecs desea usar, agregando -c:a (para audio ) y -c:v (para vídeo ) seguido del nombre de los códecs, o copiar si desea utilizar los mismos códecs que el archivo original:

ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi

Nota: esto puede hacer que la extensión del archivo sea bastante engañosa, así que tenga cuidado.

3. Extraer audio de video

Para extraer audio desde un archivo de video, realiza una conversión simple y agrega el -vn bandera:

ffmpeg -i video.mp4 -vn audio.mp3

Tenga en cuenta que este comando utilizará la velocidad de bits del archivo original. Es una buena idea configurarlo usted mismo; puedes usar -ab (tasa de bits de audio):

ffmpeg -i video.mp4 -vn -ab 128k audio.mp3

Algunas velocidades de bits comunes son 96k, 128k, 192k, 256k, 320k (velocidad de bits más alta admitida por mp3).

Otras opciones comunes son -ar (frecuencia de audio :22050, 441000, 48000), -ac (número de canales de audio ), -f (formato de audio , aunque normalmente se detecta automáticamente). -ab también se puede reemplazar por -b:a . Por ejemplo:

ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3

4. Silenciar audio en video

Similar a la última tarea, para lograr esto agregaremos una etiqueta simple:-an (en lugar de -vn ).

ffmpeg -i video_input.mp4 -an -video_output.mp4

Nota: El -an La etiqueta hará que todas las opciones de audio para ese archivo de salida sean inútiles, ya que no habrá audio en el resultado de la operación.

5. Extraer imágenes de video

Esto podría ser útil para muchas personas. Por ejemplo, puede tener una serie de imágenes (por ejemplo, una presentación de diapositivas) y desea obtener todas las imágenes de eso. Simplemente ingrese:

ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png

Analicemos eso por un segundo.

-r especifica la velocidad de fotogramas (cuántos fotogramas se extraen en imágenes en un segundo, predeterminado :25), -f especifica el formato de salida (imagen2 en realidad significa secuencia image2.

El último parámetro (el archivo de salida) tiene un nombre algo interesante:usa %3d al final. Esto simplemente numera sus imágenes con 3 dígitos (000, 001, etc.). También puede usar %2d (formato de 2 dígitos) o incluso %4d (formato de 4 dígitos) si lo desea. ¡Siéntete libre de experimentar y usar lo que funcione para ti!

Nota: También hay una manera de convertir un conjunto de imágenes en un video/presentación de diapositivas. Cubriré eso en Uso avanzado sección .

6. Cambiar la resolución de video o la relación de aspecto

Otra tarea sencilla para ffmpeg . Todo lo que tienes que hacer para cambiar el tamaño un video especifica una nueva resolución después de la -s bandera:

ffmpeg -i video_input.mov -s 1024x576 video_output.mp4

Además, es posible que desee especificar -c:a para asegurarse de que los códecs de audio del archivo de salida sean los correctos:

ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov

También puede cambiar la relación de aspecto usando -aspect :

ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4

Nota: Una vez más, se mencionará otro método un poco más potente en Uso avanzado sección.

7. Agregar imagen de póster a audio

Esta es una excelente manera de convertir audio en video , usando una sola foto (como la portada de un álbum) para el audio. Esta es una función muy útil cuando desea cargar archivos de audio en sitios que no permiten nada más que videos/imágenes (YouTube y Facebook son dos ejemplos de dichos sitios).

Aquí hay un ejemplo:

ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

Solo cambia los códecs (-c:v especifica video códecs, -c:a especifica audio códecs) y los nombres de sus archivos.

Nota: No tienes que usar -experimental estricto si está utilizando una versión más reciente (4.x ).

8. Agregar subtítulos al video

Igual de útil y sencillo de hacer con ffmpeg es añadir subtítulos a un vídeo (por ejemplo, una película). Introduzca lo siguiente:

ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4

Por supuesto, puede especificar los códecs que desee (y cualquier otra opción adicional relacionada con audio/video). Puedes leer este artículo sobre cómo editar subtítulos en Linux, gráficamente.

9. Comprimir archivos multimedia

Comprimiendo archivos reduce en gran medida el tamaño del archivo, ahorrándole mucho espacio. Esto puede ser importante para transferir archivos. Con ffmpeg , existen varios métodos para reducir el tamaño del archivo.

Nota: Comprimir demasiado los archivos reducirá notablemente la calidad del archivo resultante.

En primer lugar, para audio archivos, simplemente reduzca la tasa de bits (usando -b:a o -ab ):

ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3
ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3

Nuevamente, algunos valores de tasa de bits diferentes son:96k, 112k, 128k, 160k, 192k, 256k, 320k. Cuanto mayor sea la tasa de bits, mayor será el tamaño y la calidad del archivo.

Para vídeo archivos, tienes más opciones. Una forma sería reducir la tasa de bits de video (usando -b:v ):

ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4

Nota: Las tasas de bits de video son diferentes de tasas de bits de audio (valores mucho más altos).

Podría establecer el -crf bandera (Factor de tasa constante ). Un crf más bajo significa una tasa de bits más alta. Además, usando libx264 como códec de vídeo ayuda Aquí hay una reducción de tamaño muy eficiente con una reducción muy pequeña en la calidad:

ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4

Un crf de 20 a 30 es común, pero siéntete libre de jugar con el valor específico.

Reducir la velocidad de fotogramas podría funcionar en algunos casos (aunque fácilmente podría hacer que el video se sintiera lento):

ffmpeg -i video_input.mp4 -r 24 video_output.mp4

-r especifica la velocidad de fotogramas (en este caso 24 ).

También puedes intentar reducir el tamaño del video (ya se explicó cómo hacerlo). Un consejo adicional es comprimir el sonido también, haciéndolo estéreo y reduciendo la tasa de bits . Por ejemplo:

ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4

Nota: -estricto -2 y -ac 2 Ocúpate de la parte estéreo. Ya cubrí la parte que reduce la tasa de bits .

10. Cortar archivos multimedia (básico)

Para recortar archivos desde el principio tienes que especificar una duración usando -t :

ffmpeg -i input_video.mp4 -t 5 output_video.mp4 
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

Como puede ver, esto funciona tanto para video y audio archivos Los dos comandos anteriores hacen lo mismo:guardar los primeros 5 segundos del archivo de entrada en el archivo de salida. He usado diferentes formas de ingresar la duración :un solo número (número de segundos) y HH:MM:SS (horas, minutos, segundos). La segunda versión actúa más como un tiempo final .

Puede ir aún más lejos especificando una hora de inicio con -ss , e incluso una hora de finalización con -a :

ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

Puedes ver la hora de inicio (-ss HH:MM:SS ), duración (-t duración ) en segundos, hora de finalización (-a HH:MM:SS ), y hora de inicio (-s de duración ) en segundos (a partir de duración segundos).

Todos estos son comandos válidos y puede trabajar con cualquier parte de un archivo multimedia usándolos.

Cómo usar ffmpeg:uso avanzado

Ahora cubriré funciones un poco más avanzadas (como proyección de pantalla, uso de dispositivos, etc.). ¡Vayamos directo al primer punto!

1. Dividir archivos multimedia

Ya cubrí recortar archivos Lo que tienes que hacer para dividir un archivo en varias partes es especificar varios recortes (especificando horas de inicio , fin de los tiempos o duración antes de cada archivo de salida).

Observe este ejemplo:

ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4

La sintaxis es bastante simple. Especifiqué -t 00:00:30 como duración para la primera parte (la primera parte constará de los primeros 30 segundos del video original). A continuación, especifiqué que me gustaría que el resto formara parte de un segundo vídeo (empezando por el final de la última parte, 00:00:30 ).

¡Esto se puede hacer para tantas partes como quieras! Diviértete jugando con esta característica, ya que es muy poderosa. Tenga en cuenta que también funciona con audio.

2. Concatenar archivos multimedia

ffmpeg también puede hacer el proceso opuesto:juntar varias partes.

Para hacerlo, tendrás que crear un nuevo archivo de texto y empieza a editar usando su editor preferido.

Como me gusta usar la terminal, usaré touch y vim . No importa cómo llames a este archivo. Llamaré al mío join.txt y crea el archivo usando touch :

touch videos_to_join.txt

Ahora, lo editaré usando vim :

vim videos_to_join.txt

Puedes usar las herramientas que quieras (nano, gedit, etc.), esta es la más fácil de usar para mí.

Aquí, ingrese las rutas completas a todos los archivos que desea unir (se unirán en el orden en que los escriba aquí), uno por línea. Asegúrate de que tengan la misma extensión (por ejemplo, mp4 ). Aquí está el mío:

/home/ubuntu/Desktop/video_1.mp4
/home/ubuntu/Desktop/video_2.mp4
/home/ubuntu/Desktop/video_3.mp4

Guarde el archivo que acaba de editar. Este método funciona para cualquier archivo de audio o video.

Ahora ingrese lo siguiente:

ffmpeg -f concat -i join.txt output.mp4

Nota: Mi archivo de salida es output.mp4 , pero eso es porque todos mis archivos de entrada tienen el mp4 extensión.

Esto debería unirse todos los archivos que escribiste en join.txt (o como hayas llamado ese archivo) en un solo archivo de salida.

3. Unir imágenes en un video

Así es como puedes armar una presentación de diapositivas o algo similar. Te mostraré cómo agregar audio también.

Lo primero que recomiendo hacer es asegurarse de que las fotos que desea juntar estén ubicadas en el mismo directorio. Pondré el mío en un directorio llamado my_photos . Las extensiones recomendado para las fotos son .png y .jpg . Cualquiera que elija, asegúrese de que todas las imágenes tengan la misma extensión (de lo contrario, use ffmpeg podría tener efectos no deseados). Simplemente podrías convertir el .png archivos a .jpg o viceversa (ver Uso básico ).

El formato (-f ) de nuestra conversión debe ser image2pipe . Para la entrada, deberá proporcionar un guion ( ). Qué image2pipe te permite hacer es tubería (usando | en la terminal) los resultados de un comando como cat en ffmpeg en lugar de ingresar todos los nombres uno por uno. Eso es exactamente lo que haré. Para que esto funcione, también tendremos que mencionar que queremos los códecs de video para ser copiado (-c:v copiar ) (para usar correctamente las imágenes):

cat my_photos/* | ffmpeg -f image2pipe -i - -c:v copy video.mkv

Si reproduce este archivo, puede pensar que solo se agregaron algunas imágenes a la presentación de diapositivas. En realidad, se agregaron todas sus imágenes, pero ffmpeg los recorre lo más rápido posible. Esto significa 1 cuadro por foto; ffmpeg (de forma predeterminada) se ejecuta alrededor de 23 fps .

Para cambiar eso, deberá especificar la velocidad de fotogramas (-velocidad de fotogramas ) quieres:

cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c:v copy video.mkv 

En mi ejemplo, configuré la velocidad de fotogramas a 1 , eso significa que cada fotograma (eso también significa cada imagen) aparece durante 1 segundo .

Para agregar audio , como una canción de fondo, tendremos que especificar el archivo de audio como archivo de entrada (-i audo_file ) y copiar los códecs de audio (-c:una copia ). Para los códecs , puede copiar códecs de audio y video al mismo tiempo con -c copy . Asegúrese de configurar los códecs justo antes de especificar el archivo de salida. También puede establecer la velocidad de fotogramas para que todas tus imágenes se sincronicen con la duración del audio que quieras usar. Para obtener eso, divide el número de imágenes por la duración del audio (en segundos) . Para mi ejemplo, tengo un archivo de audio de 22 segundos de duración y 9 imágenes. 9/22 es aproximadamente 0,40, así que eso es lo que usaré para mi velocidad de fotogramas:

cat my_photos/* | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv

4. Graba tu pantalla

Transmisión de pantalla con ffmpeg no es un trabajo duro. El formato (-f ) que necesita usar es x11grab . Esto capturará su XSERVER . Como entrada tendrás que especificar tu número de pantalla (la pantalla principal normalmente debería ser 0:0 ). Sin embargo, esto solo capturará una parte superior izquierda de la pantalla Debes agregar un tamaño de pantalla (-s ). El mio es 1920×1080 . El tamaño de la pantalla debe mencionarse antes la entrada :

ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4

Presiona q o CTRL+C en cualquier momento para detener el screencast .

Truco extra: Puede hacer que el tamaño del archivo de salida sea pantalla completa ingresando esto después para el tamaño (en lugar de 1920×1080 o cualquier otra resolución establecida):

-s $(xdpyinfo | grep dimensions | awk '{print $2;}')

Aquí está el comando completo:

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 output.mp4

5. Grabe su cámara web

Entrada de grabación desde tu cámara web (u otro dispositivo, como una cámara USB) es aún más fácil. En Linux, dispositivos son tiendas en /dev como /dev/video0, /dev/video1, etc. :

ffmpeg -i /dev/video0 output.mkv

De nuevo, q o CTRL+C para detener la grabación .

6. Graba tu audio

Linux maneja el audio principalmente a través de ALSA y pulseaudio . ffmpeg puede grabar ambos, pero cubriré pulseaudio , ya que las distribuciones basadas en Debian lo incluyen por defecto. La sintaxis es un poco diferente para los dos métodos.

Para pulseaudio , tienes que forzar (-f ) también y especifique predeterminado como entrada (-i predeterminado ):

ffmpeg -f alsa -i default output.mp3

Nota: En la configuración de sonido de su distribución, asegúrese de que el dispositivo de grabación predeterminado es el que desea grabar.

Toco bastante la guitarra y tengo una interfaz de audio para poder grabarla. Tuve una agradable sorpresa cuando ffmpeg Grabé mi guitarra sin problemas.

Consejos adicionales sobre grabación

Para cualquier tipo de grabación también puede especificar códecs , por supuesto (ya cubierto). Puede elegir una velocidad de fotogramas específica (-r ). Puedes combinar grabación de audio con cámara web/grabación de pantalla también!

ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv

En lugar de grabar audio, puedes añadir fácilmente un archivo de audio como entrada para grabar en la parte superior de su screencast/webcam:

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4

Nota: ffmpeg graba en fragmentos pequeños, por lo que es posible que no se guarde una grabación realmente pequeña. Recomiendo grabar solo un poco más y cortarlo después (si solo desea unos segundos), solo para asegurarse de que el archivo realmente se escriba en su disco.

Uso básico de filtros en ffmpeg

Filtros son una característica increíblemente poderosa de ffmpeg . Hay una gran cantidad de filtros disponibles para su uso, lo que hace que ffmpeg completamente capaz de manejar cualquier edición necesidades. Dado que hay tantos filtros y este artículo ya es completo, solo cubriré algunos filtros simples.

La estructura básica por usar un filtro es:

ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4
ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav

Como puede ver, estoy especificando filtros de video (-vf , abreviatura de -filtro:v ) y filtros de audio (-af , abreviatura de -filtro:a ). Los filtros reales están escritos dentro de comillas dobles ( ) y se pueden encadenar separándolos con comas (, ). Puede especificar tantos filtros como desee (he escrito etc para notar filtros adicionales, en realidad no es parte del comando).

La forma general de un filtro es:

filter=setting_2=value_2:setting_2=value_2

Las diferentes configuraciones de filtro y sus valores están separados por dos puntos .

También puedes ejecutar operaciones matemáticas como valores para las diferentes configuraciones .

Nota: Se puede encontrar una cobertura más detallada de las diferentes constantes que se utilizarán en expresiones y diferentes configuraciones en el oficial documentación del filtro ffmpeg .

Cubriré ambos video y audio filtros ¡Veamos algunos ejemplos!

1. Escalado de vídeo

Este es un filtro muy simple. La única configuración son ancho y altura :

ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4

Mencioné que puedes usar operaciones matemáticas para valores también:

ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv

Este comando establece el tamaño de salida a la mitad (1/2 ) del tamaño de entrada (en_w , en_h ).

2. Recorte de vídeo

En cuanto al filtro de escala , la configuración son el ancho y altura del archivo resultante. Opcionalmente, puede especificar coordenadas para la esquina superior izquierda del corte (predeterminado: centro del video de entrada):

ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4 
ffmpeg -i input.mkv -vf "crop=w=400:h=400" output.mkv

Como se señaló, el segundo corte se cortará en el centro del archivo de entrada (ya que no he especificado x y y coordenadas de la esquina superior izquierda). El primer comando se cortará desde la esquina superior izquierda (x=0:y=0 ).

Aquí hay un ejemplo que usa expresiones matemáticas como valores :

ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv

Este comando establece el tamaño de salida a 3/4 del tamaño de entrada (en_w , en_h ).

3. Rotación de vídeo

También puede girar un video en el sentido de las agujas del reloj por un valor (en radianes ). Para facilitar las cosas, puede especificar un valor en grados y convertirlo a radianes multiplicando ese valor con PI/180 :

ffmpeg -i input.avi -vf "rotate=90*PI/180" 
ffmpeg -i input.mp4 -vf "rotate=PI"

El primer comando rotará el vídeo 90 grados en el sentido de las agujas del reloj . El segundo comando girará el video al revés (PI rad =180 grados).

4. Reasignación de canales de audio

Esto puede ser útil si de alguna manera solo obtienes audio en el oído derecho o algo similar. Puedes hacer el audio audible desde ambos oídos (en este caso particular) así:

ffmpeg -i input.mp3 -af "channelmap=1-0|1-1" output.mp3

Este mapa el derecho (1 ) canal de audio tanto a la izquierda (0 ) y la derecha (1 ) canal de audio. (el número de la izquierda representa entrada , el número correcto representa salida ).

5. Multiplicación de volumen de audio

Puedes multiplicar el volumen de audio por cualquier real número (entero o no). Solo necesita especificar el multiplicador :

ffmpeg -i input.wav -af "volume=1.5" output.wav 
ffmpeg -i input.ogg -af "volume=0.75" output.ogg

El primer comando amplifica el volumen 1.5 veces. El segundo comando hace que el audio 1/4 (0,25) veces más silencioso .

Consejo extra:Ajustes de velocidad de reproducción

Incluiré tanto el video (no afecta al audio) y audio filtros para esta tarea.

1. Vídeo

El filtro para video es setpts (PTS =sello de tiempo de presentación). Esto funciona de una manera algo interesante. Ya que en realidad modificamos el PTS , un coeficiente mayor significa un resultado más lento y viceversa:

ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv 
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4

Como acabo de explicar, el primer comando dobles la velocidad de reproducción y el segundo comando ralentiza el vídeo a 1/2 de la velocidad .A

2. Audio

The filter for this is atempo . There’s one little caveat:it can only take values between 0.5 (half the speed) and 2 (double the speed). To get around that, you can chain atempo filters:

ffmpeg -i input.wav -af "atempo=0.75" output.wav 
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3

The first command slows the audio by 1/4 of the original speed. The second command speeds up the audio 4 times (2*2).

Note: For changing video and audio playback speed with the same command you’ll have to look into filtergraphs .

Conclusión

In this comprehensive guide I covered the installation, basic usage, advanced usage and basics of filters.

I hope that this can be a helpful resource for anyone looking to try out ffmpeg , for someone that wants to use ffmpeg for multiple tasks or even just for someone who is willing to get more familiar with the extensive features of this amazing utility.

Let us know if you found this article useful in the comments below and tell us what are you using ffmpeg ¡por! We look forward to any additions of any kind. Thanks for reading our blog and keep an eye out for an article covering more complex filtering . ¡Disfrútalo!



Linux
  1. 7 trucos útiles para usar el comando wget de Linux

  2. Una guía de la terminal de Linux para principiantes

  3. Cómo instalar Void Linux:una guía completa paso a paso

  4. Guía completa para usar AsciiDoc en Linux

  5. La guía completa para principiantes de LVM en Linux

Cómo instalar software en Ubuntu Linux:una guía completa para principiantes

Una guía práctica para el comando chroot en Linux

Una guía completa para instalar Tomcat en Linux

La guía completa para instalar MySQL en Ubuntu

La guía definitiva del subsistema de Windows para Linux (Windows WSL)

Cómo instalar y usar FFmpeg en distribuciones de Linux | Guía para principiantes