Você está na página 1de 47

TV.

COMmunity | Entidade Promotora:

Parceiros:

16/01/2012

Boas Prticas na codificao de Vdeo

0/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

ndice
ndice de Imagens..........................................................................................................................................3 ndice de Tabelas ...........................................................................................................................................4 Introduo .....................................................................................................................................................5 Anlise do Vdeo ............................................................................................................................................7 Frame.........................................................................................................................................................7 Proporo de Tela .....................................................................................................................................7 Pixel ...........................................................................................................................................................8 Proporo do Pixel ....................................................................................................................................9 Resoluo ..................................................................................................................................................9 Densidade de Pixels ................................................................................................................................ 10 Taxa de transmisso ............................................................................................................................... 10 Codificador/Descodificador.................................................................................................................... 11 Formatos de CoDecs............................................................................................................................... 11 Constituio dos Ficheiros Video ........................................................................................................... 13 Tcnicas de Encoding ................................................................................................................................. 16 Encoding por Hardware.......................................................................................................................... 16 Encoding por Software ........................................................................................................................... 18 Encoding na Cloud .................................................................................................................................. 20 Anlise a ferramentas de Encoding por Software ...................................................................................... 21 Microsoft Expression Encoder ................................................................................................................ 21 Microsoft Expression Encoder SDK .................................................................................................... 26 Any Video Converter .............................................................................................................................. 27 FFmpeg ................................................................................................................................................... 30 VLC .......................................................................................................................................................... 33 Criao de planos de Template / Encoding ................................................................................................ 36 Templates de encoding .............................................................................................................................. 39
1/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Testes s Templates de Encoding............................................................................................................... 43 Apreciao final das ferramentas e sua adaptabilidade ao TV.COMmunity.............................................. 45

2/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

ndice de Imagens
Figura 1: Exemplo de proporo 4:3 esquerda e 16:9 direita .................................................................8 Figura 2: Exemplo de pixels visiveis num ecr ..............................................................................................8 Figura 3: Exemplo de pixels quadrados esquerda, e pixels retangulares direita ....................................9 Figura 4: Diversas resolues padro e respectivas propores ............................................................... 10 Figura 5: Esquema de Vdeo com intervalos .............................................................................................. 13 Figura 6: Esquema de Vdeo sem intervalos .............................................................................................. 14 Figura 7: Exemplos de encoders internos .................................................................................................. 17 Figura 8: Exemplos de encoders externos.................................................................................................. 17 Figura 9: Viso geral do Expression Encoder .............................................................................................. 22 Figura 10: Viso dos templates de encoding j pr-definidos ................................................................... 23 Figura 11: Processo de criao de templates definidas pelo utilizador ..................................................... 24 Figura 12: Escolha (sem templates) dos formatos de encoding ................................................................ 24 Figura 13: Definio manual (sem templates) dos parmetros de encoding ............................................ 25 Figura 14: Exemplo da linguagem do Expression Encoder SDK ................................................................. 26 Figura 15: Viso geral do encoder Any Video converter ............................................................................ 28 Figura 16: Templates agrupados pelas principais famlias de dispositivos ................................................ 29 Figura 17: Exemplo de processo de Encoding por via do FFmpeg ............................................................. 30 Figura 18: Escolha de template de encoding no VLC ................................................................................. 33 Figura 19: Configurao avanada do encoding do VLC ............................................................................ 34 Figura 20: Dados da tabela de comparao de encoding na forma de grfico ......................................... 44

3/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

ndice de Tabelas
Tabela 1: Containers mais comuns............................................................................................................. 14 Tabela 2: Exemplo simplificado de Header de container no formato Mp4 ............................................... 15 Tabela 3: Mapa de alocao dos bits no header do container AVI ............................................................ 15 Tabela 4: Exemplo de trfegos e preos de encoding praticados pelo Windows Azure ........................... 20 Tabela 5: Formatos de Encoding do Any Video Converter......................................................................... 27 Tabela 6: Formatos suportados pelo FFmpeg ............................................................................................ 31 Tabela 7: Variveis de anlise para planeamento de Encoding ................................................................. 36 Tabela 8: Compatibilidade video HTML 5 nos diversos browsers .............................................................. 38 Tabela 9: Resultados do reencoding com os diversos templates nas diversas ferramentas ..................... 43

4/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Introduo
Este documento surge como resultado da atividade de Concepo do Projecto TV.COMmunity. O objectivo do presente documento analisar as principais tecnologias de vdeo, nas suas diversas opes e ambientes em que podem ser aplicadas. Desta forma, pretende-se relacionar as melhores prticas com os principais cenrios / contextos de utilizao (PC, Tablet, Smartphone, SmartTV), visto que cada contexto tem as suas especificidades e restries. Assim, conseguir-se- fazer uma prospeco e levantamento das melhores prticas e obter uma via aberta para optimizar as potencialidades do TV.COMmunity aos diversos cenrios / canais existentes. O documento est organizado em 6 captulos distintos. No primeiro captulo ser feita uma anlise do formato vdeo, onde ser efectuada uma breve introduo sobre os conceitos e definies por detrs de um simples vdeo. Esta introduo tcnica fundamental para se adquirir os conceitos base essenciais para uma anlise mais completa das diversas realidades de construo de vdeo e de encoding. Ao longo do capitulo sero analisados temas como a frame de um vdeo, a proporo de ecr, o pixel, a proporo do pixel, resolues, densidades de pixels, a taxa de transmisso ou bit rate, analise dos mais variados codecs e formatos de vdeo. O segundo captulo faz uma anlise e separao dos diferentes processos de encoding, quer por via de hardware dedicado, como por via de aplicaes de software. Para alm da anlise da diferena entre os estes mtodos, efectuada uma analise na perspetiva de interesse para o TV.COMmunity de modo a inferir o qual mais adequado ao projecto. No terceiro captulo so analisadas diversas aplicaes de encoding por software, as mais generalistas e acessveis ao utilizador geral, at aquelas mais complexas e apenas ao alcance do utilizador profissional. No quarto captulo, prossegue-se com a anlise s diversas ferramentas, mas feita uma contextualizao de cada aplicao no contexto do TV.COMmunity e o julgamento das quais se enquadrariam melhor no TV.COMmunity. O quinto captulo, dedicado a elaborar um guia de boas prticas para a gerao de encodings de acordo com cenrios base / padro. apresentado um conjunto de variveis a ter em conta durante a anlise, e as concluses que delas se obtm. Por fim, no sexto captulo, tendo em conta os pressupostos apreendidos no captulo anterior, e baseado em experincias e testes realizados, apresentado um conjunto de templates de encoding que sero teis no contexto do TV.COMmunity. Cada template est associado a uma famlia de dispositivos que

5/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

so considerados chave para o consumo dos contedos do TV.COMmunity, nomeadamente ambiente Web, Tablet, SmartTv e Smartphone.

6/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Anlise do Vdeo
Para melhor compreender e analisar as diversas vias de entrega do vdeo e garantir a sua melhor recepo nos diversos dispositivos de visualizao, necessrio, decompor o vdeo e analisar os seus principais constituintes.

Frame
O frame representa uma imagem singular. Pode ser visto como uma simples fotografia. A passagem rpida de diversos frames/fotografias que induz o ser humano noo de movimento na tela de visualizao. O mnimo para o crebro humano considerar que est a ver movimento a partir de imagens estticas, sendo exposto a 12 fotogramas por segundo. No entanto o framerate (taxa de frames por segundo) da maior parte dos formatos de vdeo bem superior a esse valor, de modo a garantir uma fluidez suave e imperceptvel da transio entre os diversos frames.

Proporo de Tela
A proporo de Tela a relao matemtica entre a largura e altura de uma imagem. Por norma os vdeos so visualizados na horizontal, isto , com o valor da largura maior que a altura. E a relao dessas grandezas pode variar, desde uma proporo quase quadrangular, ou mais rectangular. As propores mais conhecidas so o convencional 4:3 e o mais recente 16:9 que so aplicados sobretudo em televisores e ecrs domsticos. No entanto existem outros padres bastante difundidos, nomeadamente o 3:2 na fotografia e o 5:3 ou 7:4 no cinema.

7/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 1: Exemplo de proporo 4:3 esquerda e 16:9 direita

Pixel
O pixel, o menor elemento de exibio de um dispositivo de visualizao. O pixel est presente tanto em fotografias como em vdeos. Uma imagem/vdeo pode ter mais ou menos pixels, tendo isso impacto na qualidade. Quantos mais pixels, maior detalhe ter a imagem. Mas em contra partida ser necessrio mais espao para armazenar essa imagem/vdeo e tambm ser necessrio uma maior largura de banda para transmitir essa imagem/vdeo.

Figura 2: Exemplo de pixels visiveis num ecr

8/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Proporo do Pixel
O pixel, elemento constituinte das imagens nem sempre quadrado. Alis, no ltimos tempos que os displays com pixeis quadrados se tm massificado, tanto nos dispositivos mveis, monitores de computador e televisores. Por exemplo o formato PAL 4:3 ou em 16:9 tm sempre a mesma resoluo nativa de 768x576. O que gera a imagem com diferentes propores a proporo dos pixels. No PAL 4:3 os pixels tm uma proporo quase quadrada de 1,09. J o PAL 16:9 os pixels so mais rectangulares com uma proporo de 1.45.

Figura 3: Exemplo de pixels quadrados esquerda, e pixels retangulares direita

Resoluo
A resoluo a quantidade de pixeis que compem uma imagem/vdeo, tanto na sua componente vertical e horizontal. Existe um conjunto enorme de padres de diferentes resolues. Essas resolues variam de acordo com o tamanho e proporo do display de exibio. Na Figura 4 possvel visualizar diversas resolues mais normalmente utilizadas. Na mesma figura ainda possvel observar que para a mesma proporo podem existir diferentes resolues com mais ou menos pixels. Isto prende-se com o facto de as mesmas propores poderem estar em dispositivos maiores ou menores.

9/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 4: Diversas resolues padro e respectivas propores

Densidade de Pixels
A densidade de pixels a quantidade de pixels por unidade de rea. Esta noo torna-se especialmente importante no dispositivos moveis, que tm reas de display mais pequenas e encontram-se a uma distncia mais prxima do utilizador. Por norma a unidade mais utilizada o numero de pixels por polegada (ppi). Quanto maior for esta medida, maior detalhe e pormenor existir nos contedo apresentados no display. H cerca de 5 anos, era considerado bastante bom um display com 72 dpi. Actualmente existem tablets com densidades na ordem dos 300 dpi, que elevam a outro patamar a qualidade e detalhe de textos e imagens apresentados.

Taxa de transmisso
A taxa de transmisso (ou bit rate) de um vdeo ou de um ficheiro de udio representa a quantidade de dados em bits que consumida por unidade de tempo, neste caso o segundo, para reproduzir o ficheiro.
10/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Desta forma a qualidade do video porporcional a sua taxa de transmiso. Videos com a mesma resoluo podem ter difrentes taxas de transmiso e consequentemente difrentes qualidades. Este factor de extrema importancia e tem de ser tido em conta quando se pretende transmitir conteudos de vdeo em dispositivos mobile, devido s suas reduzidas capacidades de processamento e de largura de banda.

Codificador/Descodificador
O Codificador/Descodificador ou mais conhecido pelo acrnimo de CODEC o dispositivo de hardware ou software que codifica/descodifica sinais. Os codecs podem ser com perdas (lossy) ou sem perdas (lossless). No caso dos codecs com perdas o vdeo comprimindo suprimindo reas que no so estritamente necessrias para a sua reproduo. Esta perda de qualidade do vdeo controlada de forma a no ser perceptvel quando o vdeo for reproduzido. Como exemplo de codec com perda o WMV (Windows Media Video). Este tipo de codec consegue taxa de compresso elevadas sendo possvel comprimir um vdeo para 10 vezes o seu tamanho original sem uma perda de informao significativa ou muito visvel. Quando utilizado um codec sem perda o vdeo comprimido sem existir uma perda ou alterao de informao. Quando descomprimido o vdeo estar idntico ao original. Com a utilizao deste tipo de codec possvel comprimir um arquivo para 2 a 3 vezes o seu tamanho original. O codec sem perda de informao mais conhecido o H.265. Desta forma observamos que obtemos ordens de grandeza de compresso bem distintas. Codecs com perdas, at aproximadamente 10 vezes de compresso e sem perdas com 2 a 3 vezes. Daqui conclui-se facilmente que para o contexto dos dispositivos moveis, smartphone e tablet, muito mais adequado os codecs com perdas, pois adaptam-se as limitaes destes dispositivos e o facto de os displays serem de reduzidas dimenses ajuda a tornar imperceptveis as perdas provenientes destes codecs. No contexto de utilizao em PC e em SmartTVs, partindo do pressuposto que se dispem de uma ligao de banda larga mais lgico utilizar codecs de sem perdas, pois no h (em princpio) restries de banda larga, e a maior resoluo e dimenso dos display exige maior qualidade de imagem.

Formatos de CoDecs
Os codificadores/descodificadores podem ter diversos formatos de vdeo, alguns concebidos para fins especficos como por exemplo na apresentao de vdeo atravs da Internet ou muito direccionados aos dispositivos mveis. Em seguida iro ser abordados os formatos de maior relevncia: MPEG: Abreviatura de Motion Picture Expert Group muita vezes confundido com um formato de vdeo. A Motion Picture Expert Group um grupo de desenvolvimento de padres de codificao e descodificao baseando-se nas normas ISSO/IEC. Este grupo desenvolveu 4
11/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

