Video 101 [Formats+Codecs+Containers]

Um vídeo não é mais do que várias imagens em sucessão de forma a serem perceptíveis como movimentos, e para se obter esta percepção são precisas várias imagens em sucessão rápida para que o cérebro humano interprete esse movimento de forma suave. Existe um grande debate sobre os standards próprios a serem utilizados, sobre qual a quantidade de fotogramas por segundo (fps) que um vídeo deva ter de forma a ter uma imagem suave e que não cause problemas logísticos com os requisitos de espaço e poder de processamento que o vídeo requer. Os valores de fps mais ou menos estandardizados situam-se nos 24, 25, 30 fps, com alguns casos a apresentar valores estranhos de 23.976, mas estes valores já vêm desde o tempo em que os filmes eram corridos á manivela por isso haviam limites físicos a ter em conta.

299px-Muybridge_race_horse_animated

Ultimamente o debate sobre a quantidade de fps aceitáveis tem ressurgido, visto o hardware corrente ter a capacidade para ir além dos limites de há 100 anos atrás e também com os videojogos a quebrarem os limites impostos pelas industrias há muito tempo. Qualquer PC gamer entusiasta terá sempre como objectivo correr os seus jogos a um mínimo de 60 fps, que já é o standard para jogos de luta e em fisrt person shooters de competição já há quem procure os 120 fps e para cima! Claro que tanto como para correr jogos como para processar vídeo, quantos mais fps, mais poder de processamento vai ser preciso. Ora como um vídeo não passa mais do que uma sucessão rápida de imagens, é então lógico que podemos assumir que os vídeos digitais que estamos habituados a ver não são mais do que várias imagens em formato .jpeg em sucessão rápida..pois, de facto isto é perfeitamente possível, mas para quem tem noção do tamanho de uma imagem .jpeg ou até .bmp, repara que a memória ocupada por estas imagens, se forem de boa qualidade, ao ser multiplicada pelo número de fps do vídeo e pelo tempo do vídeo, então um pequeno vídeo facilmente conseguia ocupar vários GB de memória. É aqui que entram os codecs. Um codec é um programa que serve para codificar e descodificar um bocado de código, ou por outras palavras, serve para transformar um bocado de código numa linguagem para outra linguagem. Para ficheiros visuais, o interesse deste tipo de software está nas suas capacidades de pegar em informação e comprimir-la de forma a ocupar menos espaço. A compressão das imagens dos vídeos poderá ser lossless (significa que é preservado toda a informação original) ou lossy (significa que parte da informação é irrecuperavelmente perdida no processo de codificação e ou compressão).

lossless1

Geralmente as codificações são lossy de modo a poupar na memória utilizada pelo ficheiro final, contudo isto não significa que um codec lossy irá ter má qualidade de imagem. Existem vários factores a ter em conta nas propriedades de um vídeo quando este é codificado, o factor mais reconhecível seria a resolução. A resolução das imagens do vídeo é naturalmente pensado nos dispositivos onde o vídeo vai ser descodificado, hoje em dia como a resolução comum é 1080p, no geral quem cria vídeos, aponta para uma resolução mínima de 1920 por 1080 pixeis. Outro factor importante a ter na codificação do vídeo é a taxa de bits por segundo (bitrate) que está correlacionada com o grau de compressão do vídeo. Para poupar memória, os algoritmos de compressão (codecs) usam formas engenhosas de poupar na informação quando a comprimem. Por exemplo, numa sucessão de imagens é muito comum grande parte da imagem se manter igual (imaginem uma cena de um homem a caminhar em frente a uma parede, apenas a informação relativa ao movimento do homem se altera com o decorrer da acção enquanto a imagem da parede se mantém igual), então nestes casos, certos codecs irão codificar certa parte do vídeo como uma imagem estática que só precisa da informação relativamente ás partes onde existe movimento (desde que não haja alterações na iluminação, mas isto já são casos mais complexos) para transmitir a cena inicial, logo ao apenas codificarem parte da cena estão a poupar muita memória. Ora quando a taxa de bits por segundo é muito baixa (entenda-se baixa, para um vídeo a 1080p, inferior a 2000 kilo bits por segundo) o espectador irá reparar em artefactos na imagem especialmente em cenas com movimentos rápidos de câmara porque o vídeo não foi codificado com informação suficiente para representar a cena original.

