domingo, 5 de julho de 2009

A polêmica dos codecs de vídeo no HTML 5

Uma das mais interessantes funcionalidades do HTML 5 é a possibilidade de que os browsers possam rodar vídeos sem necessitar de plug-ins, mas esta nova capacidade está cercada de polêmicas já que não foi definido um Codec padrão na especificação até o momento.

O reflexo disso é que hoje os dois browsers que implementam video no HTML 5, Safari 4 e Firefox 3.5, utilizam Codecs diferentes, o H.264 para o Safari e Theora para o Firefox.

Ian Hickson o editor da especificação publicou uma longa mensagem sobre o assunto. Em resumo a situação é a seguinte.

Entre os fabricantes de browsers a Apple quer o H.264, o Theora é defendido pela Mozilla e pela Opera, a Google diz que vai implementar os dois, e a Microsoft está calada.

As razões que a Apple apresenta para não utilizar o Theora são; falta de hardware compatível e possibilidade de sofrer processos por quebra de patentes, não da Theora, mas sim de eventuais terceiros. Essa posição da Apple é acompanhada pela Nokia, afinal quem produz smartphones necessita de um decodificador em hardware.

Já a Mozilla e Opera dizem que não podem arcar com os custos de licenciamento do H.264. A Opera os acha abusivos e a Mozilla diz que não pode passar essa licença para terceiros.

A Google vai implementar os dois no Chrome, mas o Chromium não pode implementar o H.264 caso terceiros usem o código. Já o YouTube vai ter os vídeos somente em H.264 já que o Theora não suportaria o volume do site. Falta saber o que será suportado pelo Android, meu palpite H.264.

Então tecnicamente parece que o H.264 é melhor, mas economicamente o Theora vence apesar de eventuais problemas de patentes. Por esse motivo a especificação vai ficar sem definição de Codec no momento e só será incluída caso Apple, Mozilla, Opera, Google e Microsoft cheguem a um consenso.

Ian Hickson: [whatwg] Codecs for audio and video
whatwg: HTML 5 Draft Specification

Por enquanto se alguém quiser utilizar a tag video e ter certeza que a maioria dos browsers a suportarão pode utilizar a solução concebida por Croc Camen, é um código html que praticamente garante que seu vídeo seja executado em qualquer browser existente você só tem que criar o video em H.264 e Theora e editar o código.

Se seu browser for Safari 4 ele vai executar o video em H.264, se for Firefox 3.5 vai para o Theora, se for qualquer outro browser vai tentar utilizar Flash, se isso falhar também Quicktime ou Windows Media serão utilizados, se ao final o browser ainda não conseguir executar o vídeo vai ser aberta uma página com a opção de download.

Croc Camen: Video for Everybody!

O custo são dois arquivos ocupando espaço no servidor, mas é praticamente garantido que seu vídeo será assistido.

Dicas: John Gruber: Daring Fireball.