Convertir videos a otros formatos > ffmpeg

Nombre del comando: ffmpeg

Man page online: https://linux.die.net/man/1/ffmpeg

Descripción: ffmpeg es una herramienta para convertir audio y video de forma rápida, tanto archivos locales como videos transmitidos en vivo. Tiene muchas opciones pero por el momento solo voy a convertir de un formato a otro un video específico con sus caracteristicas originales; es decir, sin modificar nada de dicho video sino que solo realizar una copia a otro formato.

Estos comandos serán de utilidad a la hora de usar ffmpeg:

“$ ffmpeg -version”, ver la versión de ffmpeg y confirmar si se compiló correctamente.

“$ ffprobe Alizee.mkv”, ver el formato original del audio y video del archivo. Hay mucha información contenida en los metadatos de los audios y videos y solo se pueden visualizar con este comando u otra aplicación especializada en metadatos.

“$ ffmpeg -formats”, ver los formatos soportados.

“$ ffmpeg -codecs”, ver los codecs soportados.

Man page local: $ man ffmpeg o $ man ffmpeg > ffmpeg.txt

Instalado por defecto: Sí, al menos en Linux Mint. Pero para convertir al formato mp3 habrá que compilar una nueva versión de ffmpeg, sino deseo convertir al formato mp3 algún video entonces no es necesario compilar la herramienta LAME ni el ffmpeg, bastará con el ffmpeg que trae instalado la distro para convertir a algunos tipos de video y audio. Estos enlaces serán útiles para compilar estas herramientas:

LAME (herramienta para convertir a formato mp3)

https://sourceforge.net/projects/lame/files/

Compilar ffmpeg para Debian y sus derivados

(Si se compila ffmpeg siguiendo estas instrucciones, ya va incluido el LAME aquí y no es necesario el paso de arriba).

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#FFmpeg

Resumen general para compilar código fuente

1. Descargar el código fuente

2. Descomprimir el archivo

3. Buscar el archivo README o INSTALL que viene con el código fuente y seguir las indicaciones

4. No olvidar instalar las dependencias incluidas en el archivo README o INSTALL

5. Abrir una terminal y posicionarnos en la carpeta donde está el código fuente ya descomprimido

6. '$ ./configure'

7. '$ make'

8. '$ sudo make install'
../../_images/ffmpeg.png

Algunas Opciones:

-i url (input) Especificar la ubicación y nombre del archivo de audio o video.

-acodec codec (input/output) Configurar el codec de audio. Para ver los codecs soportados “$ ffmpeg -encoders”. Se recomienda siempre agregar el codec para evitar perder calidad en el audio.

-vcodec codec (output) Configurar el codec de video. Para ver los codecs soportados “$ ffmpeg -encoders”. Se recomienda siempre agregar el codec para evitar perder calidad en el video.

Stream copy Hace que ffmpeg omita el paso de decodificación y codificación para la secuencia especificada, por lo que solo hace demuxing y muxing. Dado que no hay decodificación ni codificación, es muy rápido y no hay pérdida de calidad. Sin embargo, es posible que no funcione en algunos casos debido a muchos factores.

Ejemplo 1: $ ffmpeg -i 001.mp4 -acodec copy -vcodec copy 001.mkv, en este ejemplo solo convierto el video y audio original llamado “001.mp4” al formato “001.mkv” sin hacer modificación alguna a la calidad del video y audio. Este ejemplo es genérico y funciona para convertir casi cualquier formato de video solo bastaría cambiar la extensión del video al que se requiere convertir. Si deseo convertir a avi este mismo video solo cambio la extensión. De esta forma “ffmpeg -i 001.mp4 -vcodec copy -acodec copy 001.avi”

Ejemplo 2: $ ffmpeg -i Alizee.mkv -acodec aac Alizee.aac, extraer el audio de un video al formato “aac”, en este caso el video “Alizee.mkv” lo convierto a “Alizee.aac” extrayendo su audio únicamente.

Ejemplo 3: $ ffmpeg -i Alizee.mkv -acodec mp3 Alizee.mp3, extraer el audio de un video al formato universal “mp3”. El ffmpeg que viene con la distro trae desactivado el LAME (–enable-libmp3lame), por tal razón mostrará un mensaje de error y pedirá que se active y eso solo se puede configurar al compilar una nueva versión de ffmpeg.

Ejemplo 4: $ ffmpeg -i Alizee.mkv -map_metadata 0 -metadata title="" -acodec copy -vcodec copy Alizee2.mkv, después de revisar los metadatos de algún video, puede ser que alguno de esos datos los querramos eliminar, en este ejemplo elimino el título de los metadatos y el resto de datos los dejo igual (si se quiere eliminar todos los metadatos habrá que agregarle -1 al parámetro -map_metadata en vez de 0). No soy experto en edición, ni mucho menos creación de videos o audios, así que no se como es su estructura. Resulta que cuando le quité el título a un video, dicho video tenía subtítulos incorporados y se activaron.

Ejemplo 5: Unir varios archivos de audio, que tengan el mismo formato.

$ cd ManyAudiosFolder

$ wavlist=`find *.wav | sort -n`

$ while read line; do echo "file "${line}; done <<< "$wavlist" > wavlist.txt

$ ffmpeg -f concat -safe 0 -i wavlist.txt -c copy AudiosMerged.wav

Nota: verificar que wavlist.txt tenga la siguiente estructura

file Audio1.waw
file Audio2.waw
file Audio3.waw

en este ejemplo primero hago un cd a la carpeta que contiene los archivos de audio que quiero unir, segundo creo una variable temporal para guardar los archivos de audio en una lista ordenada, tercero recorro dicha lista para asignarle la palabra “file” a cada línea (es necesaria) y el cuarto y último paso es el que hace la magia de unir los achivos de audio contenidos en el archivo “wavlist.txt” en uno solo “AudiosMerged.wav”.