问题标签 [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.
com - COM:IMoniker::BindToObject 的 IBindCtx* 参数可以为 NULL 吗?
我正在使用 IMoniker::BindToObject 函数,并且我已经阅读了 MSDN 上的文章。
文章并没有说第一个参数可以为NULL,但下页的示例代码使用NULL作为参数:
http://msdn.microsoft.com/en-us/library/dd407292%28VS.85%29.aspx
由于我不是很了解这个参数的使用,也不需要函数返回的额外绑定信息,
我想问“参数可以为NULL吗?”。
提前致谢。
c# - Directshow & .Net - 位图从图像左侧的右侧显示条纹?
示例图片:
我正在使用 DirectShow.net 将网络摄像头素材放入我的程序中。为此,我将源相机添加到图表中,并添加了一个 VideoMixingRenderer9。
这部分工作正常,但我使用 GetCurrentImage(out lpDib) 提取帧的部分遇到了我只能描述为一个奇怪的问题。
我正在做的是使用 Marshal.PtrToSTructure 从 lpDib 创建一个 BitmapInfoHeader,然后计算宽度/高度/步幅/和像素格式。
当我查看存储在位图中的图像时,问题就出现了 - 它的左侧有一条 10 px 宽的线,实际上是右侧的!
值得注意的是,我从 GetCurrentImage 调用中获得的数据实际上是颠倒的——注意对 Cap.RotateFlip 的调用。
我完全迷失在这里。似乎是某种偏移问题,我尝试过一些调整,但无济于事(只会产生奇怪的对角线外观)。
directshow - 将 DirectShow 过滤器迁移到 Media Foundation MFT 的快速方法
我有一些自定义 DirectShow 过滤器(用于编码/解码/复用/解复用)。
我想在 Media Foundation 上将它们用作 MFT。
我听过一些人说:
“微软声称所有 DirectShow 过滤器只需添加一些代码即可迁移到 MFT”
实际上,我怀疑有没有快速的方法。因为 DShow 和 MediaFoundation 的方法、API 不同。
但既然有人告诉我这些信息,我想问一下:
“这是真的吗?我怎么能快速迁移?”
提前致谢。
c# - DirectShow.Net 中是否提供 IOverlay 接口
我对 DirectShow 还很陌生,现在真的只是在摸索。我想在 WPF 应用程序中托管 directshow 图形的 directshow 渲染器窗口,并且目前正在使用 HwndHost 类来尝试实现这一点。我需要的 HwndHost 是渲染视频的窗口的句柄。我找到了一个示例,它显示了通过枚举 IVideoWindow 接口的引脚并查询 IOverlay 来获取句柄,因此可以使用 GetWindowHandle 方法来获取句柄。
问题是 IOverlay 在 DirectShow.Net 中似乎不可用。阅读 DirectShow.Net关于页面,IOverlay 列在表格中,标题为“这些接口在源代码中,但已弃用、未记录、用于 Ole 自动化或无法测试,这意味着它们不是,也不会被测试”。
那么我必须做些什么才能访问这个定义呢?它是否从作为库分发的构建中排除,所以我应该自己从源代码构建库吗?
或者有没有更好的方法来做我想做的事情?Anyhelp 将不胜感激,就像我说我对所有这些东西都是新手一样。
提前致谢。
编辑:那里没有多少 DirectShow 开发人员?或者这是一个愚蠢的问题,绝对可以接受窥视者可能有的任何建议......
flash - “假”DirectShow 视频采集设备
这与我提出的最后几个问题无关。
我需要从 IP 网络摄像头 (SNC-RZ25N) 获取视频到 Flash Media Server。我宁愿不必使用 Windows,但如果它使事情变得更容易,我会的。(Flash Media Live Encoder 是一个仅限 Windows 的程序。)
我考虑了从 A 点到 B 点的许多不同路线,但似乎最简单的方法可能是使用 Flash Media Live Encoder 发布到 Flash Media Server。然后我必须弥合的唯一差距是获得 Flash Media Live Encoder 可读的视频源。
当然,我的来源在网络上,FMLE 寻找“Microsoft DirectShow 兼容视频捕获设备”。我找到了一个非免费的 SDK ( http://www.e2esoft.cn/vcam/vcamsdk.asp ),它应该允许我欺骗这样的设备,并希望将相机流发送到 FMS。
有谁知道我应该使用不同的程序或 SDK?我是否让事情变得比他们需要的更复杂?
com - 媒体基金会:调用 IMFActivate::ShutdownObject 的另一种方式?
这是一个关于媒体基金会IMFActivate::ActivateObject
的问题。IMFActivate::ShutdownObject
根据 MSDN,调用的组件ActivateObject
负责调用ShutdownObject
.
但是有两个例子不遵循这个规则:
http://msdn.microsoft.com/en-us/library/dd388503%28VS.85%29.aspx
和
http://msdn.microsoft.com/en-us/library/dd317912%28VS.85%29.aspx
在这两个例子中,它们调用ActivateObject
然后释放IMFActivate
接口而不调用ShutdownObject
方法。
这会导致内存泄漏,对吧?还是有其他方法可以释放对象占用的资源?
(我可以使用IMFMediaSource::Shutdown
释放对象而不是使用IMFActivate::ShutdownObject
)
提前致谢。
video - 自定义 DirectShow 图形源过滤器
我需要做的就是从内存中播放一个 AVI 视频。出于安全原因,我无法将其写入磁盘。据我所知,您通过调用获得的内置AVI播放图RenderFile
只会播放文件。
是否有可以从内存播放 AVI 的 DirectShow 图形?如果没有,我该如何修改或创建一个可以这样做的图表?
c++ - 使用 WMAsfWriter 实时编码带有音频源的相机 - 抖动问题
我构建了一个 DirectShow 图表,其中包含我的视频捕获过滤器(抓取屏幕)、默认音频输入过滤器,它们都通过分离器连接到 WM Asf Writter 输出过滤器和 VMR9 渲染器。这意味着我希望将实时音频/视频编码与预览一起保存到磁盘。问题是无论我选择什么 WM 配置文件(即使是非常低的分辨率配置文件),输出视频文件总是“抖动”——每隔几帧就会有一个延迟。音频没问题 - 音频中没有抖动。CPU 使用率低于 10%,所以我认为这不是 CPU 资源不足的问题。我想我正确地给我的帧加了时间戳。可能是什么原因?
以下是解释问题的录像机视频的链接:
http://www.youtube.com/watch?v=b71iK-wG0zU
谢谢多米尼克·汤姆恰克
c# - 求源图时的 GMFBridge 问题
我正在尝试使用 GMFBridge 在多个流缓冲区图之间切换,我似乎有两个问题。
这是图表的图表: http: //massivefailure.net/dshowgraphsalt.jpg
连接到桥渲染图的桥源图上的 VMR 非常不稳定——每 4-5 秒显示一个新帧。
如果我寻找连接到桥渲染图的桥源图,那么所有输出(连接的桥源和渲染图中的 VMR 以及外部渲染器上的输出)都会停止大约一分钟。一旦它恢复问题#1的波动就消失了。
我尝试在搜索之前断开和停止桥渲染图,然后在搜索后重新连接并运行它,但我仍然遇到问题,要么冻结,要么连接的桥源图上的 VMR 大约每 10 秒显示一帧。
排序不重要的问题:
我确实在无限发球台的位置有智能发球台,VMR 连接到预览引脚,但在寻求它们之后,它们将以正常速率的 1.5-2 倍播放,直到它们赶上直播。有没有一种健全的方法可以修复它,这样我就可以回到智能发球台了?
visual-c++ - DirectShow: ieee1394id <- 这是否也描述了 USB 设备?
我正在尝试了解 DirectShow 库的实现。
DirectShow 术语中的 IEEE1394-id 是什么?
IEEE1394 是火线。
它通常还描述USB设备的ID吗?
它由 IAMExtDevice::get_ExternalDeviceID() 检索