Video digital para gente con prisa

Tras unos meses metido en esto de grabar vídeo, editarlo, codificarlo y distribuirlo me he dado cuenta de que lo que yo intuía como un mundo enorme que desconocía, es efectivamente un mundo enorme que desconozco.
Voy a tratar de plasmar en poco espacio las nociones básicas que he aprendido en mi breve incursión, para dejar constancia de lo que me ha parecido importante y de no. Al lío.

Un vídeo no es mas que una sucesión de imágenes fijas que reproducidas a una velocidad determinada dan impresión de movimiento. Al igual que pasa con las imágenes, los vídeos se comprimen para optimizar su tamaño. Las imágenes se comprimen aprovechando la información repetida en pixels adyacentes. Con los vídeos ocurre lo mismo, solo que ademas de la dimensión de una sola imagen o fotograma (compresión intraframe), también podemos buscar esa información repetida en los fotogramas siguientes (compresión interframe).

Veamos los conceptos más comunes: contenedor, codec, bitrate, framerate, GOP o frecuencia de keyframes, bitrate variable, entrelazado

Contenedor: es el formato que se usa para empaquetar la información de vídeo en un archivo. El contenedor es lo que da nombre a la extensión que llevan los archivos de vídeo , así podemos tener AVI, MPG, MOV, FLV, 3GP. El contenedor de por si no nos proporciona información de como está comprimido el vídeo, solo en que parte o partes del archivo está la información.

Codec: (Coder-Decoder) es la herramienta que nos permite comprimir un vídeo y luego descomprimirlo para poder visualizarlo en un reproductor. Existen multitud de codecs con miles de opciones para optimizar la compresión. Si tienes un reproductor que puede leer un contenedor en concreto, pero no tienes instalado en tu sistema el codec con el que se ha comprimido el vídeo que está dentro, no podrás verlo. Los pack de codecs como el ffdshow son para eso. Algunos reproductores llevan incorporados algunos codecs, unos mas, otros menos. Por ejemplo el Flash player 10 soporta Sorenson Spark, On2 y H.264 el solito, mientras que el VLC soporta muchísimos mas y el windows media, muy pocos.
Como en los vídeos también hay pistas de audio, se utilizan otros codecs para comprimirlo, como puede ser el MP3, AC3 y otros.

Bitrate: se mide en bits por segundo, es decir, la cantidad de bits que le damos al codec para que almacene todos los fotogramas de vídeo que haya en un segundo. Cuanto mayor bitrate, mayor calidad, y por supuesto mayor tamaño. El bitrate es el único ajuste de codificación que nos permite variar el tamaño final del archivo de vídeo . El resto de ajustes de vídeo solo sirven para hacer que quepa mas o menos “información visual” en esos bits, obteniendo mayor o menor calidad, pero el tamaño será siempre el resultante de multiplicar el bitrate por la duración del vídeo. Por ejemplo, un vídeo codificado a 400 kbits por segundo, con una pista de audio codificada a 96 kbits por segundo, ocupará:

496 kbps / 8 bits/byte = 62 Kbytes por segundo

Si el vídeo dura 5 minutos, 62 kbps * 5 min * 60 segundos por minuto = 18600 kbytes, es decir, unos 18 Megabytes. Siempre.

Framerate: es la frecuencia de fotogramas, es decir, la cantidad de fotogramas que se reproducen por segundo. El ojo humano, a partir de 10 fps, ya percibe movimiento fluido. El estándar son 24 para cine, 25 para televisión PAL/SECAM (Europa) y 29.97 para la televisión NTSC (EEUU). No es habitual grabar a mas de 30 fps, salvo en cámaras de alta velocidad. Es recomendable respetar los fps en cualquier recodificación, aunque claramente, si bajamos el framerate dejamos mas bitrate para menos frames, con lo que la calidad de la imagen aumenta, pero si el vídeo tiene escenas de mucho movimiento, vamos a notar los saltos.

