애플리케이션의 오디오 출력을 여러 재생 장치로 라우팅

애플리케이션의 오디오 출력을 여러 재생 장치로 라우팅

오디오를 녹음해야 하는 응용 프로그램이 있습니다. 이를 위해 pavucontrol녹음 소프트웨어의 오디오 입력을 오디오 출력용 모니터로 설정했습니다. 이제 내 문제는 대부분의 경우 출력을 듣고 싶지 않다는 것입니다. 이를 위해 modprobe snd-aloop. 이것은 훌륭하게 작동하지만 때로는 녹음하는 동안 라이브 오디오 스트림을 듣고 싶을 때가 있습니다. 즉, 항상 사운드 앱의 오디오 출력과 녹음 앱의 오디오 입력을 변경해야 하는데, 이는 정말 피곤한 일입니다. 또한 이렇게 하면 녹음 앱이 특정 앱뿐만 아니라 내가 듣는 모든 것을 녹음하게 됩니다.

내가 찾은이것대답합니다. 하지만 모든 장치에서 사운드 출력을 원하지 않기 때문에 이것이 제가 원하는 것이 아닙니다. 더미 루프와 내가 선택한 또 다른 출력입니다. 내 시스템은 gnome3-shell을 사용하는 아치 리눅스입니다. 나는 이것이 영구적인 것을 원하지 않기 때문에 즉시 변경할 수 있는 솔루션이 필요합니다.

보너스 질문: "실시간 청취"(애플리케이션의 오디오 스트림에 두 번째 오디오 출력 추가)를 활성화/비활성화하는 바로가기가 있었으면 좋겠으므로 CLI 명령이 좋을 것입니다.

특히 다음 오디오 경로 간에 전환할 수 있기를 원합니다.

[playback app] --> [dummy aloop] --> [monitor of aloop] --> [recording app]

그리고

[playback app] --> [dummy aloop] --> [monitor of aloop] --> [recording app]
               \-> [headphones] (simultanously)

답변1

아직도 Pulseaudio를 사용하고 계시다면 확인해 보세요.Pulseaudio의 모듈, 특히 module-loopback그리고 module-null-sink. 제 경험상 snd-aloop사용하는데 약간의 고통이 따르는데, Pulseaudio는 주로 사운드 스트리밍을 다루기 때문에 Pulseaudio를 사용하는 것이 훨씬 쉽습니다.

따라서 사용 사례가 "로드스피커를 사용하여 다른 콘텐츠를 처리하고 때때로 응용 프로그램을 듣는 동안 백그라운드에서 응용 프로그램의 출력을 녹음"하는 경우 적절하게 이름이 지정된 빈 수신기를 만들고 사용합니다 pavucontrol(Pulseaudio에서 이를 기억함). , from monitor녹음할 싱크의 소스(필요한 경우 녹음 응용 프로그램의 명령줄 옵션을 사용하여 Pulseaudio 응용 프로그램 이름을 설정하십시오.) 듣고 싶을 때 모니터링 소스와 스피커 수신기 사이에 루프백 연결을 설정하십시오. 또는 이 루프백을 영구적으로 만들고 필요에 따라 음소거/음소거 해제합니다.

명령줄에서 pacmd또는 를 사용하여 이 모든 것을 시도해 볼 수 있습니다 . pactl동일한 명령을 사용하여 바로가기를 스크립팅할 수도 있습니다. Pulseaudio 시작 스크립트를 사용하여 영구적으로 만드십시오.

그래서 뭔가

pactl load-module module-null-sink sink_name=recsink
pactl load-module module-loopback source=recsink.monitor sink=your_loadspeaker_sink

pactl list short sinks싱크 이름을 보는 데 사용됩니다 . pactl help그리고 pacmd help더 많은 명령을 받으세요.

관련 정보