Plantillas para una gestión eficaz de la transmisión en UGC

December 6, 2021

stream management

El servidor de medios recibe datos de video de diferentes formas. En el caso de UGC siempre es una publicación. Al publicar, el iniciador de la conexión es un dispositivo externo desde el cual el servidor de medios recibe el video. En este caso, no puede capturar secuencias; después de todo, el dispositivo desde el que está transmitiendo no tiene una dirección IP estática o está ubicado detrás de un firewall en una red IP privada (por ejemplo, un teléfono móvil inteligente).

En IPTV, se conoce la fuente, las transmisiones están disponibles las 24 horas del día, los 7 días de la semana, y sabemos su número. Ese no es el caso con UGC. Estamos hablando de decenas de miles de sesiones abiertas con una duración desconocida, así de grande es la plataforma UGC. Crear una transmisión separada para cada publicación (como en el caso de los canales de televisión) y luego especificar la configuración de cada transmisión, lleva mucho tiempo y no es muy conveniente. Además, en algunos casos, no se sabe en absoluto con qué nombre el sistema externo publicará la transmisión. Por lo tanto, la publicación en UGC a menudo se organiza con un nombre dinámico.

Gestión de configuración simultánea de una gran cantidad de flujos

Entonces, tenemos una gran plataforma UGC con múltiples transmisiones, y deberían publicarse con un nombre dinámico, previamente desconocido. Para hacer esto, debes configurar las plantillas con prefijos en los servidores de antemano. Por ejemplo, puedes especificar el prefijo/mobilr en el servidor de ingesta 3 para que todas las transmisiones de dispositivos móviles vayan allí. Cuando un streamer llega a la plataforma para publicar su stream, la plataforma le dará un nombre (previamente desconocido para el servidor de medios), digamos “ABC”. El nombre de la transmisión se formará a partir de “ABC” y el prefijo/mobilel - “/mobilel/ABC”. El streamer recibirá un enlace para publicar en un servidor específico:rtmp://ingest3/mobile/ABC (en el caso de publicación por rtmp://).

La configuración de todas las transmisiones dentro del prefijo/mobile será la misma. A esto lo llamamos plantilla de configuración. Las plantillas hacen que sea innecesario prescribir configuraciones por separado para cada flujo. A cada prefijo se le puede asignar una plantilla separada (con los mismos ajustes de configuración para todas las transmisiones dentro del prefijo). Y para cada publicación, la secuencia se creará utilizando la plantilla adecuada.

Por ejemplo, para aplicar la profundidad de archivo de 1 día a todas las transmisiones inside/mobile, puede configurar una plantilla:

template mobile-devices {
  prefijo móvil;
  entrada publicar: //;
  dvr @ s3 1d;
}

La creación de pares de plantilla-prefijo es necesaria para aplicar ciertos parámetros de canalización a los streams. Por ejemplo, es posible que debas enviar una transmisión a un transcodificador específico, según los parámetros de transcodificación necesarios. Además, algunas plataformas UGC pueden vender funciones adicionales a los usuarios para general mas ingresos como puede llegar a ser superposición de logotipo, archivo, etc. Finalmente, existen ciertas condiciones técnicas y comerciales, según las cuales, el sistema necesita distribuir algunos usuarios a algunos grupos de servidores (con algunas configuraciones de la canalización de video) y otras a otras.

Por ejemplo, puedes crear una ubicación “mobile-vip”, habilitar el transcodificador y el almacenamiento a largo plazo en el archivo de la siguiente manera:

template mobile-devices-vip {
  prefix mobile-transcoded;
  input publish://;
  transcoder vb=1500k size=-1:720 logo=company.png ab=64k;
  dvr @s3 7d;
}

¿Es posible vivir sin plantillas?

¿Qué significa habilitar la opción DVR (grabación de video digital) para 50 transmisiones si no hubiera plantillas de configuración? Sería necesario sobrescribir la misma construcción en las configuraciones 50 veces y aplicar nuevas configuraciones 50 veces. Las plantillas te permiten administrar simultáneamente la configuración de una gran cantidad de streams.

Hemos sabido de servicios donde, después de registrarse en la plataforma, los administradores generaron un stream separado para cada streamer-usuario y lo duplicaron entre todos los servidores. Esta es una monstruosa duplicación de información, que finalmente llevó al hecho de que era necesario llenar 5000 líneas en los 20 servidores. Y todas estas son el mismo tipo de configuraciones con una mínima diferencia:

stream mobile/usernameA {
  input publish://;
  dvr /storage 1d;
}
stream mobile/usernameB {
  input publish://;
  dvr /storage 1d;
}
stream mobile/usernameC {
  input publish://;
  dvr /storage 7d;
}

La pérdida de varias líneas siempre provocó errores de publicación y una llamada desesperada al soporte de la plataforma. Contrariamente, las plantillas reducen la cantidad de caracteres en la configuración. Esto significa que la oportunidad de cometer un error se reduce drásticamente.

La configuración proporcionada en los ejemplos no está completa y puede modificarse. Para obtener información actualizada, consulta la documentación o contacta support@flussonic.com.