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

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

Huib Kleinhout
Huib Kleinhout

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

היסטוריה

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

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

ה-API של RTCPeerConnection הוא החלק המרכזי במפרט WebRTC. RTCPeerConnection מתייחס לחיבור בין שתי אפליקציות בנקודות קצה שונות כדי לתקשר באמצעות פרוטוקול מקצה לקצה. ה-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, שבהן אי אפשר לבצע אגירת נתונים. כמעט כל שירותי שיחות הווידאו מבוססי הדפדפן של חברות כמו Google, Facebook, Cisco, RingCentral ו-Jitsi משתמשים ב-WebRTC. Google Stadia ו-NVIDIA GeForce NOW משתמשים ב-WebRTC כדי להעביר מהלכי משחק מהענן לדפדפן האינטרנט ללא עיכוב ניכר.

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

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

העתיד של WebRTC

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