ما برامج ترميز الفيديو (لا) التي تستخدمها المتصفحات لمكالمات الفيديو؟


طلب دعم تقني نموذجي من Voximplant: "لماذا تبدو مكالمة الفيديو بين اثنين من Chrome أفضل من مكالمة الفيديو بين MS Edge وتطبيق iOS الأصلي؟" عادة ما يستجيب الزملاء بشكل محايد - "لأن برامج الترميز". ولكن نحن الناس الفضوليين. حتى إذا لم أقم بتطوير Skype جديد للويب ، فإن قراءة "ما نوع المتصفح الذي يمكنه" وكيف يقسمون مقطع فيديو واحدًا إلى عدة تدفقات ذات جودة مختلفة يثري صورة العالم ويعطي موضوعًا جديدًا للمناقشة في غرفة التدخين. عرضت المقالة بنجاح مقالاً معروفًا على نطاق واسع في الدوائر الضيقة الدكتور أليكس (مع أفضل تفسير لمصطلح "محرك الوسائط" من كل ما رأيته) ، وقليلاً من تجربتنا ، وأمسيتين في "Dial" - وترجمة معدلة لـ Habr تنتظر تحت الخفض!

برامج الترميز وعرض القناة


عند الحديث عن برامج ترميز الفيديو ، غالبًا ما يناقشون توازن الجودة وعرض القناة المستخدمة. وهم يحبون تجاهل مشاكل تحميل المعالج وكيفية نقل الفيديو تقنيًا. معقول جدًا إذا كنا نناقش ترميز مقطع فيديو مسجل بالفعل.

بعد كل شيء ، إذا كان لديك فيديو منتهي ، فلا يوجد فرق كبير ، فسوف يضغط بضع دقائق أو بضع ساعات أو حتى يومين. سيتم تبرير أي تكاليف للمعالج والذاكرة ، لأن هذا استثمار لمرة واحدة ، وبعد ذلك يمكنك توزيع الفيديو على ملايين المستخدمين. يقوم أفضل برامج ترميز الفيديو بضغط الفيديو في عدة تمريرات:

  1. اجتياز رقم 1: الفيديو مقسم إلى أجزاء ذات ميزات مشتركة: يتم الحدث على نفس الخلفية ، ومشهد سريع أو بطيء ، وما شابه.
  2. تمرير رقم 2: جمع إحصائيات التشفير والمعلومات حول كيفية تغيير الإطارات بمرور الوقت (للحصول على هذه المعلومات ، تحتاج إلى عدة إطارات).
  3. تمرير رقم 3: يتم ترميز كل جزء بإعدادات برنامج الترميز الخاصة به واستخدام المعلومات التي تم الحصول عليها في الخطوة الثانية.

الجري أمر مختلف تمامًا. لن ينتظر أحد حتى انتهاء البث أو البث أو العرض قبل البدء في تشفير الفيديو. تشفير وإرسال على الفور. نعيش عليه ونوجه أن الحد الأدنى من التأخير هو الأكثر أهمية.

عند استخدام وسائط فعلية أو أقراص DVD أو Blu-ray ، يتم إصلاح حجم الفيديو ويواجه برنامج الترميز مهمة ضمان أقصى جودة لحجم معين. إذا تم توزيع الفيديو عبر الشبكة ، فإن مهمة برنامج الترميز هي إعداد هذا الملف (الملفات) من أجل الحصول على أقصى جودة بعرض قناة ثابت أو الحد الأدنى لعرض القناة بجودة ثابتة ، إذا كنت بحاجة إلى تقليل السعر. في هذه الحالة ، يمكن تجاهل التأخيرات في الشبكة وتخزينها مؤقتًا من جانب العميل لعدة ثوان من الفيديو حسب الحاجة. ولكن بالنسبة للبث ، ليست هناك حاجة خاصة لإصلاح الحجم أو الجودة ، ولدى برنامج الترميز مهمة مختلفة: لتقليل التأخير بأي تكلفة.

