问题标签 [directshow.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1802 浏览

c# - DVR 设备缺少 DirectShow GUID

我在 C# 项目中使用 DShowNET,我一直在尝试多张卡。我尝试访问的卡是 GV-800_4A,它是 GeoVision CCTV 软件通常使用的采集卡。

问题是它在设备管理器中被识别为“DVR 设备”,其 guid 与我一直使用的普通视频输入设备不同,我不知道 DShowNET guid,但相信它可能与这个 guid 有关。

我的问题是“如何将 Windows 设备管理器的设备属性中看到的“设备类 guid”转换为DirectShow 中使用的 Guid?或者这些甚至是平等的?

设备管理器中的 GUID

  • GeoVision GV-800A {4d36e96c-e325-11ce-bfc1-0123456789ab}
  • 圆刚 {4d36e96c-e325-11ce-bfc1-08002be10318}
  • 炫USB {4d36e96c-e325-11ce-bfc1-08002be10318}

DShowLib 中的 GUID

  • 视频输入设备(0x860BB310、0x5D01、0x11d0、0xBD、0x3B、0x00、0xA0、0xC9、0x11、0xCE、0x86)

编辑

基本上,最终目标是能够将其作为捕获过滤器连接到图形以保存 FilterCategory.VideoInputDevice,但现在此设备(GeoVision)不会出现在可用捕获设备列表中,但它只是一个捕获设备驱动程序将其识别为“DVR 设备”

我通过将 CLSID 传递给 DShowNET 函数来使用 CLSID,以返回该类型的可用设备的 ArrayList:

DsDev.GetDevicesOfCat(FilterCategory.VideoInputDevice, out m_capDevices)

我需要知道 CLSID_[** DVR Device **] 或从哪里获得它。我认为它可以派生自“设备类 guid”,但有人告诉我这是不可能的。

0 投票
1 回答
486 浏览

c++ - 为什么 Directshow 不能捕获图形?

图形

这是我的图表。我将 Pinnacle Capture Card 中的媒体捕获到 MPEG-2 编码器中,但该图 (test.mpeg) 的输出是错误的。此文件中的视频和音频不匹配。视频将比音频播放得更快。

如何将视频从源捕获为多种格式?(例如,我只能看到 AVI 和 ASF)

0 投票
1 回答
1138 浏览

c++ - 如何使用 DirectShow 将视频从 WDM 捕获为 MPEG 格式?

我想从视频源捕获视频并使用 DirectShow 将其编码为 MPEG 格式。如何设计 Capture Graph 以及如何设置 MPEG 格式的视频属性(例如比特率、帧率、分辨率等)

0 投票
1 回答
450 浏览

wpf - 为什么 SoundPlayer 播放时会间歇性挂起?

我有一个 WPF 应用程序,我用它SoundPlayer来播放几个短的声音,比如键盘点击。有时,看似随机的声音会停止播放。当我离开页面时,声音将在一次尖锐的播放中同时播放。

我的问题是,为什么会发生这种情况有什么明显的原因吗?

我已经尝试了几件事,但是因为我不能始终如一地重现这个问题,所以很难找到原因。声音在整个应用程序中使用,因此我将它们在 app.xaml.cs 中加载到应用程序范围的静态集合中。我打电话SoundPlayer.Load()以确保它们立即加载到内存中。

就像我说的,这永远不会完全停止工作。播放似乎堆积起来,直到导航到另一个页面,它们都同时播放。

可能会产生影响的另一件事是我在应用程序中显示网络摄像头提要。使用 DirectShow.NET 库加载网络摄像头源。我不确定加载图表是否会对声音的播放产生任何不利影响。

0 投票
1 回答
817 浏览

directshow - 使用 DirectShow CaptureNet 将音频添加到 avi

嗨,我正在使用此 codeproject 源中的 CaptureNet 应用程序开箱即用:

http://www.codeproject.com/KB/directx/directshownet.aspx

我想要做的也是从麦克风中捕获音频,而我的网络摄像头中的视频正在保存到 AVi 文件中,我想将音频交错到同一个文件中。目前所描述的只是视频捕获。我对此很陌生,我设法将音频单独捕获为 WAV 文件,但不知道从哪里开始将视频和音频保存到同一个 AVI 文件中?

0 投票
1 回答
743 浏览

directx - 断开,然后重新连接引脚

我正在使用 DirectShow.net 和 SlimDX 将视频纹理放在四边形上。我在设备丢失时遇到了问题。我无法重置我的设备。经过数小时的谷歌搜索,我找到了一个论坛主题,解决方案是断开 vmr9 引脚,重置设备并重新连接引脚。

我知道如何断开连接:

有了这个,重置就可以了,但是我怎样才能再次连接?

0 投票
1 回答
541 浏览

video - 关于 DirectShow.NET、DirectShow 和 Windows 媒体格式的一般问题

我搜索并搜索了答案,但找不到答案。

基本上我正在开发一个网络摄像头/音频流应用程序,它应该从电脑(usb 网络摄像头/麦克风)捕获音频和视频并将它们发送到接收服务器。服务器将如何处理这是另一个故事和第二阶段(我现在正在跳过)

我使用 DirectShow 和 Windows Media Format 编写了一些代码,它非常适合捕获音频/视频并将它们发送到另一个客户端,但是有一个主要问题:延迟。

互联网上每个人都给了我相同的答案:“对不起,伙计,但媒体格式不适用于视频会议,他们的编解码器延迟太高”。我以为我可以跳过 .wmv 问题,但似乎不可能做到……这条路到此为止。

所以我看到了一些 DirectShow.NET 的例子,它们在音频和视频方面都更快。我的问题是:为什么 DirectShow.NET 对视频/音频会议来说更快更好?它不应该只是 C++ 的 DirectShow 的 .NET 移植吗?

我错过了什么吗?在这一点上我有点困惑

0 投票
1 回答
2610 浏览

c# - 使用 DirectShowNet 寻找关键帧

我的任务是:我创建一个图形,将 SampleGrabber 附加到它,并在构建图形后使用 IMediaSeeking 界面抓取关键帧。

以下是我所做的: 在 Main 方法中:

在 SampleCB() 回调方法中:

因此,我已经设置了这些东西。现在,当我运行程序时,一切都正确加载。但是回调只被调用一次,然后渲染停止。没有更多的渲染,也没有更多的回调。我尝试了另一种回调方法 ISampleGrabber::BufferCB() 来查看它是否遵循相同的命运。但不是!每次抓取一帧并渲染视频直到结束时都会调用 BufferCB()。

我究竟做错了什么?对此有何建议?谢谢 :)

0 投票
2 回答
3113 浏览

filter - C#:如何使用 directshow.net 显示此对话框?

如何使用 Directshow.net 调用此对话框?

过滤器图

0 投票
1 回答
1194 浏览

directshow - 使用 IMediaSample DirectShow.Net 寻找关键帧

据我所知,为了检查一个帧是否是关键帧,我必须检查 IMediaSample::IsSyncPoint() 方法,如果该帧是关键帧,则返回 0 (S_OK),否则返回 false其他情况。

但是 IsSyncPoint() 方法只是在抓取并传递给 ISampleGrabberCB::SampleCB() 回调方法的每一帧中返回 0。

我的回调包含的代码很简单:

我在这里想念什么?