প্রকল্প সম্পর্কে
polyemesis হলো একটি সেলফ-হোস্টেড রিস্ট্রিমিং সার্ভার যার প্রধান বৈশিষ্ট্য হলো প্রতিটি গন্তব্যের জন্য আলাদা মাল্টিচ্যানেল অডিও রাউটিং। একটি একক আপলোড অপারেটরের কনফিগার করা যতগুলো গন্তব্যে পাঠানো হয়, তার প্রতিটিতে এনকোডারের পাঠানো অডিও ট্র্যাকগুলো থেকে সংগৃহীত নিজস্ব স্টেরিও মিক্স প্রদান করা হয়। ভিডিও রিকোড করার পরিবর্তে সরাসরি কপি করা হয়।
এটি যে ব্যবহারের ক্ষেত্রে লক্ষ্য করে: একটি OBS সেশন যেখানে অডিও ট্র্যাকগুলো বিভক্ত, যেমন ট্র্যাক এক হলো কপিরাইটযুক্ত মিউজিকসহ ফুল মিক্স, ট্র্যাক দুই হলো ক্লিন ফিড এবং ট্র্যাক তিন হলো মাইক্রোফোন। লাইভ প্ল্যাটফর্মগুলো সাধারণত একটি স্টেরিও পেয়ার গ্রহণ করে, তাই হয় একটি একক মিক্স সবাইকে দিতে হয় অথবা একাধিক এনকোডার এবং আপলোডের প্রয়োজন হয়। polyemesis ব্যবহারকারীকে প্রতিটি গন্তব্যের জন্য বেছে নিতে দেয় যে কোন ট্র্যাকগুলো ওই গন্তব্যের স্টেরিও ফিডে যোগ হবে। রাউটিং কনফিগার করা যায় হয় ট্র্যাক-প্রতি চেকবক্সের সহজ মোডে অথবা চ্যানেল-টু-আউটপুট মিক্স ম্যাট্রিক্সের মাধ্যমে যেখানে প্রতিটি সেলের জন্য আলাদা গেইন সেট করা যায়।
ইনজেস্ট প্রক্রিয়াটি SRT মাল্টিট্র্যাক, যা ৩২টি AAC ট্র্যাক পর্যন্ত সমর্থন করে এবং একটি সিঙ্গেল পোর্টে টোকেনের মাধ্যমে পরিচালিত হয়; এছাড়া সিঙ্গেল-ট্র্যাক ফলব্যাক হিসেবে স্ট্রিম কি-র মাধ্যমে একটি পোর্টে RTMP ব্যবহৃত হয়। প্রতিটি ট্র্যাকের প্রতিটি চ্যানেলের জন্য লাইভ অডিও মিটার দেওয়া হয়েছে, যা লাইভ যাওয়ার আগে ক্লিন ট্র্যাক যাচাই করতে সাহায্য করে। ভিডিও রেন্ডিশনগুলো সেই গন্তব্যগুলোর মধ্যে শেয়ার করা যেতে পারে যাদের লোয়ার টিয়ার প্রয়োজন: একটি এনকোড রেফারেন্স-কাউন্টেড থাকে যাতে অব্যবহৃত টিয়ারের কোনো খরচ না হয়, এবং রেন্ডিশনগুলো শুধুমাত্র ভিডিও রিকোড করে, অডিও রাউটিং গন্তব্য অনুযায়ী আলাদা রাখে। রেন্ডিশনের ওভারলেতে একটি ইমেজ ওয়াটারমার্ক এবং এক লাইন বার্ন-ইন টেক্সট থাকে, যা ফ্রেমের শতাংশ হিসেবে পজিশন এবং সাইজ করা যায়।
গন্তব্যগুলো হতে পারে RTMP(S), SRT অথবা লোকাল ফাইল, যার প্রতিটি স্বাধীনভাবে শুরু করা যায় এবং এতে অটো-রিকানেক্ট ও এক্সপোনেনশিয়াল ব্যাকঅফ সুবিধা রয়েছে। YouTube, Twitch, Facebook এবং Kick-এর জন্য প্ল্যাটফর্ম সাইন-ইন সুবিধা দেওয়া হয়েছে, যেখানে API অনুমতি দিলে চ্যাট এবং মেটাডেটা পুশ করা যায়। এছাড়া এই চারটি প্ল্যাটফর্মের চ্যাট মডারেশন সুবিধা রয়েছে যার মধ্যে ডিলিট, ব্যান, টাইমআউট এবং একজন ইউজারের সব প্ল্যাটফর্মের মেসেজ একত্রিত করে দেখানোর মডারেটর কার্ড অন্তর্ভুক্ত। অন্যান্য অপারেশনাল ফিচারের মধ্যে রয়েছে স্ট্যান্ডবাই ইনজেস্টের মাধ্যমে ফেইলওভার, একটি জেনারেটেড স্লেট এবং সোর্স সিলেক্টর; Prometheus মেট্রিক্স এবং ওয়েবহুক ডেলিভারির সাথে ইন-প্রসেস অ্যালার্ট রুলস; স্ট্রিম এবং গন্তব্যের ট্রানজিশনের ওপর সাইনড লাইফসাইকেল ওয়েবহুক; Home Assistant ডিসকভারির সাথে রিটেইনড MQTT টেলিমেট্রি; এবং Let's Encrypt বা লোকাল CA-এর মাধ্যমে সেলফ-কনফিগারিং TLS। পোস্ট-প্রোডাকশন গ্রুপের মধ্যে রয়েছে রিটেনশনসহ সেগমেন্টেড মাল্টিট্র্যাক রেকর্ডিং, একটি জব কিউ, ফুল-টেক্সট সার্চসহ Whisper ট্রান্সক্রিপশন এবং একটি ক্লিপার। অনেক সেটিংস স্ট্রিম ড্রপ না করেই প্রয়োগ করা যায় এবং সেভ অ্যাকশনটি নির্দেশ করে কোন পরিবর্তনগুলো কার্যকর হয়েছে।
সফটওয়্যারটি একটি সিঙ্গেল স্ট্যাটিক বাইনারি হিসেবে আসে যার সাথে UI এমবেডেড থাকে, এতে পিওর-Go SQLite এবং কোনো cgo নেই, যার জন্য libsrt সহ FFmpeg 6.0 বা তার পরবর্তী সংস্করণ প্রয়োজন। 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.