Aprende a convertir videos desde la terminal con FFmpeg

ffmpeg

Cuantos de ustedes no han recurrido a diversos programas para poder convertir alguno de sus archivos de video a otro formato por cuestiones de compatibilidad con algún dispositivo o sencillamente para ganar algo más de espacio al reducir su peso.

Por mi parte he utilizado diferentes programas y he obtenido diferentes resultados, en la mayoría de ellos estamos muy limitados a las opciones que nos ofrecen, desde solo poder convertir a ciertos formatos, únicamente al mismo o algunos otros con bastantes opciones que no tienes ni idea de que hacen cada una de ellas.

En esta ocasión aprovecho para compartir con ustedes una estupenda herramienta que es muy potente dado a todas las características y opciones que nos ofrece y sencilla de utilizar.

Esta herramienta se llama FFmpeg como les comento es bastante sencilla de utilizar y está orientada tanto a personas con conocimientos avanzados como usuarios novatos.

FFmpeg nos permite poder grabar, convertir y hacer streaming de audio y vídeo, este programa es software libre, originalmente fue desarrollada para los entornos GNU/Linux, pero dada su gran popularidad también puede ser compilado en la mayoría de los sistemas operativos, incluyendo Windows.

También podemos destacar que este programa, la mayoría de sus desarrolladores también lo sean del proyecto MPlayer.

Por último, debo mencionar que FFmpeg es una herramienta de línea de comandos por lo cual no utiliza ninguna interfaz gráfica, aunque existe WinFF que es un GUI de este, de manera personal puedo decir que es preferible aprender el uso FFmpeg, dado que muchos convertidores de videos lo utilizan como base y varios de ellos admiten el ingreso de comandos personalizados de esta herramienta.

Antes de pasar a explicar un poco sobre sus opciones les comparto en el siguiente enlace, donde pueden revisar los formatos de audio, video e imagen que pueden trabajar con esta herramienta, así como las opciones y códecs.

¿Cómo instalar FFmpeg en Linux?

Actualmente la mayoría de las distribuciones de Linux cuentan con esta herramienta ya instalada por defecto, aunque son pocas la que lo excluyen por temas de algunas librerías que no son de código abierto. Sin más les dejo los comandos para su instalación.

Para Debian, Ubuntu y derivados:

sudo apt-get install ffmpeg

Para ArchLinux, Manjaro y derivados:

sudo pacman -S ffmpeg

Para Fedora, Red Hat, CentOS, openSUSE y derivados:

sudo dnf install ffmpeg 

¿Cómo utilizar FFmpeg?

El primer paso es definir a qué tipo de formato vamos a convertir nuestro video, así como el formato de audio, si queremos que el video tenga una resolución en particular, si queremos un tamaño en particular para el video resultante, bitrate del audio, bitrate del vídeo, fps, etc.

Ahora para comenzar con el uso del programa, debemos abrir una terminal, comenzaremos con obtener información del video con el que vamos a trabajar, para ello utilizamos el siguiente comando:

ffmpeg -i ~/Videos/video.mp4

Podemos indicar la ruta del video o simplemente posicionarnos en la terminal sobre la carpeta donde esta nuestro video, en mi caso me va a mostrar algo así:

ffmpeg informacion de video

Con esta información podemos tomar un rango de valores con los que podemos crear nuestro nuevo video, si quieres aumentar la resolución, fps, audio y demás, puedes hacerlo, pero el resultado será malo.

En mi caso me interesa convertir el video para que pueda utilizarlo en mi servidor multimedia y pueda reproducirlo directamente en Chromecast (dado que no soporta la transcondificacion). En su caso deben buscar un poco sobre los formatos recomendados, así como los valores para algún dispositivo en particular.

El otro caso si no tienes interés en algo en particular y solo convertirlo los comandos son los siguientes.

Convertir de un formato a otro y que ffpmeg se encargue de los valores convenientes:

ffmpeg -i videoaconvertir videoresultante

Queda algo asi, por ejemplo, de mp4 a avi o flv a mpeg o mkv a avi etc.

