c# - 使用 C# 64 位进行安讯士相机视频流传输

标签 c# wpf directshow rtsp ms-media-foundation

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

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

1. Using MediaElement Class for WPF

2. Using embedded media player

3.VlcLib (for dotnet)

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

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

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

最佳答案

VisioForge Video Capture SDK .Net例如(但商业),包括 WPF 控件。 使用FFMPEG解码,配合DirectShow引擎。真的,我在这里没有看到任何 Media Foundation 的优势。

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

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

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

关于c# - 使用 C# 64 位进行安讯士相机视频流传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481034/

相关文章:

c# - WPF C# : Setting background color of a WPF app not setting fully

c# - 逐帧播放视频性能问题

c++ - 是否可以使用 ipropertybag 获取相机属性值?

c# - BitmapSource 到 BitmapImage

c# - 如何初始化 private static readonly HashSet<char>?

c# - 管理 C# WPF 应用程序客户端 PC 文件夹中的 3000 个文件

c# - HttpSessionLifecycle对象序列化结构图

c# - 使用代码从 ViewModel 绑定(bind)控件中检索 System.ComponentModel.DataAnnotations.DisplayAttribute 属性

qt - 是什么让 Phonon/DirectShow 错过标准编解码器?

c# - C# 中具有两种不同数据类型的二维数组