Video (video)

Intermedio
HTML
HTML
Actualizado: 01/05/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Elemento video y atributos principales

El elemento video es una de las incorporaciones más significativas de HTML5, permitiendo la reproducción nativa de contenido multimedia directamente en el navegador sin necesidad de plugins externos como Flash. Esta funcionalidad revolucionó la forma en que consumimos contenido audiovisual en la web.

La estructura básica del elemento video es sencilla pero potente:

<video src="movie.mp4"></video>

Sin embargo, esta implementación mínima no proporciona controles de reproducción ni otras funcionalidades esenciales. Para crear una experiencia de usuario completa, necesitamos conocer sus atributos principales.

Estructura básica y atributos esenciales

El elemento <video> puede implementarse de dos formas principales:

  • Con un atributo src que apunta directamente al archivo:
<video src="tutorial.mp4" width="640" height="360"></video>
  • Con elementos <source> anidados que permiten especificar múltiples formatos para mayor compatibilidad:
<video width="640" height="360">
  <source src="tutorial.mp4" type="video/mp4">
  <source src="tutorial.webm" type="video/webm">
  Your browser does not support the video tag.
</video>

El texto incluido entre las etiquetas de apertura y cierre se muestra únicamente si el navegador no soporta el elemento <video>, funcionando como un mensaje de fallback.

Atributos de dimensión y visualización

Los atributos width y height controlan las dimensiones del reproductor de video:

<video src="tutorial.mp4" width="640" height="360"></video>

Estos valores se expresan en píxeles y definen el espacio que ocupará el reproductor en la página. Si no se especifican, el navegador utilizará las dimensiones originales del video.

Para mantener la proporción de aspecto correcta, es recomendable especificar solo uno de estos atributos y dejar que el navegador calcule el otro automáticamente.

Atributos de control y comportamiento

Los siguientes atributos modifican el comportamiento del reproductor:

  • controls: Muestra los controles nativos del navegador (reproducción, pausa, volumen, etc.)
<video src="tutorial.mp4" controls></video>
  • preload: Indica al navegador qué debe precargar
  • none: No precarga nada
  • metadata: Solo precarga metadatos (duración, dimensiones)
  • auto: Precarga todo el video (comportamiento predeterminado en la mayoría de navegadores)
<video src="tutorial.mp4" preload="metadata" controls></video>
  • loop: Reproduce el video en bucle continuo
<video src="tutorial.mp4" controls loop></video>
  • playsinline: Permite la reproducción dentro de la página en dispositivos iOS (en lugar de pantalla completa)
<video src="tutorial.mp4" controls playsinline></video>

Ejemplo práctico completo

Veamos un ejemplo que combina varios atributos para crear un reproductor de video funcional:

<video width="640" height="360" controls preload="metadata">
  <source src="tutorial.mp4" type="video/mp4">
  <source src="tutorial.webm" type="video/webm">
  <p>Your browser doesn't support HTML5 video. Here is a <a href="tutorial.mp4">link to download the video</a> instead.</p>
</video>

Este ejemplo incluye:

  • Dimensiones específicas para el reproductor
  • Controles de reproducción visibles
  • Precarga solo de metadatos para optimizar el rendimiento
  • Múltiples formatos de video para máxima compatibilidad
  • Un mensaje y enlace alternativo para navegadores sin soporte

Atributos de accesibilidad

La accesibilidad es un aspecto fundamental al implementar videos en la web:

  • crossorigin: Permite la carga de recursos desde otros dominios cuando se utilizan subtítulos o pistas de texto
<video src="https://othersite.com/video.mp4" crossorigin="anonymous" controls></video>
  • tabindex: Define el orden de navegación mediante teclado
<video src="tutorial.mp4" controls tabindex="1"></video>

Eventos y API JavaScript

El elemento <video> expone una API rica que permite controlar la reproducción mediante JavaScript:

<video id="myVideo" src="tutorial.mp4" width="640" height="360"></video>
<button onclick="playPause()">Play/Pause</button>

