pactl 목록의 "모니터"라는 단어가 나를 혼란스럽게 합니다.

pactl 목록의 "모니터"라는 단어가 나를 혼란스럽게 합니다.

나는 개념을 알고 있습니다: PulseAudio의 싱크와 소스, 클라이언트는 오디오를 "싱크"로 보내고 "소스"로부터 오디오를 수신할 수 있으므로 싱크는 출력(오디오는 거기로 이동)이고 소스는 입력( 오디오는 거기에서 나옵니다) 그렇다면 모니터는 무엇입니까?

다음 텍스트는 다음에서 가져온 것입니다.pactl list

Sink #11
    State: SUSPENDED
    Name: alsa_output.pci-0000_09_00.6.analog-stereo
    Description: Family 17h (Models 10h-1fh) HD Audio Controller Analog Stereo
    Driver: module-alsa-card.c
    Sample Specification: s16le 2ch 48000Hz
    Channel Map: front-left,front-right
    Owner Module: 7
    Mute: no
    Volume: front-left: 50463 /  77% / -6.81 dB,   front-right: 50463 /  77% / -6.81 dB
            balance 0.00
    Base Volume: 65536 / 100% / 0.00 dB
    Monitor Source: alsa_output.pci-0000_09_00.6.analog-stereo.monitor
    Latency: 0 usec, configured 0 usec
    Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
    Properties:
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "ALC662 rev3 Analog"
        alsa.id = "ALC662 rev3 Analog"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "0"
        alsa.card = "1"
        alsa.card_name = "HD-Audio Generic"
        alsa.long_card_name = "HD-Audio Generic at 0xfccc0000 irq 60"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:09:00.6"
        sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:09:00.6/sound/card1"
        device.bus = "pci"
        device.vendor.id = "1022"
        device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
        device.product.id = "15e3"
        device.product.name = "Family 17h (Models 10h-1fh) HD Audio Controller"
        device.string = "front:1"
        device.buffering.buffer_size = "352768"
        device.buffering.fragment_size = "176384"
        device.access_mode = "mmap+timer"
        device.profile.name = "analog-stereo"
        device.profile.description = "Analog Stereo"
        device.description = "Family 17h (Models 10h-1fh) HD Audio Controller Analog Stereo"
        alsa.mixer_name = "Realtek ALC662 rev3"
        alsa.components = "HDA:10ec0662,10ec0000,00100300"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    Ports:
        analog-output-lineout: Line Out (priority: 9000, available)
        analog-output-headphones: Headphones (priority: 9900, not available)
    Active Port: analog-output-lineout
    Formats:
        pcm

Source #15
    State: SUSPENDED
    Name: alsa_output.pci-0000_09_00.6.analog-stereo.monitor
    Description: Monitor of Family 17h (Models 10h-1fh) HD Audio Controller Analog Stereo
    Driver: module-alsa-card.c
    Sample Specification: s16le 2ch 48000Hz
    Channel Map: front-left,front-right
    Owner Module: 7
    Mute: no
    Volume: front-left: 27537 /  42% / -22.59 dB,   front-right: 27537 /  42% / -22.59 dB
            balance 0.00
    Base Volume: 65536 / 100% / 0.00 dB
    Monitor of Sink: alsa_output.pci-0000_09_00.6.analog-stereo
    Latency: 0 usec, configured 0 usec
    Flags: DECIBEL_VOLUME LATENCY 
    Properties:
        device.description = "Monitor of Family 17h (Models 10h-1fh) HD Audio Controller Analog Stereo"
        device.class = "monitor"
        alsa.card = "1"
        alsa.card_name = "HD-Audio Generic"
        alsa.long_card_name = "HD-Audio Generic at 0xfccc0000 irq 60"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:09:00.6"
        sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:09:00.6/sound/card1"
        device.bus = "pci"
        device.vendor.id = "1022"
        device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
        device.product.id = "15e3"
        device.product.name = "Family 17h (Models 10h-1fh) HD Audio Controller"
        device.string = "1"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    Formats:
        pcm

