오디오 장치(라인 입력)에서 녹음하고 왼쪽 및 오른쪽 채널을 다른 프로세스에 할당하고 싶습니다. 물론 개별적으로 녹음할 수도 있습니다. 내가 원하는 것은 다음과 같습니다(예를 들어 재생 명령).
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
리믹스 1은 왼쪽 채널을 제공하고, 리믹스 2는 오른쪽 채널을 제공합니다.