مسارين كبار
رفع الفيديو، وتشغيله. واستخدام خدمات جاهزة (blob storage و CDN) قرار ذكي بدل ما تبني كل حاجة من الصفر.
الرفع
Upload
Original Storageblob
Transcoding
Transcoded Storage
CDN
بالتوازي: الـ metadata (العنوان والوصف والحالة) بتتحدث في الـ DB والكاش، وبعد التحويل بيتبعت إشعار “الفيديو جاهز” عن طريق queue.
التشغيل
الفيديو بيتشغّل من أقرب CDN بـ streaming — يعني مش لازم يتحمّل كله الأول — عن طريق بروتوكولات زي MPEG-DASH و HLS.
تحسينات
| النوع | الفكرة |
|---|---|
| Speed | قسّم الفيديو chunks وارفعها بالتوازي. لو النت فصل، كمّل من مكانك. ومراكز رفع قريبة من اليوزر |
| Safety | Pre-signed URL عشان اليوزر المصرّح له بس يرفع مباشرة على الـ storage. وحماية المحتوى بـ DRM أو تشفير أو watermark |
| Cost | الـ CDN غالي. الفيديوهات المشهورة بس على الـ CDN، والباقي من سيرفراتك. الفيديوهات القليلة المشاهدة ممكن تتحوّل عند الطلب، والمحتوى المحلي في CDN الريجن بتاعه |
| Errors | Recoverable (فشل شبكة) → retry. Non-recoverable (صيغة بايظة) → وقّف ورجّع error لليوزر |
Checklist الفيديو
🧠 اختبر نفسك
١) ليه نعمل transcoding مش نسيّب الفيديو زي ما هو؟
عشان يشتغل على شاشات وسرعات نت مختلفة، من 360p لـ 4K.
٢) إيه الـ DAG هنا؟
رسمة مهام: صوت وفيديو وثامبنيل ووترمارك يشتغلوا بالتوازي وبعدين يتجمعوا.
٣) ليه streaming مش تحميل الملف كله؟
عشان اليوزر يبتدي يتفرج فورًا، ومتدفعش نقل فيديو ممكن يقفله بعد دقيقة.
٤) فيديو اتشاف ١٠ مرات في السنة. تحطه على CDN؟
غالبًا لأ. الـ CDN غالي، فسيب القليل المشاهدة يتحول أو يتسحب عند الطلب.