Credit image

Cómo usar ffmpeg para editar video

FFmpeg es una potente herramienta con la que podemos convertir entre formatos de video, rotar, reducir tamaño, calidad o resolución, y muchas otras operaciones, todo ello automatizado desde una terminal.

Una de mis herramientas preferidas para conversión multimedia es ffmpeg. Se trata de una herramienta de línea de comandos que permite realizar multitud de tareas relacionadas con video, audio o incluso imágenes.

Aunque su uso no es excesivamente complejo, la gran cantidad de parámetros, combinaciones y el inmenso abanico de formatos y sus características, hacen que el uso de ffmpeg sea poco intuitivo cuando empezamos a utilizarlo (o incluso más tarde, si no lo tenemos bien claro).

En este artículo vamos a explicar como utilizar esta herramienta de forma sencilla, dando un repaso a las tareas de edición de video más comunes y prácticas, viendo ejemplos prácticos para aplicar.

Instalación de ffmpeg

La herramienta ffmpeg es multiplataforma, por lo que puede instalarse en cualquier sistema, ya sea GNU/Linux, Windows o Mac. En el caso de Windows, la página tiene varias versiones (static, shared y dev). Aconsejo instalar la versión static de 64 bits (si nuestro sistema es de 64 bits), que contiene una carpeta bin con el archivo ffmpeg.exe que nos interesa. Dicho archivo puede colocarse en una carpeta que esté en el PATH del sistema, o simplemente colocarlo en una carpeta del sistema como C:\windows, por ejemplo.

Si acostumbras a trabajar en una terminal de texto bajo windows, mira primero el artículo Cómo mejorar la terminal de Windows donde encontrarás algunos consejos para instalar ConEmu y Chocolatey y tener una potente terminal de texto.

En el caso de GNU/Linux puedes utilizar el comando apt-get install ffmpeg. En Windows, si tienes ya instalado Chocolatey, puedes usar choco install ffmpeg.

Obtener información de un video

Una vez instalado, podemos ver información sobre nuestros videos de la siguiente forma:

ffmpeg -i video.mp4

El parámetro -i indica que se va a indicar un archivo de entrada (en nuestro caso, el video) y a continuación, dicho archivo. Obtendremos que ffmpeg nos devuelve gran cantidad de información. La parte clave es la que resalto a continuación:

  • Naranja: Se trata del comando que escribimos en la terminal de texto para lanzar ffmpeg y realizar alguna acción. En este caso, obtener información del video.
  • Verde/Amarillo: Características del archivo en general (duración y bitrate del video+audio, por ejemplo).
  • Azul: Información sobre el canal de video: codec, resolución, proporción de aspecto, calidad de video, fps, etc...
  • Rojo: Información sobre el canal de audio: codec, frecuencia de muestreo, calidad de audio, etc...

Con esto puedes obtener información sobre un archivo de video y sus características.

Conversión entre formatos de video

Uno de los puntos fuertes de ffmpeg es que permite realizar practicamente cualquier tipo de conversión entre los diferentes formatos de video y audio (que no son pocos). El único requisito es tener una idea general de los diferentes codecs que existen, por lo que recomiendo altamente leer Formatos de video: todo lo que deberías saber y Formatos de audio: todo lo que deberías saber antes de comenzar a utilizar ffmpeg. De esa forma, teniendo clara la diferencia de un contenedor y un codec, de los diferentes formatos que existen y otras cuestiones, es muy sencillo utilizar ffmpeg.

Podemos realizar conversiones aprovechándonos de las extensiones comunes de ciertos formatos de video, ya que ffmpeg los detecta automaticamente. Por ejemplo:

ffmpeg -i video_original.avi video_destino.mp4

En este ejemplo, le indicamos a ffmpeg que el formato de entrada es video_original.avi (mediante el parámetro -i) y que lo convierta a un archivo de destino al cuál le hemos indicado la extensión .mp4. De esta forma, ffmpeg busca los codecs de video y de audio apropiados para este formato (automáticamente selecciona h264 para video y aac para audio).

Veamos otro ejemplo haciendo una conversión de MP4 a MKV (matroska):

No obstante, podemos ser más específicos y personalizar los formatos que queremos utilizar. Por ejemplo, especificando el codec de video y el codec de audio que queremos en el archivo de destino:

ffmpeg -i video_original.mp4 -vcodec libx264 video_264.mkv
ffmpeg -i video_original.mp4 -vcodec libx265 video_265.mkv

En ambos ejemplos anteriores estamos creando un archivo de video Matroska (MKV), con canal de audio vorbis en ambos casos. Sin embargo, en el primer ejemplo, estamos utilizando el codec de video h264 (mediante la librería libx264), mientras que en el segundo ejemplo utilizamos el codec de video h265 (mediante la librería libx265), aún en desarrollo y futuro sucesor de H264.

