带C#64位的Axis摄像机视频流

带C#64位的Axis摄像机视频流,c#,wpf,directshow,rtsp,ms-media-foundation,C#,Wpf,Directshow,Rtsp,Ms Media Foundation,我正在寻找一种从AXIS M10 IP摄像头流式传输视频的方法,并使用windows窗体(或更好的wpf)显示提要。但是,它需要在64位平台上运行 这意味着我不能使用AXIS Media Control ActiveX组件。 此外,我还发现这些方法仅在32位环境中有效: 一, 二, 3.VlcLib() 目前看来,我唯一的选择是直接使用RTSP协议,使用媒体基础(O.NET)对给定的RTP/AVP流进行解码,并以某种方式显示。(我能够使用RTSP调用将摄像头传输到UDP端口) 我对RTSP/St

我正在寻找一种从AXIS M10 IP摄像头流式传输视频的方法,并使用windows窗体(或更好的wpf)显示提要。但是,它需要在64位平台上运行

这意味着我不能使用AXIS Media Control ActiveX组件。 此外,我还发现这些方法仅在32位环境中有效:

一,

二,

3.VlcLib()

目前看来,我唯一的选择是直接使用RTSP协议,使用媒体基础(O.NET)对给定的RTP/AVP流进行解码,并以某种方式显示。(我能够使用RTSP调用将摄像头传输到UDP端口)

<>我对RTSP/Studio相当新,所以我担心我可能错过了大局——我是否能够使用MediaFoundation在WiFrase/WPF上呈现/显示视频,或者我必须在别处查看该功能吗?(从我的研究看来,它可以解码H.264流,但我没有看到任何视频播放能力)。我也遇到DirectShow了——我应该使用DirectShow在MediaFoundation上吗?< /P> 或者更好的是,是否有一个库能够处理64位运行的RTSP流媒体?

例如(但商业),包括WPF控件。 使用FFMPEG解码,使用DirectShow引擎。真的,我在这里没有看到任何媒体基础优势。

还有任何其他使用FFMPEG的方法

或者,您可以编写RTSP源过滤器(基于DirectShow推送源示例),其中H264输出引脚用于视频,G726/G711/AAC用于音频。您还可以制作虚拟视频捕获源过滤器,并在MF或DirectShow中使用它。您可以使用库来实现RTSP


因此,这里没有简单的方法,如果你从零开始。

如果你只需要视频,我更愿意只显示相机的MJPEG流。没有DirectShow或MediaFoundation的复杂性,这真的很容易做到。我在应用程序中同时显示12个摄像头,WPF中有一个小库:。您也可以在WinForms中使用它。它解码MJPEG流并提供要显示的图像。

64位Axis Media Control SDK现在可用,但需要下载Axis网站上的帐户

登录后,您需要加入(免费)并下载

您将安装一个可执行文件(.exe),这将安装驱动器中的所有lib和示例

C:\Program Files\Axis Communication\SDK


我找到了一种不用ActiveX DLL以64位使用VLC的方法:

由多个NUGET组成,可在多个平台(WPF、Winforms、Xamarion、TvOS)上使用VLC播放器


它在Onvif摄像机上运行良好

DirectShow和MF都有64位H.264解码器,库存和第三方。他们两个都不为你做RTSP。从RTP获取H.264当然是可行的,但并不简单。对于HTTP x64上的JPEG视频,您可以使用我的DirectShow源过滤器。许多IP摄像头使用JPEG编码提供了更差的性能、帧速率和质量,H.264非常合理,它是通过RTSP提供的……我有32个activeX Axis媒体控件实例在一个屏幕上运行。我使用320x240兆焦耳的钉子。很好用。我试过H.264,它只需要很少的网络带宽,就需要更多的CPU。我又回到了MJPEG。