
을 통해 실행되는 두 개의 응용 프로그램이 있습니다 padsp
. (런타임에) 첫 번째 출력이 두 번째 출력에 기록되도록 하려면 어떻게 해야 합니까?
답변1
먼저, OSS 애플리케이션을 시작할 때 쉽게 식별할 수 있도록 해당 애플리케이션과 스트림 이름을 지정합니다.
padsp -n oss_play -m oss_output your/playback/app
padsp -n oss_rec -m oss_input your/recording/app
한 앱의 출력을 다른 앱으로 파이프하기 위해 null 싱크와 관련 모니터를 사용합니다. 명령줄에서 로드합니다.
pacmd load-module module-null-sink sink_name=oss_pipe sink_properties=device.description=OSS-Pipe
이제 다음 중 하나를 사용하여 pavucontrol
출력을 설정할 수 있습니다.oss_play에게OSS-파이프, 그리고 의 입력oss_rec에게OSS-파이프 모니터GUI를 사용하여. 또는 다시 명령줄을 사용하여 스트림의 인덱스 번호를 식별할 수 있습니다.
pacmd list-sink-inputs
pacmd list-source-outputs
출력은 특히 구문 분석하기 쉽지는 않지만 스크립트를 사용하려는 경우스그레프트릭을 수행합니다("oss_play"의 경우, "oss_rec"의 경우도 유사함).
sgrep '"index: "__"\n" in ("index" .. ("index" or end) containing "application.name = \"oss_play\"")'
인덱스가 각각 3과 17이라고 가정해 보겠습니다. 마지막으로 이동합니다.
pacmd move-sink-input 3 oss_pipe
pacmd move-sink-output 17 oss_pipe.monitor
로드된 경우 module-stream-restore
(기본값), pulseaudio는 해당 애플리케이션이 활성화되어 있는 동안 해당 애플리케이션의 기본 소스/싱크를 기억하고 다시 시작할 때 자동으로 연결합니다.