专业的视频摄像机正在向我发送udp和rtp,其中包含yuv422-pixelformat中包含mjpg-data(RFC 2435)。通过使用DataGramSocket和Datagrampacket类,我可以接收数据包。现在,我正在寻找一种有效的方法:
大约80 * rtp_socket.receive(rtppacket)--->我的硬击(带有25 fps)
在我的harddisk上1 jpg-file否则,我很快就会丢失相对多个数据包,因为根据UDP标准,数据包是通过相机连续发送的(一段时间丢失包裹并不是最糟糕的,因为我不需要每个帧)。
现在,我正在使用字节扣来顺序存储数据包(使用put(.. int offset ...)切断标头,直到我得到一个帧的最终数据包。
,但不幸的是,似乎我需要使用imageio.write函数才能获得必要的JPG标头,对吗?因为它无法直接处理字节扣...
如果我会在另一个线程中对图像进行一些后处理(尚未实现),那么直接buffer会有意义吗?
希望您了解我在问什么:)。如果不是,请不要犹豫
非常感谢
您可以将此C#移植到很容易达到100 fps的C#:)
https://net7mma.codeplex.com/sourcecontrol/latest#rtp/rfc2435frame.cs
我是作者,如果您需要移植帮助,请让我知道!