Skip to Content
সিস্টেম ডিজাইনে স্বাগতম 🎉

ডিজাইন ডীপ ডাইভ

হাই-লেভেল ডিজাইনে পুরো সিস্টেমকে দুই ভাগে ভাগ করা হয়েছে: ভিডিও আপলোডিং ফ্লো এবং ভিডিও স্ট্রিমিং ফ্লো। এই অংশে আমরা এই দুইটি ফ্লো আরও বিস্তারিতভাবে উন্নত করবো এবং গুরুত্বপূর্ণ অপটিমাইজেশন ও এরর হ্যান্ডলিং মেকানিজম যোগ করবো।

ভিডিও ট্রান্সকোডিং

যখন আপনি একটি ভিডিও রেকর্ড করেন, ডিভাইস (সাধারণত ফোন বা ক্যামেরা) ভিডিওটিকে একটি নির্দিষ্ট ফরম্যাটে সংরক্ষণ করে। যদি আপনি চান ভিডিওটি অন্য ডিভাইসে সহজে চালানো যায়, তাহলে ভিডিওটিকে উপযুক্ত বিটরেট এবং ফরম্যাটে এনকোড করতে হয়।

বিটরেট হলো প্রতি সেকেন্ডে কত বিট প্রসেস হচ্ছে তার হার। উচ্চ বিটরেট সাধারণত উচ্চ মানের ভিডিও নির্দেশ করে, তবে এতে বেশি প্রসেসিং পাওয়ার এবং দ্রুত ইন্টারনেট প্রয়োজন হয়।

ভিডিও ট্রান্সকোডিং কেন গুরুত্বপূর্ণ:

  • কাঁচা ভিডিও অনেক বেশি স্টোরেজ ব্যবহার করে (১ ঘণ্টা HD ভিডিও কয়েক শত GB হতে পারে)
  • সব ডিভাইস সব ফরম্যাট সাপোর্ট করে না
  • বিভিন্ন নেটওয়ার্কে বিভিন্ন রেজোলিউশন দরকার
  • মোবাইল নেটওয়ার্ক পরিবর্তনশীল হওয়ায় adaptive quality দরকার

এনকোডিং ফরম্যাট:

Container: ভিডিও, অডিও, মেটাডাটা ধারণ করে (.mp4, .avi) Codecs: ভিডিও কমপ্রেস করে (H.264, VP9, HEVC)

DAG মডেল

ভিডিও ট্রান্সকোডিংকে ছোট ছোট টাস্কে ভাগ করতে DAG ব্যবহার করা হয়।

অরিজিনাল ভিডিও → ভিডিও / অডিও / মেটাডাটা → প্রসেসিং → ফাইনাল ভিডিও

টাস্ক:

  • Inspection
  • Encoding
  • Thumbnail generation
  • Watermark

আর্কিটেকচার

মূল কম্পোনেন্ট:

  • Preprocessor
  • DAG Scheduler
  • Resource Manager
  • Task Workers
  • Temporary Storage
  • Encoded Video

Preprocessor

  • ভিডিও GOP ভাগ করা
  • পুরানো ডিভাইস support
  • DAG তৈরি করা
  • cache হিসেবে কাজ করা

DAG Scheduler

টাস্কগুলো ভাগ করে resource manager-এ পাঠায়

Resource Manager

৩টি কিউ:

  • Task Queue
  • Worker Queue
  • Running Queue

সঠিক worker-কে সঠিক কাজ দেয়

Task Workers

  • Encoder
  • Watermark
  • Thumbnail
  • Merger

Temporary Storage

intermediate data রাখে

Speed Optimization

  • GOP splitting
  • resumable upload
  • region-based upload center

Safety Optimization

Pre-signed URL:

  1. API থেকে URL নেওয়া
  2. সরাসরি storage-এ upload

DRM / AES / Watermark ব্যবহার

Cost Optimization

  • শুধু popular ভিডিও CDN-এ
  • less popular server থেকে serve
  • on-demand encoding
  • region-based distribution

Error Handling

  • Upload → retry
  • Transcoding → retry
  • Scheduler → reschedule
  • Worker down → new worker
  • DB fail → replica/failover