FAQ

SRT y autorización por login y contraseña en software de terceros

La autenticación por login y contraseña en SRT entre instancias de Perfect Streamer es soportada de forma nativa y se configura en los campos correspondientes de output e input, pero el funcionamiento con otro software no está garantizado. Esta funcionalidad no está estandarizada y se implementa de manera diferente en distintos softwares.

Para una operatividad universal entre Perfect Streamer y otro software se implementa la autorización mediante la creación de un peer cuyo nombre es igual al valor del stream ID. Por ejemplo, en el enlace:

srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890

Nombre del peer:

!#::u=1234567890,password=1234567890

La sintaxis del stream ID es indiferente para Perfect Streamer; se admite cualquier valor de hasta 511 caracteres.

Different SRT receivers could send stream ID with different format, so if receiving doesn’t work you can switch on tracing option in SRT output settings and find the reason of issue in the stream log, for example you can see how actually the receiver generates the stream ID. This information can help you fix the stream ID.

Trabajo con RTSP y RTMP en Perfect Streamer mediante FFmpeg

Para admitir RTSP, RTMP y cualquier otro protocolo de transporte no admitido nativamente por Perfect Streamer, es posible utilizar el tipo STD input del stream (stdin). Es posible usar FFmpeg, GStreamer y cualquier otra aplicación que admita stdout.

Veamos la configuración con el ejemplo de FFmpeg:

  1. Seleccionar tipo de input: std.

  2. Indicar la ruta de FFmpeg en el campo Cmd: /usr/bin/ffmpeg.

  3. En el campo Args ingrese el comando de recepción del flujo:

-loglevel error -i rtmp://192.168.1.29/channelTV/chanelSD -c copy -f mpegts -

o

-loglevel error -i rtsp://viewer:viewer200@172.31.91.197:554/play1.sdp -c copy -f mpegts -

Si el vídeo de la cámara no tiene audio, aparecerán errores en la página del flujo. Para evitarlos, en los ajustes del tipo de stream seleccione Only Video.

Descripción en la documentación sobre la integración de aplicaciones de terceros.

Trabajo con RTSP y RTMP en Perfect Streamer mediante GStreamer

Para admitir RTSP, RTMP y cualquier otro protocolo de transporte no admitido nativamente por Perfect Streamer, es posible utilizar el tipo STD input del stream (stdin). Es posible usar FFmpeg, GStreamer y cualquier otra aplicación que admita stdout.

Veamos la configuración usando GStreamer.

  1. Seleccionar tipo de input: std.

  2. Indicar la ruta del intérprete de comandos en el campo Cmd: /bin/bash.

  3. En el campo Args ingrese la ruta del script generador del stream y otros argumentos:

/opt/conf/pss/scripts/rtmp.sh rtmp://192.168.1.2/live/mmtv2025air

o

/opt/conf/pss/scripts/rtsp.sh rtsp://viewer1:viewer300@172.34.95.198:553/play1.sdp

La instrucción completa está disponible en el foro.

Paquete de scripts: scripts_gstreamer.zip.

Recomendaciones para trabajar con UDP multicast

Tarea:

Recibir de forma estable UDP multicast a cientos de Mbit/s (1 Gbit/s o más) en un solo servidor.

Problema:

Recepción en tarjetas de red con interfaz RJ-45 — al aumentar el tráfico por encima de varios cientos de megabits comienzan pérdidas crecientes en multicast. El ajuste de la configuración de la tarjeta de red no ayuda (era relevante en versiones antiguas de los sistemas operativos; en las modernas ya se usan ajustes óptimos). En cualquier tarjeta de red con los mejores chips (Intel, Broadcom, etc.) el problema persiste, especialmente al superar 500 Mbit/s. El bonding de dos tarjetas de red tampoco resuelve el problema.

Solución:

Para la recepción y transmisión de UDP multicast, recomendamos usar tarjetas de red con interfaz SFP+, ya que utilizan chips más potentes. Una tarjeta de red económica del nivel Intel X520-DA1/2 (Intel 82599ES) es suficiente — su uso elimina por completo el problema de pérdidas de tráfico UDP multicast por encima de 1 Gbit/s.

Como beneficio adicional, baja notablemente la carga de CPU y GPU al usar el transcoder.

Recomendaciones para configurar la red para multicast

Configurar los parámetros de red en /etc/sysctl.conf:

net.core.rmem_default=8388608
net.core.rmem_max=16777216

Aplicar:

sudo sysctl --system

Flussonic y SRT

Ejemplo de enlace SRT para recibir en el software «Flussonic»:

srt://Stream_IP:port?streamid=flussonic

Donde streamid es el login del cliente en el software «Flussonic», que se define en «Configuración – Ajustes de peers».

Al añadir un nuevo peer, basta con indicar solo el login — en el enlace de prueba consta «flussonic». El software «Flussonic» genera streamID automáticamente al trabajar con SRT, y si en el enlace de recepción no se indica el login streamID, el flujo no se recibirá y «Perfect Streamer» no podrá entregarlo.

De forma análoga se puede definir streamID como login/contraseña, creando en «Perfect Streamer» un peer con el valor en Login or IP: !#::u=1234567890,password=1234567890

y registrando en «Flussonic» el enlace: srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890

Es posible indicar streamid/login como dirección IP en «Perfect Streamer»:

  • 192.168.1.1 (IP único)

  • 192.168.1.1-192.168.1.254 (rango de IP; en el peer es obligatorio activar la opción Login is IP)

En ambos casos, el enlace de recepción por IP en «Flussonic» es: srt://Stream_IP:port?streamid=*

Se realiza un vínculo a la IP del cliente y la recepción por ese enlace solo será posible desde esa IP (o rango de IP).