FAQ¶
SRT e autorização por login e senha em software de terceiros¶
A autenticação por login e senha em SRT entre instâncias do Perfect Streamer é suportada nativamente e configurada nos campos correspondentes em output e input, mas o funcionamento com outros softwares não é garantido. Esta funcionalidade não é padronizada e está implementada de forma diferente em diversos softwares.
Para interoperabilidade entre Perfect Streamer e outros softwares, a autorização é feita criando um peer cujo nome equivale ao valor do stream ID. Por exemplo, no link:
srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890
Nome do peer:
!#::u=1234567890,password=1234567890
A sintaxe do stream ID é irrelevante para o Perfect Streamer; valores de até 511 caracteres são suportados.
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.
Trabalho com RTSP e RTMP no Perfect Streamer usando FFmpeg¶
Para suportar RTSP, RTMP e quaisquer outros protocolos de transporte não suportados nativamente pelo Perfect Streamer, é possível utilizar o tipo STD input no stream (stdin). É possível usar FFmpeg, GStreamer e quaisquer outras aplicações que suportem stdout.
Vejamos a configuração no exemplo do FFmpeg:
Escolher o tipo de input: std.
Indicar o caminho do FFmpeg no campo Cmd: /usr/bin/ffmpeg.
No campo Args, digite o comando para receber o fluxo:
-loglevel error -i rtmp://192.168.1.29/channelTV/chanelSD -c copy -f mpegts -
ou
-loglevel error -i rtsp://viewer:viewer200@172.31.91.197:554/play1.sdp -c copy -f mpegts -
Se o vídeo da câmera não tiver áudio, aparecerão erros na página do stream. Para evitá-los, nas configurações do tipo de stream selecione Only Video.
Descrição na documentação sobre a integração de aplicações de terceiros.
Trabalho com RTSP e RTMP no Perfect Streamer usando GStreamer¶
Para suportar RTSP, RTMP e quaisquer outros protocolos de transporte não suportados nativamente pelo Perfect Streamer, é possível utilizar o tipo STD input no stream (stdin). É possível usar FFmpeg, GStreamer e quaisquer outras aplicações que suportem stdout.
Vejamos a configuração usando GStreamer.
Escolher o tipo de input: std.
Indicar o caminho do interpretador de comandos no campo Cmd: /bin/bash.
No campo Args, digite o caminho para o script gerador do stream e outros argumentos:
/opt/conf/pss/scripts/rtmp.sh rtmp://192.168.1.2/live/mmtv2025air
ou
/opt/conf/pss/scripts/rtsp.sh rtsp://viewer1:viewer300@172.34.95.198:553/play1.sdp
A instrução completa está disponível no fórum.
Pacote de scripts: scripts_gstreamer.zip.
Recomendações para trabalhar com UDP multicast¶
Tarefa:
Receber de forma estável UDP multicast de centenas de Mbit/s (1 Gbit/s ou mais) em um único servidor.
Problema:
Recepção em placas de rede com interface RJ-45 — ao aumentar o tráfego acima de algumas centenas de megabits começam perdas crescentes em multicast. O ajuste das configurações da placa de rede não ajuda (era relevante em versões antigas dos sistemas operacionais; nos atuais já se utilizam configurações ótimas). Em qualquer placa de rede com chips de melhor qualidade (Intel, Broadcom etc.) o problema persiste, especialmente após ultrapassar 500 Mbit/s de tráfego. O bonding de duas placas de rede também não resolve.
Solução:
Para recepção e transmissão de UDP multicast, recomendamos utilizar placas de rede com interface SFP+, pois utilizam chips mais potentes. Uma placa de rede de baixo custo do nível Intel X520-DA1/2 (Intel 82599ES) é suficiente — seu uso elimina completamente o problema de perdas no tráfego UDP multicast acima de 1 Gbit/s.
Como benefício adicional, há queda notável da carga de CPU e GPU ao usar o transcodificador.
Recomendações para configurar a rede para multicast¶
Configurar os parâmetros de rede em /etc/sysctl.conf:
net.core.rmem_default=8388608
net.core.rmem_max=16777216
Aplicar:
sudo sysctl --system
Flussonic e SRT¶
Exemplo de link SRT para recepção no software «Flussonic»:
srt://Stream_IP:port?streamid=flussonic
Onde streamid é o login do cliente no software «Flussonic», definido em «Configuração – Ajustes de peers».
Ao adicionar um novo peer, basta indicar apenas o login — no link de teste consta «flussonic». O software «Flussonic» gera streamID automaticamente ao trabalhar com SRT, e se o login streamID não for indicado no link de recepção, o fluxo não será recebido e o «Perfect Streamer» não conseguirá entregá-lo.
De forma análoga, é possível definir streamID no formato login/senha, criando em «Perfect Streamer» um peer com o valor em Login or IP: !#::u=1234567890,password=1234567890
e registrando no «Flussonic» o link: srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890
É possível indicar streamid/login no formato de endereço IP no «Perfect Streamer»:
192.168.1.1 (IP único)
192.168.1.1-192.168.1.254 (faixa de IP; no peer é obrigatório ativar a opção Login is IP)
Em ambos os casos, o link de recepção por IP no «Flussonic» será: srt://Stream_IP:port?streamid=*
Será feito o vínculo ao endereço IP do cliente e a recepção por esse link só será possível a partir desse IP (ou faixa de IPs).