问题标签 [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 投票
2 回答
1195 浏览

c# - 使用 DirectShow.Net 将 USB 网络摄像头录制为 MKV 和其他格式

我有一个GraphGraphEdit一个转换USB Webcam成不同形式的视频,比如.MKV

输入 -> ffdshow 视频转换器 -> Smart Tee -> AVI Mux -> file.mkv

如何在其中创建ffdshow codec过滤器DirectShow.Net以便可以在其中创建此设置C#?我看了,我没有ffdshow列出FilterCategory

0 投票
1 回答
2729 浏览

directshow - DirectShow 中 GMFBridge 的使用

enter code here我必须动态停止和启动Video Renderer Filter。在不创建新图表的情况下,使用“普通”直接展示架构是不可能的。但是使用 GMFBridge 似乎是可能的。

但我不知道如何使用它。(是的,我在http://www.gdcl.co.uk/gmfbridge/index.htm阅读了这篇论文)

我的图表是:

那么 GMFBridge 适合在哪里呢?

更新:

谢谢威梅尔

我只是困惑...让我清楚我的理解

i) 一开始我只有一张图

ii)为了使用 GMFBridge,我将我的单个图表分为两个单独的图表

那么, GMFBridgeSinkFilter 和 GMFBridgeSourceFilter ?这些是什么?他们的班级类型?

iii)然后我创建 IGMFBridgeControllerPtr 的实例并进行必要的初始化...

iv)桥控制器向源图添加一个接收器过滤器并连接它:

什么是 sourceGraph、sourceGraphSinkFilter ?

您的意思是在源图中以编程方式连接这些过滤器?

iv) 在第二个图中,让控制器添加一个源过滤器,并将其连接到渲染器:

什么是 sinkFilter、renderGraphSourceFilter 等?

的意思是在源图中以编程方式连接这些过滤器?

0 投票
1 回答
1228 浏览

directshow - 处理 DirectShow 中的动态格式更改

我只有简单的图表:

在我的CustomTranformFilter 中,我动态更改视频属性:即我将视频重新缩放为新维度。

但是我的渲染器看到视频仍然是原始大小([1024,720] 没有重新缩放 [640,480])而且我在视频渲染器上得到损坏的图像:因为渲染器尝试根据旧尺寸绘制新图像......

我该如何解决?

最良好的祝愿

更新:

正如我从戴维斯的回答中了解到的那样:

Davies 建议使用 ReceiveConnection。 ReceiveConnection:当输出引脚向其下游对等方提出格式更改时使用,并且新格式需要更大的缓冲区。(MSDN DirectShow 文档)。

gmfbridge 示例“太复杂”,我无法弄清楚如何使用“ReceiveConnection”。 我是 DirectShow 的新手。

任何人都有使用 ReceiveConnection 机制来响应动态格式变化的简单代码示例?

0 投票
2 回答
2241 浏览

video - DirectShow 记录问题 - fps

我只是创建简单的图表来记录来自源过滤器的视频:

我可以将来自 SourceFilter 的视频保存到我的本地磁盘。

可以确定存在 fps(每秒帧数)问题。我该如何解决?有任何想法吗?

PS:

要检查我的 SourceFilter 是否提供正确的 fps,我只需创建另一个图表:

它以正确的速度播放(fps)

更多细节:

此记录但 fps 错误。

当我尝试 gdcl MP4 Mux(可以在这里看到)时,我成功获得了正确的 fps。

另一种情况

它录制但录制的文件不播放

实际上我不想解码任何东西......只需将最初编码的视频帧(mp4,h264)写入文件。而且我可能不需要将音频与视频同步...为什么需要 Mux?

我理想的过滤器应该是这样的:

0 投票
1 回答
754 浏览

.net - 用于播放常见视频格式的 .NET 或 ActiveX 组件

我正在寻找任何可靠的、商业的或免费的组件来在 .NET 应用程序中添加视频播放支持。

尝试了许多选项和包,但似乎没有一个可以处理常见格式的播放。

最常见的选项 - Windows Media Player ActiveX - 非常好,但需要在用户的机器上安装 WMPlayer。

MediaFoundation 似乎不适用于 XP。

DirectX AudioVideoPlayback API 非常有问题。它可以在一台机器上完美运行,或者在另一台机器上完全失败(安装了相同的编解码器)。

简单可靠的东西会很棒。我还尝试过声称支持所需功能的 FFOSX。虽然它在 VB6 中完美运行,但在 .NET 环境中完全崩溃。

一切都部分起作用或根本不起作用,这真的很令人困惑。

任何关于我迄今为止尚未测试过的可能替代方案的建议将不胜感激。

0 投票
0 回答
353 浏览

c# - DirectShow.Net 问题桥示例过滤器冻结视频

我在尝试使 DirectShowNet Bridge 过滤器正常工作时遇到了一些麻烦。当我将它连接到图表的其余部分时,它会冻结所有内容(延迟一秒),然后一切都停止。当我将 GraphEdit 连接到远程图形时,它已连接。

有人知道吗?

非常感谢 !

0 投票
2 回答
17448 浏览

c# - 如何在 C# 中创建音频频谱

我想用 C# 制作一个带有信号频谱的音频播放器。

我在网上看到了一些有关如何制作播放器的示例,但找不到有关频谱的示例。

任何人都可以给我一个方向吗?

http://www.codeproject.com/KB/directx/directshowmediaplayer.aspx http://www.codeproject.com/KB/directx/directshownet.aspx?fid=4377&select=2579548&fr=1#xx0xx

0 投票
1 回答
2839 浏览

c# - 关于在 DirectShowNet 中渲染流的问题

目前我有一个我的程序创建的毁容的 avi 文件。我发现通过进入graphedit,我可以正确地重新配置它。

我发现如果我这样做:

我可以得到一个正确的视频流。

现在我正在尝试将其转换为我可以调用的 C# Directshow.Net 程序。

我创建了一个图形,并从要转换的视频文件中添加了一个 SourceFilter,我添加了一个抓取器,找到并添加了 ffdshow 编码器、AVI Mux,然后添加了 setOutputFileName()。

据我所知,这段代码创建了相同的图表。它会创建我的文件,但不会转换任何内容。它创建的文件是 0bytes。我的代码中的渲染流是错误的还是其他错误?

0 投票
1 回答
325 浏览

c# - 是否可以从一个输入控制 2 个 DirectShowNet 流?

我在 C# 中使用 DirectShow.Net。我制作了一个播放器,可以同时将视频从 USB 设备流式传输到视频屏幕和 avi 文件。

我想要一个按钮,以便视频将在屏幕上预览,但在按下按钮之前不会捕获。目前要做到这一点,我必须重做图表并添加捕获过滤器渲染流。

是否可以从 1 个输入中创建 2 个不同的图表?所以我会让我的 USB 摄像头显示到视频窗口,然后当我按下按钮时,我可以创建第二个图形,将摄像头中的视频保存到文件中,同时它仍在屏幕上播放?

0 投票
1 回答
696 浏览

c# - 我如何知道 Directshow.net 转换何时完成?

现在我有一个 Directshow.net 图,它接收一个视频文件并将其编码为一个文件,但它只是继续运行

在 DirectShow.net 中,我希望程序在完全转换完成后关闭,而不是我不得不猜测。

我怎么知道它是否以编程方式完成编码?