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