<script>
function playPause() {
  const video = document.getElementById("myVideo");
  if (video.paused) {
    video.play();
  } else {
    video.pause();
  }
}
</script>

Algunos eventos clave que podemos utilizar:

  • loadedmetadata: Se dispara cuando se han cargado los metadatos del video
  • play: Cuando comienza la reproducción
  • pause: Cuando se pausa el video
  • ended: Cuando finaliza la reproducción
  • timeupdate: Se dispara continuamente durante la reproducción

Consideraciones de rendimiento

Al implementar videos en una página web, debemos considerar:

  • Utilizar el atributo preload="none" o preload="metadata" para videos que no son críticos
  • Comprimir adecuadamente los videos para reducir el tamaño de archivo
  • Proporcionar múltiples formatos para optimizar la compatibilidad y el rendimiento
  • Considerar técnicas de carga diferida (lazy loading) para videos que no están en la vista inicial
<video src="tutorial.mp4" preload="none" controls></video>

El elemento <video> de HTML5 proporciona una solución robusta y flexible para integrar contenido audiovisual en nuestras páginas web, mejorando significativamente la experiencia del usuario mientras mantenemos el control sobre aspectos clave como el rendimiento y la accesibilidad.

¿Te está gustando esta lección?

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Formatos de video para web: MP4, WebM, Ogg

Al incorporar videos en nuestros sitios web, la elección del formato adecuado es crucial para garantizar la compatibilidad con diferentes navegadores y dispositivos. No existe un único formato que funcione perfectamente en todos los entornos, por lo que es importante conocer las opciones disponibles y sus características.

Los tres formatos principales para video web son MP4, WebM y Ogg. Cada uno tiene sus propias ventajas y limitaciones que debemos considerar al desarrollar contenido multimedia.

MP4 (MPEG-4 Part 14)

MP4 es el formato más ampliamente compatible en la web actual:

<video controls>
  <source src="video.mp4" type="video/mp4">
</video>

Características principales:

  • Utiliza principalmente el códec H.264 para la compresión de video
  • Ofrece buena calidad con tamaños de archivo razonables
  • Compatible con prácticamente todos los navegadores modernos
  • Funciona en dispositivos móviles iOS y Android
  • Es un formato propietario que requiere licencias para su implementación

MP4 es generalmente la opción más segura cuando solo puedes ofrecer un formato de video, ya que garantiza la mayor compatibilidad posible con los navegadores actuales.

WebM

WebM es un formato abierto y libre desarrollado específicamente para la web:

<video controls>
  <source src="video.webm" type="video/webm">
</video>

Características principales:

  • Utiliza los códecs VP8/VP9 para video y Vorbis/Opus para audio
  • Ofrece mejor compresión que MP4, resultando en archivos más pequeños
  • Compatible con Chrome, Firefox, Opera y Edge
  • No es compatible con versiones antiguas de Safari ni Internet Explorer
  • Es completamente libre de regalías, sin costos de licencia

WebM destaca por su eficiencia en la compresión, lo que resulta en tiempos de carga más rápidos y menor consumo de ancho de banda, siendo ideal para sitios con restricciones de tráfico.

Ogg Theora

Ogg es otro formato abierto que utiliza el códec de video Theora:

<video controls>
  <source src="video.ogv" type="video/ogg">
</video>

Características principales:

  • Utiliza el códec Theora para video y Vorbis para audio
  • Fue uno de los primeros formatos libres para video en HTML5
  • Compatible con Firefox, Chrome y Opera
  • No es compatible con Safari ni Internet Explorer/Edge
  • Completamente libre de regalías

Aunque Ogg fue pionero en los formatos abiertos para web, actualmente ha sido superado por WebM en términos de eficiencia y calidad, por lo que su uso ha disminuido considerablemente.

Comparativa de compatibilidad

Esta tabla muestra la compatibilidad de los diferentes formatos con los navegadores más populares:

