Você se deparou com um hack feio em Live555 , a biblioteca VLC usa para fornecer o recurso do cliente RTSP. (O código do servidor RTSP do VLC é específico do VLC.) O hack tenta descobrir qual IP sua máquina parece usar na rede local. (Feio como o hack é, eu não sei uma maneira melhor para Live555 fazer isso.)
Você tem que abrir a porta UDP 15947 em seu firewall para corrigir o erro que você encontrou. Essa é a "porta de teste" que o Live555 usa para esse hack.
Tendo feito isso, você também pode precisar abrir portas adicionais para receber seu fluxo, dependendo de como o seu firewall funciona. O RTSP é apenas um protocolo de fluxo control , não um protocolo de transmissão entrega . Pense no RTSP como "botões de videocassete" para o protocolo de entrega de fluxo real: reproduzir, parar, pausar, FF, retroceder .... O cliente RTSP negocia as portas de fluxo entrega com o servidor como parte do " jogar "ação.
O resultado disso é que o cliente (VLC, neste caso) vai pedir ao servidor para enviar a mídia para ele em uma porta específica no comando RTSP SETUP
:
SETUP rtsp://192.168.0.1:8554/42.ts/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.0.2 (LIVE555 Streaming Media v2011.12.23)
Transport: RTP/AVP;unicast;client_port=60860-60861
Ou seja, o VLC está dizendo ao servidor RTSP que deseja que a mídia seja entregue nas portas 60860 e 60861 via RTP. O cliente escolhe essas portas aleatoriamente. Se o seu firewall bloqueá-los, ele bloqueará a entrega do fluxo mesmo que a negociação do RTSP tenha sido bem-sucedida.
Na melhor das hipóteses, seu firewall não bloqueará portas tão altas ou terá algum recurso de inspeção stateful que permite desbloqueá-las quando ele vê essa negociação RTSP.
Se o seu firewall bloqueá-lo, você pode depurá-lo com Wireshark . Entende o protocolo RTSP. Clique com o botão direito do mouse em um pacote no fluxo RTSP e diga "Follow TCP stream". Na janela que aparece, localize o comando RTSP SETUP
. Em seguida, inicie o Wireshark novamente, desta vez procurando o tráfego UDP nessas portas. (Tudo isso enquanto o cliente RTSP continua baixando o fluxo, ou tentando.)