pipewire-pulse.conf(5) File Formats Manual pipewire-pulse.conf(5)

pipewire-pulse.conf - فایل پیکربندی سرور PulseAudio در پایپ‌ویر

فایل پیکربندی سرور PulseAudio پایپ‌ویر (PipeWire)

$XDG_CONFIG_HOME/pipewire/pipewire-pulse.conf

/etc/pipewire/pipewire-pulse.conf

/usr/share/pipewire/pipewire-pulse.conf

/usr/share/pipewire/pipewire-pulse.conf.d/

/etc/pipewire/pipewire-pulse.conf.d/

$XDG_CONFIG_HOME/pipewire/pipewire-pulse.conf.d/

پیکربندی دیمن سازگار با PulseAudio در پایپ‌ویر.

قالب فایل پیکربندی و منطق جستجوی آن دقیقاً مشابه pipewire.conf(5) است.

فایل‌های پیکربندی تکمیلی (Drop-in) به صورت pipewire-pulse.conf.d/*.conf می‌توانند استفاده شوند و استفاده از آن‌ها توصیه می‌شود. به pipewire.conf(5) مراجعه کنید.

stream.properties

دیکشنری (Dictionary). این ویژگی‌ها، مشخصات جریان سرور PulseAudio در پایپ‌ویر را پیکربندی می‌کنند.

stream.rules

دیکشنری (Dictionary). این ویژگی‌ها، قواعد مربوط به جریان‌ها در سرور PulseAudio پایپ‌ویر را پیکربندی می‌کنند.

pulse.properties

دیکشنری (Dictionary). این ویژگی‌ها، مشخصات عمومی سرور PulseAudio در پایپ‌ویر را پیکربندی می‌کنند.

pulse.cmd

آرایه‌ای از دیکشنری‌ها. مجموعه‌ای از دستورات که باید در زمان راه‌اندازی اجرا شوند.

pulse.rules

آرایه‌ای از دیکشنری‌ها. مجموعه‌ای از قواعد تطبیق و اقداماتی که باید بر روی کلاینت‌ها اعمال شوند.

برای توضیحات تفصیلی به libpipewire-module-protocol-pulse(7) مراجعه فرمایید.

علاوه بر این، بخش‌های پیکربندی بافتار پایپ‌ویر نیز می‌توانند مشخص شوند؛ به pipewire.conf(5) مراجعه کنید.

بخش stream.properties شامل ویژگی‌هایی برای جریان‌های ایجادشده توسط سرور pipewire-pulse است.

گزینه‌های در دسترس در pipewire-client.conf(5) stream.properties شرح داده شده‌اند.

برخی از این ویژگی‌ها به مدخل‌های پیکربندی PulseAudio در /etc/pulse/default.pa به شکل زیر نگاشت می‌شوند:

PulseAudio                      PipeWire                یادداشت‌ها
remixing-use-all-sink-channels  channelmix.upmix
remixing-produce-lfe            channelmix.lfe-cutoff  تنظیم روی مقدار > 0 جهت فعال‌سازی
remixing-consume-lfe            channelmix.mix-lfe
lfe-crossover-freq              channelmix.lfe-cutoff

# ~./config/pipewire/pipewire-pulse.conf.d/custom.conf
stream.properties = {
    #node.latency = 1024/48000
    #node.autoconnect = true
    #resample.disable = false
    #resample.quality = 4
    #monitor.channel-volumes = false
    #channelmix.disable = false
    #channelmix.min-volume = 0.0
    #channelmix.max-volume = 10.0
    #channelmix.normalize = false
    #channelmix.mix-lfe = true
    #channelmix.upmix = true
    #channelmix.upmix-method = psd  # none, simple
    #channelmix.lfe-cutoff = 150.0
    #channelmix.fc-cutoff = 12000.0
    #channelmix.rear-delay = 12.0
    #channelmix.stereo-widen = 0.0
    #channelmix.hilbert-taps = 0
    #dither.noise = 0
    #dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
    #debug.wav-path = ""
}

بخش stream.rules دقیقاً همانند pipewire-client.conf(5) stream.rules عمل می‌کند.

برای گزینه‌های موجود در بخش pulse.properties، به libpipewire-module-protocol-pulse(7) مراجعه فرمایید.

برای هر کلاینت، می‌توان مجموعه‌ای از قواعد را در بخش pulse.rules نوشت تا رفتارهای خاص کلاینت را پیکربندی کرده یا پیکربندی جریان ویژه PulseAudio را تحمیل کند.

نمای کلی این بخش به شکل زیر است و از ساختار قواعد تطبیق، به pipewire(1) پیروی می‌کند.

برای گزینه‌های موجود به libpipewire-module-protocol-pulse(7) مراجعه فرمایید.

# ~./config/pipewire/pipewire-pulse.conf.d/custom.conf
pulse.rules = [
    {
        # skype does not want to use devices that don't have an S16 sample format.
        matches = [
             { application.process.binary = "teams" }
             { application.process.binary = "teams-insiders" }
             { application.process.binary = "skypeforlinux" }
        ]
        actions = { quirks = [ force-s16-info ] }
    }
    {
        # speech dispatcher asks for too small latency and then underruns.
        matches = [ { application.name = "~speech-dispatcher*" } ]
        actions = {
            update-props = {
                pulse.min.req          = 1024/48000     # 21ms
                pulse.min.quantum      = 1024/48000     # 21ms
            }
        }
    }
]

به عنوان بخشی از فرآیند راه‌اندازی سرور می‌توانید با استفاده از بخش pulse.cmd در pipewire-pulse.conf دستورات تکمیلی را اجرا کنید.

# ~./config/pipewire/pipewire-pulse.conf.d/custom.conf
pulse.cmd = [
    { cmd = "load-module" args = "module-always-sink" flags = [ ] }
    { cmd = "load-module" args = "module-switch-on-connect" }
    { cmd = "load-module" args = "module-gsettings" flags = [ "nofail" ] }
]
...

دستورات بیشتر را همچنین می‌توان از طریق بخش context.exec، به pipewire.conf(5) اجرا کرد.

دستورات پشتیبانی‌شده:

load-module

بارگذاری ماژول مشخص‌شده PulseAudio هنگام راه‌اندازی، درست مانند استفاده از pactl(1) برای بارگذاری ماژول.

برای مشاهده محتوای بخش pulse.modules، به pipewire-pulse-modules(7) مراجعه کنید.

توسعه‌دهندگان پایپ‌ویر https://gitlab.freedesktop.org/pipewire/pipewire/issues؛ پایپ‌ویر از https://pipewire.org در دسترس است

libpipewire-module-protocol-pulse(7), pipewire.conf(5), pipewire-pulse(1), pipewire-pulse-modules(7)

1.6.8 PipeWire