Vídeo HTML5 - HTML5 video

A especificação HTML5 introduziu o elemento de vídeo com a finalidade de reproduzir vídeos, substituindo parcialmente o elemento de objeto . O vídeo HTML5 foi criado por seus criadores para se tornar o novo padrão de exibição de vídeo na web, em vez do padrão anterior de usar o plug-in Adobe Flash proprietário , embora a adoção inicial tenha sido dificultada pela falta de acordo sobre quais formatos de codificação de vídeo e formatos de codificação de áudio devem ser suportados em navegadores da web. Em 2020, o vídeo HTML5 é a única tecnologia de reprodução de vídeo amplamente suportada nos navegadores modernos, com o plug-in Flash sendo descontinuado.

História do elemento <video>

O elemento <video> começou a ser discutido pelo WHATWG em outubro de 2006. O elemento <video> foi proposto pela Opera Software em fevereiro de 2007. A Opera também lançou uma versão de amostra que foi apresentada no mesmo dia, e um manifesto que pedia vídeo para tornar-se um cidadão de primeira classe da web.

exemplos de elemento <video>

O seguinte fragmento de código HTML5 irá incorporar um vídeo WebM em uma página da web.

<video src="movie.webm" poster="movie.jpg" controls>
	This is fallback content to display for user agents that do not support the video tag.
</video>

O atributo "controls" habilita a própria interface de usuário do navegador para controlar a reprodução. Como alternativa, a reprodução pode ser controlada com JavaScript , que o web designer pode usar para criar uma interface de usuário personalizada. O atributo opcional "poster" especifica uma imagem a ser exibida no lugar do vídeo antes do início da reprodução. Seu objetivo é ser representativo do vídeo.

Várias fontes

O suporte ao formato de vídeo varia entre os navegadores (veja abaixo), portanto, uma página da web pode fornecer vídeo em vários formatos. Para outros recursos, a detecção de navegador é usada às vezes, o que pode estar sujeito a erros: o conhecimento de navegadores de qualquer desenvolvedor da Web será inevitavelmente incompleto ou desatualizado. O navegador em questão "sabe melhor" quais formatos pode usar. O elemento "video" oferece suporte a fallback por meio da especificação de várias fontes. Usando qualquer número de elementos <source>, conforme mostrado abaixo, o navegador escolherá automaticamente qual arquivo baixar. Como alternativa, a função JavaScript canPlayType () pode ser usada para conseguir o mesmo. O atributo "type" especifica o tipo MIME e possivelmente uma lista de codecs, o que ajuda o navegador a determinar se pode decodificar o arquivo sem começar a baixá-lo. O tipo MIME denota o formato do contêiner do arquivo, e o formato do contêiner define a interpretação da string do codec.

<video poster="poster.jpg" controls>
	<source src="av1.mp4" type='video/mp4; codecs="av01.0.00M.08, opus"'>
	<source src="avc.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>
	<source src="vp9.webm" type='video/webm; codecs="vp9.0, opus"'>
	<source src="theora.ogv" type='video/ogg; codecs="theora, vorbis"'>
	<p>This is fallback content to display for user agents that do not support the video tag.</p>
</video>

Formatos de vídeo e áudio suportados

A especificação HTML5 não especifica quais formatos de vídeo e áudio os navegadores devem suportar. Os agentes de usuário são livres para oferecer suporte a qualquer formato de vídeo que considerem apropriado, mas os autores de conteúdo não podem presumir que qualquer vídeo será acessível por todos os agentes de usuário em conformidade, uma vez que os agentes de usuário não têm um conjunto mínimo de formatos de vídeo e áudio para oferecer suporte.

O HTML5 Working Group considerou desejável especificar pelo menos um formato de vídeo que todos os agentes de usuário (navegadores) deveriam suportar. O formato ideal a esse respeito seria:

  • Tenha boa compactação, boa qualidade de imagem e baixo uso do processador de decodificação.
  • Seja livre de royalties.
  • Além dos decodificadores de software, um decodificador de vídeo de hardware deve existir para o formato, já que muitos processadores embutidos não têm o desempenho para decodificar o vídeo.

