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