Keyframes y GOP: Como hemos dicho, los frames de vídeo se comprimen porque hay información en los frames anteriores o posteriores que se repite en relación a un frame anterior. Esto supone que es necesario que haya frames de referencia con respecto a los que se calcule la compresión. Estos frames se llaman “clave”, keyframes o I-Frames y por ser los de referencia, no pueden recibir en si mismos una compresión interframe, tan solo intraframe (de ahí que se les denomine I-Frames). Por ello estos frames ocupan más espacio que el resto, de modo que si tenemos muchos keyframes y poco bitrate, la calidad será pésima, ya que la mayor parte del bitrate irá a parar a los keyframes.
La solución sería poner pocos keyframes, o mejor aun, solo el primero, pero esto tiene otras contrapartidas. Por ejemplo, algunos reproductores de vídeo, como el de Flash, solo permiten posicionarse en keyframes, es decir, si queremos acceder a una parte concreta del vídeo, y esa parte no tiene un keyframe, el reproductor nos envía al keyframe mas cercano, que en caso anterior sería el primero, con lo que no podremos posicionarnos en ningún otro sitio mas que al principio.
GOP (Group of pictures) es el mismo concepto e indica cuantos frames acompañan a un keyframe. Un GOP de 12, por ejemplo, significa que cada 12 frames hay un keyframe, si el framerate es 24, eso es dos keyframes por segundo de vídeo.
Aparte de los Iframes, existen otros dos tipos de frames, los P-frames (Predictive frames) y los los B-frames (Bidirectional predictible frames). Ambos van con compresión interframe y dependen del Iframe anterior y en el caso de los B-frames, de los frames anteriores y posteriores.

Bitrate variable: La compresión que se consigue en una imagen depende mucho de lo que esta contenga, igualmente en el vídeo, la compresión depende de lo mucho o poco que cambien unos frames respecto a otros. No es lo mismo un vídeo grabado desde el casco de una moto, en el que todo se mueve a gran velocidad y pocas cosas se repiten, a un video de un telediario (lo que se denomina “talking head”) en el que solo una pequeña porción de la imagen cambia en cada fotograma. Por eso, para vídeos cuyo contenido es heterogeneo se creó el VBR (variable bitrate). El bitrate se va adaptando a los contenidos de la imagen de manera dinámica, con lo que se usan menos bits cuando no hace falta mucho bitrate y mas cuando la imagen cambia mucho entre fotogramas. El tamaño de los vídeos con VBR ya no se puede predecir de antemano como en los CBR (constant bitrate), claro, pero se consiguen mejores relaciones tamaño/calidad.
Para saber el bitrate necesario para una zona concreta del vídeo se necesita procesar antes cada parte para luego aplicar la compresión en una “segunda pasada”. El concepto de codificación de 1 pasada y de 2 pasadas entra en juego aquí. Para codificar en VBR siempre hacen falta 2 pasadas, lo cual ralentiza mucho la misma.

Otro día más

11 thoughts on “Video digital para gente con prisa

  1. Milo

    Muy buen resumen, si señor.

    Me encanta ese afán por compartir la información 🙂

  2. Alberto

    Está perfecto el resumen, te doy las gracias por este aporte. 🙂

  3. Luis

    Muy bueno makinolo jeje,me gustaria hacerte una preguntita: tu sabrías como hacer un video con fotos? nose si me explico bien pero vamos, es coger unas cuantas fotos y que se vayan pasando de unas a otras, Gracias 😛

  4. Makinolo Post author

    Casi cualquier programa de edición de vídeo te permite hacer eso, aunque tendrás que aprender primero a manejarlo.
    Si quieres que sea de forma sencilla, el MemoriesOnTv creo que te servirá.

  5. Luis

    Makinolo otra preguntita, la última ya jaja. Me puedes decir algun programa para grabar la pantalla de tu pc y que se tambien se oiga el sonido de lo que estas graabando.

    Muchas gracias, Saludos

  6. SOBRIO

    Tontos Tontos… el world cap funciona perfectamente… solo tienes que hacer los siguientes pasos…

    desinstalar el flash que tienen desde este link
    http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14157

    Dando en el lugar donde dice windows:unninstal_flash_player

    Despues instalar el 9.0.47.0. Flash player Desde este otro link http://www.oldapps.com/Macromedia_Flash_Player.htm

    y su problema se vera solucionado y podran jugar al world cap, si al principio no funciona el world esperar un poco o jugar desde mozilla firefox…

    PD. ESPERO MAKINOLO NO BORRE ESTE MENSAGE YA QUE… SI EL PERRO QUIERE WESO Y NO TE DEJA DORMIR, DALE WESO PARA DORMIR EN PAZ..

  7. jugadores del cap

    buenas makinolo,solo queriamos agradecerte lo mucho que has trabajado en el juego durante estos años, todos tenemos claro que el juego sin ti hubiera muerto hace tiempo…que es lo que parece q le va a pasar ahora, somos muchos los q hemos pasado horas jugando a las chapas y po eso queremos pedirte…que si no es mucho tiempo y puedes arreglar el problema del flash para q el cap vaya con el explorer, ya que si no es asi la gente no entra….tal vez sean las ultimas navidades del cap y nos gustaria disfrutarlas todos juntos. gracias puedas o no arreglarlo por q es evidente q bastante has exo. un saludo d los jugadores del cap

Comments are closed.