WebRTC কনফারেন্সিং-এর প্রেক্ষাপটে, ভার্চুয়াল মিডিয়া স্ট্রিম হলো এমন মিডিয়া স্ট্রিম যা একটি সিলেক্টিভ ফরওয়ার্ডিং ইউনিট (SFU) দ্বারা একাধিক অংশগ্রহণকারীর মিডিয়া একত্রিত ও বিতরণ করার জন্য তৈরি করা হয়। সরাসরি পিয়ার-টু-পিয়ার মিডিয়া স্ট্রিমের বিপরীতে, যা বড় কনফারেন্সগুলিতে সংযোগের একটি জটিল জাল তৈরি করে, ভার্চুয়াল মিডিয়া স্ট্রিম এই টপোলজিকে সরল করে তোলে। SFU প্রতিটি অংশগ্রহণকারীর কাছ থেকে স্বতন্ত্র মিডিয়া স্ট্রিম গ্রহণ করে এবং সক্রিয় বা প্রাসঙ্গিক স্ট্রিমগুলিকে বেছে বেছে অন্যান্য অংশগ্রহণকারীদের কাছে ফরওয়ার্ড করে, সেগুলিকে মাল্টিপ্লেক্সিং করে বহির্গামী ভার্চুয়াল মিডিয়া স্ট্রিমের একটি ছোট ও নির্দিষ্ট সেটে পরিণত করে।
এই পদ্ধতিটি প্রত্যেক অংশগ্রহণকারীর জন্য একই সাথে আসা স্ট্রিমের সংখ্যা কমিয়ে দেয়, ফলে প্রসেসিং এবং ব্যান্ডউইথের প্রয়োজনীয়তা হ্রাস পায়। প্রতিটি ভার্চুয়াল স্ট্রিমে একবারে একজন অংশগ্রহণকারীর মিডিয়া থাকতে পারে, যা স্পিকারের কার্যকলাপ বা ভিডিও অ্যাসাইনমেন্টের মতো বিষয়ের উপর ভিত্তি করে SFU দ্বারা গতিশীলভাবে সামঞ্জস্য করা হয়। অংশগ্রহণকারীরা এই ভার্চুয়াল স্ট্রিমগুলো গ্রহণ করেন, যার ফলে তারা অন্য প্রত্যেক অংশগ্রহণকারীর পৃথক স্ট্রিম পরিচালনা করার প্রয়োজন ছাড়াই কার্যকরভাবে কনফারেন্সের একটি সমন্বিত দৃশ্য দেখতে পান। ভার্চুয়াল মিডিয়া স্ট্রিম দ্বারা প্রদত্ত এই অ্যাবস্ট্রাকশনটি বিপুল সংখ্যক অংশগ্রহণকারীর জন্য WebRTC কনফারেন্সকে স্কেল করার ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।
অডিও গ্রহণ করার জন্য, ক্লায়েন্টকে অবশ্যই ঠিক তিনটি অডিও মিডিয়া বিবরণ প্রদান করতে হবে, যা তিনটি স্থানীয় অডিও ট্রান্সসিভার তৈরি করবে। ভিডিও গ্রহণ করার জন্য, ক্লায়েন্টকে অবশ্যই এক থেকে তিনটি ভিডিও মিডিয়া বিবরণ প্রদান করতে হবে, যা সেই সংখ্যক ভিডিও ট্রান্সসিভার স্থাপন করবে।
রিসিভার
প্রতিটি ক্লায়েন্ট-মালিকানাধীন ট্রান্সসিভারের একটি ডেডিকেটেড RtpReceiver এবং একটি ডেডিকেটেড "মিডিয়া ট্র্যাক" থাকে, যা Meet সার্ভার থেকে অডিও RTP স্ট্রিম গ্রহণ করে।
প্রতিটি ট্র্যাকের একটি অনন্য আইডি থাকে এবং এটি সেই নির্দিষ্ট মিডিয়া উৎস থেকে আরটিপি প্যাকেটের নিজস্ব স্বতন্ত্র প্রবাহ গ্রহণ করে। উদাহরণস্বরূপ, ট্র্যাক A production-1 থেকে অডিও গ্রহণ করতে পারে, যেখানে ট্র্যাক B production-2 থেকে অডিও গ্রহণ করে।
এসএসআরসি
প্রতিটি RTP প্যাকেটে একটি সিনক্রোনাইজেশন সোর্স (SSRC) হেডার ভ্যালু থাকে, যা এটিকে একটি নির্দিষ্ট ট্র্যাকের সাথে সংযুক্ত করে।
Meet Media API-এর মাধ্যমে অডিও সেশনগুলো তিনটি স্বতন্ত্র মিডিয়া স্ট্রিম ব্যবহার করে, যার প্রতিটির নিজস্ব স্থির SSRC থাকে। একবার নির্ধারিত হয়ে গেলে, সেশনটি চলাকালীন এই SSRC মানগুলো আর কখনও পরিবর্তিত হয় না।
ভার্চুয়াল স্ট্রিম
মিট মিডিয়া এপিআই ভার্চুয়াল মিডিয়া স্ট্রিম ব্যবহার করে। এগুলি সেশন জুড়ে স্থির থাকে, কিন্তু সবচেয়ে প্রাসঙ্গিক ফিডগুলি প্রতিফলিত করার জন্য প্যাকেটগুলির উৎস পরিবর্তিত হতে পারে। ভার্চুয়াল মিডিয়া স্ট্রিম অডিও এবং ভিডিওর জন্য একইভাবে কাজ করে।
আরটিপি প্যাকেট হেডারে থাকা কন্ট্রিবিউটিং সোর্স (CSRC) আরটিপি প্যাকেটগুলোর প্রকৃত উৎস শনাক্ত করে। Meet একটি কনফারেন্সে যোগদানের সময় প্রত্যেক অংশগ্রহণকারীকে তাদের নিজস্ব একটি অনন্য CSRC বরাদ্দ করে। তারা কনফারেন্স ত্যাগ না করা পর্যন্ত এই মান অপরিবর্তিত থাকে।
যেহেতু Meet Media API সেশন জুড়ে SSRC-এর সংখ্যা স্থির থাকে, তাই এখানে তিনটি সম্ভাব্য পরিস্থিতি দেওয়া হলো:
উপলব্ধ SSRC-এর চেয়ে বেশি অংশগ্রহণকারী :
Meet তিনটি SSRC-এর মাধ্যমে সবচেয়ে উচ্চস্বরের তিনজন ব্যক্তির বক্তব্য সম্প্রচার করে। যেহেতু প্রতিটি RTP স্ট্রিম তার নিজস্ব ডেডিকেটেড SSRC-তে থাকে, তাই স্ট্রিমগুলোর মধ্যে কোনো মিশ্রণ ঘটে না।
চিত্র ১. Meet তিনটি SSRC জুড়ে সবচেয়ে সরব তিনজন ব্যক্তির বক্তব্য প্রেরণ করে। কনফারেন্সের মূল স্ট্রিমগুলোর মধ্যে কোনোটি যদি আর সবচেয়ে জোরালো স্ট্রিমগুলোর একটি না থাকে, তাহলে Meet, SSRC গঠনকারী RTP প্যাকেটগুলোকে সবচেয়ে জোরালো স্ট্রিমটিতে পরিবর্তন করে দেয়।
চিত্র ২. Meet নতুন সবচেয়ে উচ্চস্বরের ব্যক্তির কাছে RTP প্যাকেটগুলো পাঠিয়ে দেয়। সক্রিয় অংশগ্রহণকারীর সংখ্যা তিনটি অডিও SSRC-এর চেয়ে কম :
এমন পরিস্থিতিতে যেখানে কনফারেন্সে স্ট্রিমের সংখ্যার চেয়ে বেশি SSRC উপলব্ধ থাকে, Meet যেকোনো উপলব্ধ অডিও প্যাকেটকে তার নিজস্ব স্বতন্ত্র SSRC-তে ম্যাপ করে। যেকোনো অব্যবহৃত SSRC তখনও প্রস্তুত ও উপলব্ধ থাকে, কিন্তু কোনো RTP প্যাকেট প্রেরণ করা হয় না।
চিত্র ৩. মিট উপলব্ধ অডিও প্যাকেটগুলোকে তার নিজস্ব অনন্য SSRC-তে ম্যাপ করে। সক্রিয় অংশগ্রহণকারীর সংখ্যা তিনটি অডিও SSRC-এর সমান :
সমান সংখ্যক অংশগ্রহণকারী এবং উপলব্ধ SSRC-এর ক্ষেত্রে, প্রত্যেক অংশগ্রহণকারীর মিডিয়া একটি নির্দিষ্ট SSRC-তে ম্যাপ করা হয়। এই নির্দিষ্ট পরিস্থিতিটি যতক্ষণ বিদ্যমান থাকে, এই ম্যাপিংগুলোও ততক্ষণ পর্যন্ত কার্যকর থাকে।
চিত্র ৪। Meet প্রতিটি অংশগ্রহণকারীর মিডিয়াকে একটি নির্দিষ্ট SSRC-এর সাথে সংযুক্ত করে।