Inicialmente, Ogg Theora era o formato de vídeo padrão recomendado em HTML5, porque não foi afetado por nenhuma patente conhecida. Mas em 10 de dezembro de 2007, a especificação HTML5 foi atualizada, substituindo a referência aos formatos concretos:

Os agentes de usuário devem suportar vídeo Theora e áudio Vorbis, bem como o formato de contêiner Ogg.

com um espaço reservado:

Seria útil para a interoperabilidade se todos os navegadores pudessem oferecer suporte aos mesmos codecs. No entanto, não existem codecs conhecidos que satisfaçam todos os jogadores atuais: precisamos de um codec que seja conhecido por não exigir licenciamento por unidade ou por distribuidor, que seja compatível com o modelo de desenvolvimento de código aberto, que seja de qualidade suficiente para ser utilizável, e isso não é um risco adicional de patente submarina para grandes empresas. Este é um problema contínuo e esta seção será atualizada assim que houver mais informações disponíveis.

O resultado foi uma polarização do vídeo HTML5 entre formatos padrão da indústria , definidos por ISO, mas com patentes oneradas, e formatos abertos . O novo formato AV1 da Alliance for Open Media visa ser o padrão da indústria, livre de royalties e aberto, e tem amplo suporte da indústria.

Formatos livres

Embora o Theora não seja afetado por patentes conhecidas não livres, a Apple expressou preocupação sobre patentes desconhecidas que podem afetá-lo, cujos proprietários podem estar esperando por uma empresa com amplos recursos financeiros para usar o formato antes de processar. Formatos como o H.264 também podem estar sujeitos a patentes desconhecidas em princípio, mas eles foram implantados de forma muito mais ampla e, portanto, presume-se que qualquer detentor de patente já se teria dado a conhecer. A Apple também se opôs à exigência de suporte ao formato Ogg no padrão HTML (mesmo como um requisito "deveria"), alegando que alguns dispositivos podem suportar outros formatos com muito mais facilidade, e que o HTML historicamente não exigia formatos específicos para nada.

Alguns desenvolvedores da web criticaram a remoção dos formatos Ogg da especificação. Uma discussão de acompanhamento também ocorreu no blog de perguntas e respostas do W3C.

Mozilla e Opera suportam apenas os formatos abertos de Theora e WebM . O Google declarou sua intenção de remover o suporte para H.264 em 2011, especificamente para a tag de vídeo HTML5. Embora tenha sido removido do Chromium , em janeiro de 2021 ele ainda não foi removido do Google Chrome dez anos depois.

Suporte a MPEG-DASH por meio do HTML5 Media Source Extensions (MSE)

O padrão de transmissão de taxa de bits adaptável MPEG-DASH pode ser usado em navegadores da Web por meio de HTML5 Media Source Extensions (MSE) e reprodutores DASH baseados em JavaScript. Esses players são, por exemplo, o projeto de código aberto dash.js do DASH Industry Forum, mas também existem produtos como bitdash de bitmovin (usando HTML5 com JavaScript, mas também players DASH baseados em Flash para navegadores da Web legados sem suporte o HTML5 MSE).

Compra do On2 pelo Google

A aquisição da On2 pelo Google em 2010 resultou na aquisição do formato de vídeo VP8 . O Google forneceu uma licença livre de royalties para usar o VP8. O Google também iniciou o WebM , que combina o codec de vídeo VP8 de código aberto padronizado com áudio Vorbis em um contêiner baseado em Matroska . A inauguração do VP8 foi bem recebida pela Free Software Foundation .

Quando o Google anunciou em janeiro de 2011 que encerraria o suporte nativo ao H.264 no Chrome, as críticas vieram de muitos setores, incluindo Peter Bright da Ars Technica e o evangelista da web da Microsoft Tim Sneath, que comparou a decisão do Google de declarar o Esperanto como a língua oficial dos Estados Unidos Estados. No entanto, Haavard Moen, da Opera Software, criticou fortemente o artigo da Ars Technica e o Google respondeu à reação esclarecendo sua intenção de promover o WebM em seus produtos com base na abertura.

Após o lançamento do WebM, a Mozilla e o Opera pediram a inclusão do VP8 no HTML.

Em 7 de março de 2013, o Google Inc. e a MPEG LA , LLC anunciaram contratos que abrangem técnicas que "podem ser essenciais" para VP8, com o Google recebendo uma licença da MPEG LA e 11 detentores de patentes, e a MPEG LA encerrando seus esforços para formar uma patente VP8 piscina.

Em 2012, o VP9 foi lançado pelo Google como sucessor do VP8, também aberto e livre de royalties.

No final de 2017, o novo formato AV1 desenvolvido pela Alliance for Open Media (AOMedia) como a evolução do VP9 atingiu o congelamento de recursos, e o congelamento de bitstream é esperado para janeiro de 2018. As compilações noturnas do Firefox já incluem suporte para AV1.

Formatos não livres

H.264 / MPEG-4 AVC é amplamente utilizado e tem boa velocidade, compactação, decodificadores de hardware e qualidade de vídeo, mas é patenteado. Os usuários do H.264 precisam de licenças dos detentores de patentes individuais ou da MPEG LA , um grupo de detentores de patentes que inclui Microsoft e Apple, exceto para alguns usos de transmissão de vídeo pela Internet. O H.264 é geralmente usado no formato de contêiner MP4, junto com o áudio Advanced Audio Coding (AAC). O AAC também é coberto por patentes em si, portanto, os usuários do MP4 terão que licenciar tanto o H.264 quanto o AAC.

Em junho de 2009, o WHATWG concluiu que nenhum formato existente era adequado como um requisito especificado.

A Apple ainda oferece suporte apenas para H.264, mas a Microsoft agora oferece suporte para VP9 e WebM e prometeu suporte para AV1 .

A Cisco disponibiliza gratuitamente um módulo binário H.264 licenciado

Em 30 de outubro de 2013, a Cisco anunciou que estava disponibilizando um módulo binário H.264 para download. A Cisco pagará os custos de licenciamento de patente para esses módulos binários quando baixados pelo software em uso enquanto ele está sendo instalado , tornando o H.264 gratuito para uso nesse caso específico.

No anúncio, a Cisco citou seu desejo de promover o uso do projeto WebRTC como o motivo, já que o recurso de chat de vídeo do WebRTC se beneficiará por ter um formato de vídeo compatível com todos os navegadores. O módulo H.264 estará disponível em "todas as plataformas populares ou com suporte viável, que podem ser carregadas em qualquer aplicativo".

A Cisco também planeja publicar o código-fonte para esses módulos sob licença BSD , mas sem pagar os royalties, então o código será praticamente software livre apenas em países sem patentes de software H.264 , o que já é verdade em outras implementações existentes.

Também em 30 de outubro de 2013, Brendan Eich da Mozilla anunciou que o Firefox baixaria automaticamente o módulo H.264 da Cisco quando necessário por padrão. Ele também observou que o módulo binário não é uma solução perfeita, uma vez que os usuários não têm direitos totais de software livre para "modificar, recompilar e redistribuir sem acordos de licença ou taxas". Assim, Xiph e Mozilla continuam o desenvolvimento do Daala .

O OpenH264 suporta apenas o perfil de linha de base do H.264 e não aborda por si só a necessidade de um decodificador AAC. Portanto, não é considerado suficiente para vídeo da Web MP4 típico, que normalmente é de alto perfil com áudio AAC. No entanto, para uso em WebRTC, a omissão de AAC foi justificada no anúncio de lançamento: "os organismos de padrões se alinharam no Opus e G.711 como os codecs de áudio comuns para WebRTC". Há dúvidas se um licenciamento global limitado de AAC, como o da Cisco para H.264, é viável depois que o bureau de licenciamento da AAC removeu o limite de preço logo após o lançamento do OpenH264.

Suporte de navegador

Esta tabela mostra quais formatos de vídeo provavelmente são suportados por um determinado agente do usuário . A maioria dos navegadores listados aqui usa uma estrutura de multimídia para decodificação e exibição de vídeo, em vez de incorporar tais componentes de software. Geralmente não é possível dizer o conjunto de formatos suportados por uma estrutura de multimídia sem consultá-la, porque isso depende do sistema operacional e dos codecs de terceiros. Nesses casos, o suporte ao formato de vídeo é um atributo da estrutura, não do navegador (ou de seu mecanismo de layout), presumindo que o navegador consulte corretamente sua estrutura multimídia antes de rejeitar formatos de vídeo desconhecidos. Em alguns casos, o suporte listado aqui não é uma função dos codecs disponíveis na estrutura de mídia subjacente do sistema operacional ou dos recursos de codec integrados ao navegador, mas pode ser por um complemento do navegador que pode, por exemplo, ignorar a análise HTML normal do navegador da tag <video> para incorporar um player de vídeo baseado em plug-in.

Observe que um arquivo de vídeo normalmente contém conteúdo de vídeo e áudio, cada um codificado em seu próprio formato. O navegador deve suportar os formatos de vídeo e áudio. Consulte áudio HTML5 para obter uma tabela de quais formatos de áudio são suportados por cada navegador.

O formato do vídeo pode ser especificado pelo tipo MIME em HTML (veja o exemplo ). Os tipos MIME são usados ​​para consultar estruturas de multimídia para formatos suportados.

Destes navegadores, apenas Firefox e Opera empregam bibliotecas para decodificação embutida. Na prática, o Internet Explorer e o Safari também podem garantir suporte a determinados formatos, pois seus fabricantes também fazem seus frameworks multimídia. No outro extremo da escala, o Konqueror tem suporte de formato idêntico ao Internet Explorer quando executado no Windows e Safari quando executado no Mac, mas o suporte selecionado aqui para o Konqueror é o típico para Linux , onde o Konqueror tem a maioria de seus usuários. Em geral, o suporte de formato de navegadores é muito ditado por interesses conflitantes de fornecedores, especificamente que Media Foundation e QuickTime suportam padrões comerciais, enquanto GStreamer e Phonon não podem oferecer suporte legal a outros formatos que não sejam formatos livres por padrão nos sistemas operacionais livres aos quais se destinam .

Status do suporte ao formato de vídeo em cada navegador da web
Navegador Sistema operacional Theora ( Ogg ) H.264 ( MP4 ) HEVC ( MP4 ) VP8 ( WebM ) VP9 ( WebM ) AV1 ( WebM )
Navegador Android Android Desde 2.3 Desde 3.0 Desde 5.0 Desde 2.3 Desde 4,4 Desde 10
Cromo Semelhante a Unix e Windows Desde r18297 Via FFmpeg Não Desde r47759 Desde r172738 sim
Google Chrome Semelhante ao Unix, Android, macOS e Windows Desde 3.0 Desde 3.0 Não Desde 6.0 Desde 29,0 Desde 70
Internet Explorer janelas Via OpenCodecs Desde 9.0 Não Via OpenCodecs Não Não
telefone do Windows Não Desde 9.0 Não
Windows RT Desde 10,0
Microsoft borda Semelhante a Unix, macOS e Windows

(Cromo)

Desde v79 Desde v79 (único navegador compatível com DRM PlayReady) Não Desde v79 Desde v79 Desde v79
Windows 10 (Legacy EdgeHTML) Desde 17.0 (com extensões de mídia da Web ) Desde 12,0 Precisa de decodificador de hardware Desde 17.0 (suporta tag <video> com Web Media Extensions e VP9 Video Extensions ) Só habilitado por padrão se o decodificador de hardware estiver presente

Desde 17.0 (suporta tag <video> com Web Media Extensions e VP9 Video Extensions )

Desde 18.0 (com extensão de vídeo AV1 )
Windows 10 Mobile Não Desde 13,0 Desde 15.0 (somente via MSE ) Desde 14.0 (somente via MSE ) Não
Konqueror Semelhante a Unix e Windows Necessita de codecs de nível de sistema operacional
Mozilla Firefox Windows 7 ou superior Desde 3,5 Desde 21,0 Não Desde 4.0 Desde 28.0 Desde 65,0
Windows Vista Desde 22.0
Windows XP e edições N Desde 46,0
Linux 26.0 (via GStreamer )
43.0 (via FFmpeg )
Desde 67
Android Desde 17.0 à noite
Mac OS Desde 34,0 Desde 66,0
Firefox OS Desde 1.1 Não
Opera Mobile Android, iOS, Symbian e Windows Mobile Desde 13,0 Desde 11,50 Não Desde 15.0 Desde 16.0 desde 57,0
Ópera macOS, Windows, Linux Desde 10,50 Desde 24.0 Desde 10,60 sim desde 57,0
Safári iOS Não Desde 3.1 Desde 11 Desde 12.1 (suporta apenas WebRTC ) Desde 14 (suporta apenas WebRTC ) Não
Mac OS Via componentes Xiph QuickTime ( macOS 10.11 e anterior)
GNOME Web Linux e BSD Necessita de codecs de nível de sistema operacional
Notas

Gerenciamento de direitos digitais (extensões de mídia criptografada)

HTML tem suporte para gerenciamento de direitos digitais (DRM, restringindo como o conteúdo pode ser usado) por meio do HTML5 Encrypted Media Extensions (EME). A adição de DRM é controversa porque permite restringir a liberdade dos usuários de usar mídia restrita por DRM, mesmo quando o uso justo concede aos usuários o direito legal de fazê-lo. Um argumento principal na aprovação do W3C de EME foi que o conteúdo de vídeo seria entregue em plug-ins e aplicativos, e não no navegador da web.

Em 2013, a Netflix adicionou suporte para vídeo HTML5 usando EME, além de seu antigo método de entrega usando um plugin Silverlight (também com DRM).

Uso

Em 2010, na esteira do lançamento do iPad da Apple e depois que Steve Jobs anunciou que os dispositivos móveis da Apple não suportariam Flash , vários sites de alto perfil começaram a servir vídeo H.264 HTML5 em vez de Adobe Flash para agentes de usuário identificados como iPad . O vídeo HTML5 não foi tão difundido quanto os vídeos em Flash, embora tenha havido lançamentos de players de vídeo experimentais baseados em HTML5 do DailyMotion (usando o formato Ogg Theora e Vorbis), YouTube (usando os formatos H.264 e WebM) e Vimeo (usando o H Formato .264).

O suporte para vídeo HTML5 tem aumentado constantemente. Em junho de 2013, a Netflix adicionou suporte para vídeo HTML5. Em janeiro de 2015, o YouTube passou a usar vídeo HTML5 em vez de Flash por padrão. Em dezembro de 2015, o Facebook mudou de Flash para HTML5 para todo o conteúdo de vídeo.

A partir de 2016, o Flash ainda é amplamente instalado em desktops, embora geralmente não seja compatível com dispositivos móveis como smartphones. O plugin Flash é amplamente assumido, inclusive pela Adobe, como destinado a ser eliminado, o que deixará o vídeo HTML5 como o único método amplamente suportado para reproduzir vídeo na World Wide Web. Chrome, Firefox, Safari e Edge têm planos de fazer com que quase todo o conteúdo flash seja reproduzido em 2017. O único navegador importante que não anunciou planos de descontinuar o Flash é o Internet Explorer. A Adobe anunciou em 25 de julho de 2017 que encerraria permanentemente o desenvolvimento do Flash em 2020.

Veja também

Referências

links externos

Categoria; Multimídia