哪种方法更适合在两个进程之间发送图像流,本地TCP / IP连接或进程间通信?

时间:2009-04-15 10:54:26

标签: tcp stream interprocess

假设我必须复制流上的每个图像(我不能简单地使用任何互斥保护访问该数据,无论如何都必须复制),哪种方法更好,优点/缺点?

我想知道与在同一过程中使用图像相比,这意味着多少性能损失。

由于

5 个答案:

答案 0 :(得分:2)

对于图像,IPC到shared memory将是最佳选择。

答案 1 :(得分:1)

至少Windows的防火墙甚至会干扰本地TCP / IP连接。因此我更喜欢共享内存。

答案 2 :(得分:1)

在性能方面,IPC通过共享内存是最佳选择,但恕我直言, 即使套接字消耗更多的处理,它们也会在软件的进化性方面为您提供更好的结果。

答案 3 :(得分:1)

Google“内存映射文件”

答案 4 :(得分:1)

我将采用DirectShow捕获设备的VCAM示例(可从以下位置获取: http://tmhare.mvps.org/downloads/vcam.zip

此驱动程序在O / S中显示为视频捕获设备,并将在目标进程中运行。源将使用共享内存缓冲区来提供帧以进行注入。

虽然比最小的共享内存IPC方案更复杂,但它提供了令人难以置信的优势,因为您的视频管道可以连接到大多数媒体播放器程序,捕获和编辑工具等。

我已经多次这样做了,包括接收器,混音器,Freeframe效果插件等功能。它需要一两天时间才能共同破解。