问题标签 [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.
bitmap - 使用 DirectShow 将电影文件转换为位图文件
我想将 AVI、MOV 等电影文件转换为位图文件,如 JPEG、JPEG2000、TIFF 等
。DirectX / DirectShow 可以实现吗?
来自 ffmpeg 的 AVCodec 是更好的选择吗?
是否有据可查?
是否有其他可能性来实现这个问题(Qt 的 fe)?
video - directshow 反向播放
我目前有一个可以正确播放的 DirectShow.NET 图,但我希望它也能够反向播放(从最后开始并向后播放)。
我尝试过使用 IMediaSeeking::SetRate(double) 方法,但这仅适用于正值。当我尝试使用负值时,它会崩溃。
帮助!
我正在使用 .avi 视频文件,但如果可以的话,我愿意尝试不同的格式。
licensing - DirectShow 是什么许可证,它可以处理什么输入和输出?
我想使用 DirectShow 创建一个项目。DirectShow 有哪些许可证?我可以使用它还是我必须介意某事。?
DirectShow 可以处理哪些输入和输出编解码器?
video-streaming - 是否可以使用 DirectShow API 捕获 HDV/HD 流
我们目前使用 DirectShow API 通过 Firewire 将标清视频流式传输到我们的应用程序中。可悲的是,这段代码大多是从互联网上的各个地方拼凑而成的,说它神秘是轻描淡写的。
现在,我们希望能够使用相同的方法通过 firewire/usb 2.0 流式传输 HDV/HD 视频。是否可以在 DirectShow 中执行此操作?请原谅我没有使用正确的术语。我自己对这个过程只有一个肤浅的了解。如果不可能,涉及到哪些方面。我还需要了解其他技术吗?
谢谢!丹尼尔
visual-c++ - 如何使用 DirectShow 捕捉 RGB 中的实时摄像机帧
我正在通过 DirectShow 实现实时视频捕获以进行实时处理和显示。(增强现实应用程序)。
我可以很容易地访问像素,但似乎我无法让 SampleGrabber 提供 RGB 数据。设备(iSight——在 VMWare 中运行 VC++ Express)仅报告 MEDIASUBTYPE_YUY2。
经过广泛的谷歌搜索,我仍然无法弄清楚 DirectShow 是否应该为这类事情提供内置的色彩空间转换。一些网站报告说没有内置 YUV<->RGB 转换,其他网站报告说您只需在 ISampleGrabber 上使用 RGB 子类型调用 SetMediaType。
任何建议都非常感谢,我对这个很疯狂。下面提供的代码。请注意
- 该代码有效,只是它不提供 RGB 数据
我知道我可以实现自己的转换过滤器,但这不可行,因为我必须预测每一种可能的设备格式,这是一个相对较小的项目
/li>
64-bit - Windows 7 x64 下的 DirectShow Editing Services 4GB 内存限制
我将 XTLTest 编译为 64 位,并尝试在 windows 7 x64 下测试一些 XTL。
所有这些测试都是使用带有 WMV 展示中的一个剪辑的 XTL 完成的,时间轴大小为 1440x1080。
- 缓冲设置为 300 - 播放正常。
- 缓冲设置为 600 并出现无法运行图形错误。使用大内存感知重新编译(应在 64 位应用程序上默认设置),同样的事情。
- 在 310 测试并运行良好。
- 尝试使用 310 缓冲同时播放 2 个不同的 64 位 XTLTest 实例,第二个因“无法运行图形”而失败。
- 缓冲设置为 80,能够使用组合的 4GB 内存播放 4 个 XTLTest 实例。执行更多实例并且无法运行图形。
- 针对任何使用 DirectShowLib 的编译 .NET 应用程序,并确认其作为 64 位本机应用程序运行。我能够以 80 缓冲加载 4 个 XTL,直到我得到
System.Runtime.InteropServices.COMException (0x8007000E):没有足够的存储空间来完成此操作。
所以我只能得出结论,DES 子系统对所有应用程序的组合有 4GB 的内存限制。
这是真的?如果是这样,这是 DES 限制还是 DirectShow 限制,有什么解决方法吗?
最佳,Tuviah Snyder 首席程序员,MediaWan Solid State Logic, Inc
c# - 在 .NET 中转换 AVI 视频
我正在用 C#.Net 做一个项目。我想读取 AVI 视频的帧,编辑它们,然后将它们写入一个新的 AVI 文件(类似于变换过滤器)
我知道一个可以创建自己的直接显示变换过滤器的过程,但那是在 C++ 中,我想避免它。
无论如何在.NET中完成这个?
delphi - DirectShow IVideoWindow 和 Fullscreen--我可以写入我的 D3D 主表面吗?
写一个游戏,我想在中间放一些过场动画。在窗口模式下,DirectShow 类可以完美运行并且易于使用。但是当游戏全屏时,我无法让 DirectShow 显示全屏过场动画。
基本上,当我初始化 D3D 设备时,我无法显示视频,即使使用 IVideoWindow.put_Fullscreen(true)。我猜 DirectShow 不能用 D3D 设备全屏显示。
所以,我尝试在过场动画播放时释放我的 D3D 设备,然后重新初始化它。这似乎工作得很好,但是当 DirectShow 播放全屏时,它似乎从我的应用程序的主窗口中窃取了焦点,并且在完成后没有将其返回。然后导致 DirectInput 之后无法再次获取设备(给我一个“拒绝访问”错误代码)。我在获取之前尝试了 SetForegroundWindow() ,但这并不能解决它,所以这可能不是问题所在。
无论如何,长话短说,我想要的只是在我的 D3D 应用程序中间的全屏过场动画。有没有首选的方法来实现这一点?我可以通过将 DirectShow 输出到我的 D3D 主表面来做到这一点吗?我认为这将解决我遇到的问题。
windows-mobile - 相机预览时的帧率问题
我正在为 Windows Mobile 平台编写相机驱动程序。
我有一个应用程序可以正确显示预览但速度非常低(可能是 1 或 2 帧/秒)的问题。
经过调查,我可以看到来自传感器的帧正常(每 45 毫秒),但是当发生硬件事件以存储该帧时,没有可用的缓冲区,然后帧被丢弃。
在我们的例子中,缓冲区由应用程序通过 IOCTL_CS_BUFFERS/CS_ENQUEUE API 提供。问题是缓冲区以非常低的速率提供,这就是预览无法正常工作的原因。
问题是我无法调查为什么这个 API 以这个速率给出,因为 PIN_IOControl 是从 Directshow 固件调用的。
我之前描述的问题涉及测试应用程序。
现在,如果我使用的是 Windows Mobile Camera 应用程序,则在图片模式下可以预览(大约 15 帧/秒)。但是当视频模式打开时,预览仅显示每秒大约 2 帧(就像在我们使用的测试应用程序中一样)。
我可以看到这两种模式之间的唯一区别是视频模式预览使用 QCIF 格式,而捕获模式(图片)预览使用 QVGA 格式。
感谢您的帮助。
法布里斯。
c++ - 用于 Windows 开发的 GStreamer 或 DirectShow?
我正在为当地一所大学实施一个讲座捕捉项目。多个视频流将到达一台 PC:演示者的桌面幻灯片、演示者本人的摄像机图像以及可选的数字白板捕获。这些传入的流将由桌面应用程序管理,该应用程序显示、转码/混合并最终将它们保存到磁盘。将有一些配置选项,因为材料可以通过多种方式分发:作为 DVD 上的 Flash 应用程序、作为在线 Flash 应用程序或作为 Windows Media Player 的视频点播流。
此应用程序应该可以在 Windows 上运行。可选地,它可以支持其他平台,但它似乎不是高优先级。
GStreamer 和 DirectShow 似乎都能够提供底层技术。我对 Linux 上的 GStreamer 有一点经验,我喜欢它的设计,所以我倾向于在这个项目中使用它。但是,我不知道它在 Windows 上的支持情况如何。我找不到任何关于如何在 Windows 上构建 GStreamer 的最新文档。所以我担心我会在这个过程的某个地方卡住。
DirectShow 似乎是一个更安全的选择,因为它使用更广泛,并且在 Internet 上有更多可用的文档。
这里有人有在 Windows 上使用 GStreamer 的经验吗?它运作良好吗?是否有一些我应该注意的问题?
编辑
我发现了GStreamer OSSBuilds网站,并能够用它快速实现一个简单的视频播放器(基于“playbin”元素)。所以我想我会在 GStreamer 的道路上走得更远一点。