أخيرًا ، وضع صناع الترميز لفترة طويلة في الاعتبار حالة استخدام واحدة فقط: على جهاز الكمبيوتر الخاص بالمستخدم ، يتم تشغيل مقطع فيديو واحد فقط. والتي ، علاوة على ذلك ، يمكن فك تشفيرها دائمًا بقوة شريحة الفيديو. ثم كانت هناك منصات متنقلة. ثم WebRTC ، لضمان الحد الأدنى من الكمون الذي أراد المطورون حقًا استخدامه لخوادم وحدة إعادة التوجيه الانتقائية.

يختلف استخدام برامج الترميز لمكالمات الفيديو عن الاستخدام التقليدي عند تشغيل مقاطع الفيديو التي تجعل مقارنة برامج الترميز "وجها لوجه" لا طائل من ورائها. عند مقارنة VP8 و H.264 في فجر WebRTC ، كانت إحدى أهم المناقشات حول إعدادات برنامج الترميز: جعلها "واقعية" مع شبكات غير موثوقة أو "مثالية" للحصول على أقصى جودة للفيديو. جادل المقاتلون من أجل "مقارنة برامج الترميز النظيفة" بكل جدية بأنه يجب مقارنة برامج الترميز دون التفكير في فقدان الحزم والارتعاش ومشكلات الشبكة الأخرى.

ماذا عن برامج الترميز الآن؟


  • H.264 و VP8 متماثلان تقريبًا من حيث نسبة جودة الفيديو وعرض القناة المستخدمة ؛
  • يتطابق H.265 و VP9 أيضًا تقريبًا مع بعضهما البعض ، حيث يُظهران في المتوسط ​​نتائج أفضل بنسبة 30٪ مقارنة بالجيل السابق من برامج الترميز بسبب زيادة حمل المعالج بنسبة 20٪ ؛
  • برنامج ترميز AV1 الجديد ، وهو مزيج متفجر من VP10 ، ودالا ، وثور ، أفضل من برامج الترميز من الجيل السابق بقدر ما هو أفضل من برامج الترميز السابقة.

والآن المفاجأة: لا يهتم الجميع بهذه الاختلافات عندما يتعلق الأمر بمكالمات الفيديو ومؤتمرات الفيديو. الشيء الأكثر أهمية هو كيف يلعب برنامج الترميز في فريق مع بقية البنية التحتية. يهتم المطورون بما يسمى المصطلح الجديد لمحرك الوسائط : كيف يلتقط المتصفح أو التطبيق المحمول الفيديو ، ويقوم بترميز / فك تشفيره ، ويقسمه إلى حزم RTP ويتعامل مع مشاكل الشبكة (تذكر الفيديو من وجهة نظرنا السابقة ؟ مقالة ، لذلك تمت مقارنة الوسائط هناك المحرك - ملاحظة المترجم). إذا لم يتمكن المشفر من العمل مع انخفاض حاد في عرض القناة أو الحفاظ بشكل ثابت على 20 إطارًا في الثانية ، إذا لم يتمكن مفكك التشفير من العمل مع فقدان حزمة شبكة واحدة ، فما الفرق الذي يحدثه مدى ضغط برنامج الترميز على الفيديو؟ من السهل معرفة سبب رعاية Google لأبحاث ستانفورد حول أفضل تفاعل بين برنامج الترميز والشبكة. هذا هو مستقبل اتصالات الفيديو.

برامج الترميز ومحرك الوسائط: كل شيء معقد


مكالمات الفيديو ومؤتمرات الفيديو لها نفس المهام تقريبًا مثل الوسائط التقليدية. فقط الأولويات مختلفة تمامًا :

  1. يستغرق 30 لقطة في الثانية (سرعة الترميز).
  2. تحتاج إلى 30 إطارًا في الثانية مع التفاعل (الحد الأدنى من التأخير).

لدينا أيضًا الإنترنت بين المشاركين ، ولا يمكننا تخمين جودته إلا. عادة ما يكون الأمر أسوأ. لذلك:

  1. تحتاج إلى تجربة تغييرات صغيرة في عرض القناة عندما يأتي زائر آخر للعمل الجماعي.
  2. تحتاج على الأقل إلى تجربة تغييرات قوية بطريقة أو بأخرى في عرض القناة عندما يبدأ هذا الزائر في تنزيل السيول.
  3. يجب أن تقلق بشأن التشويش (التأخيرات العشوائية بين الحزم المستلمة ، والتي لا يمكن تأخيرها فقط ، ولكن الوصول إليها بترتيب خاطئ تم إرسالها).
  4. بحاجة للقلق بشأن فقدان الحزم.

