Validador de streams¶
media.probe.stream_validator
La validación de streams es un mecanismo que permite determinar si un stream HLS o MPEG-DASH es adecuado para su procesamiento mediante la comprobación de su integridad y de la corrección de su empaquetado. Comprueba las playlists o los manifiestos y los segmentos de medios asociados, sin decodificar el stream ni validar la conformidad a nivel de códec.
El paquete stream-validator proporciona acceso a este mecanismo mediante la línea de comandos. Funciona independientemente del servidor y no requiere licencia. Sus mensajes están en inglés.
Instalación¶
Se admiten Ubuntu 22.04 o posterior y Debian 12 o posterior en amd64 o arm64. Ejecute los comandos como root; deben estar instalados curl y los certificados CA:
curl -fsSL https://apt.flussonic.com/repo/master/dev.key -o /etc/apt/trusted.gpg.d/flussonic-dev.gpg
echo 'deb http://apt.flussonic.com/branch/sapsan/master repo/' > /etc/apt/sources.list.d/stream-validator.list
apt-get update
apt-get install stream-validator
El paquete instala ambos comandos y la guía en inglés en /usr/share/doc/stream-validator/README.md.
Docker¶
La imagen flussonic/stream-validator admite amd64 y arm64. El punto de entrada predeterminado ejecuta la validación HLS. Para DASH, seleccione dash_validator con --entrypoint.
docker run --rm flussonic/stream-validator:latest \
http://server:5080/streaming/v/tv1/index.m3u8 --capture 30
docker run --rm --entrypoint dash_validator flussonic/stream-validator:latest \
http://server:5080/streaming/v/tv1/Manifest.mpd --capture 30
En los ejemplos, server es el nombre de host o la dirección IP de su streamer. Dentro de un contenedor, localhost se refiere al propio contenedor. En Docker Desktop, use host.docker.internal para acceder a un servicio del host.
HLS¶
La validación HLS captura una emisión HLS en directo, actualiza las playlists y descarga segmentos de inicialización y medios de forma predeterminada. Comprueba la latencia LL-HLS, la disponibilidad de partes y el intervalo de partes independientes relacionado con el GOP. La estimación basada en PART-HOLD-BACK no mide la latencia de la cámara a la pantalla.
Ejecución¶
hls_validator --capture 30 --target-latency 2 http://server:5080/streaming/v/tv1/index.m3u8
Opciones¶
| Opción | Función | Predeterminado |
|---|---|---|
URL, -u, --url |
URL de HLS; también se acepta como argumento posicional. | — |
-t, --capture |
Duración de la captura en directo. | 20 |
--request-timeout |
Tiempo de espera de cada solicitud HTTP. | 10 |
--target-latency |
Objetivo de latencia para el diagnóstico. | 2 |
--preload-timeout |
Plazo de sondeo de la parte PRELOAD-HINT. | 2.5 |
--playlists-only |
Comprueba playlists sin descargar medios ni sondear partes/preload en tiempo real. | desactivado |
-h, --help |
Muestra la ayuda. | — |
--timeout sigue siendo un alias de --capture. El comando interno anterior se llamaba validator.
Códigos de diagnóstico¶
LL-DISABLED— la baja latencia está desactivada.TARGETDURATION-INFLATED— TARGETDURATION está sobredimensionado.PART-TARGET-LARGE— PART-TARGET es demasiado grande.SPARSE-INDEPENDENT-PARTS— hay pocas partes independientes debido a un GOP largo.
MPEG-DASH¶
La validación DASH comprueba el MPD y descarga segmentos de inicialización y medios. Detecta desalineaciones de pistas ABR, errores temporales y deriva del borde en directo entre audio y vídeo.
Modos¶
- auto — Automático: determina el modo según
MPD@type. - --static — Comprueba una vez una presentación VOD estática.
- --live — Actualiza un MPD dinámico durante la captura y comprueba huecos y solapamientos entre actualizaciones de SegmentTimeline.
Ejecución¶
dash_validator --live --capture 30 http://server:5080/streaming/v/tv1/Manifest.mpd
Opciones¶
| Opción | Función | Predeterminado |
|---|---|---|
-u, --url |
URL del MPD; también se acepta como primer argumento posicional. | — |
-t, --capture |
Duración de la captura en directo; no se aplica al modo estático. | 20 |
-p, --poll |
Intervalo de consulta del MPD en directo; se limita al rango interno permitido. | minimumUpdatePeriod o 2 s |
--request-timeout |
Tiempo de espera HTTP en todos los modos de validación y durante la detección de modo. | 10 |
--static, --live |
Fuerza el modo en lugar de detectarlo automáticamente. | automático |
-h, --help |
Muestra la ayuda. | — |
--timeout es un alias de --capture, no un tiempo de espera HTTP. Al migrar desde la utilidad interna dash-validate, sustituya su opción HTTP --timeout por --request-timeout.
Resultado¶
El informe muestra errores y advertencias con su ubicación. Códigos de salida:
0— validación correcta, incluso con solo advertencias.1— errores de validación o inicio.2— argumentos CLI incorrectos.
Las duraciones se expresan en segundos y admiten números fraccionarios positivos.
Qué sigue¶
Para configurar el servidor, consulte: