עדכוני אודיו/וידאו ב-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 למחשב x86-64 על סמך מפרט הנתונים הרשמי של הזרם הביט. בשלב זה, התמיכה מוגבלת לפרופיל 0 'ראשי' ולא כוללת יכולות קידוד. פורמט הקונטיינר הנתמך הוא MP4‏ (ISO-BMFF) (במאמר מווידאו גולמי לווידאו מוכן לאינטרנט מוסבר בקצרה על קונטיינרים).

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

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

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

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

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

בעזרת השיטה החדשה 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 | מעקב אחר סטטוס Chrome | באג ב-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 עם ערכי חיתוך קצה וערכים של דילוג מראש נכונים, אם הדיוק הזה חשוב לכם, תצטרכו להשתמש ב-SourceBuffer.appendWindow{Start,End} וב-SourceBuffer.timestampOffset ב-Chrome כדי לקבל הפעלה מדויקת לדגימה.

Intent to Ship | מעקב אחר סטטוס Chrome | באג ב-Chromium

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

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

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