重新流(转发)UDP-Live-Video-Stream(使用winsock)会降低视频质量?

时间:2014-08-14 09:37:33

标签: sockets ffmpeg udp video-streaming forward

所以,我使用ffmpeg使用UDP协议将实时网络摄像头流式传输到端口1111:

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

当我通过端口1111的ffplay直接播放时,一切正常:

ffplay udp://localhost:1111

我得到了这样的视频质量:

enter image description here

所以我想,我可以写一些winsock-codes给听1111号端口&将其捕获的任何UDP数据包转发到端口2222 。因此,我可以模拟我流式传输到端口2222.我的代码是这样的:

' // Please note that this is the simplified code - cause it worked
' // i've just post the key lines
Winsock1.Bind 1111
Winsock2.remotePort = 2222

WinSock1.GetData myPacket
Winsock2.SendData myPacket

然后我尝试使用ffplay:

从端口2222播放流
ffplay udp://localhost:2222

好吧,我不知道为什么视频质量会变坏:

enter image description here

关键是,我以与流媒体源相同的顺序发送了相同的UDP数据包。这可能有什么问题?


PS:我已尝试使用TCP进行类似的上述实验,但最终结果视频质量与直接流媒体一样好。那么,这可能是UDP的问题吗?


PS2:我已经测试了UDP数据包丢失&用一个听取端口2222&的插座取代ffplay来紊乱打印出所有收到的数据包。但结果是所有10,000多个数据包都处于正确的顺序和没有丢失。多么疯狂的现象?

0 个答案:

没有答案