스트리밍 설정을 위한 배관 싱크 연결

스트리밍 설정을 위한 배관 싱크 연결

좋은 저녁이에요!

나와 내 친구들이 Skype를 통해 어울릴 수 있도록 스트리밍 설정을 만들려고 하는데 오디오 부분에서 막히네요. 두 가지 질문이 있습니다:

  1. 마이크는 왼쪽 채널에서만 전송됩니다. 내 마이크가 두 오디오 채널 모두에 전송할 수 있기를 원합니다. 이를 위해 문서에 따르면 (https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devicesmono-sink) 마이크에 부을 위치를 만든 다음 이를 내 friend sink블로그 게시물( )로 전송해야 합니다.https://blogshit.baka.fi/2021/07/pipewire-microphone/)이 이 사용 사례를 다루는 것 같지만 media-session.d 파일이 없습니다.
  2. 일부 앱과 기타 같은 오디오 소스에 입력하고 friend sink마이크 외에 그 안에 들어 있는 내용도 듣고 싶습니다(단지 일회성 테스트로 마이크를 듣는 것일 수도 있음).

어떻게 이를 달성할 수 있나요? 설명서에 특정 이름이 있는 것처럼 보이는 구성 파일의 이름을 어떻게 지정하는지 어떻게 알 수 있나요? 내 애플리케이션에 오디오를 어떻게 입력하나요? 나 자신을 위한 별도의 싱크대가 필요합니까? 파이프라인와이어의 장치 이름을 찾는 방법은 무엇입니까?

이것이 내 pactl info결과 입니다

shaddox@pop-os:/usr/share/pipewire$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 660
Tile Size: 65472
User Name: shaddox
Host Name: pop-os
Server Name: PulseAudio (on PipeWire 0.3.79)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-Grace_Design_SDAC-00.iec958-stereo
Default Source: alsa_input.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.analog-stereo
Cookie: 3fff:d574

도움이 된다면 여기에 내 arecord -l결과 가 있습니다.

shaddox@pop-os:/usr/share/pipewire$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: Webcam [C922 Pro Stream Webcam], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 4: UR22mkII [Steinberg UR22mkII], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

이것은 내 aplay -l결과입니다.

shaddox@pop-os:/usr/share/pipewire$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SDAC [SDAC], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 3: HDMI 0 [22M35]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 4: UR22mkII [Steinberg UR22mkII], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

나는 기타 녹음과 마이싱에만 Steinberg UR22mkII를 사용하고, 듣는 곳은 SDAC입니다.

답변1

물론, 스스로 질문을 하고 나면 무엇을 찾아야 할지 알게 될 것입니다. 먼저, 작동을 위한 기반으로 두 개의 가상 장치를 생성해야 합니다. 파일 이름은 입니다 ~/.config/pipewire/pipewire.conf.d/10-coupled-skype-stream.conf. 어떻게 이런 결론을 내리게 되었나요? 진실의 근원은 거기에 있다 /usr/share/pipewire! 이제 파일 내용을 살펴보세요.

context.modules = [
    {   name = libpipewire-module-loopback
            args = {
                node.description = "Steinberg Front Left"
                capture.props = {
                    node.name = "capture.mono-micorphone"
                    audio.position = [ FL ]
                    target.object = "alsa_input.usb-Yamaha_Corporation_Steinberg_UR22mkII-00.analog-stereo"
                    stream.dont-remix = true
                    node.passive = true
                }
                playback.props = {
                    media.class = "Audio/Source"
                    node.name = "mono-microphone"
                    audio.position = [ MONO ]
                }
            }
    }
    {   name = libpipewire-module-loopback
        args = {
            audio.position = [ FL FR ]
            capture.props = {
                media.class = Audio/Sink
                node.name = skype_sink
                node.description = "Virtual Skype sink"
            }
        }
    }
]

라는 간단한 프로그램의 도움으로 장치 이름을 찾았습니다 Simple Wireplumber GUI. 첫 번째 쌍이 수행할 작업은 소스의 왼쪽 채널에서 새로운 가상 단일 채널까지 테더를 생성하는 것입니다.

구성 파일의 두 번째 부분은 sink모든 사람이 듣기를 원하는 오디오 콘텐츠를 덤프하는 장소인 a라는 항목을 만듭니다.

qpwgraph이제 또는라는 소프트웨어를 사용하여 Helvum모든 사람이 듣기를 원하는 내용을 수신기에 바인딩합니다. 왼쪽 채널은 왼쪽 채널로 이동하고 오른쪽 채널은 오른쪽 채널로 이동합니다. MONO 소스의 경우 두 개의 채널로 들어갑니다.

테스트할 만큼 충분히 들은 후에 위 절차에서 루프백 테더를 찾아서 잘라냅니다.

이것이 다른 사람들에게 도움이 되기를 바랍니다.

관련 정보