WebRTC הוא עכשיו תקן W3C ו-IETF

סקירה כללית קצרה על ההיסטוריה, הארכיטקטורה, התרחישים לדוגמה והעתיד של WebRTC.

Huib Kleinhout
Huib Kleinhout

הגדרת סטנדרט אינטרנט היא תהליך ארוך שמבטיח שימושיות, עקביות ותאימות בדפדפנים שונים. היום W3C ו-IETF מציינים את השלמת אחד מהסטנדרטים החשובים ביותר במהלך המגפה: WebRTC.

היסטוריה

WebRTC היא פלטפורמה שמספקת לדפדפנים, לאפליקציות לנייד ולאפליקציות למחשב יכולות תקשורת בזמן אמת, שבדרך כלל משמשות לשיחות וידאו. הפלטפורמה מורכבת מקבוצה מקיפה של טכנולוגיות וסטנדרטים. Google היזמה את הרעיון ליצירת WebRTC בשנת 2009, כחלופה ל-Adobe Flash ולאפליקציות למחשב שלא ניתן להריץ בדפדפן. הדור הקודם של המוצרים מבוססי-הדפדפן נבנה על גבי טכנולוגיה קניינית ברישיון. טכנולוגיה זו שימשה ליצירת מוצרים שונים, כולל Hangouts. לאחר מכן, Google רכשה את החברות שמהן היא קיבלה רישיון לטכנולוגיה והפכה אותה לזמינה כפרויקט הקוד הפתוח WebRTC. קוד המקור הזה משולב ב-Chrome, ורוב האפליקציות שמשתמשות ב-WebRTC משתמשות בו. יחד עם ספקי דפדפנים אחרים ומובילי תעשייה כמו Mozilla,‏ Microsoft,‏ Cisco ו-Ericsson, התחלנו את תהליך התקינה של WebRTC גם ב-W3C וגם ב-IETF. בשנת 2013, Mozilla ו-Google הציגו שיחות וידאו בין הדפדפנים שלהן. במהלך התפתחות התקן, דיונים רבים בנושא ארכיטקטורה הובילו להבדלים בהטמעה בין הדפדפנים, והקשתה על התאימות והיכולת לפעול יחד. רוב המחלוקות האלה נפתרו בסופו של דבר כשהסטנדרט הושלם בשנים האחרונות. מפרט WebRTC מלווה עכשיו בקבוצה מלאה של בדיקות פלטפורמה ובכלים לטיפול בתאימות, והדפדפנים התאימו את ההטמעות שלהם בהתאם. כך מסתיימת תקופה מאתגרת שבה מפתחי האינטרנט נאלצו להתאים את השירותים שלהם באופן שוטף להטמעות שונות בדפדפנים ולשינויים במפרטים.

ארכיטקטורה ופונקציונליות

RTCPeerConnection API הוא החלק המרכזי במפרט WebRTC. RTCPeerConnection עוסק בחיבור של שתי אפליקציות בנקודות קצה שונות כדי לתקשר באמצעות פרוטוקול peer-to-peer. ממשק ה-API של PeerConnection פועל בשיתוף פעולה הדוק עם getUserMedia כדי לגשת למצלמה ולמיקרופון, ועם getDisplayMedia כדי לתעד את תוכן המסך. WebRTC מאפשר לשלוח ולקבל שידורים שכוללים תוכן אודיו ו/או וידאו, וגם נתונים בינאריים שרירותיים דרך DataChannel. פונקציונליות המדיה לעיבוד, לקידוד ולפענוח של אודיו ווידאו היא הליבה של כל הטמעה של WebRTC. WebRTC תומך בקודקים שונים של אודיו, כאשר Opus הוא הקודק הנפוץ והגמיש ביותר. הטמעות של WebRTC צריכות לתמוך בקודק הווידאו VP8 של Google לשימוש בחינם וב-H.264 לעיבוד וידאו. החיבורים ב-WebRTC תמיד מוצפנים, באמצעות שני פרוטוקולים קיימים: DTLS ו-SRTP. WebRTC מסתמך במידה רבה על תקנים וטכנולוגיות קיימים, החל מקודקים של וידאו (VP8,‏ H264), ניתוב ברשת (ICE), תעבורה (RTP,‏ SCTP) ועד לפרוטוקולים של תיאור מדיה (SDP). כל זה קשור יחד ביותר מ-50 RFC.

