Skip to content

Reserva de fuentes

Un stream puede tener varias fuentes. Sapsan vigila la fuente activa, conmuta automáticamente a la siguiente cuando esta se degrada y vuelve a la principal cuando se recupera. Esta lógica se llama LSI (Live Source Input).

Varias entradas

Las entradas se enumeran en orden de prioridad — la primera es la principal:

streams:
  - name: tv1
    inputs:
    - udp:
        host: 239.0.0.1
        port: 5000
    - tshttp:
        url: http://backup-origin.example.com/tv1/mpegts

Cómo funciona la conmutación

Propiedades clave del algoritmo, importantes para el aire:

  • Una fuente se vuelve activa solo cuando está lista: debe entregar los parámetros del stream (MediaInfo) y el primer fotograma clave. Hasta entonces los espectadores siguen recibiendo la fuente actual.
  • Retorno sin pantalla negra: una entrada de mayor prioridad recuperada se comprueba en segundo plano, y la conmutación ocurre solo cuando ha entregado un fotograma clave.
  • Una entrada caída se reconecta con demoras crecientes (reconnect_initial_delayreconnect_delay_stepreconnect_max_delay); cuando se agotan todas las entradas, la rotación vuelve a empezar desde la primera.
  • Una fuente cuyo bitrate supera max_bitrate se detiene forzosamente.
  • Tiempos de espera separados para la ausencia de vídeo y de audio: el audio perdido con vídeo vivo también cuenta como degradación.

Política de conmutación

La sección lsi fija la política para todo el stream; source_options en una entrada concreta la anula:

streams:
  - name: tv1
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    - udp:
        host: 239.0.0.2
        port: 5000
      source_options:
        source_timeout: 10
    lsi:
      source_timeout: 5
      video_timeout: 3
      audio_timeout: 3

Los tiempos de espera se expresan en segundos. Parámetros principales (lsi y/o source_options):

Parámetro Descripción
source_timeout, video_timeout, audio_timeout tiempos de espera por ausencia de datos/vídeo/audio
max_bitrate límite de bitrate de la fuente
reconnect_initial_delay, reconnect_delay_step, reconnect_max_delay política de reconexión
retry_limit, max_retry_timeout límites de reintentos
recheck_secondary_inputs_interval con qué frecuencia comprobar si una entrada de mayor prioridad ha vuelto
allow_if, deny_if (solo en source_options) habilitar/deshabilitar una entrada mediante un archivo de bandera externo

allow_if/deny_if permiten controlar las entradas desde fuera sin editar la configuración: una entrada se usa solo mientras el archivo de bandera lo permite.

El archivo de cortinilla (backup)

Si todas las fuentes caen, en lugar de una pantalla negra se muestra un archivo (vea cómo preparar el archivo):

streams:
  - name: tv1
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    lsi:
      backup:
        file: /storage/technical-difficulties.mp4
        timeout: 5

La cortinilla entra en acción timeout segundos después de la caída de las entradas (de inmediato si no hay entradas en absoluto) y tiene sus propios audio_timeout/video_timeout.

Observabilidad

Por stream: el tiempo en la entrada principal y en las de reserva, el tiempo sin datos, el número de reintentos, la validez de las entradas de reserva y un detector de divergencia de parámetros — si una entrada de reserva entrega parámetros de vídeo diferentes (lo que hace imposible una conmutación sin interrupciones), se ve con antelación, antes del incidente. Por entrada: los tiempos de apertura/conexión/inicio y el último error. Vea monitoreo.

Siguientes pasos