Sei sulla pagina 1di 4

Operaciones bsicas con videos para Windows con FFMPEG

Esperando que pueda ser de utilidad para otras compas en la misma situacin, comparto como FFMPEG me ayud a resolver un problema rapidsimo! (mientras que otros programas -incluso de pago- fracasaron miserablemente). Saludos a todos los hackers multiplataforma! El problema original Grabar un vdeo de una captura en tiempo real, que se utilizar para una capacitacin. Restricciones: no se puede instalar programas (con el mtodo normal de Aceptar, Aceptar, Aceptar:$) ya que las polticas del dominio no permiten acceso ni siquiera a guardar cosas en Escritorio o Mis documentos! Esta es una restriccin muy especfica, tal vez t puedas aprovechar ms tu mquina sin restricciones (salvo la de tener Windows instalado ;D).
VMONOS POR PARTES

1. Grabar el vdeo 2. Prepararlo para su uso en una capacitacin Ya que no podemos instalar programas, no pudimos usar el programa crackeado de nuestro administrador de sistemas de modo que mi supervisor me pidi intentarle con una de tus herramientas -obviamente, cuando menos OpenSource, o de preferencia software libre-. Y es cuando el magnfico trabajo de los empaquetadores de portableapps.com viene al rescate! Y s, pudimos grabar el vdeo, pero, tal vez por error mo con algo de los cdecs*, el vdeo no se pudo reproducir, y tampoco transcodificar a vdeo Flash (ah, tal vez un error del empaquetado de la aplicacin porttil). Otro problema es que el archivo completo abarcaba ms de 2.5 GB, para slo 28 minutos! De modo que entramos en materia de este post, como FFMPEG me salv de buscar que aplicacin crackeada o shareware podra: 1. Recortar y escalar el vdeo original 2. Eliminar la parte inicial y final en que se arranca la aplicacin de captura y se detiene la grabadora de pantalla ( fallas de origen creo que le dicen los tcnicos). 3. No introducir molestas marcas de agua en el vdeo que interfiriesen con la captura

4. Dejarlo en un formato que hasta el Reproductor de Windows Media pueda entender, sin instalar plugins 5. Acelerar la velocidad de reproduccin desde el vdeo transcodificado, para no tener que ajustarlo manualmente al abrir el vdeo en diferentes estaciones Paso a paso, pues. Lo primero, obviamente es conseguir el binario de FFMPEG para Windows, en Zeranoe FFMPEG. Al venir comprimido en formato 7z (mejor que WinZip ocualquier otro), necesitars un programa que lo reconozca, en particular te recomiendo: la versin portable de 7zip. Una vez que decidas en que carpeta descomprimir los binarios (la carpeta bin del paquete), te encontrars cuando menos con ffplay (reproductor) y ffmpeg (transcodificador), en mi caso prob con ffplay si por lo menos la captura realizada haba quedado reconocible.
PASO 1. REALIZAR UNA PRUEBA CON UNOS POCOS SEGUNDOS, DE CAMBIO DE FORMATO.

Si buscaste por ffmpeg howto, tal vez llegaste a esta pgina (en ingls), muy buena pero algo desactualizada (sobre todo en la parte del cropping y el escalado). En la cual me bas para probar esto: ffmpeg -i EJEMPLO.avi -ss 10 -t 30 -b 600k -an -vcodec mpeg4 -f avi prueba1.avi Explico las opciones: -i EJEMPLO.avi - input: video de entrada, EJEMPLO.avi -ss - start second, segundo de inicio, 10 -t - duracin en segundos, 30 -b - tasa de bits del video por segundo, 600k<- admite sufijos -an - audio no, puesto que despus agregaremos sonido al vdeo original -vcodec - cdec de video, mpeg4 <- hasta aqu todava estaba copipegando del howto arriba referido -f avi - formato (mejor dicho contenedor) de salida, avi<- nativo de Windows prueba1.avi

- el archivo de salida, no requiere prefijo de opcin alguna Y result, salvo que todava no puede reproducirse en el Windows Media Player, adems de que nos hace falta mejorar la calidad sin aumentar mucho el tamao del archivo, recortar el tamao y aumentar la velocidad de reproduccin, que abordaremos a continuacin.
PASO 2. RECORTAR Y ESCALAR EL VDEO PARA AJUSTARLO A PANTALLAS MS PEQUEAS.

