我正在使用 32 通道输入/输出 USB 类兼容音频设备。(安装了 X-UF 卡的 Behringer X32。)我正尝试使用 Raspbian Jessie 在 Raspberry Pi 上从这些通道进行录音。
arecord --buffer-size=88200 --device=hw:CARD=XUF,DEV=0 --format S32_LE --rate 44100 -c 32 testrec3.wav
这会创建一个 32 声道、44.1 kHz、32 位的 WAV 文件,正如预期的那样。我可以用 Audacity 打开该文件。但是,所有声道都完全静音。尝试使用 播放该文件aplay
,它似乎播放了适当的时间,但完全没有声音。
我在 Windows 下测试了该设备,以验证通道是否在 X32 上设置……它们确实设置了,并且运行良好。
我相信arecord
我找到了正确的设备,因为除非我指定 32 个通道、正确的采样率和正确的采样格式,否则它不会工作。如果我输入的这些参数有误,我会收到错误,这是意料之中的。如果我将 X32 上的采样率更改为 48 kHz,我必须更改参数上的采样率arecord
,这是意料之中的。
如果我跑步alsamixer
,我得不到任何 VU 计……只有一条消息:
该声音设备没有任何控制装置。
这是意料之中的。我的设备不应该有任何软件可控制的东西。只有输入通道和输出通道。我希望有一些 VU 表来显示正在发生的事情,但除非有可控制的混音器,否则 AlsaMixer 似乎无法做到这一点。
我该如何进一步调试此问题?我可以检查什么来找出录音无声的原因?
以下是设备列表:
pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: XUF [X_UF], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
pi@raspberrypi:~ $ arecord -L
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=XUF
X_UF, USB Audio
Default Audio Device
front:CARD=XUF,DEV=0
X_UF, USB Audio
Front speakers
surround21:CARD=XUF,DEV=0
X_UF, USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=XUF,DEV=0
X_UF, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=XUF,DEV=0
X_UF, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=XUF,DEV=0
X_UF, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=XUF,DEV=0
X_UF, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=XUF,DEV=0
X_UF, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=XUF,DEV=0
X_UF, USB Audio
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=XUF,DEV=0
X_UF, USB Audio
Direct sample mixing device
dsnoop:CARD=XUF,DEV=0
X_UF, USB Audio
Direct sample snooping device
hw:CARD=XUF,DEV=0
X_UF, USB Audio
Direct hardware device without any conversions
plughw:CARD=XUF,DEV=0
X_UF, USB Audio
Hardware device with all software conversions
运行amixer contents
或amixer -c1 contents
不返回任何内容。(amixer -c0 contents
会返回一些东西,但那是内置音频,而不是我的 USB 设备。)
/var/log/syslog 或 dmesg 中似乎没有任何相关内容。
以下是 的输出arecord --dump-hw-params
:
HW Params of device "default":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD
SAMPLE_BITS: 32
FRAME_BITS: 1024
CHANNELS: 32
RATE: 44100
PERIOD_TIME: (136 92880)
PERIOD_SIZE: [6 4096]
PERIOD_BYTES: [768 524288]
PERIODS: [2 1024]
BUFFER_TIME: (272 185760)
BUFFER_SIZE: [12 8192]
BUFFER_BYTES: [1536 1048576]
TICK_TIME: ALL
--------------------
lsusb
:
总线 001 设备 004:ID 1397:0006 BEHRINGER International GmbH
cat /proc/version
:
Linux 版本 4.4.50-v7+ (dc4@dc4-XPS13-9333) (gcc 版本 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #970 SMP 2017 年 2 月 20 日星期一 19:18:29 GMT
usb-devices
:
T: Bus=01 Lev=02 Prnt=02 Port=04 Cnt=02 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 2
P: Vendor=1397 ProdID=0006 Rev=20.41
S: Manufacturer=BEHRINGER
S: Product=X_UF
S: SerialNumber=0x156400fe24
C: #Ifs= 5 Cfg#= 1 Atr=c0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=20 Driver=snd-usb-audio
I: If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=20 Driver=snd-usb-audio
I: If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=20 Driver=snd-usb-audio
I: If#= 3 Alt= 0 #EPs= 2 Cls=01(audio) Sub=03 Prot=00 Driver=snd-usb-audio
I: If#= 4 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)