formatos de vdeo ao longo do tempo com o objectivo de melhor a qualidade e o nvel de compresso. Actualmente o mais utilizado o MPEG-4. Este formato foi introduzido em 1998 mas continua em desenvolvimento e encontra-se dividido em vrias partes. Actualmente existe uma grande utilizao do formato MPEG-4 devido a sua utilizao em codecs como H264/x264 e em formatos de DVDs de ltima gerao como HD DVD e o Blu-Ray. A diferena entre o H264 e x264 apenas tem a ver com questes legais, o H264 a verso do codec proprietria, enquanto a verso x264 uma reimplementao open source licenciada sobre GNU GPL. FLV: Flash Vdeo o formato de vdeo proprietrio da Adobe. acedido utilizando o Abode Flash Player sendo essa a sua grande vantagem em relao aos restantes formatos. Estudos realizados em 2010 indicam que me o Adobe Flash Palyer est instalado em 98% dos computadores que acendem Internet. Os arquivos de vdeo em .FLV utilizam uma variao do padro H.263. RM: Real Media o formato proprietrio da Real Networks, desenvolvido especificamente para a distribuio de contedos multimdia online. RMVB: Real Media Variable Bit rate tambm desenvolvido por a Real Networks. Este formato de vdeo baseado no RM mas apresenta uma taxa de bits varivel possibilitando um ajustamento dessa taxa de acordo com a complexidade das imagens de cada frame. AVI: Sigla de udio Vdeo Interleave, formato criado pela Microsoft e que um dos mais populares a nvel mundial, muito por influncia da grande expanso dos sistemas operativos da Microsoft que reproduzem este formato nativamente sem ser necessrio a instalao de qualquer programa. Como o prprio nome indica este formato um container de dados de vdeo e udio que entrelaa a reproduo do som e da imagem. Este container de vdeo no utiliza qualquer tipo de codec de compresso. WMV: Significa Windows Media Video e o formato proprietrio da Microsoft, desenvolvido para ser utilizado em vdeos apresentados atravs de Streaming, competindo directamente com o formato da RealNetworks o RealVideo. baseado em uma coleco de codecs que podem ser usados pelo Windows Media Player para reproduzir arquivos codificados em vrios formatos. ASF: Advanced Streaming Format a resposta da Microsoft ao formato de streaming da Real Networks, um container para formatos da empresa como o WMV e o WMA, ficheiros codificados com MPEG-4 tambm podem utilizar este container como base se forem direccionados para o Streaming. Smooth Streaming: O Smooth Streaming detecta dinamicamente a largura de banda e estado do processador que o PC consumidor dos conteudos dispe. De uma forma transparente para este, faz a troca em tempo prximo do real, da qualidade do vdeo recebido pelo player de video, decidindo assim qual o bit rate do prximo bloco de vdeo a ser pedido ao servidor que melhor se enquadra com as possibilidades do player. Uma das grandes vantagens do Smooth Streaming face aos restantes a forma como so guardados os ficheiros que contm os
12/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

contedos a transmitir. Ao contrrio de outras solues, esta no divide os ficheiros originais fisicamente, ou seja, no servidor em vez de estarem guardados pequenos ficheiros para cada vdeo, esto guardados os vdeos completos e sem qualquer tipo de marcao, sendo mesmo possvel reproduzir um desses ficheiros de forma normal. Nesta soluo, a diviso feita virtualmente de acordo com a necessidade dos clientes, melhorando significativamente o processo de gesto de ficheiros. De realar existem diferentes ficheiros com qualidade distinta para o mesmo contedo vdeo de modo a possibilitar a adaptao da qualidade do vdeo ao estado da rede.

Constituio dos Ficheiros Video


Anteriormente foram descritos diversos elementos que constituem um vdeo, sendo agora realizada uma breve anlise dos seus constituintes internos. Os ficheiros de video,na sua maior parte, tm agregado um ficheiro de udio. No entanto os utilizadores por norma no vm pares de ficheiros video mais respectivo audio. Tal facto deve-se ao ficheiro de audio estar embutido conjuntamente com o ficheiro de video, evitando assim a existncia de dois ficheiros para o mesmo video com som. Desta forma torna-se mais fcil a manipulao e manuseamento de quem cria, edita e visualiza os videos em formato digital. Par tal ocorrer utilizado um recipiente video (do ingls container). Esse container so metadados referentes ao video e audio e a forma com que esto interligados. Os metadados do container podem ainda ser mais complexos e guardar informao sobre diversas faixas de audio para o mesmo video, no caso de vdeos dobrados em diversos idiomas e ainda informao sobre legendas, caso o video as contenha. Os containers podem ser divididos em dois tipos distintos, os com intervalos e os sem intervalos. Na verso com intervalos os dados de video e os dados de audio esto intercalados em pequenos blocos intercalados.

Vdeo

udio

Vdeo

udio

Vdeo

udio

Figura 5: Esquema de Vdeo com intervalos

A Figura 5 representa um esquema da distribuio dos bytes de informao ao longo de um ficheiro de video e audio no modo com intervalos.

13/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

A vantagem de ter ficheiros de video e audio intercalados com intervalos pensada sobretudo na sua distribuio e transmisso. Desta forma tm-se a vantagem de no ser necessrio transmitir todo o ficheiro previamente para permitir a sua reproduo. medida que o video transmitido sequencialmente, so sempre enviados pequenos conjuntos de video e de audio quase em simultneo, permitindo que o video ao ser recebido possa ser logo exibido, pois so recebidos pequenos segmentos de video com o respectivo troo de udio. J no caso dos videos sem intervalos, so mais simples estruturalmente, no entanto a sua transio por via online menos prtica, pois obriga a aguardar a totalidade do download do video para permitir a sua correcta reproduo com a componente vdeo e udio.

Vdeo
Figura 6: Esquema de Vdeo sem intervalos

udio

A Figura 6, por sua vez representa esquematicamente a distribuio dos bytes de informao num container sem intervalos. Nestes casos, a separao entre os blocos de video e de udio total, no se encontrando intercalados.

De seguida na Tabela 1 so apresentados os containers de vdeo mais difundidos e utilizados.

Tabela 1: Containers mais comuns

RM MPEG FLV ASF

Ogg QuickTime F4V 3GP

Mp4 Matroska DVR-MS

MPEG2 IFF AVI

No inicio de cada container, antes dos bytes referentes aos dados de adio e de video, existe um conjunto de bytes reservados ao header do container. Esse header onde so representados de uma forma bem estruturada os diversos parmetros referentes ao prprio container e aos contedos agregados, nomeadamente o video e o audio. O Header dos containers no facilmente legivel, pois por norma, est representado em binrio, ao nvel dos bits. Na Tabela 2 apresentado um exemplo muito simplificado e traduzido de um header. Os caracteres imperceptveis apresentados, representam valores e offsets em binrio.

14/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Tabela 2: Exemplo simplificado de Header de container no formato Mp4

