问题标签 [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.
c# - 使用 DirectShow.Net 将 USB 网络摄像头录制为 MKV 和其他格式
我有一个Graph
将GraphEdit
一个转换USB Webcam
成不同形式的视频,比如.MKV
输入 -> ffdshow 视频转换器 -> Smart Tee -> AVI Mux -> file.mkv
如何在其中创建ffdshow codec
过滤器DirectShow.Net
以便可以在其中创建此设置C#
?我看了,我没有ffdshow
列出FilterCategory
。
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 等?
你 的意思是在源图中以编程方式连接这些过滤器?
directshow - 处理 DirectShow 中的动态格式更改
我只有简单的图表:
在我的CustomTranformFilter 中,我动态更改视频属性:即我将视频重新缩放为新维度。
但是我的渲染器看到视频仍然是原始大小([1024,720] 没有重新缩放 [640,480])而且我在视频渲染器上得到损坏的图像:因为渲染器尝试根据旧尺寸绘制新图像......
我该如何解决?
最良好的祝愿
更新:
正如我从戴维斯的回答中了解到的那样:
和
Davies 建议使用 ReceiveConnection。 ReceiveConnection:当输出引脚向其下游对等方提出格式更改时使用,并且新格式需要更大的缓冲区。(MSDN DirectShow 文档)。
gmfbridge 示例“太复杂”,我无法弄清楚如何使用“ReceiveConnection”。 我是 DirectShow 的新手。
任何人都有使用 ReceiveConnection 机制来响应动态格式变化的简单代码示例?
video - DirectShow 记录问题 - fps
我只是创建简单的图表来记录来自源过滤器的视频:
我可以将来自 SourceFilter 的视频保存到我的本地磁盘。
可以确定存在 fps(每秒帧数)问题。我该如何解决?有任何想法吗?
PS:
要检查我的 SourceFilter 是否提供正确的 fps,我只需创建另一个图表:
它以正确的速度播放(fps)
更多细节:
此记录但 fps 错误。
当我尝试 gdcl MP4 Mux(可以在这里看到)时,我成功获得了正确的 fps。
另一种情况
它录制但录制的文件不播放。
实际上我不想解码任何东西......只需将最初编码的视频帧(mp4,h264)写入文件。而且我可能不需要将音频与视频同步...为什么需要 Mux?
我理想的过滤器应该是这样的:
.net - 用于播放常见视频格式的 .NET 或 ActiveX 组件
我正在寻找任何可靠的、商业的或免费的组件来在 .NET 应用程序中添加视频播放支持。
尝试了许多选项和包,但似乎没有一个可以处理常见格式的播放。
最常见的选项 - Windows Media Player ActiveX - 非常好,但需要在用户的机器上安装 WMPlayer。
MediaFoundation 似乎不适用于 XP。
DirectX AudioVideoPlayback API 非常有问题。它可以在一台机器上完美运行,或者在另一台机器上完全失败(安装了相同的编解码器)。
简单可靠的东西会很棒。我还尝试过声称支持所需功能的 FFOSX。虽然它在 VB6 中完美运行,但在 .NET 环境中完全崩溃。
一切都部分起作用或根本不起作用,这真的很令人困惑。
任何关于我迄今为止尚未测试过的可能替代方案的建议将不胜感激。
c# - DirectShow.Net 问题桥示例过滤器冻结视频
我在尝试使 DirectShowNet Bridge 过滤器正常工作时遇到了一些麻烦。当我将它连接到图表的其余部分时,它会冻结所有内容(延迟一秒),然后一切都停止。当我将 GraphEdit 连接到远程图形时,它已连接。
有人知道吗?
非常感谢 !
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
c# - 关于在 DirectShowNet 中渲染流的问题
目前我有一个我的程序创建的毁容的 avi 文件。我发现通过进入graphedit,我可以正确地重新配置它。
我发现如果我这样做:
我可以得到一个正确的视频流。
现在我正在尝试将其转换为我可以调用的 C# Directshow.Net 程序。
我创建了一个图形,并从要转换的视频文件中添加了一个 SourceFilter,我添加了一个抓取器,找到并添加了 ffdshow 编码器、AVI Mux,然后添加了 setOutputFileName()。
据我所知,这段代码创建了相同的图表。它会创建我的文件,但不会转换任何内容。它创建的文件是 0bytes。我的代码中的渲染流是错误的还是其他错误?
c# - 是否可以从一个输入控制 2 个 DirectShowNet 流?
我在 C# 中使用 DirectShow.Net。我制作了一个播放器,可以同时将视频从 USB 设备流式传输到视频屏幕和 avi 文件。
我想要一个按钮,以便视频将在屏幕上预览,但在按下按钮之前不会捕获。目前要做到这一点,我必须重做图表并添加捕获过滤器渲染流。
是否可以从 1 个输入中创建 2 个不同的图表?所以我会让我的 USB 摄像头显示到视频窗口,然后当我按下按钮时,我可以创建第二个图形,将摄像头中的视频保存到文件中,同时它仍在屏幕上播放?
c# - 我如何知道 Directshow.net 转换何时完成?
现在我有一个 Directshow.net 图,它接收一个视频文件并将其编码为一个文件,但它只是继续运行
在 DirectShow.net 中,我希望程序在完全转换完成后关闭,而不是我不得不猜测。
我怎么知道它是否以编程方式完成编码?