樹莓派使用ALSA內錄音頻, 錄取音效卡輸出的音訊
阿新 • • 發佈:2019-01-28
使用ALSA Loopback方式內錄音頻,可以錄取音效卡輸出的音訊而不影響正在播放的音訊。
參考連結:
https://www.raspberrypi.org/forums/viewtopic.php?p=695503#p695503
https://www.raspberrypi.org/forums/viewtopic.php?t=161657http://trac.ffmpeg.org/wiki/Capture/ALSA
首先啟用snd-aloop模組
sudo modprobe snd-aloop或者加入系統啟動, 編輯
sudo nano /etc/modules
新增如下內容
snd-aloop
然後在樹莓派使用者根目錄修改.asoundrc (或者 /etc/asound.conf):
內容如下
# .asoundrc pcm.multi { type route; slave.pcm { type multi; slaves.a.pcm "output"; slaves.b.pcm "loopin"; slaves.a.channels 2; slaves.b.channels 2; bindings.0.slave a; bindings.0.channel 0; bindings.1.slave a; bindings.1.channel 1; bindings.2.slave b; bindings.2.channel 0; bindings.3.slave b; bindings.3.channel 1; } ttable.0.0 1; ttable.1.1 1; ttable.0.2 1; ttable.1.3 1; } pcm.!default { type plug slave.pcm "multi" } pcm.output { type hw card 0 #<Your Output Device Name> } pcm.loopin { type plug slave.pcm "hw:Loopback,0,0" } pcm.loopout { type plug slave.pcm "hw:Loopback,1,0" }
重啟系統
播放音訊
aplay -fS16_LE -r16000 xxxx.pcm
錄取輸出音訊
arecord -fS16_LE -r16000 -D "hw:Loopback,1,0" -c2 xxxx.pcm