استریم صوت بر روی شبکه

سلام دوستان، با اشتراک گذاری یک تجربه جدید و بروز رسانی وبلاگ در خدمتتان هستم.
فرض کنید شما در منزل یا سرکار چندین سیستم مبتنی بر لینوکس و تنها یک اسپیکر دارید و قصد دارید بتوانید به جای قطع و وصل کردن مداوم، اسپیکر را به یک سیستم در شبکه وصل و صوت را از سیستم های دیگر بر روی آن پخش کنید. برای این کار شما می توانید از PulseAudio استفاده کنید.

راه حل اول: پشتیبانی TCP

ابتدا در فایل default.pa مربوط به تنظیمات Pulseaudio بر روی سرور و کلاینت در مسیر /etc/pulse/ نسبت به فعالسازی ماژول TCP‌اقدام نمایید. برای این کار کافی است خط زیر را به قایل اضافه و یا در صورت موجود بودن با حذف # از ابتدای خط آن را از حالت توضیحات در بیاورید.

load-module module-native-protocol-tcp

برای کارکردن باید اطمینان حاصل کنید که هر دو سیستم سرور و کلاینت از یک کوکی مشترک که در مسیر ~/.config/pulse/cookie قرار دارد استفاده می کند. اینکه کوکی مربوط به سرور یا کلاینت باشد تفاوتی نمی کند مهم استفاده اشتراکی از یک کوکی می باشد.

راه حل دوم :پشتیبانی TCP با دسترسی کلاینت های ناشناس

اگر کپی کردن کوکی نتیجه خوشایندی به همراه نداشت می توان با افزودن پارامتری به کلاینت های ناشناس اجازه دسترسی به سرور را داد. برای این کار تنظیمات مربوط در قدم اول را می توان به صورت زیر تکمیل نمود.

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1

زیر شبکه (Sub Net) را مطابق نیز کلاینت هایی که می خواهید به سرور دسترسی داشته باشند را تغییر دهید.

راه حل سوم :

انتشار در بستر Zeroconf

برای اینکه سرور در بخش انتخاب خروجی تنظیمات Pulseaudio کلاینت ها نمایش داده شود لازم است که ماژول Zeroconf را بارگذاری کنید و سرویس Avahi را فعال و اجرا کنید. برای این کار بر روی هر دو سیستم بسته نرم افزاری pulseaudio-zeroconf رانصب کنید و نسبت به فعال سازی و اجرای سرویس  avahi-daemon اقدام کنید.
بر روی سیستم سرور خط  load-module module-zeroconf-publish و بر روی سیستم کلاینت خط load-module module-zeroconf-discover را برای بارگذاری ماژول به default.pa اضافه نمایید.
حال با انتخاب نوع خروجی در بخش تنظیم خروجی تنظیمات Pulseaudio تمامی صوت را به اسپیکر متصل به سرور هدایت کنید.


دیدگاهی بنویسید