WebRTC & Video Streaming
আধুনিক ইন্টারনেটে ভিডিও কলিং এবং হাই-কোয়ালিটি ভিডিও স্ট্রিমিংয়ের জন্য বিশেষ কিছু টেকনোলজি এবং প্রোটোকল ব্যবহার করা হয়।
1. WebRTC (Web Real-Time Communication)
WebRTC হলো একটি ওপেন সোর্স প্রজেক্ট যা ব্রাউজার এবং মোবাইল অ্যাপকে সরাসরি একে অপরের সাথে তথ্য আদান-প্রদান (P2P - Peer to Peer) করার সুবিধা দেয়।
মূল বৈশিষ্ট্য:
- P2P Communication: ডেটা কোনো সেন্ট্রাল সার্ভার ছাড়াই সরাসরি এক ইউজার থেকে অন্য ইউজারের কাছে যায় (কিছু বিশেষ ক্ষেত্র ছাড়া)।
- Low Latency: এটি UDP প্রোটোকলের ওপর ভিত্তি করে চলে, তাই ল্যাটেন্সি অনেক কম। ভিডিও কলের জন্য এটি অপরিহার্য।
- Audio/Video & Data: এটি শুধুমাত্র ভিডিও নয়, অডিও এবং যেকোনো ধরনের বাইনারি ডেটা দ্রুত পাঠাতে পারে।
কিভাবে কানেক্ট হয়? (Signaling & NAT)
ডাইরেক্ট কানেক্ট হওয়া কঠিন কারণ অনেকের আইপি পাবলিক থাকে না। তাই:
- Signaling: ইউজাররা একে অপরের মেটাডেটা শেয়ার করার জন্য একটি ছোট সার্ভার ব্যবহার করে।
- STUN/TURN Servers: ফায়ারওয়াল বা নেটওয়ার্ক সমস্যা থাকলে এই সার্ভারগুলো কানেকশনটি সফল করতে সাহায্য করে।
উদাহরণ: Google Meet, Zoom (Web version), Discord (Voice/Video).
2. Video Streaming (HLS & DASH)
ভিডিও স্ট্রিমিং (যেমন: Netflix, YouTube) সরাসরি ফাইল ডাউনলোড নয়। এখানে ভিডিওকে ছোট ছোট টুকরো (Chunks) করে পাঠানো হয়।
প্রধান প্রোটোকলসমূহ:
- HLS (HTTP Live Streaming): এটি অ্যাপল (Apple) দ্বারা তৈরি। এক একটি ভিডিও ফাইলকে ৫-১০ সেকেন্ডের ছোট ছোট
.tsফাইলে ভাগ করে পাঠানো হয়। এটি প্রায় সব ডিভাইসে সাপোর্ট করে। - DASH (Dynamic Adaptive Streaming over HTTP): এটি একটি ইন্ডাস্ট্রি স্ট্যান্ডার্ড। এটি নেটওয়ার্কের স্পিড বুঝে ভিডিও কোয়ালিটি অটোমেটিক অ্যাডজাস্ট করতে পারে।
স্ট্রিমিং কিভাবে কাজ করে?
- Transcoding: মূল ভিডিওটিকে বিভিন্ন রেজোলিউশনে (720p, 1080p, 4k) কনভার্ট করা।
- Packaging: ভিডিওগুলোকে ছোট চাঙ্ক এবং একটি মেনিফেস্ট ফাইল (Manifest File) এ সাজানো।
- CDN: সারা বিশ্বের ইউজারের কাছে দ্রুত পৌঁছানোর জন্য এজ সার্ভারে ক্যাশ করা।
WebRTC বনাম Video Streaming
| বৈশিষ্ট্য | WebRTC | Video Streaming (HLS/DASH) |
|---|---|---|
| ল্যাটেন্সি | সাব-সেকেন্ড (খুবই কম) | ৩-৩০ সেকেন্ড |
| কমিউনিকেশন | দ্বিমুখী (Bidirectional) | একমুখী (One-way) |
| আর্কিটেকচার | P2P / Peer to Peer | Client-Server / CDN based |
| ব্যবহার | ভিডিও কল, গেমিং | মুভি দেখা, ইউটিউব |
NOTE
ভিডিও স্ট্রিমিংয়ে কোয়ালিটি ধরে রাখা এবং ব্যান্ডউইথ সেভ করাই মূল লক্ষ্য, কিন্তু ভিডিও কলে ল্যাটেন্সি বা বিলম্ব কমানোই প্রধান চ্যালেঞ্জ।