Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. API web
  3. Media Source API
  4. Transmisión Adaptativa DASH para Video en HTML 5

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

Transmisión Adaptativa DASH para Video en HTML 5

    La Transmisión Adaptativa Dinámica sobre HTTP (DASH, por sus siglas en Inglés) es un protocolo de transmisión adaptativa. Esto significa que permite a una transmisión de video cambiar las tasas de bits con base al rendimiento de la red, para mantener un video reproduciendo.

    Soporte de navegadores

    Firefox 21 incluye un implementación deDASH para videos HTML WebM la cual está deshabilitada por defecto. Puede ser habilitada a través de "about:config" y la preferencia "media.dash.enabled".

    Firefox 23 removió el soporte paraDASH para videos HTML WebM. Será reemplazado por una implementación deMedia Source Extensions API la cual permitirá el soporte paraDASH a través de librerías de Javascript como dash.js. Véase el error778617 para más detalles.

    UsandoDASH - Desde el servidor

    Primero tendrás que convertir tu video WebM a un manifiestoDASH acompañado de los archivos de video en varias tasas de bits. Para empezar solo necesitarás el programa ffmpeg deffmpeg.org, con soporte para libvpx and libvorbis para video y audio WebM, al menos en versión 2.5 (probablemente; esto fue probado con 3.2.5).

    1. Usa tu archivo WebM para crear un archivo de audio y múltiples archivos de video

    Por ejemplo:

    El archivoin.video puede ser cualquier contenedor con al menos un flujo de datos de audio y uno de video que pueden ser decodificados por ffmpeg.

    Crea el audio usando:

    bash
    ffmpeg -i in.video -vn -acodec libvorbis -ab 128k -dash 1 my_audio.webm

    Crea cada variante de video.

    bash
    ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -frame-parallel 1 -f webm -dash 1 \-an -vf scale=160:90 -b:v 250k -dash 1 video_160x90_250k.webm
    bash
    ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -frame-parallel 1  -f webm -dash 1 \-an -vf scale=320:180 -b:v 500k -dash 1 video_320x180_500k.webm
    bash
    ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -frame-parallel 1  -f webm -dash 1 \-an -vf scale=640:360 -b:v 750k -dash 1 video_640x360_750k.webm
    bash
    ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -frame-parallel 1  -f webm -dash 1 \-an -vf scale=640:360 -b:v 1000k -dash 1 video_640x360_1000k.webm
    bash
    ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -frame-parallel 1  -f webm -dash 1 \-an -vf scale=1280:720 -b:v 1500k -dash 1 video_1280x720_1500k.webm

    O hazlo todo en un solo comando.

    bash
    ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 \-g 150 -tile-columns 4 -frame-parallel 1 -f webm -dash 1 \-an -vf scale=160:90 -b:v 250k -dash 1 video_160x90_250k.webm \-an -vf scale=320:180 -b:v 500k -dash 1 video_320x180_500k.webm \-an -vf scale=640:360 -b:v 750k -dash 1 video_640x360_750k.webm \-an -vf scale=640:360 -b:v 1000k -dash 1 video_640x360_1000k.webm \-an -vf scale=1280:720 -b:v 1500k -dash 1 video_1280x720_1500k.webm

    2. Crea el archivo manifiesto

    bash
    ffmpeg \  -f webm_dash_manifest -i video_160x90_250k.webm \  -f webm_dash_manifest -i video_320x180_500k.webm \  -f webm_dash_manifest -i video_640x360_750k.webm \  -f webm_dash_manifest -i video_1280x720_1500k.webm \  -f webm_dash_manifest -i my_audio.webm \  -c copy \  -map 0 -map 1 -map 2 -map 3 -map 4 \  -f webm_dash_manifest \  -adaptation_sets "id=0,streams=0,1,2,3 id=1,streams=4" \  my_video_manifest.mpd

    El parámetro-map corresponde a los archivos de entrada en la secuencia que fueron dados; debes tener uno por cada archivo. El parámetro-adaptation_sets los asigna en conjuntos de adaptación; por ejemplo, esto crea un conjunto (0) que contiene los flujos de datos 0, 1, 2 y 3 (los videos), y otro conjunto (1) que contiene solo el flujo de datos 4, el flujo de datos de audio.

    Pon el manifiesto y los archivos de video asociados en tu servidor web o CDN.DASH trabaja via HTTP, siempre y cuando tu servidor HTTP soporte peticiones de rangos de bytes, y esté configurado para servir archivos.mpd conmimetype="application/dash+xml", entonces tendrás todo listo.

    UsandoDASH - Desde el cliente

    Querrás modificar tu página web para apuntar al manifiestoDASH primero, en lugar de a un video en particular directamente:

    html
    <video>  <source src="movie.mpd" />  <source src="movie.webm" />  Tu navegador no soporta la etiqueta video.</video>

    ¡Eso es todo! SiDASH es soportado por tu navegador, tu video ahora tendrá una transmisión adaptativa.

    Enlaces

    Especificación WebM DASH en El Proyecto WebM

    Foro DASH Industry

    Descripción del proyecto WebM de cómo crear archivos DASH con FFMPEG

    Help improve MDN

    Learn how to contribute

    This page was last modified on byMDN contributors.


    [8]ページ先頭

    ©2009-2025 Movatter.jp