| Formato | Chrome | Firefox | Safari | Edge | Opera | iOS | Android | |---------|--------|---------|--------|------|-------|-----|---------| | MP4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | WebM | ✓ | ✓ | ✓* | ✓ | ✓ | ✗ | ✓ | | Ogg | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ |

*Safari añadió soporte para WebM en versiones recientes (Safari 14+)

Implementación de múltiples formatos

La mejor práctica es proporcionar múltiples formatos para garantizar la compatibilidad con todos los navegadores:

<video controls width="640" height="360">
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
  <source src="video.ogv" type="video/ogg">
  Your browser does not support the video tag.
</video>

El navegador seleccionará automáticamente el primer formato que pueda reproducir, siguiendo el orden en que aparecen los elementos <source>. Por ello, es recomendable colocar primero el formato con mejor relación calidad/tamaño y luego los formatos de respaldo.

Consideraciones técnicas

Al preparar videos para la web, debemos tener en cuenta:

  • Resolución: Adaptar la resolución al contexto de visualización (720p es generalmente suficiente para web)
  • Bitrate: Encontrar un equilibrio entre calidad y tamaño del archivo
  • Proporción de aspecto: Mantener proporciones estándar (16:9, 4:3) para evitar distorsiones
  • Framerate: 24-30 fps es adecuado para la mayoría de contenidos web

Herramientas de conversión

Existen diversas herramientas para convertir videos a los formatos web:

  • FFmpeg: Herramienta de línea de comandos potente y flexible
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
  • Handbrake: Aplicación gráfica multiplataforma para conversión de video
  • Convertio: Herramienta online para conversiones rápidas

Ejemplo práctico optimizado

Este ejemplo implementa los tres formatos principales con configuraciones óptimas:

<video controls width="640" height="360">
  <source src="video.webm" type="video/webm; codecs=vp9,opus">
  <source src="video.mp4" type="video/mp4; codecs=avc1.42E01E,mp4a.40.2">
  <source src="video.ogv" type="video/ogg; codecs=theora,vorbis">
  <p>This browser does not support HTML5 video. <a href="video.mp4">Download the video</a> instead.</p>
</video>

El atributo codecs proporciona información más específica al navegador sobre los códecs utilizados, permitiendo una mejor toma de decisiones sobre la compatibilidad.

La elección del formato adecuado dependerá de tus necesidades específicas: si la prioridad es la compatibilidad universal, MP4 es la mejor opción; si buscas un equilibrio entre eficiencia y compatibilidad, una combinación de WebM y MP4 es ideal; y si apoyas exclusivamente los estándares abiertos, WebM es la opción recomendada.

Atributos poster, controls, autoplay, muted

Los atributos del elemento <video> nos permiten personalizar la experiencia de reproducción de vídeos en nuestras páginas web. Cuatro de los más importantes son poster, controls, autoplay y muted, que controlan aspectos visuales y de comportamiento del reproductor.

Atributo poster

El atributo poster permite especificar una imagen de previsualización que se mostrará antes de que comience la reproducción del vídeo. Esta imagen funciona como una miniatura representativa del contenido:

<video src="tutorial.mp4" poster="thumbnail.jpg" width="640" height="360"></video>

Este atributo resulta especialmente útil por varias razones:

  • Proporciona un contexto visual inmediato sobre el contenido del vídeo
  • Mejora la experiencia de usuario mientras el vídeo se está cargando
  • Evita mostrar el primer fotograma del vídeo, que podría no ser representativo
  • Reduce la carga inicial de datos, ya que la imagen suele ser más ligera que el vídeo

Si no se especifica un poster, la mayoría de navegadores mostrarán el primer fotograma del vídeo como imagen de previsualización, aunque esto requiere que al menos parte del vídeo se haya descargado.

Atributo controls

El atributo controls añade una interfaz de control nativa del navegador que permite al usuario interactuar con el vídeo:

<video src="tutorial.mp4" controls></video>

