예를 들어, 저는 다른 컴퓨터의 사운드 출력 스펙트럼을 표시할 수 있는 Raspberry Pi 기반 LED 시각화 벽을 디자인하고 있습니다. 논리적인 선택은 PulseAudio를 사용하여 LAN에서 오디오를 모니터링하는 것입니다.
하지만 문제가 있습니다. 한 컴퓨터에서 다른 컴퓨터로 오디오를 쉽게 재생할 수 있고 원격 마이크 입력도 녹음할 수 있으므로 기본 설정에는 문제가 없지만 어떤 이유로 오디오 믹싱을 위해 원격 모니터 소스 컴퓨터에서 재생되어야 하는 모든 내용을 녹음할 수는 없습니다. . PulseAudio 볼륨 컨트롤(pavucontrol)의 입력 목록에서 원격 모니터링 소스도 볼 수 있지만 녹음을 위해 선택하면 소리가 나지 않습니다. 로컬 모니터링 소스가 정상적으로 작동합니다. 수신기는 AC3/DTS 패스스루 대신 일반 스테레오 PCM을 사용하는 HDMI 출력입니다.
여기서 중요한 것을 놓치고 있습니까? 어떤 이유로 모니터링 소스에 대한 네트워크 접근이 차단되었나요?
또한 내 프로젝트에 주로 필요한 솔루션이 있는 경우 CLI 대안을 보게 되어 기쁩니다.
나는 모든 Google-fu를 시도했지만 성공하지 못했지만 이전에 아무도 이것을 해본 적이 없다면 놀랄 것입니다.
고쳐 쓰다:pacmd list-sources | grep name:
요청에 따라 출력을 추가했습니다. IPv6로 인해 터널 프로젝트가 두 번 나열되지만 이는 문제가 되지 않습니다.
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
name: <tunnel.mediacenter.local.alsa_input.pci-0000_00_14.2.analog-stereo>
name: <tunnel.mediacenter.local.alsa_input.pci-0000_00_14.2.analog-stereo.2>
name: <tunnel.mediacenter.local.alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor>
name: <tunnel.mediacenter.local.alsa_output.pci-0000_00_14.2.iec958-stereo.monitor>
name: <tunnel.mediacenter.local.alsa_output.pci-0000_01_00.1.hdmi-stereo.2.monitor>
name: <tunnel.mediacenter.local.alsa_output.pci-0000_00_14.2.iec958-stereo.2.monitor>
답변1
다른 사람들이 내 문제를 피할 수 있도록 PulseAudio 개발자의 도움으로 찾은 나만의 솔루션을 게시합니다.
이 문제는 PulseAudio 10.0의 Zeroconf 모듈에 있는 버그이며 조만간 수정될 것으로 나타났습니다. 지금까지 수동으로 터널을 생성하는 것 외에 유일한 솔루션은 터널 모듈을 우회하여 원격 PulseAudio 서버에서 직접 녹음하는 것이었습니다. 그러나 이는 GUI 응용 프로그램에서는 작동하지 않을 수 있습니다. 원격 모니터링 소스를 기록하는 명령 예:
PULSE_SERVER=REMOTE_HOST parecord --device=MONITOR_SOURCE > recording.wav
REMOTE_HOST 및 MONITOR_SOURCE를 소스에 적합한 값으로 바꾸십시오.현지의이름(예: 내 경우에는 alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor).
다양한 프로그래밍 언어에 대한 편리한 CLI 도구 및 바인딩이 있는 GStreamer와 유사한 직접 PulseAudio 연결을 사용할 수 있습니다. 원격 모니터링 소스를 로컬에서 재생하는 명령 예:
gst-launch-1.0 pulsesrc server=REMOTE_HOST device=MONITOR_SOURCE ! pulsesink
GStreamer는 시각화 프로젝트에 유용할 수 있는 스펙트럼 데이터도 제공할 수 있습니다. 간격이 길고 오디오 처리량이 없는 예:
gst-launch-1.0 -m pulsesrc server=REMOTE_HOST device=MONITOR_SOURCE\
! spectrum interval=400000000 bands=10 threshold=-100 ! fakesink