2

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

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

1.使用 WPF 的 MediaElement 类

2.使用嵌入式媒体播放器

3.VlcLib(用于dotnet

到目前为止,看起来我唯一的选择是直接实现 RTSP 协议并使用 Media Foundation(用于 .net)解码给定的 RTP/AVP 流并以某种方式显示它。(我能够使用 RTSP 调用让相机流式传输到 UDP 端口)。

我对 RTSP/流媒体还很陌生,所以我担心我可能会错过大局 - 我是否能够使用媒体基础在 winform/wpf 上渲染/显示视频,或者我必须看看那个其他功能?(根据我的研究,它看起来可以解码 H.264 流,但我没有看到任何视频播放功能)。我还遇到了 DirectShow - 我应该使用 DirectShow 而不是 Media Foundation 吗?

或者更好的是,是否有能够处理以 64 位运行的 RTSP 流的库?

4

4 回答 4

3

例如VisioForge Video Capture SDK .Net(但商业),包括 WPF 控件。使用 FFMPEG 解码,带有 DirectShow 引擎。真的,我在这里看不到任何媒体基金会的优势。

还有任何其他使用 FFMPEG 的方式。

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

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

于 2012-11-20T20:49:25.300 回答
1

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

于 2012-11-21T01:04:29.750 回答
1

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

登录后,您需要加入Axis Developper 程序(免费)并下载AMC SDK

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

C:\Program Files\Axis Communication\SDK

于 2017-01-31T07:34:05.147 回答
0

我找到了一种在没有 ActiveX DLL 的情况下在 64 位中使用 VLC 的方法:

VLCSharp由多个 NuGet 组成,可在多个平台(WPF、Winforms、Xamarion、TvOS)上使用 VLC Player。

它在 Onvif 相机上运行良好

于 2020-10-26T18:42:53.917 回答