ALSA 및/또는 Pulse를 사용하여 다른 프로그램에서 사용할 오디오 소스를 "게시"하려면 어떻게 해야 합니까?

ALSA 및/또는 Pulse를 사용하여 다른 프로그램에서 사용할 오디오 소스를 "게시"하려면 어떻게 해야 합니까?

시스템의 다른 프로그램에서 참조할 수 있는 동적으로 이름이 지정된 오디오 소스를 만들고 싶습니다. 예를 들어 다음과 같습니다.

gst-launch-1.0 audiotestsrc ! alsapubsink name='Test Source'

그런 다음 다음과 같은 다른 프로그램에서 이를 참조합니다.

gst-launch-1.0 alsasrc device='Test Source' ! ... ! autoaudiosink

물론 요소는 없습니다 alsapubsink. ALSA나 Pulse 또는 제가 모르는 다른 도구를 사용하여 이런 종류의 작업을 수행할 수 있는 방법이 있습니까?

답변1

Pulseaudio에서: "빈" 수신기 만들기

pacmd load-module module-null-sink sink_name=public-sink-1 sink_properties=device.description=Public-Sink-1

그런 다음 명령줄 옵션이나 응용 프로그램 메뉴 옵션(사용 가능한 경우)을 사용하여 pavucontrol"참조"하려는 모든 사운드 출력을 이 수신기로 리디렉션합니다.

각 Pulseaudio 싱크에는 관련 .monitor소스가 있으므로 다른 응용 프로그램은 해당 관련 소스의 오디오를 일반적인 방법(예: 소스 선택 등 pavucontrol)으로 녹음하거나 처리할 수 있습니다.

관련 정보