3.1. المهام الرئيسية لمحرك الوسائط


ماذا تعني عبارة "تحتاج 30 إطارًا في الثانية"؟ هذا يعني أن محرك الوسائط لديه 33 مللي ثانية لالتقاط الفيديو من الكاميرا ، والصوت من الميكروفون ، وضغطه باستخدام برنامج ترميز ، وتقسيمه إلى حزم RTP ، وحماية البيانات المرسلة (SRTP = RTP + AES) وإرسالها عبر الشبكة (UDP أو TCP ، في الغالبية العظمى من الحالات UDP). كل هذا على الجانب المرسل. وعلى الجانب المتلقي - كرر بالترتيب العكسي. نظرًا لأن التشفير عادة ما يكون أكثر صعوبة من فك التشفير ، فإن جانب الإرسال لديه وقت أصعب.

من الناحية الفنية ، يمكن تحقيق هدف "30 إطارًا في الثانية" مع التأخير. وكلما زاد التأخير ، كان من الأسهل تحقيق الهدف: إذا قمت بالترميز على جانب الإرسال ليس عدة إطارات في وقت واحد ، ولكن عدة إطارات في وقت واحد ، فيمكنك حفظ عرض القناة بشكل كبير (برامج الترميز تضغط عدة إطارات بشكل أفضل من خلال تحليل التغييرات بينها جميعًا ، وليس فقط بين الحالية والسابقة). في الوقت نفسه ، يزيد التأخير بين استقبال دفق الفيديو من الكاميرا والإرسال عبر الشبكة بما يتناسب مع عدد الإطارات المخزنة ، بالإضافة إلى أن الضغط يصبح أبطأ بسبب الحسابات الإضافية. تستخدم العديد من المواقع هذه الحيلة ، معلنةً زمن الاستجابة بين إرسال واستقبال حزم الشبكة بين المشاركين في مكالمات الفيديو. التأخير في الترميز وفك التشفير ، فهي صامتة.

لجعل مكالمات الفيديو تبدو وكأنها اتصال شخصي ، يرفض منشئو خدمات الاتصال جميع الإعدادات وملفات تعريف برنامج الترميز التي يمكن أن تؤدي إلى تأخيرات. اتضح مثل هذا التدهور في برامج الترميز الحديثة لضغط الإطار تلو الإطار. في البداية ، أثار هذا الوضع الرفض والنقد من مطوري برامج الترميز. ولكن الزمن تغير ، والآن أضافت برامج الترميز الحديثة بالإضافة إلى الإعدادات المسبقة التقليدية "الحد الأدنى للحجم" و "أقصى جودة" مجموعة من إعدادات "الوقت الحقيقي". وفي الوقت نفسه ، "مشاركة الشاشة" هي أيضًا لمكالمات الفيديو (لها خصوصياتها - دقة كبيرة ، صورة متغيرة قليلاً ، الحاجة إلى ضغط بدون فقدان ، وإلا فسيتم تعويم النص).

3.2. محرك الوسائط والشبكات العامة


تغييرات صغيرة في عرض القناة

في السابق ، لم يكن بإمكان برامج الترميز تغيير معدل البت: في بداية الضغط ، أخذوا معدل البت الهدف كإعداد ثم أصدروا عددًا ثابتًا من وحدات الميغابايت من الفيديو في الدقيقة. في تلك الأيام الخوالي ، كانت مكالمات الفيديو ومؤتمرات الفيديو هي الكثير من الشبكات المحلية والنطاق الترددي الزائد. وفي حالة حدوث مشاكل ، تم استدعاء اسم المسؤول الذي قام بإصلاح حجز عرض القناة على tsiska.

