如何录制两个音频输入和一个视频输入?

Posted

技术标签:

【中文标题】如何录制两个音频输入和一个视频输入?【英文标题】: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 上没有问题。 我们正在就您的问题咨询其他工程师,可能会有一些延迟。 【参考方案1】:

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

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

【讨论】:

感谢您的回答!我要试一试!

以上是关于如何录制两个音频输入和一个视频输入?的主要内容,如果未能解决你的问题,请参考以下文章

检测新的视频和音频输入

观看视频时录制带音频的视频

EZAudio 中的音频输入源

AVFoundation 添加音频输入使音频播放静音

同时录制来自两个输入设备的音频并保存到波形文件中?

如何在python中合并音频和视频