انجمنهای فارسی اوبونتو
کمک و پشتیبانی => نرمافزارهای چندرسانهای => نویسنده: Issac در 19 تیر 1401، 02:31 بظ
-
سلام
من میخوام خروجی صدای کامپیوتر رو روی وایفای به اشتراک بزارم و با بقیه دستگاهها مثلا تلفن همراه به اون گوش بدم.
توی اینترنت گشتم و فهمیدم pulseaudio (کارساز صدای یونیکسی) خودش قابلیت این کار رو به چند روش داره، یکی از روشهای اون استریم صدا به صورت RTP بود که احتمالا بدرد من میخوره، برای همین سعی کردم اونو راه بندازم.
ابتدا پرونده «/etc/pulse/default.pa» رو ویرایش کردم و خطهای زیر رو بهش اضافه کردم:
load-module module-null-sink sink_name=rtp
load-module module-rtp-send source=rtp.monitor
set-default-sink rtp
و بعد هم pulseaudio رو رستارت کردم:
$ pulseaudio -k
$ pulseaudio -D
و بعد یک آهنگ گذاشتم و بعد از اون با دستور «tcpdump -n net 224.0.0.0/8 -c 10» آدرس آیپی و پورت خروجی rtp رو پیدا کردم.
در این لحظه صدایی از کامپیوتر پخش نمیشه و انگار صدا به درستی در حال اشتراکگذاری از طریق وایفای هست ولی، توی آموزش نوشته که با mplayer یا vlc میتونید صدا رو پخش کنید، ولی من نتونستم اینکار رو کنم
مثلا آدرس آیپی و پورت خروجی rtp این هست: 224.0.0.56:46988 و من از این دستور ها استفاده میکنم:
$ vlc rtp://224.0.0.56:46988
$ mplayer rtp://224.0.0.56:46988
در vlc همینطور درحال انتظار برای وصل شدن میمونه و چیزی پخش نمیکنه و در mplayer هم خطای پایان پرونده رو میده.
اگه قبلا باهاش کار کردین بگید کجا دارم اشتباه میکنم.
سیستمم: اوبونتو ۲۲.۰۴
از این پیوندها به عنوان آموزش استفاده کردم:
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network/#rtp
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network/RTP
-
لازم نیست اون درگاه داخل فایروال باز بشه؟
البته واسه این کاری که میخوای انجام بدی یه راه کلیتر اینه که کامپیوتر رو به حافظهی متصل به شبکه (NAS) تبدیل کنی. اینطوری به تمام فایلهاش دسترسی پیدا میکنی و روی خود گوشیت میتونی پخش یا متوقف کردن موزیکها رو انجام بدی. پروتکلهای مختلفی هم هست مثل ssh (sftp) ، NFS یا samba (smb).
-
البته منظورشون انتقال صدا بود
اما اینی که شما گفتید کی دی ای کانکت راحت هست
-
برای امتحان من از همون کامپیوتر کارساز استفاده میکردم و vlc و mplayer کار نمیکردن، اما خوب من معمولا موقع آزمایش ufw رو غیرفعال میکنم پس مشکل از بسته بودن پورت نیست.
و اینکه وقتی قابلیت rtp رو به کار میندازم و یه آهنگ میزارم، وایفای یعد چند ثانیه شروع به قطع و وصل شدن میکنه.
البته این یه مشکله دیگه هست که احتمالا بعد از حل شدن مشکل فعلی باید بهش برسم.
توی مستندات pulseaudio نوشته بود که با به کار انداختن rtp کل خروجی صدا سامانه به صورت خام(غیر فشرده) بر روی لن ارسال میشن و این پهنای باند خیلی زیادی رو اشغال میکنه و احتمالا مشکل قطعی وایفای هم بخواطر همینه.
و اینکه دلیل من برای اینکار اجرای آهنگ نیست فقط؛ میخوام یه فیلم رو تو کامپیوتر پخش کنم و صداش رو با هدفون بشنوم. خوشبختانه هدفون من بلوتوث هست و اما بدبختانه کامپیوتر من درایو بلوتوث نداره. برای همین فکر کردم که صدا رو به گوشی و از اونجا به هدفون بفرستم.
اگه فقط آهنگ بود که میشد از mpd استفاده کرد که اونم نیاز به نصب نرمافزار اضافی روی گوشی داشت.
-
شاید بتونید از avahi و pipewire برای اینکار استفاده کنید. مطمئن نیستم.
-
پهنای باندی که خود پالسآدیو میگیره خیلی زیاده. پیشنهاد من، جریان صدا با استفاده از icecast است.
-
دانگل هم میتونی بگیری و اتصال بلوتوث رو به کامپیوتر اضافه کنی. قیمت زیادی ندارن اینا.
-
پهنای باندی که خود پالسآدیو میگیره خیلی زیاده. پیشنهاد من، جریان صدا با استفاده از icecast است.
برنامه icecast رو نصب کردم ولی با اون هم نتونستم خروجی صدا رو روی شبکه استریم کنم.
یعنی تونستم جریان رو راهاندازی کنم ولی وقتی از پالسآدیو به عنوان خروجی استفاده میکردم، صدایی پخش نمیشد.(یه نویز خیلی خیلی کم فقط)
و وقتی از خود آلسا(ALSA) به عنوان خروجی استفاده میکردم، هم یه صدای برفکی خیلی زیاد پخش میشد.
و اینکه این برنامه icecast انگار برای پخش جریان درجا نیست و کلی تاخیر داره(حداقل یکی، دو ثانیه) که یعنی بدرد مشکل من نمیخوره.
دانگل هم میتونی بگیری و اتصال بلوتوث رو به کامپیوتر اضافه کنی. قیمت زیادی ندارن اینا.
خوب چند هستن؟ تو فروشگاههای اینترنتی هست؟ قبلا یکی گرفته بودم، مثل فلش بود و به سوکت یواسبی وصل میشد، ولی فقط صدا رو دریافت میکرد، انگار برای ماشین بود.
و اینکه مشکل اینجاست که چرا این برنامهها کار نمیکنن، من کجا اشتباه دارم میزنم. این تایپک بیشتر حالت یادگیری برای من داره.
شاید بتونید از avahi و pipewire برای اینکار استفاده کنید. مطمئن نیستم.
اینا اصلا چی هست؟ pipewire یه جایگزین برای pulseaudio هست؟
-
pipewire جایگزین pulseaudio هست. توی دبیان که تا حدودی جایگزینی انجام شده، ولی هنوز به طور کامل جایگزین pulseaudio نشده.
avahi هم یه نرمافزار برای این هست که بدون پیکربندی خاصی، یه سرویس mDNS یا DNS-SD داخل شبکه ایجاد کرد. نمیدونم به کار شما میاد یا نه.
مطمئن نیستم اینها برای کار شما جواب بدهند یا نه. فقط گفتم شاید با اینها بشه یه کاری انجام داد.
-
خوب چند هستن؟
۵۰ تا ۱۰۰
تو فروشگاههای اینترنتی هست؟
فراوون هست.
قبلا یکی گرفته بودم، مثل فلش بود و به سوکت یواسبی وصل میشد، ولی فقط صدا رو دریافت میکرد، انگار برای ماشین بود.
بله اونا در واقع خودشون به عنوان یه هدفون بلوتوثی عمل میکنن و امکان اتصال بیسیم رو برای پخش ماشین فراهم میکنن.
چیزی که لازم داری یه جورایی برعکس این داستانه! چنین دانگلی باید به هر دستگاه بلوتوثی وصل بشه. چه هدفون و اسپیکر چه کیبورد و موس و...
و اینکه مشکل اینجاست که چرا این برنامهها کار نمیکنن، من کجا اشتباه دارم میزنم. این تایپک بیشتر حالت یادگیری برای من داره.
فکر کنم راهاندازی سرویس استریم یه کم دردسر داره تا به نتیجه برسه و درست کارشو انجام بده. غیر از اون، شما نمیخوای فقط یه فایل صوتی یا تصویری رو استریم کنی بلکه هدفت اینه که کل صدای کامپیوتر رو بفرستی روی شبکه و احتمالاً دردسر چنین کاری بیشتر هم میشه.
-
این فکر کنم به کارت بیاد
https://www.digikala.com/product/dkp-515511/%D8%AF%D8%A7%D9%86%DA%AF%D9%84-%D8%A8%D9%84%D9%88%D8%AA%D9%88%D8%AB-%D9%85%D8%AF%D9%84-csr-v40/
-
اگه قراره دانگل بولوتوث بگیرید، اول بررسی کنید که اون دانگل با کرنل لینوکس سازگار هست یا نه.
در مورد اون لینکی که بالا قرار دادند، حواستون باشه دانگلهای csr تقلبی توی بازار وجود دارند که درست کار نمیکنند. توی انجمن حداقل ۳ تا موضوع درباره همین ایجاد شده.
-
ممنون بررسی میکنم ببینم کدوم دانگل بدردم میخوره،
بعد از کلی جستوجو فهمیدم که میشه یا ffmpeg خروجی پالسآدیو رو ضبط کرد و با یه کارساز جریان(سرور استریم) اونو به اشتراک گذاشت.
به عنوان کارساز جریان از این برنامه استفاده کردم: https://github.com/aler9/rtsp-simple-server
بعد از دانلود و اجرا کردن کارساز با دستور زیر خروجی پالسآدیو رو به کارساز جریان فرستادم:
$ ffmpeg -f pulse -i default -f rtsp -vn rtsp://localhost:8554/mystream
و بعد هم در گوشی با ویالسی آدرس «rtsp://localhost:8554/mystream» رو پخش کردم.
البته صدا در گوشی با تصویر در کامپیوتر هماهنگ نیست و تقریبا یک ثانیه تاخیر داره.
توی کامپیوتر هم وقتی همین آدرس رو پخش میکنم، یه کم اختلاف داره. و اینکه انگار ویالسی در اوبونتو نمیتونه خریان rtsp رو پخش کنه. اگه وقت داشتید یه امتحان کنید ببینید در توضیعهای دیگه هم اینطوره؟