- يمكن لمطوّري الويب الآن توقّع ما إذا كان التشغيل سيكون سلسًا وفعّالاً من حيث استهلاك الطاقة.
- يتيح Chrome الآن تشغيل الفيديوهات بنطاق عالي الديناميكية على نظام التشغيل Windows 10.
- يمكن الآن تشغيل المحتوى بلا اتصال بالإنترنت باستخدام تراخيص دائمة على نظامَي التشغيل Windows وMac.
- أصبحت القيمة التلقائية لميزة "التحميل المُسبَق" لعنصرَي
<video>
و<audio>
هي"metadata"
. - يتم الآن عرض خطأ عندما يكون معدّل تشغيل الوسائط غير متوافق.
- يوقف Chrome الآن مؤقتًا جميع الوسائط التي تتضمّن فيديو فقط.
- لم يعُد الصوت مكتومًا عند استخدام playbackRate بقيمة كبيرة.
Media Capabilities - Decoding Info API
في الوقت الحالي، يعتمد مطوّرو الويب على isTypeSupported()
أو canPlayType()
لتحديد ما إذا كان بإمكانهم فك ترميز بعض الوسائط أم لا. ولكن السؤال الحقيقي هو:
"ما مدى جودة الأداء على هذا الجهاز؟"
وهذا هو أحد الأمور التي تريد إمكانات الوسائط المقترَحة حلّها: واجهة برمجة تطبيقات لاستعلام المتصفّح عن إمكانات فك ترميز الجهاز استنادًا إلى معلومات مثل برامج الترميز والملف الشخصي ودرجة الدقة ومعدّلات نقل البيانات وما إلى ذلك. ستوفّر هذه الواجهة معلومات مثل ما إذا كان يجب أن يكون التشغيل سلسًا و موفّرًا للطاقة استنادًا إلى إحصاءات التشغيل السابقة التي سجّلها المتصفّح.
في ما يلي آلية عمل واجهة برمجة التطبيقات Decoding Info API في الوقت الحالي. يمكنك الاطّلاع على العيّنة الرسمية.
const mediaConfig = {
type: 'media-source', // or 'file'
audio: {
contentType: 'audio/webm; codecs=opus',
channels: '2', // audio channels used by the track
bitrate: 132266, // number of bits used to encode a second of audio
samplerate: 48000 // number of samples of audio carried per second
},
video: {
contentType: 'video/webm; codecs="vp09.00.10.08"',
width: 1920,
height: 1080,
bitrate: 2646242, // number of bits used to encode a second of video
framerate: '25' // number of frames used in one second
}
};
navigator.mediaCapabilities.decodingInfo(mediaConfig).then(result => {
console.log('This configuration is' +
(result.supported ? '' : ' NOT') + ' supported,' +
(result.smooth ? '' : ' NOT') + ' smooth and' +
(result.powerEfficient ? '' : ' NOT') + ' power efficient.');
});
يمكنك تجربة إعدادات مختلفة للوسائط إلى أن تعثر على أفضل إعداد
(smooth
وpowerEfficient
) واستخدامه لتشغيل بث الوسائط المناسب
. يعتمد الإصدار الحالي من Chrome على معلومات التشغيل التي تم تسجيلها سابقًا. ويحدِّد smooth
على أنّه صحيح عندما تكون النسبة المئوية
للّقطات التي تم إسقاطها أقل من %10، في حين يكون powerEfficient
صحيحًا عندما يفكّك الجهاز أكثر
من %50 من اللقطات. تُعدّ الإطارات الصغيرة دائمًا
منخفضة استهلاك الطاقة.
أنصح باستخدام مقتطف مشابه للمقتطف أدناه لرصد مدى التوفّر والرجوع إلى التنفيذ الحالي للمتصفّحات التي لا تتوافق مع واجهة برمجة التطبيقات هذه.
function isMediaConfigSupported(mediaConfig) {
const promise = new Promise((resolve, reject) => {
if (!('mediaCapabilities' in navigator)) {
return reject('MediaCapabilities API not available');
}
if (!('decodingInfo' in navigator.mediaCapabilities)) {
return reject('Decoding Info not available');
}
return resolve(navigator.mediaCapabilities.decodingInfo(mediaConfig));
});
return promise.catch(_ => {
let fallbackResult = {
supported: false,
smooth: false, // always false
powerEfficient: false // always false
};
if ('video' in mediaConfig) {
fallbackResult.supported = MediaSource.isTypeSupported(mediaConfig.video.contentType);
if (!fallbackResult.supported) {
return fallbackResult;
}
}
if ('audio' in mediaConfig) {
fallbackResult.supported = MediaSource.isTypeSupported(mediaConfig.audio.contentType);
}
return fallbackResult;
});
}
متاحة لمرحلة التجربة والتقييم
للحصول على أكبر قدر ممكن من الملاحظات من المطوّرين الذين يستخدمون واجهة برمجة التطبيقات Decoding Info API (جزء من ميزات الوسائط) في المجال، أضفنا هذه الميزة في Chrome 64 سابقًا كإصدار تجريبي.
وانتهت الفترة التجريبية بنجاح في نيسان (أبريل) 2018.
Intent to Experiment | Intent to Ship | Chromestatus Tracker | Chromium Bug
تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) على نظام التشغيل Windows 10
تتميّز الفيديوهات ذات النطاق العالي الديناميكية (HDR) بمستوى تباين أعلى، وتُظهر ظلالاً دقيقة وتفاصيل بارزة ويتم إبرازها بوضوح أكثر من أي وقت مضى. علاوة على ذلك يعني دعم مجموعة الألوان الواسعة أن الألوان أكثر حيوية.
بما أنّ إصدار VP9 Profile 2 يعمل الآن على 10 بت في "تحديث صانع المحتوى الذي يعمل بنظام التشغيل Windows 10" على Chrome، سيدعم Chrome أيضًا تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) عندما يكون نظام التشغيل Windows 10 في وضع النطاق العالي الديناميكية. ملاحظة فنية: يتيح الإصدار 64 من Chrome الآن استخدام ملف scRGB الذي يتيح بدوره تشغيل الوسائط بتقنية HDR.
يمكنك تجربة هذه الميزة من خلال مشاهدة الفيديو The World in HDR بدقة 4K (ULTRA HD) على YouTube والتحقّق من إمكانية تشغيل الفيديو بنطاق HDR في إعدادات الجودة في مشغّل YouTube.
كل ما تحتاجه الآن هو تحديث Fall Creators Update لنظام التشغيل Windows 10، وبطاقة رسومات وشاشة متوافقةَين مع تقنية HDR (مثل بطاقة سلسلة NVIDIA 10 أو تلفزيون أو شاشة LG HDR)، وتفعيل وضع HDR في إعدادات شاشة Windows.
يمكن لمطوّري البرامج على الويب اكتشاف سلسلة الألوان التقريبية المتوافقة مع جهاز الناتج باستخدام أحدث استعلام عن الوسائط color-gamut وعدد وحدات البت المستخدَمة لعرض لون على الشاشة باستخدام screen.colorDepth. في ما يلي طريقة واحدة لاستخدام هذه العناصر لرصد ما إذا كان تنسيق VP9 HDR متوافقًا على سبيل المثال:
// Detect if display is in HDR mode and if browser supports VP9 HDR.
function canPlayVp9Hdr() {
// TODO: Adjust VP9 codec string based on your video encoding properties.
return (window.matchMedia('(color-gamut: p3)').matches &&
screen.colorDepth >= 48 &&
MediaSource.isTypeSupported('video/webm; codecs="vp09.02.10.10.01.09.16.09.01"'))
}
يجب تعديل سلسلة برنامج ترميز VP9 مع الملف الشخصي 2 التي تم تمريرها إلى isTypeSupported()
في المثال أعلاه، وذلك استنادًا إلى خصائص ترميز الفيديو.
يُرجى العِلم أنّه لا يمكن حتى الآن تحديد ألوان HDR في CSS ولوحة الرسم والصور والمحتوى المحمي. يعمل فريق Chrome على حلّ هذه المشكلة. يُرجى متابعة أخبارنا باستمرار.
التراخيص الثابتة لنظامَي التشغيل Windows وMac
يعني الترخيص الدائم في إضافات الوسائط المشفَّرة (EME) أنّه يمكن تثبيت الترخيص على الجهاز كي تتمكّن التطبيقات من تحميل الترخيص إلى الذاكرة بدون إرسال طلب ترخيص آخر إلى الخادم. هذه هي الطريقة التي تتوفّر بها ميزة التشغيل بلا إنترنت في EME.
حتى الآن، كان نظاما التشغيل ChromeOS وAndroid هما النظامان الأساسيان الوحيدان اللذان يتيحان استخدام رخص المحتوى الدائمة. لم يعُد ذلك صحيحًا. أصبح بإمكانك الآن تشغيل المحتوى المحمي من خلال إدارة الحقوق الرقمية للمحتوى المحمي (EME) عندما يكون الجهاز غير متصل بالإنترنت في الإصدار 64 من Chrome على نظامَي التشغيل Windows وMac أيضًا.
const config = [{
sessionTypes: ['persistent-license'],
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'SW_SECURE_DECODE' // Widevine L3
}]
}];
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.
});
يمكنك تجربة التراخيص الثابتة بنفسك من خلال الاطّلاع على نموذج تطبيق الوسائط المتوافق مع الأجهزة الجوّالة (PWA) واتّباع الخطوات التالية:
- انتقِل إلى https://biograf-155113.appspot.com/ttt/episode-2/.
- انقر على "إتاحة بلا إنترنت" وانتظر تنزيل الفيديو.
- أوقِف الاتصال بالإنترنت.
- انقر على زر "تشغيل" واستمتع بالمشاهدة.
الإعداد التلقائي لميزة "تحميل الوسائط مسبقًا" هو "البيانات الوصفية"
بما يتوافق مع عمليات التنفيذ في المتصفّحات الأخرى، يضبط متصفّح Chrome لأجهزة الكمبيوتر المكتبي الآن القيمة التلقائية
لميزة "التحميل المُسبَق" لعنصرَي <video>
و<audio>
على "metadata"
بهدف
تقليل معدل نقل البيانات واستخدام الموارد. بدءًا من الإصدار 64 من Chrome، لا ينطبق هذا السلوك الجديد إلا
على الحالات التي لم يتم فيها ضبط قيمة التحميل المُسبَق. يُرجى العِلم أنّه يتم تجاهل التلميح المرتبط بسمة التحميل المُسبَق عند إرفاق MediaSource
بعنصر الوسائط لأنّ الموقع الإلكتروني يعالج التحميل المُسبَق الخاص به.
بعبارة أخرى، أصبحت قيمة التحميل المُسبَق لـ <video>
هي "metadata"
، بينما تبقى قيمة التحميل المُسبَق لـ <video
preload="auto">
هي "auto"
. يمكنك تجربة النموذج الرسمي.
Intent to Ship | Chromestatus Tracker | Chromium Bug
يتسبب playbackRate غير المتوافق في حدوث استثناء
بعد تغيير في مواصفات HTML، عند ضبط playbackRate
لعناصر الوسائط على قيمة غير متوافقة مع Chrome (مثل قيمة سلبية)، يتم طرح
"NotSupportedError"
DOMException
في الإصدار 63 من Chrome.
const audio = document.querySelector('audio');
try {
audio.playbackRate = -1;
} catch(error) {
console.log(error.message); // Failed to set the playbackRate property
}
يُرجى العِلم أنّ عملية التنفيذ الحالية في Chrome تُثير هذا الاستثناء عندما يكون
playbackRate
سالبًا أو أقل من 0.0625 أو أكثر من 16. يمكنك تجربة
العينة الرسمية
للاطّلاع على هذه الأعمال.
Intent to Ship | Chromestatus Tracker | Chromium Bug
تحسينات على مقاطع الفيديو في الخلفية
يسعى فريق Chrome دائمًا إلى إيجاد طرق جديدة لتحسين عمر البطارية، ولم يكن Chrome 63 استثناءً.
إذا لم يتضمّن الفيديو أي مقاطع صوتية، سيتم تلقائيًا إيقاف الفيديو مؤقتًا عند تشغيله في الخلفية (على سبيل المثال، في علامة تبويب غير مرئية) في Chrome لأجهزة الكمبيوتر المكتبي (Windows وMac وLinux وChromeOS). هذا إجراء متّبع بعد تغيير مشابه كان ينطبق فقط على فيديوهات MSE في الإصدار 62 من Chrome.
إزالة كتم الصوت لمعدلات التشغيل العالية جدًا
قبل الإصدار 64 من Chrome، كان يتم كتم الصوت عندما كانت قيمة playbackRate
أقل من 0.5 أو أعلى من 4
بسبب انخفاض الجودة بشكل كبير. بما أنّ Chrome قد اعتمد أسلوبًا يُعرف باسم "تداخل إضافة التشابه في شكل الموجة" (WSOLA) لتقليل الجودة، لم يعد عليك كتم الصوت. وهذا يعني أنّه يمكنك الآن تشغيل الصوت ببطء شديد وبسرعة شديدة.