![مدونة نيتفليكس التقنية](https://i0.wp.com/miro.medium.com/v2/resize:fill:48:48/1*ty4NvNrGg4ReETxqU2N3Og.png?resize=24%2C24&ssl=1)
ليوي جو، أنوش مورثي، لي-هينج تشين، فينيسيوس كارفاليو، أديتيا مافلانكار، أجاتا أوبالاش، أديثيا براكاش، كايل سوانسون، جيسيكا توينيبوا، سوبو فينكاتراف، ليشان تشو
هذه هي المدونة الأولى في سلسلة متعددة الأجزاء حول كيفية قيام Netflix بإعادة بناء مسار معالجة الفيديو الخاص بها باستخدام الخدمات الصغيرة، حتى نتمكن من الحفاظ على وتيرة الابتكار السريعة لدينا والتحسين المستمر لنظام تدفق الأعضاء وعمليات الاستوديو. تركز هذه المدونة التمهيدية على نظرة عامة على رحلتنا. ستوفر المدونات المستقبلية معلومات أعمق حول كل خدمة، ومشاركة الأفكار والدروس المستفادة من هذه العملية.
بدأ تشغيل خط معالجة الفيديو الخاص بـ Netflix مع إطلاق خدمة البث المباشر الخاصة بنا في عام 2007. ومنذ ذلك الحين، شهد خط معالجة الفيديو تحسينات كبيرة وتوسعات واسعة النطاق:
- بدءًا من النطاق الديناميكي القياسي (SDR) في Standard-Definitions، قمنا بتوسيع خط التشفير إلى 4K والنطاق الديناميكي العالي (HDR) مما أتاح دعم عروضنا المتميزة.
- لقد انتقلنا من التشفير الخطي المركزي إلى التشفير المعتمد على القطع الموزعة. أدى هذا التحول في البنية إلى تقليل زمن وصول المعالجة بشكل كبير وزيادة مرونة النظام.
- بالابتعاد عن استخدام المثيلات المخصصة التي كانت مقيدة بالكمية، قمنا بالاستفادة من الحوض الداخلي لـ Netflix الذي تم إنشاؤه بسبب التوسع التلقائي للخدمات الصغيرة، مما أدى إلى تحسينات كبيرة في مرونة الحساب بالإضافة إلى كفاءة استخدام الموارد.
- لقد طرحنا ابتكارات التشفير مثل تحسينات كل عنوان وكل لقطة، مما أدى إلى تحسين كبير في جودة التجربة (QoE) لأعضاء Netflix.
- من خلال التكامل مع أنظمة محتوى الاستوديو، قمنا بتمكين خط الأنابيب من الاستفادة من البيانات التعريفية الغنية من الجانب الإبداعي وإنشاء تجارب أكثر جاذبية للأعضاء مثل رواية القصص التفاعلية.
- لقد قمنا بتوسيع دعم خط الأنابيب لخدمة حالات استخدام الاستوديو/تطوير المحتوى لدينا، والتي كانت لها متطلبات مختلفة لزمن الاستجابة والمرونة مقارنة بحالة استخدام البث التقليدية.
لقد عززت تجربتنا على مدار العقد ونصف العقد الماضي اقتناعنا بأن خط معالجة الفيديو الفعال والمرن الذي يسمح لنا بابتكار ودعم خدمة البث لدينا، بالإضافة إلى شركائنا في الاستوديو، يعد أمرًا بالغ الأهمية لاستمرار نجاح Netflix . ولتحقيق هذه الغاية، أمضى فريق تشفير الفيديو والصور في تقنيات التشفير (ET) السنوات القليلة الماضية في إعادة بناء خط أنابيب معالجة الفيديو على منصة الحوسبة المعتمدة على الخدمات الصغيرة من الجيل التالي Cosmos.
إعادة تحميل
بدءًا من عام 2014، قمنا بتطوير وتشغيل خط أنابيب معالجة الفيديو على منصة الجيل الثالث Reloaded الخاصة بنا. تم تصميم Reloaded بشكل جيد، مما يوفر استقرارًا جيدًا وقابلية للتوسع ومستوى معقولًا من المرونة. لقد كان بمثابة الأساس للعديد من ابتكارات التشفير التي طورها فريقنا.
عندما تم تصميم Reloaded، ركزنا على حالة استخدام واحدة: تحويل ملفات الوسائط عالية الجودة (المعروفة أيضًا باسم الميزانين) المستلمة من الاستوديوهات إلى أصول مضغوطة لبث Netflix. تم إنشاء Reloaded كنظام متجانس واحد، حيث عمل المطورون من فرق الوسائط المختلفة في ET وفريق شركاء النظام الأساسي الخاص بنا Content Infrastructure and Solutions (CIS)¹ على نفس قاعدة التعليمات البرمجية، وبناء نظام واحد يتعامل مع جميع أصول الوسائط. على مر السنين، توسع النظام لدعم العديد من حالات الاستخدام الجديدة. أدى هذا إلى زيادة كبيرة في تعقيد النظام، وبدأت تظهر القيود المفروضة على Reloaded:
- وظيفة مقترنة: تم إعادة التحميل من عدد من الوحدات العاملة ووحدة التنسيق. يتطلب إعداد وحدة معاد تحميل جديدة وتكاملها مع التنسيق قدرًا كبيرًا من الجهد، مما أدى إلى التحيز نحو التعزيز بدلاً من الإنشاء عند تطوير وظائف جديدة. على سبيل المثال، في Reloaded، تم تنفيذ حساب جودة الفيديو داخل وحدة تشفير الفيديو. مع هذا التنفيذ، كان من الصعب للغاية إعادة حساب جودة الفيديو دون إعادة ترميزه.
- هيكل متجانسة: نظرًا لأن الوحدات المعاد تحميلها غالبًا ما كانت موجودة في نفس المستودع، فقد كان من السهل التغاضي عن قواعد عزل التعليمات البرمجية وكان هناك قدر كبير من إعادة الاستخدام غير المقصود للتعليمات البرمجية عبر ما كان ينبغي أن يكون حدودًا قوية. أدت إعادة الاستخدام هذه إلى إنشاء اقتران محكم وتقليل سرعة التطوير. لقد أجبرنا الاقتران الوثيق بين الوحدات على نشر جميع الوحدات معًا.
- دورات الافراج الطويلة: يعني النشر المشترك أن هناك خوفًا متزايدًا من انقطاع الإنتاج غير المقصود حيث قد يكون تصحيح الأخطاء والتراجع صعبًا بالنسبة لعملية نشر بهذا الحجم. أدى هذا إلى اقتراب “قطار التحرير”. كل أسبوعين، يتم أخذ “لقطة” لجميع الوحدات، وترقيتها لتكون “نسخة مرشحة”. ثم خضع مرشح الإصدار هذا لاختبارات شاملة حاولت تغطية أكبر مساحة ممكنة من السطح. استغرقت مرحلة الاختبار هذه حوالي أسبوعين. وبالتالي، اعتمادًا على وقت دمج تغيير التعليمات البرمجية، قد يستغرق الأمر ما بين أسبوعين وأربعة أسابيع للوصول إلى مرحلة الإنتاج.
مع تقدم الوقت ونمو الوظائف، انخفض معدل مساهمات الميزات الجديدة في Reloaded. تم التخلي عن العديد من الأفكار الواعدة بسبب العمل الضخم اللازم للتغلب على القيود المعمارية. إن النظام الأساسي الذي خدمنا جيدًا في السابق أصبح الآن عائقًا أمام التطوير.
الكون
واستجابة لذلك، بدأ فريق CIS وET في عام 2018 في تطوير منصة الجيل التالي، Cosmos. بالإضافة إلى قابلية التوسع والاستقرار اللذين يتمتع بهما المطورون بالفعل في Reloaded، كان Cosmos يهدف إلى زيادة مرونة النظام وسرعة تطوير الميزات بشكل كبير. ولتحقيق ذلك، تم تطوير Cosmos كمنصة حوسبة للخدمات الصغيرة التي تعتمد على سير العمل وتتمحور حول الوسائط.
توفر بنية الخدمات الصغيرة فصلًا قويًا بين الخدمات. يعمل دعم سير العمل لكل خدمة صغيرة على تخفيف عبء تنفيذ منطق سير عمل الوسائط المعقد. أخيرًا، تسمح التجريدات ذات الصلة لمطوري خوارزميات الوسائط بالتركيز على معالجة إشارات الفيديو والصوت بدلاً من الاهتمام بالبنية التحتية. يمكن العثور على قائمة شاملة بالمزايا التي تقدمها Cosmos في المدونة المرتبطة.
حدود الخدمة
في بنية الخدمات الصغيرة، يتكون النظام من عدد من الخدمات الدقيقة، حيث تركز كل خدمة على وظيفة واحدة. لذا فإن أول شيء (وربما الأهم) هو تحديد الحدود وتحديد الخدمات.
في مسارنا، بينما تنتقل أصول الوسائط من خلال الإنشاء إلى الاستيعاب إلى التسليم، فإنها تمر بعدد من خطوات المعالجة مثل التحليلات والتحويلات. قمنا بتحليل خطوات المعالجة هذه لتحديد “الحدود” وقمنا بتجميعها في نطاقات مختلفة، والتي أصبحت بدورها اللبنات الأساسية للخدمات الصغيرة التي صممناها.
على سبيل المثال، في Reloaded، تتضمن وحدة ترميز الفيديو 5 خطوات:
1. قم بتقسيم فيديو الإدخال إلى أجزاء صغيرة
2. قم بتشفير كل قطعة بشكل مستقل
3. احسب نقاط الجودة (VMAF) لكل قطعة
4. قم بتجميع كافة الأجزاء المشفرة في فيديو واحد مشفر
5. مجموع درجات الجودة من جميع القطع
من منظور النظام، يعد الفيديو المشفر المُجمَّع مصدر قلق أساسي بينما توجد عمليات القطع الداخلية وترميز القطع المنفصلة من أجل تلبية متطلبات معينة لزمن الاستجابة والمرونة. علاوة على ذلك، كما تمت الإشارة إليه أعلاه، يوفر حساب جودة الفيديو وظيفة منفصلة تمامًا مقارنة بخدمة التشفير.
وهكذا، في Cosmos، أنشأنا خدمتين صغيرتين مستقلتين: خدمة تشفير الفيديو (VES) وخدمة جودة الفيديو (VQS)، وكل منهما تؤدي وظيفة واضحة ومنفصلة. كتفاصيل التنفيذ، تم استخراج التشفير المقسم والتجميع بعيدًا في VES.
خدمات الفيديو
تم تطبيق النهج الموضح أعلاه على بقية مسار معالجة الفيديو لتحديد الوظائف وبالتالي حدود الخدمة، مما يؤدي إلى إنشاء خدمات الفيديو التالية².
- خدمة فحص الفيديو (VIS): تأخذ هذه الخدمة الميزانين كمدخل وتقوم بإجراء عمليات فحص مختلفة. فهو يستخرج البيانات التعريفية من طبقات مختلفة من الميزانين للخدمات النهائية. بالإضافة إلى ذلك، تقوم خدمة الفحص بوضع علامة على المشكلات إذا تمت ملاحظة بيانات تعريف غير صالحة أو غير متوقعة وتوفر تعليقات قابلة للتنفيذ إلى الفريق الأساسي.
- خدمة تحليل التعقيد (CAS): تعتمد وصفة التشفير المثالية بشكل كبير على المحتوى. تأخذ هذه الخدمة الميزانين كمدخل وتقوم بإجراء التحليل لفهم مدى تعقيد المحتوى. وهي تستدعي خدمة تشفير الفيديو للتشفير المسبق وخدمة جودة الفيديو لتقييم الجودة. يتم حفظ النتائج في قاعدة بيانات حتى يمكن إعادة استخدامها.
- خدمة توليد السلم (LGS): تنشئ هذه الخدمة سلمًا كاملاً لمعدل البت لعائلة تشفير معينة (H.264، AV1، وما إلى ذلك). يقوم بجلب بيانات التعقيد من CAS ويقوم بتشغيل خوارزمية التحسين لإنشاء وصفات التشفير. يغطي CAS وLGS الكثير من الابتكارات التي قدمناها سابقًا في مدوناتنا التقنية (لكل عنوان، وترميز الهاتف المحمول، لكل لقطة، وترميز 4K المحسّن، وما إلى ذلك). من خلال دمج إنشاء السلم في خدمة صغيرة منفصلة (LGS)، نقوم بفصل خوارزميات تحسين السلم عن إنشاء وإدارة بيانات تحليل التعقيد (الموجودة في CAS). ونتوقع أن يمنحنا هذا حرية أكبر للتجريب ومعدلًا أسرع للابتكار.
- خدمة تشفير الفيديو (VES): تأخذ هذه الخدمة طابقًا نصفيًا ووصفة تشفير وتقوم بإنشاء فيديو مشفر. تتضمن الوصفة تنسيق التشفير المطلوب وخصائص الإخراج، مثل الدقة ومعدل البت وما إلى ذلك. توفر الخدمة أيضًا خيارات تسمح بضبط زمن الوصول والإنتاجية وما إلى ذلك، اعتمادًا على حالة الاستخدام.
- خدمة التحقق من صحة الفيديو (VVS): تأخذ هذه الخدمة مقطع فيديو مشفرًا وقائمة من التوقعات حول التشفير. تتضمن هذه التوقعات السمات المحددة في وصفة التشفير بالإضافة إلى متطلبات التوافق من مواصفات برنامج الترميز. يقوم VVS بتحليل الفيديو المشفر ومقارنة النتائج بالتوقعات المشار إليها. يتم وضع علامة على أي تناقض في الاستجابة لتنبيه المتصل.
- خدمة جودة الفيديو (VQS): تأخذ هذه الخدمة الميزانين والفيديو المشفر كمدخلات، وتحسب نقاط الجودة (VMAF) للفيديو المشفر.
تنسيق الخدمة
توفر كل خدمة فيديو وظيفة مخصصة وتعمل معًا لإنشاء أصول الفيديو المطلوبة. حاليًا، حالتا الاستخدام الرئيسيتان لخط أنابيب فيديو Netflix هما إنتاج الأصول لبث الأعضاء وعمليات الاستوديو. لكل حالة استخدام، قمنا بإنشاء منسق سير عمل مخصص بحيث يمكن تخصيص تنسيق الخدمة لتلبية احتياجات العمل المقابلة على أفضل وجه.
بالنسبة لحالة استخدام البث، يتم نشر مقاطع الفيديو التي تم إنشاؤها على شبكة توصيل المحتوى (CDN) الخاصة بنا ليتمكن أعضاء Netflix من استهلاكها. يمكن بسهولة مشاهدة مقاطع الفيديو هذه ملايين المرات. يستخدم Streaming Workflow Orchestrator جميع خدمات الفيديو تقريبًا لإنشاء تدفقات لتجربة أعضاء لا تشوبها شائبة. إنه يستفيد من VIS لاكتشاف ورفض الميزانيات غير المتوافقة أو منخفضة الجودة، ويستدعي LGS لتشفير الوصفة الأمثل، وترميز الفيديو باستخدام VES، ويستدعي VQS لقياس الجودة حيث يتم تغذية بيانات الجودة بشكل أكبر إلى خط أنابيب بيانات Netflix لأغراض التحليلات والمراقبة. . بالإضافة إلى خدمات الفيديو، يستخدم Streaming Workflow Orchestrator الخدمات الصوتية والنصية الموقوتة لإنشاء أصول صوتية ونصية، وخدمات التعبئة والتغليف من أجل “احتواء” الأصول للبث.
بالنسبة لحالة استخدام الاستوديو، بعض الأمثلة على أصول الفيديو هي المقاطع التسويقية والوكلاء التحريريين للإنتاج اليومي. عادةً ما تكون الطلبات الواردة من جانب الاستوديو حساسة لزمن الوصول. على سبيل المثال، قد ينتظر أحد أعضاء فريق الإنتاج مراجعة الفيديو حتى يتمكن من تحديد خطة التصوير لليوم التالي. ولهذا السبب، يعمل Studio Workflow Orchestrator على تحسين الأداء السريع والتركيز على خدمات معالجة الوسائط الأساسية. في هذا الوقت، يستدعي Studio Workflow Orchestrator VIS لاستخراج البيانات التعريفية للأصول المستوعبة ويستدعي VES بوصفات محددة مسبقًا. بالمقارنة مع تدفق الأعضاء، فإن عمليات الاستوديو لها متطلبات مختلفة وفريدة من نوعها لمعالجة الفيديو. ولذلك، فإن Studio Workflow Orchestrator هو المستخدم الحصري لبعض ميزات التشفير مثل العلامات المائية الجنائية وحرق النص/الرمز الزمني.