从MJPG数据包到JPEG文件的有效方法



专业的视频摄像机正在向我发送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

我是作者,如果您需要移植帮助,请让我知道!