我需要构建一个非常简单的流媒体服务器。它需要能够从设备捕获视频,然后通过多播将该视频流式传输到LAN上的多个客户端。
由于某人使用DirectShow.Net(http://www.codeproject.com/KB/directx/directxcapture.aspx)编写的库,因此捕获部分非常简单(在C#中)。
我现在的问题是如何组播这个?这是我坚持的部分。我不知道下一步该怎么做,或者采取什么步骤。
答案 0 :(得分:2)
没有可以插入和使用的过滤器。
你需要在这里做三件事:
第1部分有很多编解码器,有些设备甚至可以输出压缩视频。
第3部分也很简单。
主要问题在于第2部分,因为MPEG传输流已获得专利。它是许可的,因此您无法开发基于它的免费软件(VLC和FFMPEG违反该许可证),您只需支付数百美元即可获得规范副本。
如果你需要开发它,你需要:
它必须是渲染器,因为传输流不是变换过滤器。需要定期发送某种带外数据(程序分配表和参考时钟),并且需要保留工作线程来执行此操作。
答案 1 :(得分:1)
要实现这一点,您需要设置/编写某种视频流服务器。
我在项目中使用VideoCapX用于相同的目的。文档和支持不是一流的,但它已经足够好了。它使用的是WMV流媒体技术。该流称为MMS流。您可以使用任何大多数媒体播放器查看它。我已经使用Windows Media Player,Media Player Classics和VLC进行了测试。如果您希望在没有编写任何代码的情况下看到它的功能,请查看U-Broadcast,它使用VideoCapX来完成幕后工作。
我已经使用DirectShow.Net近两年了,由于DirectShow技术的复杂性,我仍然觉得很难自己编写流媒体服务器。
除了WMV,您可以查看Helix Server或Apple Streaming Server。后者不是免费的,微软的WMV Streaming Server也是免费的。
您还可以查看VLC或Windows Media Encoder直接从应用程序进行流式传输。但到目前为止,我发现U-Broadcast可以完成上述两项工作。 VLC与编解码器和非VLC播放器的播放有一些兼容性问题,WME在启动捕获设备时遇到问题。
祝你好运
注意:我与VideoCapX或它的公司无关,我只是一个快乐的用户。
答案 2 :(得分:0)