Los resultados son bastante interesantes, puesto que el primer archivo resultante ocupa 120MB, mientras que el segundo 69MB. Ambos a 1080p (HD) y con la misma aparente calidad (eso sí, el segundo tarda más en comprimir y crearse).

También podemos hacer lo mismo con los canales de audio:

ffmpeg -i video.mp4 -vcodec copy -acodec mp3 h264_mp3.mkv
ffmpeg -i video.mp4 -vcodec copy -acodec aac h264_aac.mkv
ffmpeg -i video.mp4 -vcodec copy -acodec libvorbis h264_vorbis.mkv

Observa que en estos casos, hemos especificado copy en el codec de video, lo que obliga a ffmpeg a no hacer conversión de formatos de video, sino utilizar el que ya tiene (ahorrando mucho tiempo porque no hay que recomprimir el video), mientras que le especificamos el codec de audio mediante acodec.

Tanto en vcodec como en acodec tenemos que especificar la librería de codec a utilizar. En el caso de especificar el formato (como por ejemplo, «mp3»), el ffmpeg se encarga de seleccionar la librería más apropiada (libmp3lame, en este caso).

[...]

Queda el 69% del artículo
Leer artículo completo

10 trucos para mejorar la terminal de Windows

10 consejos para convertir la aburrida y limitada terminal de Windows (el símbolo de sistema) en una potente y flexible terminal similar a la de GNU/Linux.

Probablemente, la mayoría de nosotros coincidiremos en que la potencia y versatilidad de una terminal de GNU/Linux se encuentra a años luz de la de un sistema Microsoft Windows. O al menos, esa es mi impresión. También es muy probable que, si provienes de otra web, en sus comentarios hayan otros usuarios respondiendo al título de este artículo con un predecible «Instalando Linux».

¿Cómo mejorar la terminal de Windows?

Pero dejando a un lado estos debates, centrémonos en la terminal de Windows. Es fea, incómoda y poco personalizable (o muy compleja de personalizar en algunos casos). Es cierto que la terminal no es una característica destinada al perfil habitual del usuario de Windows, pero los usuarios avanzados la utilizan frecuentemente porque aumenta mucho la productividad. Sin embargo, acaban sintiéndose muy limitados en este aspecto debido a la carencia de posibilidades. ¿Cómo solucionarlo?

1. Instala un emulador de terminal decente

Como hemos comentado, la terminal de Windows es muy poco flexible y tiene muchas carencias, por lo que el primer paso a realizar es instalar un emulador de terminal más decente. Tenemos muchas opciones a nuestro alcance, pero sin duda, una de las mejores es ConEmu (Console Emulator):

Console Emulator

Este emulador de terminal es sencillamente impresionante, ya que tiene una increíble cantidad de opciones para personalizar su funcionamiento. Entre ellas podemos encontrar características que harían mucha falta en la terminal por defecto de Windows:

ConEmu: Emulador de terminal para Windows

URL | ConEmu: Console Emulator

Con este emulador tendremos a nuestro alcance un estupendo entorno para trabajar sin las limitaciones de la terminal por defecto de Windows.

cmder

No obstante, si ConEmu no nos gusta o nos parece muy complejo, podemos optar por utilizar cmder, un emulador de terminal basado en ConEmu, pero con ciertos añadidos como una línea de comandos al estilo bash con Clink y sobre todo, un agradable y atractivo aspecto visual para hacerlo más intuitivo y cómodo:

cmder: Emulador portable de consola para Windows

URL | cmder: Portable Console Emulator

Además, entre sus características más llamativas se encuentra la posibilidad de utilizarlo como aplicación portable, de forma que no es necesaria su instalación en el sistema.

Windows PowerShell

No me olvido de la alternativa que propone Microsoft, la utilización de Windows PowerShell, una ampliación de su terminal por defecto, donde puedes utilizar un sistema de scripting para conseguir realizar tareas más específicas y potentes. Incorpora una utilidad llamada PowerShell ISE (Integrated Scripting Environment) donde podemos editar, depurar y ejecutar nuestros propios scripts.

Línea de comandos en PowerShell para instalar Chocolatey

URL | Windows PowerShell

Sin embargo, y a modo de opinión personal, no hay que olvidar que se trata de un lenguaje de scripting, lo que lo hace estupendo para crear tus propias tareas automatizadas o sistemas programados, pero demasiado denso como para utilizarse a modo de herramienta de administración de sistemas.

Existen otros emuladores que también pueden resultarte interesantes, como por ejemplo PowerCMD, Console2 o ConsoleZ.

2. Instala un gestor de paquetes (como apt-get)