תרחישים לדוגמה: כשמדובר באלפיות שנייה

WebRTC נמצא בשימוש נרחב באפליקציות שבהן הזמן קריטי, כמו ניתוח מרחוק, מעקב אחרי מערכות ושליטה מרחוק במכוניות אוטונומיות, ושיחות קוליות או וידאו שמבוססות על UDP, שבהן לא ניתן לבצע אגירת נתונים (buffering). כמעט כל שירותי שיחות הווידאו מבוססי הדפדפן של חברות כמו Google,‏ Facebook,‏ Cisco,‏ RingCentral ו-Jitsi משתמשים ב-WebRTC. פלטפורמות Google Stadia ו-NVIDIA GeForce NOW משתמשות ב-WebRTC כדי להעביר את סטרימינג של משחקים מהענן לדפדפן האינטרנט ללא עיכוב מורגש.

המגפה מובילה להתמקדות בביצועים של שיחות הווידאו

במהלך השנה האחרונה, חלה עלייה של פי 100 בשימוש ב-WebRTC ב-Chrome, בגלל העלייה במספר השיחות הווידאו שנערכו ישירות מהדפדפן. מאחר ששיחות וידאו הפכו לחלק מהותי בחיים של אנשים רבים במהלך המגפה, ספקי הדפדפנים התחילו לבצע אופטימיזציה של הטכנולוגיות ששיחות הווידאו תלויות בהן. זה היה חשוב במיוחד כי פגישות גדולות עם אפקטים חזותיים בפגישות הווידאו דורשות משאבים רבים, והן הפכו לדבר נפוץ יותר כשעובדים ותלמידים התחילו לעבוד וללמוד מהבית. בשנה האחרונה, Chrome הפך לחסכוני יותר ב-30% בסוללה במהלך שיחות וידאו, ואנחנו מתכננים לבצע עוד אופטימיזציות בתרחישים של שימוש כבד. במהלך המגפה, הושגו שיפורים משמעותיים בהטמעת WebRTC ב-Mozilla, ב-Apple וב-Microsoft, במיוחד בהתאם לתקן הרשמי הנוכחי.

העתיד של WebRTC

WebRTC הושלם כסטנדרט של W3C, אבל השיפורים ממשיכים. קודק הווידאו החדש AV1, שמאפשר חיסכון של עד 50% ברוחב הפס, הופך להיות זמין ב-WebRTC ובדפדפני אינטרנט. שיפורים מתמשכים בבסיס הקוד בקוד הפתוח צפויים לצמצם עוד יותר את העיכוב ולשפר את איכות הווידאו שאפשר להעביר בסטרימינג. WebRTC NV היא יוזמה ליצירת ממשקי API משלימים כדי לאפשר תרחישי שימוש חדשים. הם מורכבים מרחבות של ממשקי API קיימים, שמעניקים שליטה רבה יותר על פונקציונליות קיימת כמו קידוד וידאו שניתן להתאמה, וגם ממשקי API שמעניקים גישה לרכיבים ברמה נמוכה יותר. הגרסה השנייה מספקת למפתחי האינטרנט גמישות רבה יותר לחדשנות על ידי שילוב של רכיבי WebAssembly מותאמים אישית עם ביצועים גבוהים. עם רשתות 5G חדשות והביקוש לשירותים אינטראקטיביים יותר, אנחנו מצפים לעלייה מתמשכת במספר השירותים שמבוססים על WebRTC בשנה הקרובה.