我已成功使用directshow从我的相机捕捉实时视频流。
但是,如何将流分享到另一个流程,任何想法?
RGS!
更新
可以用一些代码示例说明吗?
答案 0 :(得分:1)
您可以将流捕获到多个共享内存区域。这样你就可以在其他进程中看到这个内存的内容。
您必须实现某种进程间通信,以便通知您的其他进程应显示哪个缓冲区。
当您编写自己的样本采集器时,这可能相对容易,甚至可能使用自己的内存分配器。这样你甚至不会受到少量副本的影响。也许Boost.Interprocess可以帮助您实现此系统,否则请参阅win32中的内存映射函数。
答案 1 :(得分:0)
通过文件?
答案 2 :(得分:0)
从信息流的角度来看,似乎你有两个主要选择:
选项1编写起来更复杂但更强大 - 您可以有效地编写视频服务器,选项2很容易实现,但如果链中的一个链接崩溃,那么之后的所有客户端都将丢失视频。
不幸的是,我不太了解Directshow格式给你一个例子,但最基本的,你需要阅读和重新传输流。
进程间通信可以通过多种方式完成,但这取决于您使用的编程语言 - 如果是.Net,我建议使用WCF。较低级别的东西只是通过环回TCP / IP连接进行通信。
我会避免使用硬盘来传输数据,因为a)会失去相当大的性能,而b)使硬盘瘫痪无利可图
答案 3 :(得分:0)
使用VLC通过HTTP流式传输。