PulseAudio 가상 오디오 스트림을 사용하여 Skype를 통해 음악을 재생하려면 어떻게해야합니까?


20

A의 오디오 출력을 B의 오디오 입력으로 리디렉션하면서 특정 프로세스 (A) 및 다른 프로세스 (B)의 오디오 출력을 듣고 싶습니다. 음악과 친구를 듣고 친구가들을 수있게하면서 Skype에서 음악을 재생하는 것과 같습니다.

나는 openSUSE (Google "Pulse Audio와 함께 사용하기위한 오디오 믹서 찾기")에 대한 튜토리얼을 따르려고 시도했으며 비디오를 여러 번 보았습니다. 이전에는 JACK 만 사용해도 헤드셋 인 Logitech G35를 인식하지 못합니다.

음악을 재생할 수 있고 친구와 함께 음악을들을 수 있지만 동시에 음성을 보낼 수는 없습니다. 내 목소리 나 친구가 듣는 음악입니다. 음성을 보내려면 어떻게해야합니까?

내 설정의 일부 사진 (하나의 Null 출력 사용) :

재생 탭 : 여기에 이미지 설명을 입력하십시오

녹화 탭 : 여기에 이미지 설명을 입력하십시오

답변:


23

몇 시간의 땜질 후 나는 마침내 그것을 달성했다!

두 개의 Null 출력을 만들고 첫 번째에는 두 개의 루프백을 만들고 두 번째에는 두 개의 루프백을 만들었습니다.

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

다음으로 PulseAudio Volume Control (pavucontrol)을 열었습니다.

이것들은 내 설정입니다. 표시된 순서대로 입력했습니다. 숫자가 위 아래로 이동합니다.

  • 녹화 탭 :

    • 신청 :
      • 모든 응용 프로그램은 헤드셋 / 마이크에서 입력해야합니다.
      • 오디오를 보내려는 응용 프로그램을 제외하고 다음 중 하나로 설정해야합니다. 오디오 만 보내려는 경우 : Null 출력 모니터 1. 목록에서 첫 번째 "Null 출력"이됩니다. 오디오와 음성을 모두 보내려면 Null 출력 모니터 2입니다. 목록에서 두 번째 "Null 출력"이됩니다.
    • 가상 스트림 :
      • 널 출력으로 루프백 (1) : 헤드셋 / 마이크
      • 헤드셋 / 마이크로폰으로 루프백 : Null 출력 1. 목록에서 첫 번째 "Null 출력"이됩니다.
      • Null 출력으로 루프백 : Null 출력 1. 목록에서 첫 번째 "Null 출력"이됩니다.
  • 재생 탭 :

    • 신청 :
      • 모든 응용 프로그램은 헤드셋 / 스피커로 출력되어야합니다.
      • Skype / stream을 통해 기록 / 전송하려는 응용 프로그램을 제외하고 Null 출력 1로 설정해야합니다. 목록에서 첫 번째 "Null 출력"이됩니다.
    • 가상 스트림 :
      • 헤드셋의 루프백 : 널 출력 2. 목록에서 두 번째 "널 출력"이됩니다.
      • 널 출력 모니터 루프백 (1) : 헤드셋.
      • 널 출력 모니터의 루프백 (2) : 널 출력 2. 목록에서 두 번째 "널 출력"이됩니다.

11

"널 출력"과 혼동하지 않으려면 다음과 같이 이름을 지정하십시오.

pactl load-module module-null-sink sink_name=Virtual1 sink_properties=device.description="NAME HERE (mic+music)"
pactl load-module module-null-sink sink_name=Virtual2 sink_properties=device.description="NAME HERE (only music)"
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

1

@MikWind가 제안한 개선 사항보다 훨씬 더 나아가서 생성시 루프백 장치의 소스를 구성 할 수 있습니다.

마침내 모든 것을 설정하는 bash 스크립트를 얻었습니다.

#!/bin/bash

MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"

# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"

# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2

그것이 작동하기에 충분히 이해하기 전에 몇 시간 동안 어려움을 겪은 결과, 연구 결과 (스크립트, 문서 링크, 설명)를 git repo에 정리했습니다 .

본인이 아닌 다른 사람에게 유용 할 수 있을지 확실하지는 않지만, 본인의 연구를 수행 할 때 이런 종류의 문서를 발견했으면 좋겠다. 보세요

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.