Streaming RTP usando VLC - Obtendo grande perda de pacotes UDP de transmissão no meu PC - por quê?

Streaming RTP usando VLC - Obtendo grande perda de pacotes UDP de transmissão no meu PC - por quê?

Estou tendo problemas estranhos no meu PC com Windows 7: tentei configurar o VLC media player para transmitir áudio através de RTP, mas estou perdendo um enorme pacote UDP de saída.

Após alguma depuração, observei que meu PC pode receber perfeitamente os mesmos pacotes transmitidos de um PC diferente (sem perda de UDP de entrada); no entanto, quando meu PC está configurado para transmitir o fluxo, recebo mais de 26% de perda de pacotes UDP. Mesmo quando os PCs estão conectados usando um cabo CAT5 reto.

De algumas cutucadas do Wireshark, parece que meu PC nem mesmo envia esses pacotes. Algo está impedindo que eles sejam enviados. O que pode estar causando isso? Eu não tenho ideia.

Obrigado por qualquer dica.

//EDITAR: esqueci de adicionar, não importa se o stream é unicast ou multicast. Os resultados são os mesmos.

Responder1

Finalmente encontrei uma solução: como fiquei preocupado desde o início, o problema estava mesmo no Windows. Por alguma razão, por padrão, a pilha IP usa apenas buffers de 8 kBytes. (Hilário, não é?) Isso não é suficiente para as rajadas UDP de poucos kB que o VLC produz.

Existe a possibilidade de aumentar o tamanho do buffer de envio/recebimento da pilha IP, usando chaves de registro. Por algum motivo, minha máquina não tinha essas chaves completamente, então o tamanho era o padrão.

Para alterar os tamanhos do buffer de envio/recebimento, atualize (ou crie) essa chave de registro. No meu caso, definir tamanhos de buffer de 64 kB resolveu o problema. Nenhuma perda de saída UDP agora.

[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Afd \Parameters]
DefaultReceiveWindow = 65536
DefaultSendWindow = 65536

Ambos os valores são DWORD (32 bits), se você precisar criá-los.

(Também alterei as configurações de tamanho do buffer nos controladores de rede, mas isso não levou a lugar nenhum.)

informação relacionada