问题标签 [directshow]

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 投票
3 回答
63565 浏览

c# - C# + DirectShow.NET = 简单的网络摄像头访问?

我找到了一个在 C# 中访问网络摄像头的示例。该示例使用DirectShow.NET库。我试图理解代码,但到目前为止,我唯一能弄清楚的是用户控件以某种方式调用 directshow 以直接绘制到用户控件的表面。

我想访问每个帧并将其放入 Bitmap 对象中。如何判断新框架何时到达?如何将此新帧捕获到位图对象中?

如果您熟悉 DirectShow.NET,这可能很容易回答。

0 投票
1 回答
160 浏览

windows - 在处理程序中关闭消息调度

我正在开发一个完全单线程的 Windows 程序,对任何数据结构都没有保护。但是,该程序使用 DirectShow API 打开自己的内​​部消息调度,例如 IVideoWindow::put_Visible。因此调用 IVideoWindow::put_Visible 方法的事件处理函数给了其他事件处理函数破坏其数据的机会。

有没有办法防止在 API 中发送这种消息?

0 投票
3 回答
12568 浏览

c# - 如何使用 DirectShow.NET C# 访问音频流

我想做的是将任意音频文件传递给 DirectShow 过滤器并最终使用 .NET 3.5 C# 和 DirectShow.NET 接收(PCM 音频)流对象。我想达到我可以说的一点:

我已经在 DirectShow 上阅读了几天,并认为我已经开始掌握过滤器和过滤器图的概念。我找到了示例(到文件/到设备)如何播放音频或将其写入文件,但似乎找不到 Stream 对象的解决方案。这甚至可能吗?如果我错过了什么,你能给我指出正确的方向吗?

最好的,

豪克

0 投票
2 回答
480 浏览

windows - 如何使用消息调度处理第二个事件循环?

我正在开发一个本质上是单线程的程序,它唯一的线程是主事件循环线程。因此,它的所有数据结构基本上都不受临界区之类的保护。

在它最近集成了一些基于 DirectShow API 的新功能之前,一切都很好。一些 DirectShow API 打开第二个事件循环,并在第二个循环内调度消息(即,不可预测地调用其他事件处理回调)。因此,当调用第二个事件处理函数时,它可能会损坏调用 DirectShow API 的函数正在访问的数据结构。

我在内核编程方面有一些经验。我想到的是,对于一个单线程程序,它应该如何处理它的数据结构就像内核应该如何处理 per-CPU 数据结构一样。在内核中,当一个函数访问每个 CPU 的数据时,它必须禁用中断(非常类似于第二个事件循环中的消息调度)。但是,我发现没有简单的方法可以避免调用 DirectShow API 或防止在其中创建第二个事件循环,有什么办法吗?

0 投票
1 回答
1479 浏览

directshow - DirectX 运行时是否包含 directshow 运行时库?

我正在编写一个使用直接显示来捕获和显示网络摄像头数据的 activex 控件。

如果 DirectX 运行时包含用于 directshow 的所有内容,我不需要将它与控件捆绑在一起。

0 投票
2 回答
541 浏览

c++ - IMovieControl::Run 在 Windows XP 上失败?

实际上,它只会在第二次调用时失败。我正在使用无窗口控件来播放视频内容,当控件仍在屏幕上时,正在播放的视频可能会发生变化。第一次构建图表后,我们通过停止播放、更换SOURCE过滤器并再次运行图表来切换媒体。这在 Vista 下运行良好,但在 XP 上运行时,第二次调用Run()返回E_UNEXPECTED.

初始化是这样的:

当我们决定播放一部电影时,这就是我们所做的。是从DirectShow 示例区域RenderFileToVideoRenderer中借来的。dshowutil.h

有人知道这里发生了什么吗?

0 投票
2 回答
482 浏览

.net - Gridview点网布局

我在网格视图中有 7 列。第 7 列包含其他 6 个 50 字的描述。我在哪里可以找到帮助查看如何布置行以便出现 6 个字段,然后第 7 个字段位于其下方。我正在努力寻找模板示例、数据列表视图或网格视图,以显示如何正确布局的示例。Intellisense 对我来说太神秘了。Visual Studio 2008 新手链接到具有 7 列的数据库。

0 投票
1 回答
580 浏览

c# - 在 C# 中使用 DirectShow AsyncReader

我正在运行AsyncReader以打开另一个应用程序正在下载的共享 MPG 文件(渐进式下载)。共享 MPG 文件是使用FILE-SHARE-READ | FILE-SHARE-DELETE | FILE-SHARE-WRITE共享权限创建的。我什至尝试了这些标志的每一种组合。

这是问题所在:在 C# 中,该AsyncReader.Load方法返回错误:

正在使用的文件

在 C++ 中它没有。C++ 打开文件就好了。

知道这是为什么吗?

0 投票
1 回答
7754 浏览

c# - DirectShow.NET - 网络摄像头分辨率属性页

我正在使用 DirectShow.Net 访问我的网络摄像头。我想为我的网络摄像头显示一个属性页来设置视频捕获分辨率和 FPS 速率。我尝试使用 DirectShow.NET 示例中的示例演示代码 - DxPropPages。是代码。但是属性窗口中的第二个选项卡被禁用。

我需要启用此选项卡,以便用户可以设置 caputre 分辨率。我怎样才能做到这一点?我是 DirecShow 的新手,真的不知道该演示代码要更改什么。

PS我想发布一些截图来告诉你我的意思,但我不能因为我是新用户。

0 投票
2 回答
648 浏览

winapi - SetPosition get wrong result

Task: grabbing arbitrary frames from mpeg2 video files. Now I use custom render filter for grabbing, but problem with positioning video on required frame.

I use SetPosition(), after Pause() for passing frames through graph, wait for filter receive first frame and Stop().

If I get frame by frame, first i receive exact for this time frame, after this frame repeat some times, and again exact frame.

Why SetPosition get wrong result?