Re-stream (forward) O UDP-Live-Video-Stream (usando winsock) reduz a qualidade do vídeo?

1

Então, eu usei o ffmpeg para transmitir a webcam ao vivo usando o protocolo UDP para a porta 1111:

ffmpeg -f dshow -i video="Lenovo EasyCamera" -f mpegts udp://localhost:1111

Quando o reproduzi diretamente pelo ffplay da porta 1111, tudo funcionou corretamente:

ffplay udp://localhost:1111

Eu tenho a qualidade de vídeo assim:

Então,euachoqueeupoderiaescreveralgunscódigoswinsockparaouviraporta1111&encaminharqualquerpacoteUDPcapturadoparaaporta2222.Assim,eupoderiasimularqueestoutransmitindoparaaporta2222.Meucódigoéalgoassim:

'//Pleasenotethatthisisthesimplifiedcode-causeitworked'//i'vejustpostthekeylinesWinsock1.Bind1111Winsock2.remotePort=2222WinSock1.GetDatamyPacketWinsock2.SendDatamyPacket

Entãoeutenteitocarostreamdaporta2222usandooffplay:

ffplayudp://localhost:2222

Bem,nãoseiporqueaqualidadedovídeosetornoutãoruimassim:

O ponto é que, eu enviei os mesmos pacotes UDP na mesma ordem que a fonte de streaming. O que poderia estar errado aqui?

PS: Experimentei uma experiência semelhante, como acima, com o TCP, mas a qualidade do vídeo do resultado final era tão boa quanto a transmissão direta. Então, isso poderia ser um problema do UDP?

PS2: testei a perda de pacotes UDP & desordem, substituindo o ffplay com um soquete que ouvir a porta 2222 & imprimir todos os pacotes recebidos. Mas o resultado é que todos os 10.000 pacotes estavam na ordem correta & nada perdido. Que fenômeno louco?

    
por vantrung -cuncon 14.08.2014 / 10:44

0 respostas