linux录制音频(arecord或类似)和独立的左/右声道

linux录制音频(arecord或类似)和独立的左/右声道

我想从音频设备录制(线路输入)并将左声道和右声道分别分配给不同的进程。当然也可以单独记录它们。我想要的是类似的东西(播放命令只是作为例子):要么:

arecord (left channel only) -q -D plughw:1,0 -f S16_LE -r 22050 | play -t raw -r 22050 -b 16 -e signed -q - 
arecord (right channel only) -q -D plughw:1,0 -f S16_LE -r 22050 | play -t raw -r 22050 -b 16 -e signed -q - 

(也可能导致设备或资源繁忙?)或类似的情况

"arecord | splitchannels (leftchannel | process 1) (rightchannel | process 2)"

或者可能更像这样

"arecord | tee >(getleftchannel | process1) >(getrightchannel | process2) > /dev/null"

由于密集的网络搜索没有给出任何可用的结果..

知道我怎样才能做到这一点吗?

谢谢

答案1

经过更多的网络搜索并尝试失败后,我找到了一个解决方案:“sox remix”有效:所以我使用的命令看起来像这样(再次播放示例目的地)

arecord -q -D plughw:1,0 -f S16_LE -r 22050 -c2 | tee >(sox -t raw -r 22050 -b 16 -e signed -c 2 - -t raw -r 22050 -b 16 -e signed -c 1 - remix 1 | play -t raw -r 22050 -b 16 -e signed -q -) >(sox -t raw -r 22050 -b 16 -e signed -c 2 - -t raw -r 22050 -b 16 -e signed -c 1 - remix 2 | play -t raw -r 22050 -b 16 -e signed -q -) >/dev/null

remix 1 提供左声道,remix 2 提供右声道

相关内容