Este atributo es de tipo booleano, lo que significa que su mera presencia activa la funcionalidad, sin necesidad de asignarle un valor.

Los controles que se muestran típicamente incluyen:

  • Botón de reproducción/pausa
  • Barra de progreso con posibilidad de buscar
  • Control de volumen
  • Botón de pantalla completa
  • Opción de subtítulos (si están disponibles)

El aspecto visual de estos controles varía según el navegador, ya que cada uno implementa su propia interfaz:

<video width="640" height="360" controls>
  <source src="tutorial.mp4" type="video/mp4">
  <source src="tutorial.webm" type="video/webm">
</video>

Si omitimos este atributo, el vídeo se mostrará sin controles, lo que puede ser útil cuando queremos implementar nuestra propia interfaz personalizada mediante JavaScript o cuando el vídeo funciona como elemento decorativo.

Atributo autoplay

El atributo autoplay indica al navegador que debe comenzar a reproducir el vídeo automáticamente tan pronto como sea posible, sin esperar la interacción del usuario:

<video src="background-video.mp4" autoplay></video>

Es importante entender las limitaciones actuales de este atributo:

  • La mayoría de navegadores modernos bloquean la reproducción automática con sonido
  • Esta restricción responde a preocupaciones sobre experiencia de usuario y consumo de datos
  • Para que autoplay funcione de manera consistente, generalmente debe combinarse con muted

Un caso de uso común para autoplay es en vídeos de fondo o elementos decorativos:

<video src="background-video.mp4" autoplay muted loop></video>

Atributo muted

El atributo muted silencia el audio del vídeo por defecto:

<video src="tutorial.mp4" muted></video>

Este atributo es particularmente útil en varios escenarios:

  • Permite que los vídeos con autoplay se reproduzcan sin ser bloqueados por el navegador
  • Mejora la accesibilidad al evitar sonidos inesperados
  • Respeta las preferencias del usuario en entornos donde el audio puede ser intrusivo

El usuario siempre puede activar el sonido manualmente si se proporcionan los controles:

<video src="tutorial.mp4" muted controls></video>

Combinando atributos para casos de uso comunes

Los atributos pueden combinarse para lograr diferentes comportamientos según nuestras necesidades:

Vídeo de fondo decorativo:

<video src="background.mp4" autoplay muted loop playsinline></video>

Este ejemplo crea un vídeo que:

  • Se reproduce automáticamente (autoplay)
  • No emite sonido (muted)
  • Se repite continuamente (loop)
  • Se reproduce dentro de la página en dispositivos móviles (playsinline)

Vídeo tutorial con previsualización:

<video src="tutorial.mp4" poster="tutorial-preview.jpg" controls width="640" height="360"></video>

Este ejemplo muestra:

  • Una imagen de previsualización atractiva (poster)
  • Controles completos para que el usuario maneje la reproducción (controls)
  • Dimensiones específicas para mantener la consistencia del diseño

Vídeo promocional en redes sociales:

<video poster="promo-thumbnail.jpg" autoplay muted loop controls>
  <source src="promo.mp4" type="video/mp4">
  <source src="promo.webm" type="video/webm">
</video>

Este ejemplo está optimizado para:

  • Captar la atención con reproducción automática silenciosa (autoplay muted)
  • Mostrar una miniatura atractiva antes de la carga (poster)
  • Permitir al usuario activar el sonido si lo desea (controls)
  • Ofrecer compatibilidad con diferentes navegadores (múltiples formatos)

Consideraciones de accesibilidad

Al utilizar estos atributos, debemos tener en cuenta algunas consideraciones de accesibilidad:

  • Los vídeos con autoplay pueden ser disruptivos para usuarios con lectores de pantalla
  • El atributo controls es esencial para usuarios que necesitan controlar la reproducción
  • Si utilizamos muted, debemos asegurarnos de que la información importante no dependa exclusivamente del audio

Una implementación accesible podría ser:

<video controls poster="tutorial-preview.jpg">
  <source src="tutorial.mp4" type="video/mp4">
  <source src="tutorial.webm" type="video/webm">
  <track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English">
  <p>Tu navegador no soporta vídeo HTML5. Aquí tienes un <a href="tutorial.mp4">enlace para descargar el vídeo</a>.</p>
</video>

Ejemplo práctico completo

Veamos un ejemplo que combina todos estos atributos de manera efectiva:

<div class="video-container">
  <video 
    id="product-demo"
    poster="demo-thumbnail.jpg"
    controls
    muted
    width="800" 
    height="450">
    <source src="product-demo.mp4" type="video/mp4">
    <source src="product-demo.webm" type="video/webm">
    <p>Este navegador no soporta la reproducción de vídeos HTML5.</p>
  </video>
  <button id="unmute-btn">Activar sonido</button>
</div>

<script>
  document.getElementById('unmute-btn').addEventListener('click', function() {
    const video = document.getElementById('product-demo');
    video.muted = false;
    this.style.display = 'none';
  });
</script>

Este ejemplo incluye:

  • Una imagen de previsualización atractiva con poster
  • Controles nativos del navegador con controls
  • Inicio silenciado con muted (con opción para activar el sonido)
  • Múltiples formatos para compatibilidad
  • Un mensaje alternativo para navegadores sin soporte
  • Interactividad adicional mediante JavaScript

Los atributos poster, controls, autoplay y muted nos proporcionan un control preciso sobre cómo se presentan y comportan los vídeos en nuestras páginas web, permitiéndonos crear experiencias multimedia ricas y accesibles.

Subtítulos y pistas con el elemento track

El elemento <track> es una herramienta fundamental para añadir subtítulos, leyendas, descripciones y otros tipos de texto sincronizado a los vídeos HTML5. Esta funcionalidad mejora significativamente la accesibilidad del contenido multimedia y permite llegar a una audiencia más amplia, incluyendo personas con discapacidad auditiva o hablantes de diferentes idiomas.

El elemento <track> se utiliza como hijo del elemento <video> y permite vincular archivos de texto con formato WebVTT (Web Video Text Tracks):

<video controls width="640" height="360">
  <source src="conference.mp4" type="video/mp4">
  <track src="subtitles-es.vtt" kind="subtitles" srclang="es" label="Español">
  <track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English" default>
</video>

Atributos del elemento track

El elemento <track> admite varios atributos que definen su comportamiento:

  • src: Especifica la URL del archivo de pista (obligatorio)
  • kind: Define el tipo de texto que contiene la pista
  • srclang: Indica el idioma del contenido de la pista
  • label: Proporciona un título legible para el usuario
  • default: Indica que esta pista debe activarse por defecto

Veamos cada uno de estos atributos en detalle:

Atributo src

El atributo src es obligatorio y especifica la ruta al archivo de pista:

<track src="subtitles.vtt">

Los archivos de pista deben estar en formato WebVTT (extensión .vtt), que es el estándar para texto sincronizado con vídeo en HTML5.

Atributo kind

El atributo kind define el propósito de la pista y puede tener los siguientes valores:

  • subtitles: Transcripción o traducción del diálogo
  • captions: Transcripción del diálogo y descripción de sonidos relevantes (para personas con discapacidad auditiva)
  • descriptions: Descripción textual del contenido visual (para personas con discapacidad visual)
  • chapters: Títulos de capítulos para navegar por el vídeo
  • metadata: Información que no se muestra pero puede ser utilizada por scripts
<track src="captions.vtt" kind="captions" srclang="en">

Si no se especifica, el valor predeterminado es subtitles.

Atributo srclang

El atributo srclang indica el idioma del texto de la pista utilizando códigos de idioma ISO 639-1:

<track src="subtitles-fr.vtt" kind="subtitles" srclang="fr" label="Français">

Este atributo es obligatorio cuando kind="subtitles".

Atributo label

