在 Windows Server 2022 上使用 Gstreamer 音频捕获时访问被拒绝

在 Windows Server 2022 上使用 Gstreamer 音频捕获时访问被拒绝

注意:我将此问题发布到 ServerFault,因为我相信存在某种权限或隔离,或者可能缺少 Windows Server 所需的系统组件。这不是一般的 Gstreamer 或音频/视频问题。


我在 Windows Server 2022 Standard 上安装了声卡,能够使用 Web 浏览器播放音频。我甚至可以通过 DirectShow 使用 FFmpeg 捕获音频。

对于一个新项目,我需要通过 Gstreamer 捕获音频。不幸的是,这不起作用。一个非常简单的命令失败了:

gst-launch-1.0 wasapisrc use-audioclient3=true ! fakesink
0:00:00.270717000  4768 000002432EE168C0 INFO                  wasapi gstwasapiutil.c:1017:gst_wasapi_util_initialize_audioclient3:<wasapisrc0> Using IAudioClient3, default period 480 frames, fundamental period 480 frames, minimum period 480 frames, maximum period 480 frames
0:00:00.279814000  4768 000002432EE168C0 ERROR                 wasapi gstwasapiutil.c:1032:gst_wasapi_util_initialize_audioclient3:<wasapisrc0> IAudioClient3::InitializeSharedAudioStream failed (80070005): Access is denied.

0x80070005, 拒绝访问。

假设这是 WASAPI 模块的问题,我尝试了它的其他模式,关闭 AudioClient3,切换到 WASAPI2 Gstreamer 模块。我甚至测试了 DirectShow 模块……人们会认为这会起作用,因为 DirectShow 在 FFmpeg 中可以工作,但是,我收到了类似的错误消息,即访问被拒绝。

我甚至尝试过以管理员身份运行 Gstreamer 这个愚蠢的做法。但没成功。

我应该注意,我尝试的所有这些命令在 Windows 11 Pro 下使用完全相同的二进制文件和完全相同的声卡驱动程序都能正常工作。这让我相信有某种默认策略阻止 Gstreamer 访问声卡。

我该如何进一步缩小这个问题的范围并解决它?欢迎任何想法。谢谢!

相关内容