Monitor Source: alsa_output.pci-0000_09_00.6.analog-stereo.monitorFlume 11에서 획득했습니다. 소스 #15에서 가져왔습니다
.Monitor of Sink: alsa_output.pci-0000_09_00.6.analog-stereo

1. 왜 싱크 Monitor of Sink가 아닌 소스인가 ? 2. as라고 쓸 수 있고 , 그 반대로 도 쓸 수 있나요 ?Monitor Source
Monitor SourceMonitor of SourceMonitor of SinkMonitor Sink

답변1

모니터는 각각 특정 "상위" 수신기/소스와 연결된 "하위" 소스/수신기입니다.

모니터링 소스상위 신호의 복사본을 기록하는 데 사용할 수 있습니다.싱크대출력 중.

모니터링 수신기상위 항목에 의해 기록되는 신호의 복사본을 출력하는 데 사용할 수 있습니다.원천.

귀하의 싱크 번호 11은 입니다 alsa_output.pci-0000_09_00.6.analog-stereo. 설명에는 다음 줄이 있습니다.

Monitor Source: alsa_output.pci-0000_09_00.6.analog-stereo.monitor

실제로는 "이 싱크에는 이름과 연결된 모니터 소스가 있습니다."라고 표시됩니다.

그러면 모니터 소스는 alsa_output.pci-0000_09_00.6.analog-stereo.monitor소스 #15로서 자체 정보 블록을 갖게 됩니다. 이 정보 블록에는 해당 라인이 있습니다.

Monitor of Sink: alsa_output.pci-0000_09_00.6.analog-stereo

이는 "상위" 수신 장치를 가리킵니다. 소스 장치가 오디오 싱크임을 나타냅니다.감시 장치.

답변2

요컨대감시 장치수신기의 출력을 다른 장치로 보내는 데 사용할 수 있는 소스입니다.

Audacious에서 ABBA를 플레이하고 있다고 가정해 보겠습니다. Audacious는 아날로그 스테레오 출력 수신기에서 읽는 샘플을 생성합니다. (출처는 그렇지 않습니다.보내다샘플을 생성하고 수신기 입력에서 수신기를 읽는 데이터 자체입니다. )

수신기가 샘플을 읽을 때마다 해당 샘플을감시 장치.

이제 Audacity를 실행하면 모니터 미터(마이크 옆 미터)를 클릭하세요. 그럼 열어 pavucontrol다음에서 캡처됨당신은 선택할 수 있습니다XXX 모니터.

완료되면 Audacity의 오디오 측정기가 활동을 표시하기 시작하는 것을 볼 수 있습니다.

그러므로 그것은샘플 읽기~에서감시 장치. 이러한 샘플은 수신기 입력에서 읽은 데이터를 통해 수신기에 의해 기록되며 헤드폰의 출력에도 기록됩니다.


                IN
>----------------------------------------->
             ,-- [source output]
  [source] --|
      |      '-- [source output]
      |                 |
      |                 |
   sample             sample
  producer           recorder
 (mic, ...)       (audacity, ...)
>------------------------------------------>
                OUT
>------------------------------------------>
 [sink input A] -.
                 +--> [sink] --> output + monitor
 [sink input B] -'      |           |
       |                |      the output device (speaker, ...)
       |                |              
 produces samples    consumes and mixes samples
    (mpv, ...)              (clocking, latency)
>------------------------------------------>

~에서PulseAudio의 기본 원리

각 싱크는 "<sink_name>.monitor"라는 싱크 모니터를 자동으로 가져옵니다. 수신기가 수신기 입력에서 블록을 읽을 때마다 해당 블록을 수신기 모니터에도 씁니다.

따라서 pulseaudio가 수신기 입력에서 읽을 때마다;

alsa_output.pci-0000_09_00.6.analog-stereo

또한 해당 데이터를 모니터 수신기에 기록합니다.

alsa_output.pci-0000_09_00.6.analog-stereo.monitor

관련 정보