El atributo label proporciona un nombre descriptivo que se mostrará en la interfaz de usuario del reproductor:

<track src="subtitles-de.vtt" kind="subtitles" srclang="de" label="Deutsch">

Este texto aparecerá en el menú de selección de subtítulos, por lo que debe ser claro y representativo.

Atributo default

El atributo default indica que esta pista debe estar activada por defecto cuando el usuario no ha seleccionado ninguna preferencia:

<track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English" default>

Solo una pista de cada tipo debería tener este atributo.

Formato WebVTT

WebVTT (Web Video Text Tracks) es el formato estándar para los archivos de pista. Un archivo WebVTT básico tiene la siguiente estructura:

WEBVTT

00:00:01.000 --> 00:00:04.000
Primera línea de subtítulos

00:00:05.000 --> 00:00:08.000
Segunda línea de subtítulos

Cada bloque de texto incluye:

  • Un identificador opcional (puede ser un número o texto)
  • Un intervalo de tiempo en formato hh:mm:ss.mmm
  • El texto que se mostrará durante ese intervalo

Un ejemplo más completo:

WEBVTT

1
00:00:01.500 --> 00:00:05.000
Bienvenidos a nuestra presentación
sobre desarrollo web moderno

2
00:00:06.000 --> 00:00:09.500
HTML5 ha revolucionado la forma
en que creamos contenido multimedia

Estilos en WebVTT

WebVTT también permite aplicar estilos básicos a los subtítulos mediante etiquetas similares a HTML:

WEBVTT

00:00:01.000 --> 00:00:04.000
<b>Importante:</b> Esta información es crucial

00:00:05.000 --> 00:00:08.000
Puedes <i>enfatizar</i> palabras específicas

Las etiquetas disponibles incluyen:

  • <b>...</b> - Texto en negrita
  • <i>...</i> - Texto en cursiva
  • <u>...</u> - Texto subrayado
  • <c>...</c> - Clase (para estilos CSS)
  • <ruby>...</ruby> - Anotaciones ruby (para idiomas asiáticos)

Implementación de múltiples pistas

Un vídeo puede tener múltiples pistas para diferentes propósitos e idiomas:

<video controls width="640" height="360">
  <source src="documentary.mp4" type="video/mp4">
  <source src="documentary.webm" type="video/webm">
  
  <!-- Subtítulos en varios idiomas -->
  <track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English" default>
  <track src="subtitles-es.vtt" kind="subtitles" srclang="es" label="Español">
  <track src="subtitles-fr.vtt" kind="subtitles" srclang="fr" label="Français">
  
  <!-- Leyendas para personas con discapacidad auditiva -->
  <track src="captions-en.vtt" kind="captions" srclang="en" label="English Captions">
  
  <!-- Capítulos para navegación -->
  <track src="chapters.vtt" kind="chapters" srclang="en" label="Chapters">
  
  <!-- Descripciones para personas con discapacidad visual -->
  <track src="descriptions.vtt" kind="descriptions" srclang="en" label="Descriptions">
</video>

Ejemplo práctico: Vídeo educativo con subtítulos

Veamos un ejemplo completo de un vídeo educativo con subtítulos en varios idiomas:

<video id="tutorial-video" controls width="800" height="450" poster="tutorial-thumbnail.jpg">
  <source src="web-development-tutorial.mp4" type="video/mp4">
  <source src="web-development-tutorial.webm" type="video/webm">
  
  <track 
    src="tutorial-subtitles-en.vtt" 
    kind="subtitles" 
    srclang="en" 
    label="English" 
    default>
  
  <track 
    src="tutorial-subtitles-es.vtt" 
    kind="subtitles" 
    srclang="es" 
    label="Español">
  
  <track 
    src="tutorial-chapters.vtt" 
    kind="chapters" 
    srclang="en" 
    label="Chapters">
  
  <p>Tu navegador no soporta vídeos HTML5. <a href="web-development-tutorial.mp4">Descarga el vídeo</a>.</p>
