![Linux/ALSA에서 두 개의 애플리케이션이 동일한(디지털) 사운드 입력을 어떻게 읽을 수 있습니까?](https://rvso.com/image/1447619/Linux%2FALSA%EC%97%90%EC%84%9C%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%B4%20%EB%8F%99%EC%9D%BC%ED%95%9C(%EB%94%94%EC%A7%80%ED%84%B8)%20%EC%82%AC%EC%9A%B4%EB%93%9C%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9D%BD%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
두 개의 응용 프로그램으로 동시에 액세스하려는 AES/EBU 입력 포트가 있는 사운드 카드가 있습니다. 선형 WAV 파일에 입력을 실시간으로 녹음하는 동시에 IceCast를 통해 스트리밍하고 싶습니다. 순진하게 두 응용 프로그램을 사용하여 동일한 입력 장치에 액세스하려고 하면 해당 장치에 액세스할 수 없다는 메시지가 표시됩니다. 이를 수행하려면 ALSA를 어떻게 설정해야 합니까? 아니면 일부 외부 프로그램을 통해 전달해야 하므로 지연이 발생합니까?
답변1
dsnoop
플러그인을 사용하여 샘플 데이터를 여러 가상 캡처 장치에 복사 할 수 있습니다 .
~/.asoundrc
다음과 같은 내용을 또는 에 입력 /etc/asound.conf
하고 snooped_digital
두 애플리케이션 모두에서 장치 이름으로 사용하십시오.
pcm.snooped_digital {
type dsnoop
slave {
pcm "hw:2,1" # the actual device
channels 2
rate 48000
}
}