PulseAudio에서 가상 출력을 생성하는 방법은 무엇입니까?

PulseAudio에서 가상 출력을 생성하는 방법은 무엇입니까?

특정 소스에서 오디오를 캡처하고 스트리밍하려면 PulseAudio에서 가상 출력을 생성해야 합니다.

다음 명령을 사용하여 특정 애플리케이션의 출력을 특정 출력 장치로 다시 라우팅할 수 있다는 것을 알고 있습니다 pavucontrol.

여기에 이미지 설명을 입력하세요.

하나 더 추가하고 싶어요가상"출력 장치"로 출력: 여기에 이미지 설명을 입력하세요.

가능합니까? 그렇다면 어떻게 할 수 있습니까?

답변1

싱크대를 추가할 수 있습니다.

pacmd load-module module-null-sink sink_name=MySink
pacmd update-sink-proplist MySink device.description=MySink

다음 명령을 사용하여 루프백 장치를 추가할 수 있습니다.

pacmd load-module module-loopback sink=MySink

답변2

sudo modprobe snd_aloop

PulseAudio 볼륨 컨트롤에 나타나는 ALSA에 루프백 장치를 추가합니다. 스트림을 그곳으로 리디렉션하세요!

여러 루프백 장치를 추가하는 방법을 잘 모르겠습니다.

답변3

@mxc의 답변에 약간의 추가 사항이 있습니다. 그는 module-null-sink를 더미 출력으로 사용할 수 있다고 말했습니다.

    pacmd load-module module-null-sink sink_name=MySink

그러면 애플리케이션에서 사용할 수 있는 새 싱크("가상 출력")가 생성됩니다. 생성한 각 싱크에 대해 pulseaudio는 모니터 소스도 생성하므로 MySink 출력 장치 외에도 가상 출력으로 전송되는 내용을 캡처하는 데 사용할 수 있는 MySink.monitor 입력 장치가 있습니다.

이를 통해 애플리케이션의 오디오 출력을 쉽게 캡처, 재전송 또는 녹음할 수 있습니다.

이는 Alsa가 필요하지 않은 순수 Pulseaudio 솔루션이므로 Pulseaudio의 Alsa와 다른 백엔드를 사용할 수도 있습니다.

답변4

snd_aloop내 시스템에서 작동하도록 할 수 없습니다 . 또한 사용 시 ffmpeg -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor etc.시스템 녹화가 1~2초 정도 지연됩니다. mxc의 답변은 솔루션을 찾는 데 도움이 되었지만 몇 가지 정보를 추가하고 싶습니다.

먼저 내장 오디오의 펄스 모니터를 기본값으로 설정해야 했습니다. 그런 다음 위에 나열된 명령을 실행합니다. 매번 내 프로필에서 기본값으로 설정되기를 원하므로 ~/.config/pulse/default.pa다음 줄을 만들고 추가했습니다.

.include /etc/pulse/default.pa

set-default-source alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
load-module module-null-sink sink_name=MySink
update-sink-proplist MySink device.description=MySink
load-module module-loopback sink=MySink

첫 번째 줄에는 시스템 전체의 PulseAudio 설정이 포함되어 있습니다. 그러면 마지막 네 줄이 모든 시스템 설정보다 사용자에게 우선적으로 적용됩니다. 물론, 앞에 4개의 줄이 있으면 터미널에서 실행할 수 있습니다 pacmd.

내장 오디오 장치의 펄스 모니터 이름을 얻으려면 다음을 실행하십시오.

pacmd list-sources | awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}'

관련 정보