ffmpeg -i video.mp4 nuevovideo.avi
ffmpeg -i video.flv nuevovideo.mpeg
ffmpeg -i video.mkv nuevovideo.avi

Ahora les dejare algunos parámetros y lo que hacen:

-qscale 0: Conservar la misma resolución

Para cambiar la resolución del video, en este caso a 1280×720

m-filter: v scale = 1280: 720 -c: a copy

-s 1280×720 -c: a copy

-aspect 16: 9: Si quieren cambiar la relación al aspecto, en este caso 16:9

-b:v 2600k : Bitrate del video en esta caso a 2600

-b:a 128k: Bitrate del audio aquí en este caso 128

-pass 1: En cuantas pasadas terminara la conversión del video (lo recomendado son 2)

-c:a aac : Codec del audio en este caso aac

-c:v libx264: Codec del video en este caso h.264

-framerate 30: Cuantos FPS tendrá el video en este caso 30

-threads 2 : Esta opción en caso de tener un procesador con 2 o más núcleos, podemos indicar que se utilizen más de 1 para la conversión del video y así acelerar el proceso.

Existen muchas les recomiendo leer esta otra Wiki donde nos explica más a detalle el uso para cada caso en particular.

Ahora en mi caso como les comentaba me interesa para mi Chromecast, para ello debo colocarlo así:

ffmpeg -i video.mp4 -pass 2 -b:a 128k -c:a aac -c:v libx264 -qscale 0 -framerate 29 -threads 2 nuevovideo.mp4

Sin más solo puedo decir que es una herramienta sencilla, pero bastante potente si se adentra uno más al tema y sobre todas las opciones que nos ofrece FFmpeg.


5 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Victor dijo

    Buen tutorial

  2.   Edd dijo

    Fabuloso. Muy Útil. lo necesitaba.

  3.   Enrique salgado dijo

    bueno!!! muchas gracias

  4.   cesar dijo

    Muy buen tutoril.

    Y si quereis Windows:
    1.- Descargas en github: https://github.com/BtbN/FFmpeg-Builds/releases
    descomprimir en un zip si desea GPL o LGPL, etc.
    2.- copiar desde la carpeta descargas a C:\, cambiar el nombre largo uno corto por «C:\FFMPEG-XX», donde XX es la version
    3.- Presionad Windows + Pausa, luego en «Configuracion avanzadas del sistema», luego en «Variables del entorno», luego primero «variables del usuario para XXXX» observese en «PATH» y haz clic en «PATH» y agregad al final como: «;C:\FFMPEG-XX\bin;C:\FFMPEG-XX\lib», luego en «OK» o «ACEPTAR» y luego en «variables del sistema» y haz clic en «PATH» y agregad al final como: «;C:\FFMPEG-XX\bin;C:\FFMPEG-XX\lib», luego clic en «OK» o «ACEPTAR y luego una vez terminados, da clic en Aceptar y luego aceptar. No reinicien la maquina, solo cierras la consola del terminal de CMD y la consola del terminal de POWERSHELL, ésta lo reiniciara las consolas por si solas sin requerir REINICIAR la maquina.

    1.    cesar dijo

      Últimos pasos finales….

      luego utilicen los parámetros que salen en linux arriba identificados.

      Suerte!!!

      Si queréis en un 1280×727 (720p) lo dejo los comandos para Windows CMD o POWERSHELL:

      ffmpeg.exe -i c:\mi_carpeta\video.mpg -b:a 128k -s 1280×720 -aspect 16:9 -c:a aac -c:v libx264 -framerate 29 c:\mi_carpeta\nuevovideo.mp4

      o al misterioso 1280×727 (como el ¡Boeing 727!, añada el 7 en vez del «0»), conocida como «727p» y quedamos asi:

      ffmpeg.exe -i c:\mi_carpeta\video.mpg -b:a 128k -s 1280×727 -aspect 16:9 -c:a aac -c:v libx264 -framerate 29 c:\mi_carpeta\nuevovideo.mp4