ATENCIÓN: Comprobado que la mayoría de las computadoras tuvieron problemas con el comando ffmpeg para convertir películas, al 25 de nov. 2014 (terminado el año lectivo) se editan muchos datos de esta página para mejor información de quienes continúen con este trabajo pendiente.
En resumen, el comandos de linea para producir y exportar un segmento de película a una imagen .gif animada (en Linux) es el siguientes (trascribir a la terminal o consola todo continuo):
avconv -i entrada.avi -ss 00:00:01 -t 00:00:10 -s 320×240 -vf format=rgb8,format=rgb24 -pix_fmt rgb24 -r 10 salida.gif
¿Qué significa?
1. "avconv" es el comando o programa (antes usamos ffmpeg, pero se comprobaron problemas en diferentes computadoras porque la distribución Debian sobre la que se basa Huayra ha dejado de incluirlo en los repositorios)
2. "-i" es la opción que indica "entrada" (en inglés "input") tras la que se da el nombre del archivo con el que trabajaremos. En el ejercicio, «entrada.avi» debe ser cambiado por el nombre y formato correspondiente. P.e. miPelicula.mp4.
3. "-ss" es una marca en el tiempo de duración de la película original que indicará el inicio elegido para el segmento que se convertirá a .gif. Aquí, "00:00:01" debe ser cambiado por el elegido. De lo contrario, se está tomando un tiempo -t (ver abajo) desde el comienzo de "entrada.avi". Valores en hora:min:seg.
4 "-t" es la opción que indica el tiempo de duración del segmento de salida o imagen .gif animada, en este caso. "00:00:10" significa 10 segundos. Debe cambiarse según convenga (recomendado entre 10 seg. y 20 seg.) y cuidarse que -ss + -t no excedan el largo de la película original.
5. "-vf format=rgb8,format=rgb24" y "-pix_fmt rgb24" especifican formatos de conversión de color necesarios para el formato .gif. No deben alterarse.
6. "-r 10" (frame rate) especifica la cantidad de cuadros por segundo. A menor cantidad de cuadros, la imagen será menos animada y más rápida.
7. "salida.gif" indica el nombre del archivo de salida. Nótese que no necesita indicador de opción como el de entrada, pero debe obligadamente estar al final del comando. Cámbiese el nombre por el que corresponda, manteniendo la extensión .gif.
NOTA: el resultado en colores varía según el formato del archivo de entrada, pero eso no importa para este curso. Lo mejor es desde un archivo .avi. Para hacer la conversión a .avi, ver punto "3. (opcional) Preparar el segmento para la conversión a imagen .gif." abajo.
Previos
Un manejo básico de la consola o terminal es una tarea no muy sencilla de aprender. En general, los comandos de linea tienen poco de intuitivos o autoexplicativos, como tienden a ser los comandos gráficos a través de sus íconos y metáforas. Sin embargo, la memoria puede ser muy eficiente y con ésto el comando de linea no sólo muy útil sino, bastante a menudo, la única solución a una necesidad. En el caso de componer una imagen .gif a partir de una película, es simplemente una opción (además de otros procedimientos gráficos) que nos permitirá realizar una acción sin siquiera abrir el archivo. Esto deja la puerta abierta a realizar una serie de acciones similares continuas con un solo comando, como por ejemplo extraer 30 segmentos de película y convertirlos a .gif (esta instrucción no se incluye en este texto).
En este caso, para operar el comando "avconv" (antes ffmpeg) debe conocerse la forma de navegar entre carpetas, comprobar la instalación de programas y, eventualmente, instalarlos.
1. Instalar los programas necesarios y preparar la carpeta de trabajo.
1_1. Verificar si tenemos instalados los programas.
1_2. instalar programas (dos opciones).
2. Ubicarse en la carperta de trabajo y ubicar el archivo para trabajar.
3. (opcional) Preparar el segmento para la conversión a imagen .gif.
4. Operar el programa conversor.
Procedamos...
1. Instalar los programas necesarios y preparar la carpeta de trabajo.
1_1. Verificar si tenemos instalados los programas:
$ whereis avconv
Si sólo indica el nombre del programa ($ avconv:), el programa no está instalado. Caso contrario se verá algo como
avconv: /usr/bin/avconv /usr/share/avconv /usr/share/man/man1/avconv.1.gz
1_2. instalar programas.
OPCION 1
$ su
Password: alumno
$ apt-get update
$ apt-get install libav-tools
El nombre del programa tiene que ser dado con precisión, y muchas veces el nombre técnico no es exactamente igual al nombre popular. Nótese que en este caso se solicita la instalación de la librería "libav-tools". Si hubiera dudas, se recomienda proceder con OPCION 2.
OPCION 2: usamos una interfaz gráfica llamada Synaptic. Podemos elegirla desde el menú de programas o llamarla con un código de linea.
$ synaptic-pkexec
NOTA 1: si tipeamos las primeras letras y luego 'tab' el comando se autocompleta. Si hay más de una opción, se autocompleta hasta que llega al conflicto y luego apretamos dos veces seguidas 'tab', obteniendo las opciones.
NOTA 2: La instrucción para operar Synaptic no se incluye aquí, y se dará en clase.
2. Ubicarse en la carperta de trabajo y ubicar el archivo para trabajar.
Primero, se crea la carpeta y se posiciona en ella
$ cd /camino/a/una/carpeta/de/trabajo/
$ mkdir carpeta
$ cd carpeta
Luego, se mueve el archivo
$ mv /camino/hasta/la/peli.avi ./
Donde ./ quiere decir "esta carpeta".
3. (opcional) Cambiar formato y tamaño.
Se comprueba que no todos los formatos "de entrada" dan los mismos resultados en relación al color que presenta la imagen .gif final respecto del archivo original del que se ha extractado el segmento. Si el formato de este archivo no fuera .avi puede ser conveniente realizar un paso intermedio que consiste en extraer el segmento de película que queremos para la imagen .gif prevista y convertirlo a .avi.
$ avconv -ss 00:10:00 -t 00:00:10 -i nombre1.avi nombre2.avi
donde:
-ss tiempo de inicio.
-t duración a partir del tiempo de inicio.
-s escalamiento o ajuste de tamaño.
-i input o archivo de entrada (la opción también acepta un camino o path hasta el archivo, en caso de no estar en la carpeta. P.e. /media/DATOS/Mis\ documentos/peli.avi).
Para más opiciones (en inglés) tipear en la consola
$ avconv -h
para un resumen de opciones, o para mayor detalle:
$ man avconv
4. Convertir imagenes de un video a .gif animado.
Si se ha realizado el paso "3. (opcional)" el comando expuesto al principio queda como sigue:
avconv -i entrada.avi -s 320×240 -vf format=rgb8,format=rgb24 -pix_fmt rgb24 -r 10 salida.gif
En caso contrario, deben agregarse las opciones
-ss 00:00:01 -t 00:00:10
***