我应该在通过网络发送时压缩网络摄像头捕获的图像

时间:2012-01-21 23:57:55

标签: c# image-processing

最近,我完成了会议申请。人们可以互相交谈。因此,我从网络摄像头(DirectShow库)捕获图像(转换为JPEG的缓冲区的IntPtr)。现在我没有任何问题,因为该程序仅在局域网中使用。但我打算实施它的互联网版本。

所以我的问题是:我应该使用除JPEG之外的东西吗?我应该比较图像x和图像x + 1,只发送差异吗?我应该使用Motion-JPEG吗? (对不起,我对motion-jpeg一无所知,但听起来很相似)。

2 个答案:

答案 0 :(得分:1)

你在正确的轨道上认识到图像在帧与帧之间的变化很小,并且发送一系列jpeg不是可行的方法。我相信mjpeg会发送一系列jpeg,这是一个糟糕的选择。我不使用c#,但我相信ffmpeg(一个视频压缩库)是一个c#包装器。

答案 1 :(得分:1)

FFmpeg非常快,但实际上没有很好的文档记录,并且是纯ANSI-C。我认为,正如您所想的那样,在您的情况下,更好的方法是压缩图像 x 和图像 x-1 之间的差异,这应该足以提供显着的带宽节省。 您还应该包括一种方法,每隔一段时间压缩整个帧,或者当与前一帧的差异超过某个阈值时压缩整个图像