Mídia em HTML: como inserir vídeo, áudio e YouTube na página
Você abre o site de uma cafeteria e, logo na primeira tela, um vídeo curto mostra o barista preparando um café. Mais embaixo, uma vinheta de áudio toca ao clicar num botão, e o cardápio aparece em PDF sem sair da página. Nada disso exige programação: tudo é feito com tags HTML.
Neste artigo você vai aprender a colocar vídeo, áudio, vídeos do YouTube e PDFs numa página, entender os atributos de cada tag e evitar os problemas mais comuns, como o vídeo que “não toca” ou o som que começa sozinho e assusta o visitante. O exemplo será, mais uma vez, a Cafeteria Grão Dourado.
As tags de mídia: visão geral
Antigamente, tocar um vídeo numa página dependia de plug-ins instalados no navegador, como o Flash. Hoje o próprio navegador sabe reproduzir mídia, e o HTML5 trouxe tags específicas para isso:
| Tag | Para que serve |
|---|---|
<video> | Reproduz um arquivo de vídeo, com controles prontos |
<audio> | Reproduz um arquivo de áudio |
<source> | Indica um arquivo (e seu formato) dentro de <video> ou <audio> |
<track> | Adiciona legendas ao vídeo |
<iframe> | Mostra outra página dentro da sua, como um vídeo do YouTube |
<object> e <embed> | Incorporam conteúdo externo, hoje usados principalmente para PDF |
Vídeo com <video>
A tag <video> mostra o player do próprio navegador, com botão de play, barra de progresso, volume e tela cheia. Veja a estrutura completa:
<video> ficam os arquivos (<source>) e, no fim, o texto de reserva.Atributos mais usados
| Atributo | O que faz |
|---|---|
controls | Mostra os controles (play, pausa, volume, tela cheia). Sem ele, o vídeo aparece como uma imagem parada |
width e height | Largura e altura em pixels. Defina sempre os dois: assim a página reserva o espaço e não “pula” quando o vídeo carrega |
poster | Imagem exibida antes de o vídeo começar |
autoplay | Começa a tocar sozinho (veja a dica sobre autoplay mais adiante) |
muted | Começa sem som |
loop | Recomeça quando termina |
preload | Diz ao navegador quanto carregar antes do play: none (nada), metadata (só duração e tamanho) ou auto |
Atributos como controls, loop e muted são booleanos: basta escrevê-los para ligar a função, sem valor. Teste você mesmo: ligue e desligue as opções abaixo e veja o código mudar.
controls, o visitante não tem como dar play. Se você tirar o atributo no teste acima, o player some. É o erro mais comum de quem está começando.Vários formatos com <source>
Nem todo navegador entende todos os formatos de vídeo. Por isso, em vez de usar src direto na tag <video>, é comum listar mais de um arquivo com <source>. O navegador percorre a lista de cima para baixo e usa o primeiro formato que reconhecer. O atributo type ajuda nessa escolha, porque ele descobre o formato sem precisar baixar o arquivo.
type="video/mp4"O mais compatível. Funciona nos principais navegadores.
type="video/webm"Formato aberto, leve e também aceito pelos principais navegadores.
type="video/ogg"Antigo. O Safari não o suporta, então raramente vale a pena.
Legendas com <track>
A tag <track> liga um arquivo de legendas ao vídeo. É ótima para acessibilidade (pessoas surdas ou com dificuldade de audição) e para quem assiste sem som. O arquivo usa o formato WebVTT (extensão .vtt), que é só um texto com os tempos de cada fala:
WEBVTT
00:00:00.000 --> 00:00:03.000
Bem-vindo à Cafeteria Grão Dourado!
00:00:03.000 --> 00:00:06.000
Este é um vídeo de exemplo para a aula.No HTML, a tag <track> fica dentro do <video>, junto dos <source>:
<video width="640" height="360" controls>
<source src="video/cafe.mp4" type="video/mp4">
<source src="video/cafe.webm" type="video/webm">
<track src="video/legenda.vtt" kind="subtitles" srclang="pt" label="Português" default>
Seu navegador não suporta vídeo.
</video>Veja funcionando. Aperte o play e, se a legenda não aparecer, procure o botão CC (ou o menu ⋮) do player para ligá-la ou desligá-la:
kind="subtitles": tipo da faixa (legendas).srclang="pt": idioma da legenda.label: nome que aparece no menu do player.default: já deixa a legenda ligada.
Áudio com <audio>
A tag <audio> funciona quase igual à de vídeo, só que sem imagem: o navegador mostra uma barra compacta de reprodução. Use para vinhetas, podcasts, trilhas e locuções.
<audio controls>
<source src="audio/jingle.mp3" type="audio/mpeg">
<source src="audio/jingle.ogg" type="audio/ogg">
Seu navegador não suporta áudio.
</audio>| Formato | type | Observação |
|---|---|---|
| MP3 | audio/mpeg | Compatível com todos os navegadores principais |
| WAV | audio/wav | Compatível, mas gera arquivos grandes |
| OGG | audio/ogg | Não funciona no Safari |
E o autoplay?
O atributo autoplay faz a mídia tocar assim que a página abre. Parece prático, mas é um dos recursos que mais irritam o visitante: imagine abrir um site no trabalho e ele começar a falar. Por isso, os navegadores baseados no Chromium, como Chrome e Edge, bloqueiam na maioria dos casos o autoplay com som. A exceção é o autoplay sem som: com muted, ele é sempre permitido.
<video width="640" height="360" autoplay muted loop>
<source src="video/cafe.mp4" type="video/mp4">
</video>autoplay muted apenas em vídeos decorativos, como um fundo animado. Para o conteúdo principal, deixe o visitante decidir quando dar play, e sempre mantenha o controls.Vídeos do YouTube com <iframe>
Hospedar vídeo no seu próprio site tem um custo: arquivos pesados deixam a página lenta e gastam o espaço da hospedagem. Uma solução é publicar o vídeo no YouTube e incorporá-lo na página com um <iframe>, que mostra o player do YouTube dentro do seu site. Quem carrega o arquivo é o YouTube, não o seu servidor.
<iframe width="560" height="315"
src="https://www.youtube.com/embed/SEU_ID_DO_VIDEO"
title="Vídeo da Cafeteria Grão Dourado"
allowfullscreen></iframe>Onde encontrar o ID do vídeo
O ID é o código que aparece no endereço do vídeo, logo depois de v=. Por exemplo, em youtube.com/watch?v=ABC123 o ID é ABC123. Ele entra no src do iframe, depois de /embed/. O YouTube também oferece o código pronto: no vídeo, clique em Compartilhar e depois em Incorporar.
method="get": depois do ?, em pares nome=valor.Parâmetros do player
| Parâmetro | Efeito |
|---|---|
autoplay=1 | Começa sozinho (o Chromium costuma bloquear se não houver mute=1) |
mute=1 | Começa sem som |
loop=1 | Repete o vídeo. Só funciona junto com playlist=ID_DO_VIDEO, com o mesmo ID |
controls=0 | Esconde os controles (o padrão é controls=1) |
Monte o seu: cole o ID, marque os parâmetros e copie o código pronto.
title no iframe. Leitores de tela usam esse texto para dizer ao usuário o que existe ali dentro. E allowfullscreen permite ao visitante assistir em tela cheia.PDF e outros conteúdos com <object> e <embed>
As tags <object> e <embed> foram criadas para plug-ins, como Flash e applets Java. Esses plug-ins deixaram de existir nos navegadores modernos, então esse uso morreu. Hoje as duas servem para incorporar coisas simples, como uma imagem, outra página HTML ou, o uso mais prático, um PDF:
<object data="docs/cardapio.pdf" type="application/pdf" width="640" height="400">
Seu navegador não mostra PDF aqui.
<a href="docs/cardapio.pdf">Abra o cardápio em PDF</a>.
</object><object>usa o atributodatapara apontar o arquivo e permite um texto de reserva entre as tags (o link para baixar o PDF, por exemplo).<embed>usasrc, não tem tag de fechamento e não aceita texto de reserva:<embed src="docs/cardapio.pdf" width="640" height="400">.
Boas práticas com mídia
- Defina
widtheheightem vídeos e iframes, para a página não “pular” durante o carregamento. - Evite autoplay com som. Quando precisar de autoplay, use
muted. - Cuide do peso dos arquivos. Vídeos longos e pesados deixam o site lento: comprima o vídeo ou publique no YouTube e incorpore.
- Ofereça alternativas: legendas com
<track>, texto de reserva com link de download etitlenos iframes. - Respeite os direitos autorais. Use mídia própria ou com licença que permita o uso, inclusive música e vídeos em sites com anúncios.
- Organize em pastas (
video/,audio/,imagem/,docs/) e confira os caminhos dos arquivos.
Erros comuns
controlsSem ele, o player não aparece e o visitante não consegue dar play (a não ser que haja autoplay).
Se o src aponta para uma pasta ou nome que não existe, o vídeo não carrega. Confira maiúsculas, minúsculas e a extensão do arquivo.
Um arquivo em formato raro simplesmente não toca. Prefira MP4 para vídeo e MP3 para áudio, e confira se o type corresponde ao arquivo.
O navegador bloqueia. Se o vídeo precisa começar sozinho, use autoplay muted.
loop=1 no YouTube sem playlistO parâmetro loop só funciona se vier acompanhado de playlist= com o mesmo ID do vídeo.
title do iframeA página funciona, mas fica menos acessível para quem usa leitor de tela.
<embed> ou <object> para FlashO Flash não funciona mais em nenhum navegador moderno. Use <video>.
Código completo do exemplo
O projeto reúne tudo numa só página: vídeo com legenda, áudio, YouTube e PDF. Os arquivos de mídia do .zip já estão prontos. Salve a pasta inteira e abra o index.html, de preferência pelo Live Server:
Baixe o projeto completo: o arquivo midia-html.zip traz o index.html e todos os arquivos de vídeo, áudio, legenda, imagem e PDF, prontos para usar na aula.
midia-html/
├── index.html
├── video/
│ ├── cafe.mp4
│ ├── cafe.webm
│ └── legenda.vtt
├── audio/
│ ├── jingle.mp3
│ └── jingle.ogg
├── imagem/
│ └── poster.jpg
└── docs/
└── cardapio.pdfindex.html
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mídia em HTML — Cafeteria Grão Dourado</title>
</head>
<body>
<h1>☕ Cafeteria Grão Dourado</h1>
<p>Vídeo, áudio, YouTube e PDF em uma única página.</p>
<!-- ===== VÍDEO ===== -->
<h2>Nosso vídeo</h2>
<video width="640" height="360" controls poster="imagem/poster.jpg" preload="metadata">
<source src="video/cafe.mp4" type="video/mp4">
<source src="video/cafe.webm" type="video/webm">
<track src="video/legenda.vtt" kind="subtitles" srclang="pt" label="Português" default>
Seu navegador não suporta vídeo.
<a href="video/cafe.mp4">Baixe o vídeo (MP4)</a>.
</video>
<!-- ===== ÁUDIO ===== -->
<h2>Nossa vinheta</h2>
<audio controls>
<source src="audio/jingle.mp3" type="audio/mpeg">
<source src="audio/jingle.ogg" type="audio/ogg">
Seu navegador não suporta áudio.
<a href="audio/jingle.mp3">Baixe a vinheta (MP3)</a>.
</audio>
<!-- ===== YOUTUBE ===== -->
<h2>Vídeo do YouTube</h2>
<!-- Troque SEU_ID_DO_VIDEO pelo código que aparece depois de "v=" no endereço do vídeo -->
<iframe width="560" height="315"
src="https://www.youtube.com/embed/SEU_ID_DO_VIDEO"
title="Vídeo da Cafeteria Grão Dourado"
allowfullscreen></iframe>
<!-- ===== PDF ===== -->
<h2>Nosso cardápio</h2>
<object data="docs/cardapio.pdf" type="application/pdf" width="640" height="400">
Seu navegador não mostra PDF aqui.
<a href="docs/cardapio.pdf">Abra o cardápio em PDF</a>.
</object>
</body>
</html>Para o bloco do YouTube funcionar, troque SEU_ID_DO_VIDEO pelo ID de um vídeo seu (ou de um vídeo que permita incorporação).
Resumo rápido
| Tag ou atributo | Para que serve |
|---|---|
<video controls> | Vídeo com player do navegador |
<audio controls> | Áudio com player do navegador |
<source src type> | Arquivos alternativos; vale o primeiro formato reconhecido |
<track> | Legendas em arquivo .vtt |
poster, preload | Imagem inicial e quanto carregar antes do play |
autoplay + muted | Início automático (só sem som é garantido) |
<iframe src="…/embed/ID"> | Incorpora vídeo do YouTube |
<object data> / <embed src> | Incorporam PDF, imagem ou HTML |
Desafio para praticar
- Monte o projeto, abra pelo Live Server e teste cada mídia. Depois troque o
posterpor uma imagem sua. - Apague o
controlsdo vídeo e recarregue. O que acontece? Depois recoloque. - Troque o caminho do MP4 por um nome errado. O WebM assume? E se errar os dois, o que aparece?
- Substitua
SEU_ID_DO_VIDEOpelo ID de um vídeo do YouTube e acrescente?autoplay=1&mute=1. - Desafio extra: grave um áudio de 5 segundos no celular, converta para MP3 e coloque na página com
<audio>.
Para saber mais
- W3Schools: HTML Media
- W3Schools: HTML Video
- W3Schools: HTML Audio
- W3Schools: HTML Object e Embed
- W3Schools: HTML YouTube
Washington Paiva — instrutor de Desenvolvimento de Sistemas · washington.pro.br
Compartilhe:





Publicar comentário