Audio, video e imágenes adaptables
💡 🎯 Al terminar esta lección podrás…
- Insertar audio y video con
<audio>y<video>. - Añadir subtítulos con
<track>y entender por qué importan. - Incrustar contenido externo con
<iframe>de forma segura. - Ofrecer imágenes adaptables con
srcsety<picture>.
1.Multimedia en la web
Hasta ahora tu página tenía texto, imágenes, tablas y formularios. El audio y el video completan el cuadro: con dos etiquetas, <audio> y <video>, el navegador reproduce archivos sin necesidad de programas externos.
Antes de usar multimedia, ten presentes tres ideas que se repiten en toda la lección:
- Pesa mucho. Un video sin optimizar puede ser más grande que el resto de tu sitio junto. Usa archivos comprimidos y cortos.
- Debe ser accesible. Quien no oye necesita subtítulos; quien no ve necesita una descripción o una transcripción.
- No debe invadir. Nada de sonido que arranque solo: es de las cosas que más molestan y que más rápido hacen cerrar una página.
📌 Nota · Los ejemplos de esta lección
Este curso incluye un sonido y un video de ejemplo (campanilla.wav y demo.mp4) para que puedas probar el código real en los editores. Cuando escribas tus propias páginas, usa tus archivos o los que tengas derecho a usar.
2.Audio con la etiqueta audio
<audio controls>
<source src="sonido.mp3" type="audio/mpeg">
<source src="sonido.ogg" type="audio/ogg">
Tu navegador no admite audio. <a href="sonido.mp3">Descarga el archivo</a>.
</audio>
| Atributo | Qué hace | Observación |
|---|---|---|
controls | Muestra los botones de reproducción | Casi siempre lo necesitas; sin él no se ve nada |
src | Ruta del archivo | Alternativa a usar <source> |
loop | Repite sin fin | Úsalo con moderación |
muted | Inicia en silencio | Necesario si quieres autoplay en video |
preload | Cuánto cargar de antemano | none, metadata (solo duración) o auto |
autoplay | Empieza solo | Evítalo con sonido; muchos navegadores lo bloquean |
<source> permite ofrecer varias versiones del mismo archivo; el navegador usa la primera que entienda. El texto entre las etiquetas solo se muestra si el navegador es tan antiguo que no conoce <audio>.
⚠️ Importante · Formatos
MP3 es el formato más compatible; OGG y WAV son alternativas. El valor de type (por ejemplo audio/mpeg) le permite al navegador saltarse sin descargar los formatos que no entiende.
3.Video con la etiqueta video
<video> funciona igual que <audio>, con algunos atributos más para la imagen:
<video controls width="480" height="270" poster="portada.jpg" preload="metadata">
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
<track kind="captions" src="subtitulos.es.vtt" srclang="es" label="Español" default>
Tu navegador no admite video. <a href="video.mp4">Descárgalo aquí</a>.
</video>
| Atributo | Qué hace |
|---|---|
width / height | Reservan el espacio en la página (evitan que el contenido «salte») |
poster | Imagen que se ve antes de reproducir |
controls | Muestra los controles |
muted, loop, autoplay | Para videos decorativos de fondo: deben ir juntos, sin sonido |
playsinline | En iPhone evita que el video se abra a pantalla completa solo |
preload | metadata carga solo lo mínimo hasta que alguien pulsa reproducir |
| Formato | Contenedor y códec | Cuándo usarlo |
|---|---|---|
| MP4 | H.264 + AAC | El más compatible: funciona en casi todo |
| WebM | VP9 + Opus | Más ligero; ideal como segunda opción |
Observa que el poster se ve antes de pulsar reproducir. El <track> conecta un archivo de subtítulos: lo verás más abajo.
💡 Consejo · Videos más ligeros
Para videos propios, reduce la resolución (720p suele bastar) y la duración. Herramientas gratuitas como HandBrake o FFmpeg comprimen sin perder mucha calidad. Para videos largos, considera subirlos a una plataforma y usar <iframe>.
4.Multimedia accesible
Un video sin subtítulos deja fuera a personas sordas o con dificultad auditiva, y también a quien lo ve en el transporte sin audífonos. Hay cuatro prácticas esenciales:
| Necesidad | Solución | En HTML |
|---|---|---|
| No oír el audio | Subtítulos (diálogos y sonidos relevantes) | <track kind="captions"> |
| No ver el video | Descripción y transcripción en texto | Un enlace o sección con la transcripción |
| Preferir leer | Transcripción del audio y de los videos | Texto en la página o en un archivo |
| Sensibilidad al movimiento | No iniciar solo ni en bucle | Evitar autoplay y respetar prefers-reduced-motion |
Los subtítulos: archivos .vtt
Los subtítulos se escriben en un archivo de texto con formato WebVTT. Cada bloque tiene un intervalo de tiempo y la frase:
WEBVTT
00:00.000 --> 00:01.500
Un degradado de colores que cambia.
00:01.500 --> 00:03.000
Este video de ejemplo dura tres segundos.
kind="captions": subtítulos para personas sordas (incluyen sonidos).kind="subtitles"es solo traducción de diálogos.srclang="es"indica el idioma ylabeles el nombre que se verá en el menú.defaultactiva esa pista automáticamente.
⚠️ Importante · Autoplay
Si un video se reproduce solo, debe estar silenciado (muted) y ser decorativo. Aun así, ofrece una forma de pausarlo: las animaciones continuas pueden resultar molestas o incluso causar mareos.
5.Contenido incrustado con iframe
<iframe> muestra otra página dentro de la tuya: videos de YouTube, mapas de Google, formularios externos. Las plataformas te dan el código listo para pegar (botón «Compartir → Insertar»).
<iframe src="https://www.youtube.com/embed/CODIGO_DEL_VIDEO"
title="Introducción al HTML: primeros pasos"
width="560" height="315"
loading="lazy"
allowfullscreen></iframe>
titlees obligatorio para accesibilidad: describe el contenido del marco.loading="lazy"evita cargarlo hasta que se acerque a la pantalla.allowfullscreenpermite la pantalla completa.sandboxrestringe lo que el contenido externo puede hacer. Úsalo cuando el origen no sea de total confianza.
⚠️ Importante · Seguridad y privacidad
Un <iframe> carga código de otro sitio dentro del tuyo. Incrusta solo contenido de fuentes en las que confíes. Además, estas plataformas pueden rastrear a tus visitantes; si te importa, busca opciones de «modo privado» o simplemente enlaza el video.
📌 Nota · Por qué no hay un editor aquí
Los editores de esta lección no cargan contenido de otros sitios, así que no puedes probar un iframe con un video externo. Hazlo en tu propio archivo .html.
6.Imágenes adaptables
Un celular, una tableta y un monitor grande no necesitan la misma imagen: descargar una foto enorme en un móvil gasta datos y tarda. HTML permite ofrecer varias versiones.
1. srcset y sizes: mismas imagen, distintos tamaños
<img src="foto-800.jpg"
srcset="foto-400.jpg 400w, foto-800.jpg 800w, foto-1600.jpg 1600w"
sizes="(max-width: 600px) 100vw, 50vw"
alt="Mercado de frutas al amanecer"
width="800" height="533">
srcsetlista las versiones con su ancho real en píxeles (400w).sizesle dice al navegador qué tan ancha se mostrará la imagen: «100% del ancho en pantallas de hasta 600 px; si no, la mitad».- El navegador elige la mejor opción.
srcqueda como respaldo.
2. picture: imágenes distintas según la pantalla
A veces no basta con reducir la imagen: en vertical conviene un recorte distinto (a esto se le llama «dirección de arte»). Para eso existe <picture>:
El navegador revisa los <source> de arriba abajo y usa el primero cuya condición se cumpla. El <img> final es obligatorio: es la imagen de respaldo y donde va el alt.
3. picture con formatos modernos
<picture>
<source type="image/webp" srcset="foto.webp">
<img src="foto.jpg" alt="Mercado de frutas al amanecer" width="800" height="533">
</picture>
💡 Consejo · Evita que la imagen se deforme
En tu CSS, añade img { max-width: 100%; height: auto; }. La imagen nunca será más ancha que su contenedor y conservará su proporción. Con object-fit: cover puedes recortar sin deformar.
7.Peso y rendimiento
| Recurso | Peso razonable | Cómo lograrlo |
|---|---|---|
| Foto en la página | Menos de 200 KB | Redimensiona al tamaño real de uso y comprime (Squoosh, TinyPNG) |
| Ilustración o ícono | Pocos KB | Usa SVG cuando puedas |
| Audio | Menos de 1 MB para clips | MP3 a 128 kbps basta para voz |
| Video corto | Unos pocos MB | 720p, pocos segundos, sin audio si es decorativo |
- Mide: abre las herramientas del navegador (F12), pestaña Red, y recarga la página para ver el peso de cada archivo.
- Reduce: redimensiona y comprime antes de subir.
- Difiere: usa
loading="lazy"en imágenes ypreload="none"en audio y video que no se verán de inmediato.
8.Errores frecuentes
<audio>o<video>sincontrols: quedan invisibles y nadie sabe que están ahí.autoplaycon sonido: la mayoría de los navegadores lo bloquea y a las personas les molesta.- Subir videos de cientos de MB directamente a tu repositorio.
- Olvidar el texto alternativo del
<iframe>(title) o de la imagen dentro de<picture>. - Poner el
alten el<source>en lugar del<img>: elaltsiempre va en el<img>final. - Rutas incorrectas o mayúsculas distintas en los archivos.
- Usar un archivo en un formato que el navegador no reproduce y no ofrecer alternativa.
📒 Apuntes para llevar
<audio controls>y<video controls>reproducen archivos; sincontrolsno se ve el reproductor.<source>ofrece varios formatos y el navegador elige el que entienda; el texto interior es respaldo.- En video,
width,heightypostermejoran la carga y la presentación. autoplaysolo conmutedy para contenido decorativo; evítalo con sonido.- Los subtítulos se añaden con
<track kind="captions" src="…vtt" srclang="es" label="Español">. <iframe>incrusta contenido externo:titleobligatorio,loading="lazy"y confianza en el origen.srcsetysizesofrecen varios tamaños;<picture>cambia la imagen según condiciones o formato.- Controla el peso: comprime, redimensiona y difiere la carga.
9.Glosario
| Término | Significado |
|---|---|
controls | Atributo que muestra los botones del reproductor. |
<source> | Una de varias versiones del mismo archivo multimedia. |
| Códec | Método de compresión de audio o video (H.264, VP9…). |
| Poster | Imagen mostrada antes de reproducir un video. |
| WebVTT | Formato de texto para subtítulos (.vtt). |
iframe | Marco que muestra otra página dentro de la tuya. |
srcset | Lista de versiones de una imagen con su ancho real. |
| Dirección de arte | Mostrar recortes distintos de una imagen según la pantalla. |
🧠 Comprueba lo aprendido
Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.
Un <video> sin controls y sin autoplay es…
Sin controls no hay botones. Si tampoco hay autoplay, nadie puede iniciar el video.
¿Para qué sirve <track kind="captions">?
Conecta un archivo .vtt con los subtítulos del video.
Quieres un video decorativo de fondo que se reproduzca solo. ¿Qué atributos necesita?
Los navegadores solo permiten el autoplay si el video está silenciado (muted). loop lo repite y playsinline evita la pantalla completa en iPhone.
¿Qué atributo es obligatorio en un <iframe> por accesibilidad?
title describe el contenido del marco para lectores de pantalla.
En <picture>, ¿dónde va el atributo alt?
El <img> es la imagen real; los <source> solo sugieren alternativas.
Tu progreso se guarda en este navegador y se refleja en el índice del curso.
💡 🚀 ¡Ahora te toca!
La práctica fija lo aprendido. Pasa al ejercicio de esta lección.