Desde aqu ya no pude basarme en las howto pages, pues la versin de ffmpeg utiliza una nueva biblioteca, libavfilter, en particular me interesaban slo las de escalado y recorte. Siguiendo con las pruebas, transcodificamos el vdeo recortado a 1024820 (el vdeo original era de 12801024), agregando la opcin de avfilter correspondiente: ffmpeg -i EJEMPLO.avi -vf "crop=1024x820" -ss 10 -t 30 -b 600k -an -vcodec mpeg4 -f avi prueba2.avi -vf "crop=1024:820" Permite an ms ajustes que las opciones anteriores crop{top, bottom, left, right}, pero para esta prueba fue suficiente, todava no hemos escalado el vdeo. Ahora vamos a escalarlo con las opciones de avfilter, ya que la opcin nativa de -s WIDTHxHEIGHT, se conflicta con el recorte; ffmpeg -i EJEMPLO.avi -vf "crop=1200:960, scale=920:736" -ss 10 -t 30 -b 600k -an -vcodec mpeg4 -f avi prueba3.avi -vf "crop=1200:960, scale=920:736" Cambi el tamao despus de ver en la prueba de recorte, que estaba dejando fuera demasiado de la pantalla, y el escalado lo ajust para que no cambiase el aspecto del vdeo original. No olvides incluir las comillas en las opciones de avfilter.
PASO 3. ACELERAR LA VELOCIDAD DE REPRODUCCIN.

Al tratarse de un vdeo para capacitacin, necesitamos que sea breve y el vdeo original requiere que dure mximo 8 minutos. Algunos tutoriales por ah se complican mucho (tal vez por versiones anteriores de FFMPEG), requiriendo el uso de otras herramientas, pero no hace falta en absoluto, pues tambin la biblioteca avfilter incluye otra opcin para cambiar el timestamp de cada cuadro (es decir, que si un frame apareca en el segundo 15, por ejemplo, ahora se reproduzca en el segundo 5, haciendo as la reproduccin ms rpida). ffmpeg -i EJEMPLO.avi -vf "crop=1200:960, scale=920:736, setpts=0.3*PTS" -r 8 -ss 10 -t 30 -b 600k -an -vcodec mpeg4 f avi prueba4.avi

-vf "crop=1200:960, scale=920:736, setpts=0.3*PTS" setpts es lo que nos permite cambiar (set) el timestamp, en este caso lo reducimos, para disminuir el tiempo total de reproduccin, si quisiramos aumentar el tiempo (reproducir a velocidad lenta), lo multiplicas por un nmero mayor a 1 el PTS (timestamp de los cuadros originales). -r 8 cambiamos con -r la tasa (rate) de cuadros por segundo, en este caso lo reduje a 8 cuadros por segundo, lo que me permitir despus subir la calidad sin aumentar demasiado el tamao, al dejar de lado cuadros que no afectan la sensacin del vdeo, de modo similar a como se comprime el audio de un CD a un MP3, reduciendo las muestras por segundo.
PASO 4. UTILIZAR UN CDEC QUE EL REPRODUCTOR DE WINDOWS MEDIA ENTIENDA SIN PLUGINS.

Recuerdan que dije que no se reproduca el vdeo en el Media Player? Pues encontr en la FAQ de FFMPEG el cdec adecuado para Windows: -vcodec msmpeg4v2, y correg la opcin del bitrate, para recuperar lo ms posible de la calidad del vdeo original: -b:v 2000k Para finalizar (en siguiente post mezclaremos con sonido), les dejo la lnea final que utilic: ffmpeg -i V:\EJEMPLO.avi -vf "crop=1200:960, setpts=0.3*PTS, scale=920:736" -ss 4 -vcodec msmpeg4v2 -b:v 2000k -r 8 -an -f avi v:\VideoCapacitacion.avi Notas En concreto sobre los cdecs soportados nativamente por el reproductor de Windows Media, ya que es importante acceder desde cualquier PC de la empresa al vdeo. OJO: Si tienes preguntas sobre algn cdec en especfico, deberas leer de nuevo el ttulo de este post.

Potrebbero piacerti anche