ftypisom isomiso2avc1mp41 free B Mmdat {EH, #x264 - core 94 r1583 7608d73 H.264/MPEG-4 AVC codec - Copyleft 2003-2010 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=22.0 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.41 aq=1:1.00 we + <l Nb, M j E@ 3w libfaac 1.26.1 (Aug 16 2008) UNSTABLE B

A definio dos campos do header em binrio, obedece a regras rgidas. O seu cumprimento fundamental para manter a integridade de todo o ficheiro container com o vdeo e o udio.

Tabela 3: Mapa de alocao dos bits no header do container AVI

Offset 0 4 8 12 16 20 24 28 32 36 40 44 48 52

Tamanho 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Descrio Tempo de delay entre frames em microsegundos Taxa de transmisso do AVI Padding de multiplo tamanho Parametros das Flags Nmero de frames do Video Nmero de frames do preview Nmero de streams de dados (1 ou 2) Tamanho sugerido em bytes do buffer de reproduo Largura da imagem de video em pixels Altura da imagem de video em pixels Escala temporal Taxa ed transmisso Momento de inicio Tamanho dos blocos AVI em unidades de tempo

Na Tabela 3 apresentado o mapa de offsets e tamanhos em bits dos headers dos containers do formato AVI.

15/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Tcnicas de Encoding
O encoding de vdeos para permitir a sua distribuio em diversos formatos e por diversas vias pode seguir trs caminhos principais (i) pode ser efectuado com recurso a componentes de hardware especializados na tarefa , ou (ii) pode ser efectuado por via de programas de software, ou ainda (iii)recorrendo Cloud

Encoding por Hardware


O enconding por hardware como o nome indica, efectuado por um dispositivo fsico especializado nessa funo. Como principais vantagens tem a performance, o que pode ser algo crtico quando se pretende a uma transmisso live dos contedos vdeo quase em simultneo com a sua captura. Uma das desvantagens do encoding por hardware em relao via por software o facto de ser menos flexvel. Ou seja, o dispositivo est construdo para fazer o encoding em alguns formatos, se se pretender realizar o encoding num formato no contemplado, no h nada a fazer, o dispositivo simplesmente no o faz. Tambm menos evolutivo, pois constantemente so lanadas novas subverses dos formatos de vdeo e o encoder por hardware s ter suporte para subverses existentes at ao seu lanamento. Subverses novas e posteriores no sero contempladas. Alguns dispositivos permitem efectuar updates do seu firmware e acompanhar parte da evoluo dessas subverses de formatos. No entanto essa evoluo no assegurada para sempre e so muito poucos os dispositivos que o permitem fazer, pois apenas os dispositivos com chipset mais caro o permite fazer. Alguns desses dispositivos conectam-se por via de USB, mas a maioria obriga a uma instalao interna no computador, pois a sua interface de conexo por via de slot PCI ou PCIe. Na Figura 7 esquerda apresentado um exemplo de encoder por hardware AverMedia PVR-150 com interface PCI, j na Figura 7 direita apresentada uma Hauppauge HVR-2250 com a capacidade de realizar dois encodings em simultneo, neste caso a interface por via de PCIe. Estes encoders internos so mais utilizados no segmento profissional. Na Figura 8 so apresentados dois exemplos de encoders externos, com menos capacidade de processamento e destinados ao mercado domestico. Nestes casos no necessrio instalar nenhum componente de hardware no interior do computador. J a interface efectuada com um simples cabo USB 2.0.
16/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 7: Exemplos de encoders internos

Figura 8: Exemplos de encoders externos

Em termos de concluso o encoding por hardware bastante til e quase indispensvel a determinados nichos de mercado. No entanto a sua aplicabilidade no contexto do projecto TV.COM bastante limitada devido ao facto se ser pouco flexvel, tanto a nvel de formatos e de configuraes dos vdeos processados.

17/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Encoding por Software


O encoding por software, como o nome indica resume-se a um programa de software que foi desenvolvido especificamente para esse fim e que funciona em qualquer computador pessoal. Desta forma no requerido nenhum hardware especifico, no entanto a sua performance esta directamente relacionada com a performance do computador em que o programa de encoding esta a ser executado. O processo de encoding pela via de Software sempre mais lento que por via de hardware, no entanto existe o compromisso de se perder na performance mas ganhar bastante na flexibilidade. Essa flexibilidade tem a ver com os formatos em que se pretende efectuar o encoding ou mesmo com a escolha da prpria aplicao.

Actualmente existe um nmero bastante elevado de softwares de encoding, desde solues gratuitas e open source a solues pagas com suporte tcnico. Desde aplicaes que se limitam a efectuar um nico tipo de encoding a aplicaes com autenticas bibliotecas de codecs que permitem efectuar encodings em dezenas de formatos diferentes. At s aplicaes mais simples para o utilizador inexperiente sem conhecimentos tcnicos de codecs e parmetros de vdeos em que apenas tm a opo de escolher o dispositivo para o qual pretende efectuar o encoding. Existindo tambm o outro extremo de aplicaes, que permitem configurar dezenas de parmetros das definies do encoding do vdeo e que necessitam obrigatoriamente, de um utilizador bastante experiente nestes contextos. Outra diferena importante que acaba por ser uma linha separadora entre as diversas aplicaes a possibilidade destas no serem manuseadas exclusivamente e apenas, por via manual atravs da interface grfica da aplicao. uma funcionalidade bastante til e que apenas uma minoria das aplicaes dispes que a possibilidade de serem executadas por via de consola de comandos. Esta funcionalidade, embora passe despercebida para o utilizador comum, vital para quando se pretende construir um sistema ou plataforma (semelhante ao TV.COMmunity) que efectue automaticamente o trabalho de encoding sem necessitar da interveno de um operador humano. Com esta funcionalidade possvel criar programas e rotinas que evoquem automaticamente o encoder sempre que chega um novo vdeo plataforma, garantido assim que o repositrio de vdeos se encontra normalizado e com os encodings pretendidos.

No contexto do TV.COM a abordagem de encoding por via de Software aquela que se adapta melhor. Tal permite mais flexibilidade tanto nos formatos como nos diversos parametros de encoding necessrios para satisfazer as necessidades dos diversos dispositivos de consumo de vdeo.

18/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Dentro da grande oferta dos encoders por software os que tm maior intresse para o TV.COM so aqueles que permitem a sua execuo por via de linha de comandos. Desta forma ser possivel automatizar os procedimentos de encoding e evitar trabalho manual e repetitivo por parte dos administradores da plataforma.

19/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Encoding na Cloud
Esta abordagem de realizar encoding de videos, requere a utilizao de servios de terceiros. Esses servios so processados como SaaS (Service as a Service). Neste caso o dono dos contedos de video que pretende realizar o encoding, no necessita de nenhum hardware ou software especializado. Basta efectuar o upload dos videos para a Cloud, aguardar, e posteriormente realizar o download dos videos j nos encodings pretendidos. Esta alternativa de encoding adequada a utilizadores que queiram fazer um enconding pontual de um elevado nmero de contedos de video e no queiram investir em infraestruturas e plataformas de software e hardware para realizar esse processamento de encoding in the house. Outra situao semelhante em que se adequa a utilizao deste tipo de servios quando se detm uma plataforma de video e que devido procura no se consegue dar resposta ao pedidos de encoding in the house, sendo necessrio recorrer a servios externos. Por norma, os servios de encoding na Cloud so pensados para quantidades massivas de videos, sendo a sua quantidade medida em TeraBytes. A ttulo de exemplo, na Tabela 4, so apresentados os trfegos e respectivos preos praticados por um dos fornecedores de renome de servios deste tipo, nomeadamente o Windows Azure.

Tabela 4: Exemplo de trfegos e preos de encoding praticados pelo Windows Azure

Fluxo de dados (Up/Download) Primeiros 5 TB /Ms Seguintes 15 TB / Ms Seguintes 30 TB / Ms Seguintes 50 TB / Ms Mais de 100 TB / Ms

Preo 1,99 $ / GB 1,60 $ / GB 1,29 $ / GB 1,02 $ / GB Preo por consulta

20/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Anlise a ferramentas de Encoding por Software


No captulo anterior foi concludo que a soluo mais adequada ao contexto do TV.Community seriam os encoders por Software. No presente captulo tendo em conta essa concluso, sero analisados alguns softwares de encoding.

Microsoft Expression Encoder


O Expression Encoder uma aplicao desenvolvida pela Microsoft. em simultneo um editor de vdeo e um encoder. O seu grau de dificuldade para o utilizador comum considerado mdio, pois o utilizador s tm de configurar parmetros avanados de codificao se assim o desejar. Pode tambm recorrer a templates pr-definidas que abstraem complexidade. Por defeito, o Expression Encoder permite fazer o encoding de vdeos para as famlias de codecs proprietrios H.264 e VC-1. A Figura 9 mostra uma viso geral da aplicao. Onde se pode destacar no topo esquerda a maior rea da aplicao que destinada pr-visualizao do vdeo que se pretende editar ou efectuar encoding. Por baixo esquerda encontram-se diversos controlos de edio de vdeo e que no sero analisados em profundidade.

21/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 9: Viso geral do Expression Encoder

Todo o lado direito da aplicao ocupado por diversos campos sobre o formato e os parmetros de encoding. A, tambm onde se encontram os templates predefinidos e que permitem ao utilizador escolher diversos encodings tendo em conta apenas o dispositivo a que o vdeo se destina. Como possvel observar na Figura 10 o utilizador pode escolher templates de encodings genricos baseado apenas na qualidade, nomeadamente na melhor qualidade o mais rpio ou Intermdio. No separador de Encoding for Devices, j se podem escolher templates de encoding especificos e optimizados para diferentes dispositivos, como por exemplo, as diferentes verses do Zune ou da Xbox. O utilizador ao passar com o rato nesses templates apresentado uma tooltip descritiva com dados mais tcnicos sobre o encoding que ser efectuado.

22/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 10: Viso dos templates de encoding j pr-definidos

Visvel na Figura 10, no topo, so os dois separadores, System que contem os templates pr-definidos e j apresentados, enquanto no separador User, so apresentados os templates criados e definidos pelo utilizador. Quando o utilizador cria um novo template, apresentado um conjunto de opes gerais, como apresentado na Figura 11, essas configuraes no dizem directamente respeito s configuraes de encoding, mas sim a questes especficas do vdeo, por exemplo se este ter metadados, thumbnails, marcadores, overlays, etc. Mas o mais relevante o que surge de seguida (Figura 12), onde possvel escolher o formato do encoding de vdeo e de udio.

23/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 11: Processo de criao de templates definidas pelo utilizador

Figura 12: Escolha (sem templates) dos formatos de encoding

24/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Por fim, apresentado um formulrio bastante complexo dos diversos parmetros de encoding do formato anteriormente escolhido, como visvel na Figura 13. Aqui possvel configurar parmetros to diversos como o nmero de passagem do encoding, o bitrate, o nmero de frames, a resoluo, a proporo do vdeo e outros parmetros avanados.

Figura 13: Definio manual (sem templates) dos parmetros de encoding

25/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Microsoft Expression Encoder SDK

O Expression Encoder SDK uma API que permite aceder e utilizar todas as ferramentas e potencialidades do Expression Encoder por via programtica. Desta forma possvel automatizar e sistematizar processos de encoding. Como a sua utilizao feita atravs de linguagem de programao, um utilizador mesmo que experiente, no est habilitado a trabalhar com esta ferramenta, sendo necessrio os conhecimentos tcnicos de um programador. A Figura 14 mostra um exemplo dessa linguagem.
using (Job job = new Job()) { // Create media items MediaItem media1 = new MediaItem(@"c:\video.mp4"); // add overlay and set type of duration media1.OverlayFileName = @"c:\overlay.avi"; media1.OverlayLayoutMode = OverlayLayoutMode.WholeSequence; // Add markers and scrips TimeSpan midpoint = TimeSpan.FromMilliseconds(media1.FileDuration.TotalMilliseconds * 0.5); media1.Markers.Add(new Marker(midpoint, "Midpoint")); media1.Markers[0].GenerateThumbnail = true; media1.ScriptCommands.Add(new ScriptCommand(midpoint, "caption", "Half way through!")); // Add trailer to media and adjust original files end time so total file is same duration as original media1.Sources[0].Clips[0].EndTime -= media1.Sources[1].MediaFile.Duration; // Set thumbnail media1.ThumbnailMode = ThumbnailMode.Custom; media1.ThumbnailTime = TimeSpan.FromMinutes(media1.FileDuration.TotalMinutes * 0.75); // add mediaItems to job and encode job.MediaItems.Add(media1); job.Encode(); Figura 14: Exemplo da linguagem do Expression Encoder SDK

26/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Any Video Converter


O Any Video Converter um encoder que foi escolhido para analise por representar a classe de encoders muito simplificados e muito faceis de usar por qualquer utilizador. No entanto, o facto de ser de facil utilizao no quer dizer que seja limitado ou com poucas funcionalidades, muito pelo contrrio. O Any Video Converter gratuito e desenvolvido pela AVCLabs e funciona em funciona em ambientes Windows e Mac OS X. O nmero de formatos em que possvel realizar encodings nesta aplicao enorme, como pode ser observado na Tabela 5.

Tabela 5: Formatos de Encoding do Any Video Converter

AVI FLV MOV MP4 MPG M2TS MTS RMVB AVCHD

MKV WebM(V8) QT WMV VOB 3GP 3GPP2 DivX

O que torna fcil a sua utilizao o facto do utilizador no precisar de ter qualquer conhecimento sobre formatos de encoding nem sobre os diversos parmetros tcnicos de cada formato. Com esta aplicao basta saber qual o dispositivo onde os vdeos vo ser reproduzidos, qua a aplicao trata do resto. No entanto a aplicao, no caso de um utilizador mais experiente, permite que seja efectuado alteraes em dos diversos parmetros para alm dos templates pr-definidos.

Na Figura 15 possvel observar o aspecto geral da aplicao, onde no topo esquerda aparecem apenas 3 botes de grandes dimenses que permitem abrir um vdeo, obt-lo a partir de uma URL e o boto para efectuar a converso. Assim que se abre um vdeo, a principal rea da aplicao transformase numa lista de vdeos a converter. Desta forma possvel criar um lote de vdeos e efectuar em conjunto a sua converso para o formato pretendido.
27/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

No topo do lado direito, encontra-se um player que permite visualizar o vdeo que vai ser efectuado o encoding. Nesse player, j durante o processo de encoding, tambm possvel ver em que fotograma vai o processo de encoding. Do lado direito em baixo, aparece uma grelha com as diversas definies de encoding, permitindo assim que se efectuem ajustes de pormenor ao template escolhido.

Figura 15: Viso geral do encoder Any Video converter

Na Figura 16 do lado esquerdo apresentado o conjunto de famlias de dispositivos em que os diversos templates foram agrupados. H a destacar a famlia de templates para HTML 5, que j contem os diversos formatos possveis de embeber em pginas Web com video nativo em HTML 5. J no lado direito da Figura 16, so apresentados os diversos templates dentro de uma famlia de dispositivos. No caso deste exemplo, so apresentados os dispositivos da famlia Apple, onde possvel ver templates para diversas geraes de iPhones, iPads, iPods e at para Apple TV. Esta aplicao no dispe de consola por linha de comandos, desta forma no possvel utiliza-la automaticamente em rotinas de encoding.

28/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Figura 16: Templates agrupados pelas principais famlias de dispositivos

29/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

FFmpeg
O FFmpeg um encoder de vdeos gratuito e open source sobre licenas GPL ou LGPL consoante as funcionalidades activadas. Esta ferramenta funciona em diversos sistemas operativos; Mac OS X, Windows, AmigaOS e nas mais variadas distribuies de Linux. Tambm funciona em diversas arquitecturas para alem do x86/x86-64, nomeadamente em PowerPC, ARM, DEC Alpha, SPARC e MIPS. O FFmpeg um Software um pouco diferente dos j anteriormente analisados, pois desprovido de qualquer interface grfica. Toda a interaco com esta ferramenta efectuada por via de linha de comandos. O que a torna elitista no que diz respeito aos seus utilizadores, e ficando fora do alcance do utilizador comum. Na Figura 17 possvel visualizar o aspecto do FFmpeg a realizar o encoding de um vdeo.

Figura 17: Exemplo de processo de Encoding por via do FFmpeg


30/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

A nvel de formatos de encoding suportados o FFmpeg suporta praticamente tudo o que existe, tendo uma coleco notvel de formatos, como possvel observar na Tabela 6. Em relao existncia de templates pr definidos o FFmpeg no tem qualquer funcionalidade nesse sentido.
Tabela 6: Formatos suportados pelo FFmpeg

Asus v1 e v2 AVS CamStudio Cinepak Creative YUV Dirac DNxHD Duck TrueMotion v1 e v2 Flash Screen Video FFV1 H.261 H.263 H.264/MPEG-4/x264 AVC Huffyuv id RoQ Video Intel Indeo Lagarith LOCO Mimic MJPEG MPEG-1 MPEG-2/H.262 MPEG-4 Part 2

DivX e Xvid On2 VP3 On2 VP5 On2 VP6 On2 VP8 Apple ProRes Apple QuickDraw QuickTime RealVideo RV10 e RV20 RealVideo RV30 e RV40 Smacker video Snow Sorenson SVQ1 Sorenson SVQ3 Theora Sierra VMD Video VMware VMnc Westwood Studios VQA WMV version 7 and 8 WMV version 9 / VC-1 WMV Image WMV Screen 1 and 2 Wing Commander/Xan Video

Embora o FFmpeg no tenha interface grfica, de seguida apresentado um exemplo de comando de consola que o evoca e executa o re-encoding de um vdeo no formato WMV para o formato Webm:

ffmpeg -i C:\Video1.wmv -b 2000k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30 C:\Video1_out.webm

Este exemplo muito simplista e apenas indica que queremos converter de wmv para webm com um bitrate de 2000 kbs e com 30 frames por segundo. Em relao ao udio, utilizado o formato vorbis com
31/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

bitrate de 160 kbs. Neste exemplo, como nada referido em relao resoluo de sada, o vdeo obtido no novo formato ter a mesma resoluo do vdeo original. Poderiam ser dados exemplos muito mais complexos, mas que devido sua complexidade tcnica no faz sentido serem apresentados no presente relatrio.

32/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

VLC
O VLC uma aplicao muito conhecida, mas como sendo um player multimdia bastante completo e capaz de efectuar a reproduo de vdeos em qualquer formato. O VLC desenvolvido e mantido pelo projecto VideoLAN, gratuito, open source e sobre a licena GPL V2 e LGPL. Embora a maior parte dos utilizadores desconhea, o VLC tambm uma ptima ferramenta de encoding. As aces de encoding podem ser efectuadas por via de interface grfica ou por consola de comandos. A nvel de formatos suportados, o VLC suporta praticamente todos os formatos existentes, para consulta desses formatos basta consultar a Tabela 6 dos formatos suportados pelo FFmpeg, pois estas duas ferramentas suportam os mesmos formatos devido a partilharem a biblioteca libavcodec.

Figura 18: Escolha de template de encoding no VLC

Na Figura 18, possvel visualizar a primeira etapa de encoding por via da interface grfica. Onde se insere o video de origem, o destino para o vdeo de sada, e por fim a escolha do template de encoding.

33/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Na drop box expandida visvel na mesma figura possvel ver um conjunto de diversas combinaes entre codecs de vdeo e udio que o VLC j tem disponveis e pronta a utilizar. Desta forma o VLC pode ser considerado uma ferramenta de encoding acessvel para o utilizar mdio. Ao lado da drop box existe trs botes. O mais direita permite criar um novo template de encoding. O do meio, permite remover o template. Por fim, o boto mais esquerda permite editar um template j existente, e aceder a configuraes mais tcnicas. Ao aceder a esse menu, obtemos o que visvel na Figura 19. Ai, podemos editar o encapsulamento do vdeo, as propriedades do formato de vdeo e de udio, passando pelos habituais frame rates, bitrates, resolues, etc.

Figura 19: Configurao avanada do encoding do VLC

Para realizar o encoding por via de linha de comandos no VLC, o grau de exigncia tcnica aumenta bastante. Como visvel no exemplo seguinte.

vlc -I dummy "C:\Video1.wmv" :sout= '#transcode{ vcodec=webm, vb=2000, acodec=vorbis, ab=160, scale=1, channels=2, deinterlace, audio-sync}:std{ access=file, mux=ps ,dst="C:\Video1_out.web"}' vlc://quit
34/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

O exemplo apresentado equivalente ao comando de consola apresentado na ferramenta FFmpeg. De onde facilmente se observa que na verso VLC ainda um comando mais longo e mais complexo. De seguida apresentado novamente o comando do FFmpeg para fins de comparao.

ffmpeg -i C:\Video1.wmv -b 2000k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30 C:\Video1_out.webm

35/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Criao de planos de Template / Encoding


Durante o processo de distribuio e entrega de contedos de vdeo, um encoding adequado extremamente importante, pois onde se pode obter bons ou maus resultados para o consumidor final dos contedos. O enconding tem de fazer parte de um planeamento complexo, onde tm de ser equacionadas diversas variveis.
Tabela 7: Variveis de anlise para planeamento de Encoding

Urgncia do encoding Largura de banda de transmisso disponvel Resoluo de display alvo Formatos suportado Quantos templates diferentes de encoding sero necessrios

Urgencia do encoding: Tm de ser tido em conta a durao mdia dos vdeos a converter e a urgncia, ou no, desse encoding ficar terminado. Por exemplo, um encoding para transmisso live pretende-se que seja o mais clere possvel. No caso de ser um encoding para colocar vdeos num repositrio, tal j no to crtico. Este factor de extrema importncia pois pode implicar custos e gastos muito diferentes na concepo da plataforma. Se for necessrio encoding para distribuio live necessrio obter hardware especifico com custos elevados para essa tarefa. J no cenrio menos crtico de adicionar ficheiro a um repositrio, o encoding pode ser feito por via de software, que mais barato e flexvel.

Largura de banda de transmisso disponvel: outro factor muito importante, pois sempre que se idealiza um canal de distribuio de vdeo imperioso ter conhecimento da via que ir transportar o vdeo at ao consumidor final. Desta varivel sairo concluses importantes sobre o Bit Rate do encoding do vdeo, de modo a adaptar-se s necessidades do consumidor. Levando ao extremo, no faz sentido tentar enviar para um dispositivo mvel com conexo 3G precria um vdeo em Full HD com elevado bit rate.

36/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

No caso de existirem diversos tipos de consumidores dos contedos (com diferentes larguras de banda), que equacionar a hiptese de ter diversos templates de encoding, para assim adaptar os contedos de vdeo a um pblico mais abrangente. Desta forma a anlise desta varivel, acaba por ser uma premissa para o estudo da varivel Quantos templates diferentes de encoding sero necessrios

Resoluo de display alvo: A resoluo dos displays dos consumidores alvo tambm outro factor que de extrema importncia conhecer antes de realizar o encoding. Desta forma consegue-se optimizar o encoding para a resoluo pretendida. Na anlise desta varivel tambm se pode concluir que so necessrios diversos templates. Desta forma a anlise desta varivel tambm contribui para a varivel Quantos templates diferentes de encoding sero necessrios. Pode-se questionar se existir um tamplate de encoding para todos os tipos de resoluo em que os consumidores possam visualizar os contedos. Mas tal no necessrio, pois seria demasiado complexo e demorado de efectuar dezenas de encodings para exaustivamente todas as resolues. O que por norma se efectua, agregar os dispositivos em famlias, e ento feito um encoding tendo em conta a resoluo associada a cada famila. Por exemplo a famlia dos SmartPhones, em que existem centenas de dispositivos com diversas resolues. Nestes casos efectuado apenas um encoding com uma resoluo representativa de toda a famlia.

Formatos suportado: Para os formatos suportados efectuada uma abordagem semelhante das variveis da resoluo e das larguras de banda disponveis, onde tem de ser efectuado um estudo prvio sobre o pblico alvo. Tm de ser estipulado quais os formatos em que se quer que os contedos sejam exibidos e que satisfaam uma grande percentagem do pblico alvo. A anlise desta varivel tambm contribui para a varivel Quantos templates diferentes de encoding sero necessrios. Por exemplo tendo em conta apenas o contexto restrito dos browsers que suportam vdeo em HTML 5 j existe uma grande diversidade de formatos que podem ser suportados ou no pelos diferentes browsers. Por exemplo na tabela seguinte possvel observar a heterogeneidade de formatos suportados pelos diversos browsers

37/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Tabela 8: Compatibilidade video HTML 5 nos diversos browsers

Browser Internet Explorer 9+ Chrome 6+ Firefox 3.6+ Safari 5+ Opera 10.6+

MP4 Sim Sim No Sim No

WebM No Sim Sim No Sim

Ogg No Sim Sim No Sim

Da tabela podemos concluir que se o nosso publico alvo fossem os utilizadores de browsers com suporte para HTML 5, necessitvamos de efectuar os encoding em pelo menos dois formatos diferentes, nomeadamente em MP4 e em WebM ou Ogg. Desta forma estava salvaguardado que os utilizadores dos 5 principais browsers poderiam aceder aos contedos. Exerccio semelhante ter de ser realizados noutros contextos. Por exemplo se se pretendesse visualizar os contedos em dispositivos moveis do tipo smartphone, teria de ser efectuado um levantamento semelhante em relao aos principais sistemas operativos mveis (Android, iOS, Sybian) e os respectivos formatos de vdeo suportados. No entanto, neste caso a tarefa torna-se mais complicada, pois existe uma grande fragmentao de formatos suportados consoante as diversas verses do mesmo sistema operativo.

Quantos templates diferentes de encoding sero necessrios A resposta a esta varivel j foi dada em parte no processo de obteno de respostas s variveis Largura de banda de transmisso disponvel, Resoluo de display alvo e Formatos suportados. A resposta a cada uma destas variveis pode necessitar de vrios encodings diferentes, e por fim necessrio fazer a unio e minimizao de encodings necessrios para suprimir todas as necessidades.

38/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Templates de encoding
Partindo do pressuposto que a plataforma do TV.COMmunity ser polimrfica e adaptar-se- a diferentes canais, formas de consumo e dispositivos (e.g. SmartTVs, PC Web, Tablets, Smartphones) e tendo em conta as diversas caractersticas de vdeo j analisadas no presente documento, podemos concluir que necessrio um conjunto de diferentes templates de encoding para suplantar os diversos formatos de consumo. Em consequncia, neste presente captulo, sero apresentados um conjunto de templates que serviro de guia para a gerao dos diversos encodings. Antes de descrever esses templates necessrio apresentar os diversos ambientes representativos das diversas fontes de consumo do TV.COMmunity. Assim, aps anlise e reflexo os ambientes estipulados so: Consumo Web HD, Web SD, Tablets e Smartphones.

Web HD Este template destina-se a visualizao de contedos vdeo por via de SmartTVs ou computadores pessoais com boa ligao internet, boa capacidade de processamento e displays full HD. Template: Video: Codec: x264 Resoluo: 1920x1080 BitRate (Kbts): 1500 FPS: 25 Audio: Codec: ac3 BitRate (Kbts): 192 Amostragem: 48 KHz Canais: 2

Web SD Este template destina-se a visualizao de contedos vdeo por via de SmartTVs ou computadores pessoais com uma ligao razovel internet, razovel capacidade de processamento e displays normais.

39/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Template: Video: Codec: x264 Resoluo: 640x480 BitRate (Kbts): 768 FPS: 25 Audio: Codec: ac3 BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

Ambiente Tablet: Este template destina-se a ambientes de visualizao de contedos vdeo por via de tablets com uma ligao mediana internet, boa se estiver disponvel uma ligao wireless, razovel se estiver disponvel uma ligao 3G. No entanto, e tendo em conta a fragmentao deste segmento, so apresentados trs sub templates que se especializam em trs vertentes principais do mercado Tablet. Essas trs vertentes so os iPad sem display retina, iPads com display retina e um tablet de 10 polegadas da familia Android. Template iPad2 e anteriores: Video: Codec: x264 Resoluo: 1024x480 BitRate (Kbts): 768 FPS: 25 Audio: Codec: acc BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

Template iPads com display retina: Video: Codec: x264 Resoluo: 1280x720
40/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

BitRate (Kbts): 1000 FPS: 25 Audio: Codec: acc BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

Template Android Samsung Galaxy Note 10.1: Video: Codec: x264 Resoluo: 1280x800 BitRate (Kbts): 1000 FPS: 25 Audio: Codec: acc BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

Ambiente Smartphone: Este template destina-se a ambientes de visualizao de contedos vdeo por via de Smartphones com uma ligao mediana internet, boa se estiver disponvel uma ligao wireless, razovel se estiver disponvel uma ligao 3G. No entanto, este segmento ainda est mais fragmentado que o mercado dos Tablets. Assim, so apresentados trs sub templates que se especializam em trs vertentes principais do mercado. Nomeadamente os iPhone sem retina display, os iPhone com retina display e os Smartphones da famlia Android.

Template iPhone sem retina display: Video: Codec: x264 Resoluo: 480x320 BitRate (Kbts): 512 FPS: 25 Audio:
41/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Codec: acc BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

Template iPhones com display retina: Video: Codec: x264 Resoluo: 960x640 BitRate (Kbts): 1000 FPS: 25 Audio: Codec: acc BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

Template Android Samsung Galaxy S II: Video: Codec: x264 Resoluo: 800x480 BitRate (Kbts): 1000 FPS: 25 Audio: Codec: acc BitRate (Kbts): 128 Amostragem: 44 KHz Canais: 2

42/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Testes s Templates de Encoding


No captulo anterior foram apresentadas diversos templates padro tendo em conta o universo de plataformas alvo do TV.COMmunity. No presente captulo sero apresentados os testes efectuados com as diversas plataformas apresentadas no Captulo Anlise a ferramentas de Encoding por Software de modo a obter mtricas para os templates pretendidos. Desta forma ser possvel compara diferenas substanciais de performance entre as diversas ferramentas de encoding. O computador utilizado para testes tm as seguintes caractersticas: Arquitectura: x86/64 bits Sistema Operativo: Windows 8 Processador: Intel Core 2 Duo T7500 @ 2.2 GHz Memria RAM: 3 GB

Por sua vez o video utilizado para os testes dos diversos templates nas diversas ferramentas foi o trailer da curta de animao Sintel. Os resultados obtidos podem ser observados na Tabela 9 e na Figura 20.

Tabela 9: Resultados do reencoding com os diversos templates nas diversas ferramentas

FFmpeg Template Ambiente Web HD Web Web SD iPad2 Ambiente iPad Retina Tablet Tablet Android iPhone Ambiente iPhone Retina SmartPhone SmartPhone Android Tempo (s) 224 35 56 98 111 24 70 44

VLC Tempo (s) 235 45 66 109 122 34 81 54

Any Video Expression converter Encoder Tempo (s) Tempo (s) 243 52 73 117 131 41 88 62 212 30 49 89 99 21 64 39

43/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Comparao dos diversos templates nas diversas ferramentas de Encoding


250 200 150
Tempo (s)

100 50 0

FFmpeg VLC Any Video converter Expression Encoder

Figura 20: Dados da tabela de comparao de encoding na forma de grfico

A nvel de concluses, tanto da Tabela 9 e da Figura 20 facilmente se observa que a ferramenta de encoder mais rpida o Expression Encoder. Tal facto pode ser explicado por ser a nica ferramenta que utiliza o codec H.264. Todas as outras utilizam a sua reimplementao open source x264. As diferenas de tempo observadas podem ter a ver com o facto da verso proprietria ter melhores optimizaes nos algoritmos de encoding. Em relao s ferramentas que utilizam a implementao open source x264, nomeadamente o FFmpeg, VLC e Any Video Converter, o mais rpido o FFmpeg, sendo seguido pelo VLC e por ltimo pelo Any Video Converter. Como estas trs aplicaes utilizam a mesma biblioteca base de codecs, a diferena de performance pode ser atribuda s interfaces grficas sobre essas bibliotecas, visto o FFmpeg ser o mais rpido e desprovido de qualquer interface grfica consumidora de recursos.

44/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

Apreciao final das ferramentas e sua adaptabilidade ao TV.COMmunity


Aps a anlise de algumas ferramentas de encoding nos captulos anteriores, apresenta-se uma anlise critica sobre a sua aplicabilidade ao contexto pretendido do TV.COMmunity. O Any Video Converter sem duvidas uma das ferramentas de encoding mais fceis de utilizar, e ainda assim consegue ser bastante completo a nvel de formatos de encoding. Tem uma interface grfica bastante acessvel e apelativa. Esta sem dvida uma ferramenta destinada ao utilizador comum sem grandes conhecimentos tcnicos sobre encoding. A nvel de performance est ao nvel das restantes ferramentas analisadas. A explicao desse motivo prende-se em parte com o facto de utilizar as mesmas bibliotecas de encoding que o FFmpeg e o VLC. Em relao ao contexto TV.COMmunity esta ferramenta acaba por ser excluda devido ao facto de no permitir automatismos ou rotinas no processo de encoding.

O Microsoft Expression Encoder uma ferramentas bastante completa que simultaneamente um editor de vdeo e um encoder que funciona atravs de uma poderosa interface grfica. Permite utilizar templates genricos ou orientados a dispositivos concretos dando ainda a liberdade de alterar todos os parmetros de configurao do encoding. O facto de ser uma aplicao apenas de interface grfica tambm o exclui por no permitir criar automatismos.

J o Microsoft Expression Encoder SDK contm todas as funcionalidades do Expression Encoder, mas desprovido de interface grfica. Todo o seu funcionamento e interaco efetuada por via de linguagem de programao. Desta forma orientado criao de rotinas e procedimentos automticos de encoding. Assim sendo, esta vertente do Expression Encoder adequada ao contexto do TV.COMmunity. A nvel de performance, no h uma diferena significativa entre o Expression Encoder (e o respetivo SDK) para as restantes aplicaes testadas. A principal desvantagem do Expression Encoder o facto de ser gratuito apenas nas verses quase desprovidas de codecs. J as verses pagas esto fechadas sobre codecs proprietrios com licenas, como por exemplo o uso do H264 em vez do equivalente gratuito x264. Tal incrementa os custos de aquisio da ferramenta.

45/1 Projecto em curso com o apoio de:

TV.COMmunity | Entidade Promotora:

Parceiros:

O VLC um excelente player multimdia e uma excelente aplicao de encoding. Suporta um elevado numero de formatos, gratuito e tem uma interface grfica acessvel com templates j definidos. Tambm disponibiliza a possibilidade de ser utilizado por via de consola de comandos, o que o integra imediatamente no contexto do TV.COMmunity com a possibilidade de criar automatismos. No entanto, a sua "linguagem" de consola no das mais simples e necessita de mais comandos para efectuar o mesmo que outras aplicaes fazem com menos comandos e comandos mais simples. Isto pode ser facilmente explicado pelo facto do desenvolvimento e evoluo do VLC ser focado principalmente na interface grfica. Ou seja, os comandos por consola esto l, no entanto nunca foram nem so o foco de desenvolvimento e suporte da equipa que desenvolveu a aplicao.

O FFmpeg, a aplicao de excelncia para linha de comandos e criao de rotinas automticas. Desde o seu inicio em 2000, o FFmpeg foi sempre concebido e desenvolvido para ser uma aplicao sem interface grfico e ser exclusivamente uma ferramenta de linha de comandos. Tal orientao fez que a sua maturao e aprimoramento fosse focado na linha de comandos e o tornasse numa aplicao robusta, confivel e polivalente. O seu uso completamente gratuito independentemente dos tipos de formatos e codecs utilizados, os comandos de consola no so dos mais complexos e existe uma grande comunidade e documentao capaz de prestar toda a informao necessria ao seu funcionamento. Desta forma o FFmpeg apresentase como a ferramenta mais forte, tendo-se em conta, o contexto e as necessidades do projecto TV.COMmunity.

46/1 Projecto em curso com o apoio de: