פורמט SDP של תוכנית מאוחדת – תוכנית מעבר

Google מתכננת להעביר את ההטמעה של WebRTC של Chrome פורמט ה-SDP הנוכחי (שנקרא 'תוכנית ב') לפורמט תואם לתקנים ("תוכנית מאוחדת", טיוטה-ietf-rtcweb-jsep) במהלך הרבעונים הקרובים.

התוכנית כוללת 5 שלבים ותכונת API זמנית אחת.

מי יושפע מכך

אנשים שמשתמשים בכמה טראקים של אודיו או בכמה טראקים של וידאו בסרטון אחד חברת PeerConnection תצטרך לבדוק את המוצר שלה במסגרת תוכנית מאוחדת ולהתאים את בהתאם. במקרים שבהם מתבצעת שיחה מנקודת קצה שאינה של Chrome ו-Chrome ענה, ייתכן שצורת המבצע תצטרך להשתנות. אנשים ש לבצע ניתוח SDP מפורט ולטפל במאפייני msid כדי לבדוק קוד הניתוח קולט את הפורמט החדש (a=msid). הפרטים שקובעים אם יהיה צורך בשינויים, והדרך שבה צריך לשנות את האפליקציות תלויה. אנחנו חושבים שכמעט כל האפליקציות שמשתמשות באודיו אחד בלבד וטראק וידאו אחד לכל RTCPeerConnection לא יושפע מהשינוי.

תכונת API

אנחנו מוסיפים תכונה חדשה אחת ל-RTCConfiguration של RTCPeerConnection:

enum SdpSemantics {
  "plan-b",
  "unified-plan"
};


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

ניתן להעביר את ה-RTCConfiguration ל-constructor של RTCPeerConnection, וכל ההצעות והתשובות שנוצרות יהיו בפורמט של תוכנית מאוחדת. גם לקריאות ל-setLocalDescription ול-setRemoteDescription יצפות שה-SDP להיות בפורמט של תוכנית מאוחדת; אם הוא בפורמט Chrome מדור קודם, אזי המערכת תתעלם מכל טראק האודיו הראשון ומטראק הווידאו הראשון.

יש גם סימון של שורת הפקודה (–enable-features=RTCUnifiedPlanByDefault ב- Chrome M71 ואילך, –enable-blink-features=RTCUnifiedPlanByDefault ב- גרסאות קודמות) שמאפשר להגדיר את ערך ברירת המחדל של הדגל הזה "תוכנית מאוחדת".

השלבים

שלב 1: הטמעת התוכנית המאוחדת

בשלב הזה, פיתחנו את התוכנית המאוחדת מאחורי דגל ניסוי זמין מאז M65. עד שלב 2, הכי נכון לבצע בדיקות ב-Chrome Canary באמצעות '–enable-blink-features=RTCUnifiedPlan'.

שלב 2: הפיכת תכונת ה-API לזמינה לכלל המשתמשים

הושקה בגרסה M69 (בגרסת בטא באוגוסט 2018, יציבה בספטמבר 2018)

בשלב הזה, ערך ברירת המחדל של הדגל sdpSemantics היה 'plan-b'. לחשבון בשלב 2, האנשים שהטמיעו הטמעות שתלויות בפורמט SDP היו היא צפויה להריץ בדיקות כדי לראות אם האפליקציות שלהן פועלות כשתוכנית Unified Plan פועלת לשימוש. עבור אפליקציות שתומכות ב-Firefox, אנחנו מצפים שזה יהיה התרגיל: פשוט עושים כמו ב-Firefox.

ניתן לשנות את ערך ברירת המחדל של הדגל sdpSemantics ב-'chrome://flags'; מחפשים את התכונה 'WebRTC: שימוש בסמנטיקה של SDP בתוכנית מאוחדת כברירת מחדל'.

שלב 3: שינוי ברירת המחדל

תאריך המעבר היה M72 (גרסת בטא של דצמבר 2018, יציבה בינואר 2019).

בשלב הזה שינינו את ערך ברירת המחדל של הדגל sdpSemantics ל- "תוכנית מאוחדת". אפליקציות שגילו שנדרש להן יותר זמן כדי להמיר את סימון sdpSemantics באופן מפורש ל-'plan-b' כדי לשחזר ההתנהגות הקודמת.

שלב 4: יצירת "תוכנית ב"

בשלב הזה, מגדירים את הדגל sdpSemantics כ-plan-b יובילו לחריגה זריקה. הוא הופק ב-Canary מגרסת M93. נכון לגרסה M96, למעט השליך את כל הערוצים, כולל הערוץ היציב.

במהלך השלב הזה, תתבצע תקופת ניסיון להוצאה משימוש היה זמין שאפשר להשתמש בתוכנית ב' ללא ההתרעה החריגה, תקופת הניסיון הפסיקה לפעול ב-25 במאי 2022.

שלב 5: הסרת "תוכנית B" מ-Chromium

אחרי שתקופת הניסיון תסתיים, תוכנית ב' תוסר מ-Chrome. בשלב הזה, הדגל sdpSemantics יוסר. מתבצע ניסיון להגדיר אותו ל-"plan-b" לא תגרום לחריגה, אבל כבר לא תהיה לה השפעה.

תוכנית ב' עדיין זמינה מאחורי דגלים מיוחדים או גרסאות build מיוחדות, אבל הסרת הקוד תתבצע במחצית השנייה של שנת 2022.

שלב 6: הוצאה משימוש והסרה של 'תוכנית ב' מ-WebRTC

תוכנית ב' כבר מסומנת ב-WebRTC כהוצאה משימוש, אבל היא עדיין זמינה. ההסרה אמורה להתבצע בשנת 2023.

הכנת הבקשה לתוכנית מאוחדת

לקבלת מידע מפורט על ההבדלים בתוכנית ב' ובתוכנית מאוחדת ועל האופן שבו ייתכן שיהיה צורך לעדכן את הבקשה כהכנה לתוכנית מאוחדת, מדריך המעבר "תוכנית מאוחדת" (JavaScript)

לאפליקציות נייטיב (C++ ), אפשר לעיין במסמך "העברת אפליקציית הנייטיב/הנייד שלך לתוכנית מאוחדת"