Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何多播使用DirectShow捕获的流?_C#_Video_Streaming_Directshow_Multicast - Fatal编程技术网

C# 如何多播使用DirectShow捕获的流?

C# 如何多播使用DirectShow捕获的流?,c#,video,streaming,directshow,multicast,C#,Video,Streaming,Directshow,Multicast,我需要构建一个非常简单的流媒体服务器。它需要能够从一个设备捕获视频,然后通过多播将视频流传输到局域网上的多个客户端 由于有人使用DirectShow.Net()编写了一个库,所以捕获部分非常简单(用C#) 我现在的问题是如何多播这个?这是我一直坚持的部分。我不知道下一步该做什么,也不知道该采取什么步骤 要实现这一点,您需要设置/编写某种视频流服务器 我在我的项目中使用了相同的目的。文档和支持不是一流的,但已经足够好了。它使用WMV流媒体技术。该流称为流。您可以使用任何most媒体播放器查看它。我

我需要构建一个非常简单的流媒体服务器。它需要能够从一个设备捕获视频,然后通过多播将视频流传输到局域网上的多个客户端

由于有人使用DirectShow.Net()编写了一个库,所以捕获部分非常简单(用C#)


我现在的问题是如何多播这个?这是我一直坚持的部分。我不知道下一步该做什么,也不知道该采取什么步骤

要实现这一点,您需要设置/编写某种视频流服务器

我在我的项目中使用了相同的目的。文档和支持不是一流的,但已经足够好了。它使用WMV流媒体技术。该流称为流。您可以使用任何most媒体播放器查看它。我已经用Windows Media Player、Media Player经典和VLC进行了测试。如果您想在不编写任何代码的情况下看到它的功能,请看一看,它使用VideoCapX来完成幕后工作

我已经使用DirectShow.Net将近两年了,但由于DirectShow技术的复杂性,我仍然发现自己很难编写流媒体服务器

除了WMV,您还可以看看苹果或苹果的流媒体服务器。后者不是免费的,微软的WMV流媒体服务器也是免费的

您还可以查看VLC或直接从应用程序执行流式处理。但到目前为止,我发现U-Broadcast做不到上述两项。VLC与非VLC播放器的编解码器和播放存在一些兼容性问题,WME在启动捕获设备时存在问题

祝你好运


注意:我与VideoCapX或它的公司无关,我只是一个快乐的用户。

没有可供插入和使用的过滤器

在这里,您需要做三件事:

  • 将视频压缩为MPEG2或MPEG4
  • 将其多路复用到MPEG传输流中
  • 广播
  • 有很多编解码器可用于第1部分,有些设备甚至可以输出压缩视频

    第三部分也很简单

    主要问题在于第2部分,因为MPEG传输流已获得专利。它是被许可的,所以你不能基于它开发自由软件(VLC和FFMPEG违反了该许可),你必须支付几百美元才能获得一份规范

    如果您必须开发它,您需要:

    • 获取ISO/IEC 13818-1-2000的副本(您可以从他们的网站下载为PDF),它描述了MPEG传输流
    • 开发一个渲染器过滤器,将MPEG基本流合并到传输流中
    它必须是渲染器,因为传输流不是变换过滤器。有一些带外数据(程序分配表和参考时钟)需要定期发送,您需要保留一个工作线程来执行此操作。

    可能会有所帮助,并且


    VLC还“应该”能够从任何设备以本机方式传输数据。

    您的数据流是以哪种格式压缩的,或者这无关紧要?我们的目标是三种格式。MPEG-2、MPEG-4和h.264。我们需要它来处理这些格式中的一种。MPEG-2可能是我们最好的选择,但老板想要h.264。某些格式只能流到Windows Media Player本身,而不能流到其他播放器。我发现WMV/ASF最适合流媒体。VideoCaptureX看起来只做捕获,不做流媒体。VLC坏得可怕;论坛海报声称,最新的verison版本破坏了流媒体。Windows Media Encoder无法执行多播。VideoCapX执行流式传输。我使用的是6.3版。对不起,我刚意识到你指的是“多播”。嗯,视频流支持多个连接的客户端。它不能真正的“多播”,因为真正的多播需要一个非常严格的网络设置,所有的连接必须一起开始。你可能想了解多播的概念本身。