【问题标题】:How to record two audio inputs and one video input?如何录制两个音频输入和一个视频输入?
【发布时间】:2021-07-13 01:32:24
【问题描述】:

我正在尝试通过 C# 中的 MediaCapture 录制两个音频输入(网络摄像头 + 麦克风)和一个视频输入(网络摄像头)。只有 1 个音频和 1 个视频输入就像一个魅力,但该类本身不允许指定两个音频输入设备 ID。

一个例子:

var captureDeviceSettings = new MediaCaptureInitializationSettings
{
 VideoDeviceId = videoDeviceId, #Webcam video input
 AudioDeviceId = audioDeviceId, #Webcam audio input
 StreamingCaptureMode = StreamingCaptureMode.AudioAndVideo,
}

我考虑过使用音频图和子混合节点,但是我需要为媒体捕获指定设备 ID,子混合节点没有提供。此外,使用音频图的输出设备似乎不是解决方案,我不想将麦克风播放到默认输出设备。试过了,但听起来很可怕。我想创建一个虚拟音频设备,但我不知道如何。

对此有何建议?

【问题讨论】:

  • 同时与两个音频设备通话并不容易,但有人说 Audacity 可以做到 (howtogeek.com/61037/…)。但请记住,这些设备在不同的时钟上运行,因此即使您可以有两个不同的音频输入,您也必须做很多工作来同步信号。我想这就是 MediaCapture 对象不允许这样做的原因。如果可能的话,您最好使用具有多个输入的单个音频硬件设备。
  • 感谢您的反馈!这两个输入不需要 100% 同步。一个输入来自游戏(网络摄像头),另一个只是来自游戏玩家的典型麦克风。更进一步,相同类型的应用程序在 Swift 的 MacOS 上没有问题。
  • 我们正在就您的问题咨询其他工程师,可能会有一些延迟。

标签: c# audio video uwp mediacapture


【解决方案1】:

MediaCapture 无法做到这一点,WASAPI 或许可行,但做到这一点并非易事。

最好的选择可能是使用https://docs.microsoft.com/en-us/windows/win32/coreaudio/loopback-recording。 如果您让环回录制工作,您仍然需要在视频流中进行多路复用。

【讨论】:

  • 感谢您的回答!我要试一试!
猜你喜欢
  • 2012-05-15
  • 2014-05-06
  • 1970-01-01
  • 2020-06-14
  • 2021-10-21
  • 1970-01-01
  • 2020-12-24
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多