كان أول تغيير تطوري هو تقنية "معدل البت التكيفي". يحتوي برنامج الترميز على العديد من الإعدادات التي تؤثر على معدل البت: دقة الفيديو ، انخفاض طفيف في الثانية من 30 إلى 25 إطارًا في الثانية ، تكمية إشارة الفيديو. الأخير في هذه القائمة هو "الخشونة" للانتقال بين الألوان ، والتي بالكاد يمكن ملاحظتها التغييرات الطفيفة للعين البشرية. في أغلب الأحيان ، كان "الضبط" الرئيسي لمعدل البت التكيفي هو التحديد الكمي بدقة. وأخبر محرك الوسائط برنامج الترميز عن عرض القناة.

تغييرات كبيرة في عرض القناة

تساعد آلية معدل البت التكيفية محرك الوسائط على مواصلة بث الفيديو مع تغييرات طفيفة في عرض القناة. ولكن إذا بدأ زميلك في تنزيل السيول وانخفضت القناة المتاحة مرتين أو ثلاث مرات ، فلن يساعد معدل البت التكيفي. سيساعد تقليل الدقة ومعدل الإطارات. هذا الأخير هو الأفضل ، لأن أعيننا أقل حساسية لعدد الإطارات في الثانية من دقة الفيديو. عادة ، يبدأ برنامج الترميز في تخطي إطار واحد أو إطارين ، مما يقلل من معدل الإطار من 30 إلى 15 ، أو حتى 10.

تفاصيل مهمة: سيتخطى محرك الوسائط الإطارات على جانب الإرسال. إذا كان لدينا مؤتمر فيديو للعديد من المشاركين أو البث ، ولم يكن لدى المرسل مشكلة في الشبكة ، فإن "ارتباطًا ضعيفًا" سيزيد من جودة الفيديو لجميع المشاركين. في هذه الحالة ، تساعد مجموعة من البث المتزامن (يمنح الجانب المرسل العديد من تدفقات الفيديو بجودة مختلفة في وقت واحد) و SFU (وحدة إعادة التوجيه الانتقائية ، يمنح الخادم كل مشارك مؤتمر فيديو أو بث دفق بالجودة المطلوبة). بعض برامج الترميز لديها القدرة على إنشاء العديد من تدفقات البث المتزامن ، SVCs التي تكمل بعضها البعض: يتم منح العملاء الذين لديهم أضعف قناة دفقًا من الحد الأدنى من الجودة ، ويتم منح العملاء الذين لديهم قناة أفضل نفس التدفق بالإضافة إلى "الترقية" الأولى ، ويتم منح العملاء الذين لديهم قناة أفضل بالفعل تيارين من "الترقية" وهلم جرا. تسمح لك هذه الطريقة بعدم نقل نفس البيانات إلى تدفقات متعددة وتوفر حوالي 20٪ من حركة المرور مقارنة بتشفير عدة تدفقات فيديو كاملة. كما أنه يبسط عمل الخادم - ليست هناك حاجة لتبديل التدفقات ، ويكفي عدم نقل الحزم مع "ترقية" للعملاء. ومع ذلك ، يمكن استخدام أي برنامج ترميز من أجل البث المتزامن ، فهو ميزة لمحرك الوسائط وتنظيم حزم RTP ، وليس برنامج ترميز.

فقدان التشويه والحزم

الخسائر هي الأصعب في التعامل معها. Jitter أبسط قليلاً - فقط قم بعمل مخزن مؤقت على جانب الاستلام لجمع الحزم المتأخرة والمربكة. ليس حاجزًا كبيرًا جدًا ، وإلا يمكنك كسر الوقت الفعلي وتصبح فيديو YouTube مؤقتًا.

عادة ما تتم مواجهة فقدان الحزمة مع إعادة التوجيه (RTX). إذا كان لدى المرسل اتصال جيد مع SFU ، فيمكن للخادم طلب حزمة مفقودة واستردادها واستمرار تلبية 33 مللي ثانية. إذا كان اتصال الشبكة غير موثوق به (أكثر من 0.01٪ من فقدان الحزمة) ، فإننا نحتاج إلى خوارزميات عمل خسارة معقدة ، مثل FEC .