Una de las herramientas más maravillosas de GNU/Linux para los administradores de sistemas son los gestores de paquetes como apt-get, yum, pacman o emerge: comandos mediante los cuales puedes instalar aplicaciones (y sus dependencias) sin necesidad de ir a sus respectivas páginas webs a descargarlas, realizando el proceso de descarga e instalación de una forma rápida y sencilla. Y lo mismo con la actualización o desinstalación.

Existe un gestor de tareas para Windows llamado Chocolatey que permite instalar aplicaciones siguiendo la misma filosofía. Basta con escribir en una terminal de PowerShell (con privilegios de administrador) la línea de instalación que encontramos en su propia web Chocolatey. Una vez hecho esto, podremos:

  • Buscar aplicaciones escribiendo choco search [programa]
  • Instalar aplicaciones escribiendo choco install [programa]
  • Desinstalar aplicaciones escribiendo choco remove [programa]
  • Actualizar aplicaciones instaladas choco update
Chocolatey: Gestor de paquetes para Windows

URL | Chocolatey

En este momento, Chocolatey tiene un total de 11.108 paquetes (2.354 paquetes únicos), y la mayoría de las aplicaciones mencionadas en este artículo pueden instalarse desde este gestor de paquetes.

3. Instala Git (incorpora Bash y herramientas relacionadas)

Otra de las herramientas recomendables es Git, uno de los sistemas más populares para realizar control de versiones, o lo que es lo mismo, organizar y catalogar los cambios que realizas sobre cualquier tipo de documento de datos sujeto a modificaciones (código fuente de programas, imágenes SVG, documentos de texto, etc...).

Al margen de los beneficios directos que podría tener utilizar este tipo de gestores de versiones, o hacer git clone para descargar y preparar aplicaciones, con MSysGit puedes instalar Git junto a MSys (Minimal System), una colección de comandos UNIX como find, sort, grep u otros, y convertir así la terminal de Windows en algo más parecido a la de GNU/Linux.

Git con Bash y herramientas UNIX

URL | MSysGit

Esta colección de comandos pertenecen a MinGW (Minimalist GNU for Windows), un fork de Cygwin (Cygnus Windows). También existen las CoreUtils o UNIX Utils, que a diferencia de las anteriores, son ports nativos del sistema y por lo tanto no dependen de otras librerías.

De esta forma, podríamos disponer, por ejemplo, de comandos como wget para descargar archivos directamente desde una línea de comandos sin depender de interfaces gráficas como WinWGet, en este caso. En 10 comandos interesantes para GNU/Linux puedes ampliar tus conocimientos sobre los comandos tradicionales y encontrar otros muy interesantes.

[...]

Queda el 59% del artículo
Leer artículo completo

La gran guía de supervivencia de la terminal de Linux

¿Buscas programas para la terminal de GNU/Linux? Aquí tienes una completa guía de trucos, comandos y herramientas para la terminal de texto.

La terminal siempre ha sido objeto de controversia entre los usuarios de un sistema. Mientras que a algunos usuarios les parece algo muy complejo e incómodo de utilizar, a otros les parece una herramienta poderosísima a la que pocas veces (incluso siendo usuario avanzado) se le consigue sacar todo su potencial.

Tal vez sea cierto que no todos los usuarios están hechos para ella, pero si te apetece darte una vuelta por esta guía de supervivencia sin «X» (interfaz gráfica de Linux) y descubrir todo lo que se puede hacer desde una simple línea de comandos, ¡ponte cómodo y empecemos!

1. Explorador de archivos

GNU/Linux posee una larga colección de comandos y herramientas para moverte a través de las diferentes rutas, directorios o carpetas del sistema, como por ejemplo popd y pushd, explicados en 10 comandos para trabajar en Linux, sin embargo, es comprensible que prefieras un sistema más cómodo para moverte.

Ranger es un claro ejemplo, un sencillo explorador de archivos en modo texto, que nos permitirá navegar por el árbol de directorios utilizando las combinaciones de teclas del famoso editor VIM.

Flappy Bird visualizado desde una terminal de texto.

URL | Ranger (GitHub)

Además, basta con escribir ranger --copy-config=scope y tendremos ranger configurado para mostrar una previsualización de imágenes en formato ASCII a todo color mediante img2txt, el cuál también se puede utilizar desde línea de comandos directamente.

Otro gran clásico de los exploradores es Midnight Commander, el cuál se basa en el famoso Norton Commander de la época de MSDOS. Además de ser muy atractivo y organizado visualmente, nos ofrece un menu superior y unas teclas de acceso rápido que lo hacen algo muy cómodo de utilizar.

URL | Midnight Commander

