يتوفّر VP9 الآن في WebRTC.

قبل عامين، فعّل Chrome الدعم لبرنامج ترميز VP9. وفي Chrome 48 على أجهزة الكمبيوتر المكتبي وأجهزة Android، سيكون VP9 برنامج ترميز فيديو اختياريًا لمكالمات الفيديو باستخدام تقنية WebRTC.

يستخدم VP9 برنامج الترميز الأساسي نفسه المستخدَم في برامج الترميز السابقة، إلا أنّ فريق WebM أضاف تحسينات إلى برنامج VP9 بهدف تحسين جودة كل بايت من الفيديو. على سبيل المثال، يعطي برنامج الترميز الأولوية لأبرز ميزات الصور، ويستخدم برنامج الترميز الآن تحويلات غير متماثلة للمساعدة في إبقاء المشاهد الأكثر صعوبة على مظهر واضحة وخالية من العوائق.

باستخدام برنامج VP9، ستتمكن اتصالات الإنترنت التي يمكنها حاليًا عرض محتوى بدقة 720p بدون فقدان الحزمة أو تأخيرها من إجراء مكالمة فيديو بدقة 1080p وبمعدل نقل بيانات واحد. كما يمكن لبرنامج VP9 تقليل استخدام البيانات للمستخدمين الذين يعانون من ضعف الاتصال أو خطط بيانات باهظة الثمن، الأمر الذي يتطلب في أفضل الحالات% 40 فقط من معدل نقل بيانات VP8.

يمكنك معرفة أوجه التشابه بين مكالمات VP8 وVP9 من خلال لقطة الشاشة أدناه للتسجيلات التي أجريناها باستخدام إعدادات برنامج ترميز WebRTC، مع العِلم أنّه قد تم خفض معدّل نقل البيانات بنسبة% 30:

لقطة شاشة لفيديو يعرض مكالمات VP8 وVP9 WebRTC جنبًا إلى جنب

يتم التفاوض على برنامج ترميز مكالمة WebRTC، بالإضافة إلى إعدادات الوسائط الأخرى مثل معدل نقل البيانات، بين المتصل والمتصل من خلال تبادل رسائل البيانات الوصفية لبروتوكول وصف الجلسة (SDP) التي تصف إمكانات الوسائط للعميل.

تُعرف عملية المصافحة هذه، أي تبادل الإمكانيات الإعلامية، باسم "العرض/الإجابة". على سبيل المثال، قد يرسل المتصل عرضًا (رسالة بروتوكول وصف الجلسة (SDP)) يوضّح تفضيله لبرنامج VP9، ويحدّده كخيار احتياطي VP8. إذا أكّدت الإجابة أنّه يمكن للمتصل معالجة برنامج VP9، يمكن لمكالمة الفيديو مواصلة استخدام برنامج VP9. إذا ردَّ المتصل بإجابة تفيد بأنّه لا يمكنه استخدام سوى VP8، سيتمّ مواصلة المكالمة باستخدام برنامج VP8.

للاطّلاع على ذلك، يمكنك الاطّلاع على رمز تطبيق محادثة الفيديو WebRTC الأساسي appr.tc.

في ملف appcontroller.js، يتم ضبط VP9 كبرنامج الترميز المفضّل ما لم يتم تحديد معلَمة vsc أو vrc في عنوان URL:

AppController.prototype.loadUrlParams_ = function() {
    // ...
    var DEFAULT_VIDEO_CODEC = 'VP9';
    // …
    this.loadingParams_.videoSendCodec = urlParams['vsc'];
    // ...
    this.loadingParams_.videoRecvCodec = urlParams['vrc'] || DEFAULT_VIDEO_CODEC;
}

في ملف sdputils.js، يتم بعد ذلك استخدام قيمة برنامج الترميز المخصّص (إذا تم تحديدها) للبيانات الوصفية المتعلقة ببروتوكول وصف الجلسة (SDP):

function maybePreferVideoSendCodec(sdp, params) {
    return maybePreferCodec(sdp, 'video', 'send', params.videoSendCodec);
}

function maybePreferVideoReceiveCodec(sdp, params) {
    return maybePreferCodec(sdp, 'video', 'receive', params.videoRecvCodec);
}

تعيِّن الدالة maybePreferCodec() المستخدمة هنا قيم برنامج الترميز المطلوب في نص البيانات الوصفية لـ SDP. يكون بروتوكول وصف الجلسة (SDP) مطولاً وليس مصمَّمًا ليناسب المستخدمين العاديين، ولكن يمكنك الاطّلاع على بروتوكول وصف الجلسة (SDP) الذي يستخدمه appr.tc من وحدة تحكّم أدوات مطوّري البرامج بعد إجراء طلب. الجزء المهمّ بالنسبة إلى برامج الترميز هو السطر m:

{
    "sdp": "v=0\r\no=- 9188830394109743399 2 IN IP4 127.0.0.1\r\ns … m=video ...",
    "type": "offer"
}

عند استخدام appr.tc مع إعداداته التلقائية في إصدار حديث من Chrome، سيظهر لك أنّ برنامج الترميز VP9 هو أوّل برنامج ترميز مُدرج في سطر m SDP، متبوعًا ببرنامج VP8 الذي يمكن لمتصفّح Chrome استخدامه أيضًا. وفي حال ضبط برنامج الترميز VP8 باعتباره برنامج الترميز المفضّل (من خلال مَعلمات عناوين URL في appr.tc مثلاً)، سيتم إدراج VP8 أولاً بدلاً من ذلك.

التعرف على المزيد

  • مشروع WebM: موارد VP9
  • webrtc.org: الصفحة الرئيسية لمشروع WebRTC
  • g.co/webrtc: روابط تؤدي إلى موارد WebRTC الأخرى
  • webrtc.github.io/samples: نماذج WebRTC المباشرة
  • test.webrtc.org: أدوات اختبار مفتوحة المصدر للأجهزة والشبكات وإطار عمل الإبلاغ عن الأخطاء