أفضل حل حتى الآن هو استخدام برامج ترميز SVC. في هذه الحالة ، لتلقي بعض مقاطع الفيديو على الأقل ، لا يلزم سوى حزم "مرجعية" ذات دفق من الحد الأدنى من الجودة ، وتكون هذه الحزم أقل ، وبالتالي من الأسهل إعادة إرسالها ، وهذا يكفي "للبقاء" حتى مع وجود شبكة ضعيفة جدًا (أكثر من 1٪ فقد للحزمة). إذا سمح لك Simulcast + SFU بالتعامل مع هبوط القناة ، فإن Simulcast بمساعدة ترميز SVC + SFU يحل كل من عرض القناة ومشاكل الحزمة المفقودة.

ما المتصفحات التي تدعم الآن


يستخدم Firefox و Safari محرك الوسائط من Google ويحدثان libwebrtc من وقت لآخر. إنهم يفعلون ذلك بشكل أقل من Chrome ، حيث يتم إصدار نسخة جديدة منه كل 6 أسابيع. من وقت لآخر ، يبدأون في التأخر كثيرًا ، ولكن بعد ذلك يتزامنون مرة أخرى. باستثناء دعم برنامج الترميز VP8 في Safari. لا تسأل حتى.

قبل kat ، طاولة بمقارنة كاملة لمن يدعم ما ، ولكن بشكل عام ، كل شيء بسيط للغاية. عادة ما يتم تجاهل الحافة من قبل الجميع. الاختيار بين دعم نسخة الجوال من Safari وجودة الفيديو الجيدة. يدعم iOS Safari برنامج ترميز الفيديو H.264 فقط ، بينما يسمح libwebrtc فقط بالتزامن مع برامج ترميز VP8 (تدفقات مختلفة بمعدلات إطارات مختلفة) و VP9 (دعم SVC). ولكن يمكنك قراءة libwebrtc واستخدامه على iOS من خلال إنشاء تطبيق أصلي. بعد ذلك ، مع البث المتزامن ، سيكون كل شيء على ما يرام وسيتلقى المستخدمون أعلى جودة فيديو ممكنة مع اتصال إنترنت غير مستقر. بعض الأمثلة:

  • Highfive - تطبيق سطح مكتب على Electron (Chromium) مع H.264 simulcast (libwebrtc) وبرامج ترميز الصوت من Dolby ؛
  • Attlasian - حل مثير للاهتمام من قبل العميل على React Native و libwebrtc من أجل البث المتزامن ؛
  • Symphony - يتم دعم Electron لسطح المكتب و React Native للأجهزة المحمولة هناك وهناك وهناك ميزات أمان إضافية متوافقة مع ما تريده البنوك ؛
  • Tokbox - VP8 مع البث المتزامن في SDK المحمول ، استخدم الإصدار المصحح من libvpx في libwebrtc.

المستقبل


من الواضح بالفعل أنه لن يكون هناك VP8 و VP9 في Safari (على عكس Edge ، التي يدعمها VP8).

على الرغم من أن Apple دعمت إدراج H.265 في WebRTC ، إلا أن الأخبار الأخيرة وعددًا من الإشارات غير المباشرة تشير إلى AV1 على أنها "الشيء الكبير التالي". على عكس بقية المقال ، هذا رأيي الشخصي. مواصفات نقل البيانات AV1 جاهزة بالفعل ، ولكن العمل لا يزال جارياً على برنامج الترميز. الآن يظهر التنفيذ المرجعي لبرنامج التشفير 0.3 إطارًا حزينًا في الثانية. هذه ليست مشكلة عند تشغيل محتوى مضغوط مسبقًا ، ولكنها لا تنطبق بعد على اتصالات Realtime. في هذه الأثناء ، يمكنك تجربة تشغيل مقاطع فيديو AV1 في Firefox ، على الرغم من أن هذا لا يرتبط بـ RTC. التنفيذ من فريق bitmovin ، الذي طور MPEG-DASH وتلقى 30 مليون استثمار في إنشاء البنية التحتية للجيل القادم للعمل مع الفيديو.

Source: https://habr.com/ru/post/ar419949/


All Articles