Existen varios otros exploradores de archivos, como nffm o vifm. Sin embargo, si nos centramos en los visores de imágenes, podemos encontrar fbi (framebuffer viewer), el cuál nos permite reproducir gráficamente, desde nuestra terminal de texto archivos gráficos, realizando una conversión previa.

Antes también mencionaba img2txt, el cuál es un comando que incorpora las librerías libcaca, utilizadas para la conversión de gráficos en ASCII art coloreado. Esta librería incorpora varias herramientas como por ejemplo, cacaview, un visor de imágenes que permite zoom, variar gamma, antialias y otras opciones:

URL | Libcaca

Se pueden hacer cosas aún más potentes con esta librería, pero lo veremos más adelante. Si eres de Windows y buscas un explorador de archivos similar a los anteriores, puedes probar con Far Manager, incluido entre otros en el siguiente artículo:

URL | Alternativas al explorador de Windows

2. Gestor de ventanas en modo texto (multitarea)

Los exploradores de archivos son muy útiles, pero a veces se echa de menos el tener la flexibilidad que aportan los gestores de ventanas en los entornos gráficos. Si eres de los que abren varias terminales de texto o varias conexiones SSH al mismo equipo para hacer varias tareas a la vez, quizás sea porque no conoces tmux:

Puedes dividir la pantalla y trabajar moviéndote por las diferentes secciones.

URL | tmux (SourceForge)

El multiplexor tmux permite crear varias subterminales en la propia terminal, pudiendo cambiar entre ellas en cualquier momento. Sólo es necesario pulsar la combinación de teclas CTRL+B y luego la tecla de la acción a realizar, como por ejemplo % para dividir verticalmente, " para dividir horizontalmente o n y p para moverse entre pantallas.

De la misma forma, existen muchos otros programas similares que podrías probar, como por ejemplo dvtm (dynamic virtual terminal manager) o gnu screen con dtach. Además, estos gestores tienen una característica muy interesante: sobreviven a posibles desconexiones accidentales por SSH, pudiendo recuperarlas más tarde.

URL | 10 trucos y consejos para conexiones SSH vía Putty

3. Cliente de correo

Las operaciones de correo en un sistema GNU/Linux son todo un mundo a parte. Existen multitud de formas de configurar nuestro sistema para recibir o enviar emails, siendo uno de los usos más comunes el comando mail:

echo “Mensaje” | mail -s “Asunto” correo@gmail.com

Sin embargo, lo que más nos puede interesar a nivel de usuario, quizás, es una forma de revisar nuestro correo de Gmail con una interfaz cómoda y similar a lo que ya estamos acostumbrados.

Vmail es uno de esos programas. Se trata de un cliente de correo para Gmail desarrollado en Ruby y basado en el funcionamiento del editor Vim, convirtiéndolo en un sistema productivo para revisar nuestro correo.

URL | Vmail (GitHub)

[...]

Queda el 78% del artículo
Leer artículo completo

Soporte técnico: «He visto cosas que no creeríais»

Como decía Roy Batty (Nexus 6, Blade Runner) justo antes de morir: «Yo he visto cosas en un servicio técnico que vosotros no creeríais».

Garantizar el correcto funcionamiento de los equipos informáticos de un particular o una empresa no es tarea fácil. Se deben llevar a cabo una serie de consejos y prácticas para el correcto mantenimiento de los diferentes equipos, sin llegar a dañarlos o estropearlos por mal uso.

Pero como decía Roy Batty justo antes de morir en Blade Runner: «Yo he visto cosas que vosotros no creeríais». Y eso que no había pasado por un servicio técnico. Creo. O igual lo decía por eso.

La mayoría de las imágenes mostradas son equipos reales que han llegado a un servicio técnico (o en situaciones similares). Los autores de las fotografías se indican al pie de imagen, en cada fotografía.

1. Las BIOS no se equivocan

Para evitar una mala configuración de tus módulos de memoria RAM en la BIOS, lo mejor es establecer una configuración automática, para así evitar errores:

Fuente: imgur

Una BIOS experta en contabilizar la RAM del sistema. Ellas nunca se equivocan.

2. Si dudas de la RAM, pásale un test de memoria

Si no sabes con seguridad si tus módulos de memoria RAM están estropeados, pásale un test de memoria RAM como MemTest. Así saldrás de dudas...

Fuente: @schizoduckie

«Prueba completa, no se encontraron errores, pulse ESC para salir» ¿Fiable, eh?

3. Si no hay nada que hacer, adorna con RAM de Navidad

Si aún así te encuentras con unos módulos de memoria RAM que no sirven para nada, siempre puedes aprovechar la proximidad de las navidades para utilizarlos de decoración:

Fuente: @alexratman

[...]

Queda el 85% del artículo
Leer artículo completo

1 2 3