تحديثات الوسائط في Chrome 62

فرانسوا بوفورت
فرانسوا بوفورت

التراخيص الدائمة لنظام التشغيل Android

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

حتى الآن، كان ChromeOS هو النظام الأساسي الوحيد الذي يتيح استخدام التراخيص الدائمة. لم يعد صحيحًا بعد الآن. ويمكن الآن تشغيل المحتوى المحمي عبر EME عندما يكون الجهاز غير متصل بالإنترنت على Android أيضًا.

const config = [{
  sessionTypes: ['persistent-license'],
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'SW_SECURE_DECODE' // Widevine L3
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content while being offline when
  // license is stored locally on device and loaded later.
})
.catch(error => {
  // Persistent licenses are not supported on this platform yet.
});

يمكنك تجربة التراخيص الدائمة بنفسك من خلال مراجعة نموذج تطبيق الويب التقدّمي للوسائط واتّباع الخطوات التالية:

  1. انتقِل إلى https://biograf-155113.appspot.com/ttt/episode-2/
  2. انقر على "الإتاحة بلا إنترنت" وانتظِر إلى أن يتم تنزيل الفيديو.
  3. فعِّل وضع الطيران.
  4. انقر على الزر "تشغيل" واستمتع بالفيديو!

جهاز Wi-Fi L1 لنظام التشغيل Android

كما تعلم، يجب أن تتوافق جميع أجهزة Android مع مستوى الأمان 3 في ويدفين (Widevine L3). ومع ذلك، هناك العديد من الأجهزة التي تتوافق أيضًا مع أعلى مستويات الأمان: مستوى أمان Widevine 1 الذي تتم فيه معالجة جميع المحتوى والتشفير والتحكم داخل بيئة التنفيذ الموثوقة (TEE).

نحمل لك أخبارًا سارّة. يتوافق برنامج ويادفين L1 الآن مع متصفّح Chrome لنظام Android بحيث يمكن تشغيل الوسائط بأكثر الطرق أمانًا. يُرجى العِلم أنّها كانت متوافقة مع "نظام التشغيل Chrome"

const config = [{
  videoCapabilities: [{
    contentType: 'video/webm; codecs="vp09.00.10.08"',
    robustness: 'HW_SECURE_ALL' // Widevine L1
  }]
}];

// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
  // User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
  // Widevine L1 is not supported on this platform yet.
});

تتضمن Shaka Player، مكتبة JavaScript لتنسيقات الوسائط التكيُّفية (مثل DASH وHLS) عرضًا توضيحيًا يمكنك من خلاله تجربة Waze L1:

  1. انتقِل إلى https://shaka-player-demo.appspot.com/demo/ وانقر على "السماح" عندما يُطلب منك ذلك.
  2. اختَر "Angel One" (برنامج ترميز متعدّد اللغات أو متعدّد اللغات أو Wazevine)".
  3. أدخِل HW_SECURE_ALL في الحقل "متانة الفيديو" ضمن قسم "الضبط".
  4. انقر على الزر "تحميل" واستمتع بمشاهدة الفيديو.

تحسينات مقاطع الفيديو في الخلفية (الخطأ التربيعي المتوسط فقط)

يحاول فريق Chrome دائمًا العثور على طرق جديدة لتحسين عمر البطارية، وهذا ليس مستثنيًا من ذلك.

يوقف Chrome الآن مسارات الفيديو عند تشغيل الفيديو في الخلفية (على سبيل المثال، في علامة تبويب غير مرئية) إذا كان الفيديو يستخدم إضافات مصدر الوسائط (MSE). يمكنك الاطّلاع على مقالتنا السابقة للحصول على مزيد من المعلومات.

تخصيص النطاق القابل للبحث في أحداث البث المباشر التي تحتوي على أخطاء في محركات البحث (MSE)

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

والخبر السار هو أنّه يمكنك الآن تخصيص منطق نطاق seekable بفعالية أكبر باستخدام إضافات مصدر الوسائط (MSE) عن طريق توفير أو إزالة نطاق واحد يمكن البحث عنه يكون موحدًا مع النطاقات المخزّنة مؤقتًا الحالية. وينتج عنها نطاق واحد يمكن طلبه يناسب كليهما، عندما تكون مدة مصدر الوسائط +Infinity.

في الرمز أدناه، تم إرفاق مصدر الوسائط سابقًا بعنصر وسائط ولا يحتوي إلا على المقطع الخاص به فقط:

const mediaSource = new MediaSource();
...

mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }

mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }

// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }

هناك العديد من الحالات التي لم أتناولها أعلاه، لذا أقترح عليك تجربة العيّنة الرسمية لمعرفة مدى تفاعل النطاقات الزمنية المخزّنة مؤقتًا والقابلة للبحث مع الأحداث المختلفة للخطأ التربيعي المتوسط.

نية الشحن | Chromestatus Tracker | خطأ في Chromium

FLAC بتنسيق MP4 للخطأ التربيعي المتوسط

تمت إتاحة تنسيق ترميز الصوت FLAC بدون فقدان البيانات في تشغيل الوسائط العادي منذ إصدار Chrome 56. وتمّت إضافة تنسيق FLAC بعد فترة قصيرة إلى التوافق مع ISO-BMFF (المعروف أيضًا باسم FLAC في MP4). والآن، يتوفّر تنسيق FLAC بتنسيق MP4 في الإصدار 62 من Chrome لإضافات مصادر الوسائط (MSE).

على سبيل المثال، تمكّن مستخدمو Firefox هم من تطوير وتنفيذ تنسيق FLAC لمواصفات تغليف MP4، وجرّبت هيئة بي بي سي (BBC) ذلك على استخدام الخطأ التربيعي المتوسط. لمزيد من المعلومات، يمكنك قراءة المشاركة التي نشرتها قناة BBC حول "صوت حفلة موسيقية على محطة راديو 3".

إليك كيفية اكتشاف ما إذا كان تنسيق FLAC في MP4 متوافقًا مع الخطأ التربيعي المتوسط:

if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
  // TODO: Fetch data and feed it to a media source.
}

للاطّلاع على مثال كامل، يمكنك مراجعة النموذج الرسمي.

نية الشحن | Chromestatus Tracker | خطأ في Chromium

يتم عرض الفيديو التلقائي في وضع ملء الشاشة عند تدوير الجهاز.

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