559f1241_Bit-Rate-Detail

Com o passar do tempo e o evoluir da tecnologia, aparecem cada vez mais codecs super sofisticados que conseguem comprimir e codificar a informação de forma a ocupar cada vez menos espaço e preservando uma boa qualidade do produto original, como é o exemplo do codec recém x265 que vem substituir o x264 que já é suado há alguns anos para codificar informação em HD nas televisões e outros sistemas de comunicação que precisam de vídeos comprimidos mas com qualidade (youtube). Ainda se poderia falar de outros detalhes importantes que dependem do codec utilizado como a quantidade de informação sobre a cor que cada codec guarda para cada pixel e também quantidade de brilho, mas estes detalhes são mais importantes para quem lida mais com fotografias de qualidade ou para quem brinca com programas de criação de imagem. Para quem está apenas interessado nos vídeos que arranja na internet ou para quem pretende recodificar um vídeo com software de edição de vídeo, os detalhes essenciais a ter em conta são o codec utilizado, a resolução do vídeo, a bitrate do vídeo e o contentor em que o vídeo se encontra. O contentor é de imediato reconhecido pelo nome de extenção do ficheiro (.AVI, .mp4, .mkv),  estes dizem ao software que descodifica o ficheiro qual a informação que eles trazem, seja quantas faixas de áudio diferentes e informação sobre estas faixas, geralmente apenas uma faixa de vídeo e as legendas que traz para o vídeo. O contentor utilizado em si também é uma decisão importante a tomar ao codificar o vídeo pois é o contentor que limita os codecs que suporta, a quantidade de faixas de áudio e de legendas que pode trazer, mas enquanto que não existem muitos limites legais sobre a utilização de contentores, sendo o matroska (.mkv) muito popular na internet por ter inovado nos codecs que traz e por ser aberto aos seus utilizadores, existem limitações em quem faz os dispositivos que lêm os vídeos ao limitar os contentores que estes suportam, onde posso dar o exemplo da consola PS3 conseguir ler h264 em .mp4 mas não reconhecer .mkv. Ou então para cair no absurdo temos o caso dos produtos da Apple que apenas querem ler contentores e codecs proprietários da Apple.

Para finalizar deixo mais umas informações úteis para os leitores que estejam interessados em verificar as propriedades dos vídeos que arranjam pelas internets. Para facilmente descobrir a informação sobre o ficheiro de vídeo, e também de áudio, recomendamos utilizarem o canivete suíço dos leitores de vídeo que é o VLC! Neste leitor basta irem á opção “tools” > “media info” > “codecs” geralmente encontram toda a informação necessária. Digo geralmente porque nem sempre os leitores de vídeo apresentam os detalhes da bitrate por um motivo qualquer. Enquanto escrevo isto abri o mesmo ficheiro no VLC e no SMPlayer(outro que recomendo bastante e também é open source), apenas o SMPlayer disponibilizou a informação da Bitrate.

smscreen

Por último gostaria de apelar aos nossos caros leitores para NUNCA instalarem um daqueles pacotes de codecs que encontram pela internet! Isso não passa de lixo que só estorva nos vossos PCs. Não é preciso utilizarem codecs extra + o media player classic para terem um leitor leve nos recursos que consiga ler formatos exóticos, tanto o VLC como o SMPlayer e outros do género (visto serem open source, acabam por serem baseados em projectos comuns) conseguem ler a grande maioria dos formatos de vídeo e áudio sem precisarem que sejam instalados codecs adicionais.

Ricardo

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s