【问题标题】:How to capture from WDM Streaming audio sources (Realtek HD Audio)如何从 WDM 流式音频源(Realtek HD 音频)中捕获
【发布时间】:2020-06-13 14:39:19
【问题描述】:

我正在尝试在 DirectShow 中使用各种音频源,并且我的系统中有这些捕获设备,我认为这些设备很常见(由芯片组驱动程序提供):

Realtek 高清音频线路输入
Realtek 高清音频立体声输入
Realtek 高清音频麦克风输入

它们看起来像捕获源,提供模拟输入和 24 位 pcm 输出,并且可以将输出连接到其他过滤器(渲染器等)。
但是捕获过滤器的 IMediaFilter::Run 的返回代码是 ERROR_BAD_COMMAND ,这并没有说太多。我在我的程序和 GraphStudioNext 中都试过了,但没有透露任何额外的信息。

是否可以将这些用于捕获以及如何使用?

更新

例如,我用麦克风输入(实际连接并工作)尝试了这个图表。在此设置中,图表不会启动 (ERROR_BAD_COMMAND),但使用其他源时,它会启动。
这是相同的设备,但驱动程序不同。有效的类别来自“音频捕获源”类别,而不是“WDM 流媒体捕获设备”类别。

【问题讨论】:

    标签: windows video-capture directshow audio-recording


    【解决方案1】:

    使用 GraphStudioNext 检查设备的最简单方法是使用 PCM 音频输入设备本身、AVI Mux 过滤器和 File Writer 过滤器连接起来(使用默认媒体类型)构建一个记录图:

    您点击运行,记录图通过过滤器写入器在图构建期间提示的位置生成非空文件。

    --

    所以现在我意识到你的问题有点不同。您会在

    下看到与您的音频输入设备相对应的过滤器
    • Audio Capture Sources -- CLSID_AudioInputDeviceCategory
    • WDM 流媒体捕获设备 -- AM_KSCATEGORY_CAPTURE

    问题是第一个过滤器有效而另一个无效。

    来自AM_KSCATEGORY_CAPTURE 的类似过滤器似乎正在连接到拓扑,但尝试运行触发器ERROR_BAD_COMMAND

    首先,这些确实是不同的过滤器。即使底层硬件可能相同,“前端”过滤器也不同。 “工作”的包装器是由 WDM 设备支持的Audio Capture Filter。在另一种情况下,一般来说,通用 WDM 过滤器代理的行为是未定义的。该过滤器没有记录在案,我猜它没有接收到足够的初始化或没有实现所需的行为,所以这个代理不能也不应该与音频捕获过滤器代理互换。

    【讨论】:

    • 谢谢,我用图表和细节更新了问题。看来我唯一能得出的结论就是司机出了问题。
    • 感谢更新。尽管这并没有提高我的理解,但我接受我对此无能为力。
    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多