使用ffmpeg能否从ASIO设备捕获音频?

3
我们有一个Windows 7的设置,我们在其中安装了Dante Virtual Soundcard,并启动具有ASIO功能的该声卡。该声卡将通过网络从Tesira服务器接收音频。我们想要将音频捕获到文件中(高度偏爱每个通道保存为单独的文件)。稍后将播放这些文件。可能会有6个或更多通道。
在同样的设置中,我们使用ffmpeg捕获一些视频,这很正常,使用Direct Show。因此,对于音频,我们希望使用相同的设置,因为ffmpeg也能够记录音频。然而,似乎没有选择虚拟声卡可能创建的ASIO设备的选项。所以问题是使用什么命令行来使用ffmpeg,或者安装什么?或哪个其他程序可以通过命令行记录ASIO?
我已经尝试过安装以下内容:
- Asio4all(实际上是错误的方式) - sox(不知道为什么) - HiFi Cable Asio Bridge(来自VB-audio,即使使用捐赠版本也没有足够的通道) - Voicemeeter(来自VB-Audio,没有足够的通道并且混音下降) - O Deus Asio link,这可能是一个有趣的选择,但它没有让我配置任何路由,有什么建议吗?
我注意到的一件事是虚拟声卡也可以设置为使用WDM。然后,我可以使用ffmpeg -list_devices true -f dshow -i duymmy查看设备,但是记录没有任何结果,我必须使用ctrl-c来停止它,而不是q,并且文件大小为零字节。据说这是因为网络上的数据都是ASIO格式,并且Tesira服务器无法发送“WDM数据”。FFmpeg仅停留在选择音频捕获管脚处。
编辑:
我使用高度详细的ffmpeg运行,并选择WDM声卡时它会停在“选择音频捕获”上。当请求选项时,它为22个选项重复给出以下行:min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate= 44100

结果发现设置可能有问题,因为FFmpeg跟踪日志加上查看代码揭示了它正在等待一个数据包(一些声音),但显然没有得到。 - Amfasis
3个回答

1

这听起来像是一个重复的问题,但我认为Edcast是关于将音频流传输到网络/互联网的。尽管如此,我安装了该程序,确实显示了设备。但是在执行命令行时,它会出现设备未找到的错误。 - Amfasis
此外,它只允许选择一对通道,而我需要更多。 - Amfasis
“-f show -list_options” 这个选项怎么样?你试过了吗? - Ngoral
是的,我尝试了,但它说找不到设备(我使用了在Edcast中得到的名称)。 - Amfasis
所以你说它在使用“-list_devices”时是可见的,但是当与“-list_options”一起使用时,它会显示设备未找到?我认为这不可能。 - Ngoral
抱歉造成困惑,使用 ASIO 名称(来自 Edcast)时出现错误,但使用 -list_devices 中的名称(即 dshow)时,会给出更新后问题帖子中所述的消息。 - Amfasis

1
回答我的问题:使用ffmpeg无法捕获ASIO设备的声音。如果需要,我可能会编写相关代码...但是,我可以通过分离我们拥有的两个音频数据流(AVB和Dante)来解决我的问题。它们位于同一个交换机上,也许是固件中的错误或者配置错误。感谢您的帮助!

0
你可以使用Voicemeeter代替HIFI-Cable / ASIO-Bridge。Voicemeeter是一个虚拟音频设备混音器,能够连接任何音频点、任何接口和应用程序(包括ASIO DAW),使所有内容与声音混合在一起……请访问www.voicemeeter.com下载和用户手册。

谢谢,我尝试了这个,但它只有2个通道,而我需要更多(问题也已更新)。 - Amfasis
你说的“2个通道”是什么意思?Voicemeeter可以处理2个物理输入设备(单声道或立体声)和一个虚拟输入(1到8个通道)... Voicemeeter Banana版本可以管理3个物理设备和2个虚拟设备... 请告诉我您在使用情况中的限制所在。 - user258609
我只能选择A和B,我认为它们都是立体声,所以总共有4个通道(我的所有输入都是单声道)。但如果我理解正确,它们都混合成一个立体声信号,而我真的希望它们全部分开,这样最终用户可以混合它们。此外,我有超过4个信号,可能是6或8个(尚未明确定义)。 - Amfasis
Voicemeeter BUS有8个通道,但你可以使用BANANA版本来获得更好的控制(例如完整的混音减去功能)。 - user258609

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接