עדכוני אודיו/וידאו ב-Chrome 70

פרנסואה בופורט
פרנסואה בופורט

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

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

במאמר שלנו אפשר לקבל מידע נוסף.

מפענח AV1

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

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

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

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

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

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

באמצעות שיטת changeType() החדשה שלו, SourceBuffer יכול לאחסן נתונים זמניים ולתמוך בהפעלה בפורמטים שונים של bytestream וברכיבי קודק. השיטה החדשה מאפשרת לשמר מדיה ששמורה במאגר נתונים זמני, את ההסרה או ההסרה של פריימים מקודדים עתידיים במודול 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.

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

כוונה לשלוח | מעקב אחר הסטטוס של Chrome | באג ב-Chromium

Opus ב-MP4 ל-MSE

קודק האודיו הפתוח Opus נתמך ברכיבי <audio> ו-<video> מאז 33 של Chrome. בהמשך נוספה תמיכה ב-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.
}

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

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

כוונה לשלוח | מעקב אחר הסטטוס של Chrome | באג ב-Chromium

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

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

הגדרת תוכן מוגן ב-Android.
איור 2. הגדרת תוכן מוגן ב-Android.