עדכוני מדיה ב-Chrome 70

François Beaufort
François Beaufort

צפייה בסרטון באמצעות 'תמונה בתוך תמונה'

התכונה 'תמונה בתוך תמונה' (PiP) מאפשרת למשתמשים לצפות בסרטונים בחלון צף (תמיד מעל חלונות אחרים) כדי שיוכלו לעקוב אחרי מה שהם צופים בו תוך כדי אינטראקציה עם אתרים או אפליקציות אחרים. בעזרת Picture-in-Picture Web API החדש, תוכלו להפעיל את התכונה 'תמונה בתוך תמונה' בסרטונים באתר שלכם ולשלוט בה.

במאמר הזה מוסבר בהרחבה על הנושא.

ממפענח AV1

AV1 הוא קודק מדור הבא שפותח על ידי Alliance for Open Media. דחיסת הנתונים ב-AV1 יעילה יותר ב-30% בהשוואה לקידוד הווידאו המתקדם ביותר, VP9. ב-Chrome 70 מתווסף מפענח AV1 ל-Chrome Desktop מגרסה x86-64 בהתאם למפרט הרשמי של Bitstream. בשלב זה, התמיכה מוגבלת לפרופיל 0 'ראשי' ולא כוללת יכולות קידוד. קובץ הקונטיינר הנתמך הוא MP4‏ (ISO-BMFF) (במאמר קונטיינרים וקודקים מוסבר בקצרה על קובצי קונטיינר).

כדי לנסות את AV1:

  1. עוברים אל הדף של YouTube TestTube.
  2. בוחרים באפשרות 'העדפה ל-AV1 ל-SD' או 'תמיד העדפה ל-AV1' כדי לקבל את רזולוציית ה-AV1 הרצויה. שימו לב שברזולוציה גבוהה יותר, ל-AV1 יש סיכוי גבוה יותר שיהיו בעיות בביצועי ההפעלה במכשירים מסוימים.
  3. כדאי לנסות להפעיל קליפים ב-YouTube מפלייליסט ההשקה של AV1 Beta.
  4. מוודאים שהקודק הוא av01 בדף 'נתונים לגיקים'.
נתונים לגיקים: AV1 ב-YouTube
נתונים לגיקים שמציגים סרטון AV1 ב-YouTube.

תמיכה במעבר בין קודק וקונטיינרים ב-MSE

ב-Chrome מוסיפים תמיכה למעברים משופרים בין קודק ל-חוצה בייטים במהלך הפעלה של תוספים של מקורות מדיה באמצעות שיטת changeType() חדשה ב-SourceBuffer. הוא מאפשר לשנות את סוג הבייטים של המדיה שמצורפים ל-SourceBuffer מאוחר יותר.

הגרסה הנוכחית של MSE תומכת בהפעלה דינמית של מדיה. עם זאת, לצורך התאמה נדרש כל מדיה שמצורפת ל-SourceBuffer חייבת להתאים לסוג ה-MIME שסופק בשלב הראשוני של יצירת SourceBuffer באמצעות MediaSource.addSourceBuffer(type). קודיק מאותו סוג וכל פלחי אתחול שנותחו בעבר חייבים להישאר זהים לאורך כל התהליך. המשמעות היא שהאתר צריך לבצע פעולות מפורשות כדי לאשר מעבר בין קודק או בייטstream (על ידי שימוש במספר רכיבי מדיה או בטראקים של SourceBuffer ומעבר ביניהם), ולשפר את המורכבות של האפליקציה ואת זמן האחזור שמוצג למשתמשים. (מעברים כאלה מחייבים את אפליקציית האינטרנט לבצע פעולה מסונכרנת ב-thread הראשי של כלי הרינדור). זמן האחזור הזה של המעבר פוגע בחלקות של הפעלת המדיה במעברים.

בעזרת השיטה החדשה changeType(), ה-SourceBuffer יכול לאגור ב-buffer ולתמוך בהפעלה של פורמטים שונים של זרם ביטים וקודקים. השיטה החדשה הזו שומרת על מדיה שנשמרה במטמון, בניכוי פינוי או הסרה עתידיים של פריימים בקידוד MSE, ומשתמשת בלוגיקה של חיבור והטמעה במטמון באלגוריתם הקיים לעיבוד פריימים בקידוד MSE.

כך משתמשים בשיטה changeType():

const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
sourceBuffer.appendBuffer(someWebmOpusVP9Data);

// Later on...
if ('changeType' in sourceBuffer) {
  // Change source buffer type and append new data.
  sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
  sourceBuffer.appendBuffer(someMp4AacAvcData);
}

כצפוי, אם הדפדפן לא תומך בסוג שהוענק, השיטה הזו תוציא חריגה מסוג NotSupportedError.

צפו בדוגמה כדי לשחק עם אגירת נתונים חוצה-קודק וריבוי בייטים בסטרימינג והפעלה של רכיב אודיו.

Intent to Ship | Chromestatus Tracker | באג ב-Chromium

Opus ב-MP4 ל-MSE

קודק האודיו הפתוח והגמיש ביותר, Opus, נתמך ברכיבים <audio> ו-<video> מאז Chrome 33. נוספה תמיכה ב-Opus ב-ISO-BMFF (שנקראת גם Opus ב-MP4). עכשיו Opus ב-MP4 זמין ב-Chrome 70 עבור תוספים של מדיה.

כך אפשר לזהות אם Opus ב-MP4 נתמך עבור MSE:

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

אם אתם רוצים לראות דוגמה מלאה, תוכלו לעיין בדוגמה הרשמית שלנו.

בגלל מחסור בכלים להמרת Opus ל-MP4 עם ערכי חיתוך קצה ו-preskip נכונים, אם הדיוק הזה חשוב לכם, תצטרכו להשתמש ב-SourceBuffer.appendWindow{Start,End} וב-SourceBuffer.timestampOffset ב-Chrome כדי לקבל הפעלה מדויקת לדגימה.

Intent לשלוח | מעקב אחר Chromestatus | באג ב-Chromium

איך מאפשרים הפעלה של תוכן מוגן כברירת מחדל ב-Android

ב-Chrome 70 ל-Android, ערך ברירת המחדל של ההגדרה 'תוכן מוגן' באתרים ישתנה מ'לשאול קודם' ל'מותר', כדי להפחית את החיכוך שקשור להפעלת מדיה כזו. השינוי הזה אפשרי, בין היתר, בגלל השלבים הנוספים שנקטו כדי למחוק רישיונות מדיה לצד קובצי cookie ונתוני אתרים, כדי להבטיח שאתרים לא משתמשים ברישיונות מדיה כדי לעקוב אחרי משתמשים שמוחקים את נתוני הגלישה שלהם.

ALT_TEXT_HERE
הגדרת תוכן מוגן ב-Android.