저는 Ubuntu 16.04.1을 기반으로 하는 ElementaryOS 0.4.1 Loki를 사용하고 있습니다.
나는 사용하고 싶다OBS, 게임 플레이와 동일한 비디오 게임의 사운드를 녹음하는 화면 레코더입니다. 게임을 하는 동안 백그라운드에서 음성채팅 앱을 사용하고 싶지만 OBS가 아무것도 녹음하는 것을 원하지 않습니다.
OBS는 특정 프로그램의 오디오를 선택적으로 무시할 수는 없지만 지정된 입력 장치의 사운드를 녹음할 수는 있습니다.
더미 입력을 생성하고 pavucontrol의 출력 목록을 사용하여 음성 채팅 응용 프로그램을 해당 입력으로 라우팅하여 OBS가 이를 선택하지 못하도록 하고 싶습니다. 또한 이 입력이 헤드폰/라인 출력 포트에서 재생되기를 원합니다.
가상 오디오 케이블과 같은 소프트웨어를 사용하여 Windows에서 이 작업을 수행할 수 있다는 것을 알고 있지만 Linux에서 동일한 작업을 수행하는 방법은 모르겠습니다.
뭔가를 하기 위해 sudo modprobe snd-dummy를 사용해 보았지만 가상 장치를 헤드폰 출력으로 라우팅할 수 없습니다.
이 문제를 어떻게 처리해야 합니까?
답변1
다시 말씀드리지만, 단일 프로그램 또는 프로그램 그룹 A(게임)는 OBS와 헤드셋 모두에 사운드를 출력해야 하고, 다른 프로그램 또는 프로그램 그룹 B(음성 채팅)는 헤드셋에만 사운드를 출력해야 합니다. , 모두 Pulseaudio 등급입니다. 옳은?
을 사용하지 마십시오 snd-dummy
. ALSA 수준입니다. 대신 Pulseaudio 수준에서 "빈 수신기"를 만듭니다.
pacmd load-module module-null-sink sink_name=game_sink sink_properties=device.description=Game-Sink
pavucontrol
또는 가능한 경우 기본 OS의 사운드 구성을 사용하여 모든 그룹 A 사운드 출력을 이 수신기로 전환합니다. Pulseaudio의 각 수신기에는 해당 모니터 소스(포함된 OBS 메뉴에서 볼 수 있음)가 함께 제공되므로 게임 수신기 모니터에서 녹음하도록 OBS를 설정하세요.
이는 그룹 A의 녹음만 처리하고 헤드폰으로 출력하지는 않습니다. 이렇게 하려면 위의 모니터링 소스에서 헤드폰 수신기로의 루프백이 필요합니다.
pacmd load-module module-loopback source="game_sink.monitor" sink="your-headphone-sink"
헤드폰 수신기를 포함한 모든 수신기의 이름을 찾을 수 있습니다.
pacmd list-sinks | grep name:
이름을 인수로 사용할 때는 꺾쇠 괄호를 생략하세요.