عن المشروع
polyemesis هو خادم إعادة بث ذاتي الاستضافة يتميز بقدرته على توجيه الصوت متعدد القنوات لكل وجهة على حدة. يتم توزيع عملية رفع واحدة على عدد من الوجهات يحدده المشغل، وتتلقى كل وجهة مزيج ستيريو خاصاً بها يتم تجميعه من المسارات الصوتية التي أرسلها المشفر. يتم نسخ الفيديو كما هو دون إعادة ترميزه.
حالة الاستخدام التي يستهدفها هي جلسة OBS بمسارات صوتية منفصلة، حيث يكون المسار الأول مزيجاً كاملاً يتضمن موسيقى محمية بحقوق الطبع والنشر، والمسار الثاني تغذية نظيفة، والمسار الثالث للميكروفون. عادةً ما تقبل منصات البث المباشر زوج ستيريو واحداً، لذا يجب أن يخدم المزيج الواحد الجميع أو يتطلب الأمر عدة مشفرات وعمليات رفع. يتيح polyemesis للمستخدم اختيار المسارات التي يتم تجميعها في تغذية الستيريو الخاصة بكل وجهة. يتم تكوين التوجيه إما عبر وضع بسيط (مربع اختيار لكل مسار) أو كمصفوفة مزج من القناة إلى المخرج مع كسب (gain) لكل خلية.
يتم الاستيعاب عبر SRT متعدد المسارات، والذي يوصف بأنه يدعم ما يصل إلى 32 مسار AAC، ويتم توجيهه بواسطة رمز (token) على منفذ واحد، مع وجود RTMP كخيار احتياطي لمسار واحد على منفذ يتم توجيهه بمفتاح البث. تتوفر مقاييس صوتية مباشرة لكل قناة من كل مسار، تهدف إلى التحقق من نظافة المسار قبل البث المباشر. يمكن مشاركة نسخ الفيديو بين الوجهات التي تحتاج إلى مستوى أدنى: حيث يتم حساب مرجع ترميز واحد بحيث لا يكلف المستوى غير المستخدم شيئاً، وتقوم النسخ بإعادة ترميز الفيديو فقط، مع ترك توجيه الصوت لكل وجهة. تغطي التراكبات على النسخ علامة مائية صورية وسطر نص مدمج، يتم تحديد موقعه وحجمه كنسب مئوية من الإطار.
يمكن أن تكون الوجهات RTMP(S) أو SRT أو ملفاً محلياً، وكل منها قابل للتشغيل بشكل مستقل، مع ميزة إعادة الاتصال التلقائي والتراجع الأسي. تتوفر ميزة تسجيل الدخول للمنصات لكل من YouTube وTwitch وFacebook وKick، مع دفع الدردشة والبيانات الوصفية حيثما تسمح واجهة برمجة التطبيقات (API)، وإدارة الدردشة عبر المنصات الأربع بما في ذلك الحذف والحظر والمهلة الزمنية، وبطاقة مشرف تجمع رسائل المستخدم الواحد عبر المنصات. تشمل الميزات التشغيلية الأخرى تجاوز الفشل باستخدام استيعاب احتياطي، ولوحة عرض (slate) مُنشأة ومحدد للمصدر؛ ومقاييس Prometheus وقواعد تنبيه داخل العملية مع تسليم عبر webhook؛ وwebhooks دورة حياة موقعة عند انتقالات البث والوجهة؛ وبيانات MQTT عن بُعد محفوظة مع اكتشاف Home Assistant؛ وTLS ذاتي التكوين عبر Let's Encrypt أو CA محلي. تغطي مجموعة ما بعد الإنتاج التسجيل متعدد المسارات المقسم مع ميزة الاحتفاظ، وطابور وظائف، ونسخ Whisper مع بحث بنص كامل، وأداة قص (clipper). يتم تطبيق العديد من الإعدادات دون قطع البث، مع إشارة إجراء الحفظ إلى الإعدادات التي دخلت حيز التنفيذ.
يأتي البرنامج كملف ثنائي ستاتيكي واحد مع واجهة مستخدم مدمجة، وSQLite بلغة Go نقية وبدون cgo، ويتطلب FFmpeg 6.0 أو أحدث مبني مع libsrt. يرفض البرنامج البدء إذا كان إصدار FFmpeg أقدم من 6.0 ويحذر عند غياب SRT. تتوفر صورة Docker منشورة. يتطلب التثبيت Go 1.27.0+ وNode 20.19+/22.12+ وFFmpeg عند البناء من نسخة مستنسخة.
ملف README صريح بشأن القيود: المشروع في مرحلة ما قبل الإصدار مع مسؤول صيانة واحد ولا توجد وعود بالتوافق؛ RTMP متعدد المسارات ليس هو المسار التشغيلي؛ لا توجد منافذ لكل مصدر؛ يوجد مستخدم واحد بدون أدوار أو أذونات لكل وجهة؛ Instagram Live مدرج كغير مدعوم؛ وملاءمة فيديو المصدر هي مسؤولية المشغل. تختلف نضوج المنصات، حيث يوصف Linux وDocker بأنهما الأساسيان وWindows بأنه غير مثبت، بما في ذلك عيب معروف غير محلول يتعلق بقطع التسجيل عند إيقاف الخدمة. يضعه جدول المقارنة مقابل datarhei/Restreamer وrestream.io، ويذكر README أن Restreamer أكثر نضوجاً في الحالات التي لا تكون فيها هناك حاجة لصوت مختلف لكل منصة. الترخيص هو MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.