</video>

El archivo de subtítulos en inglés (tutorial-subtitles-en.vtt) podría tener este aspecto:

WEBVTT

1
00:00:02.000 --> 00:00:06.000
Welcome to this tutorial on modern web development

2
00:00:07.000 --> 00:00:12.000
Today we'll learn how to implement video with subtitles in HTML5

3
00:00:13.000 --> 00:00:18.000
This technique improves accessibility and user experience

Y el archivo de capítulos (tutorial-chapters.vtt):

WEBVTT

Chapter 1
00:00:00.000 --> 00:05:00.000
Introduction to HTML5 Video

Chapter 2
00:05:00.000 --> 00:10:00.000
Adding Subtitles with Track Element

Chapter 3
00:10:00.000 --> 00:15:00.000
Styling and Customization

Chapter 4
00:15:00.000 --> 00:20:00.000
Best Practices and Browser Compatibility

Manipulación de pistas con JavaScript

Podemos interactuar con las pistas mediante la API de TextTrack en JavaScript:

<video id="myVideo" controls width="640" height="360">
  <source src="presentation.mp4" type="video/mp4">
  <track id="enTrack" src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English">
  <track id="esTrack" src="subtitles-es.vtt" kind="subtitles" srclang="es" label="Español">
</video>

<div>
  <button onclick="enableTrack('enTrack')">English</button>
  <button onclick="enableTrack('esTrack')">Español</button>
  <button onclick="disableAllTracks()">No Subtitles</button>
</div>

<script>
  function enableTrack(trackId) {
    const video = document.getElementById('myVideo');
    const tracks = video.textTracks;
    
    for (let i = 0; i < tracks.length; i++) {
      tracks[i].mode = (tracks[i].id === trackId) ? 'showing' : 'hidden';
    }
  }
  
  function disableAllTracks() {
    const video = document.getElementById('myVideo');
    const tracks = video.textTracks;
    
    for (let i = 0; i < tracks.length; i++) {
      tracks[i].mode = 'hidden';
    }
  }
</script>

Este código permite a los usuarios cambiar entre diferentes idiomas de subtítulos o desactivarlos completamente.

Consideraciones de accesibilidad

Al implementar pistas de texto, debemos tener en cuenta algunas prácticas recomendadas para la accesibilidad:

  • Proporcionar al menos subtítulos en el idioma principal del contenido
  • Incluir descripciones de sonidos importantes en las pistas de tipo captions
  • Asegurarse de que los subtítulos estén sincronizados correctamente con el audio
  • Mantener los subtítulos concisos y legibles (no más de dos líneas a la vez)
  • Utilizar un contraste adecuado para facilitar la lectura

Compatibilidad con navegadores

El soporte para el elemento <track> es amplio en los navegadores modernos, pero la implementación puede variar:

  • Chrome, Firefox, Edge y Safari soportan el elemento <track> y el formato WebVTT
  • La apariencia de los controles de subtítulos varía según el navegador
  • Algunos navegadores móviles pueden tener limitaciones en la visualización de subtítulos

Para garantizar la mejor experiencia, es recomendable probar los subtítulos en diferentes navegadores y dispositivos.

El elemento <track> es una herramienta poderosa que mejora significativamente la accesibilidad y usabilidad de los vídeos en HTML5, permitiendo llegar a una audiencia más amplia y proporcionando una experiencia más rica y personalizable para todos los usuarios.

Aprendizajes de esta lección

  • Comprender la estructura y atributos esenciales del elemento
  • Conocer los formatos de video más comunes para la web y su compatibilidad.
  • Aprender a utilizar atributos como poster, controls, autoplay y muted para personalizar la experiencia de reproducción.
  • Implementar subtítulos y pistas mediante el elemento para mejorar la accesibilidad.
  • Manipular pistas de texto con JavaScript y aplicar buenas prácticas para la accesibilidad y rendimiento.

Completa HTML y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración