דלג לתוכן
Callaba

WebRTC לעומת HLS לעומת RTMP לווידאו חי

בעמוד הזה

תשובה קצרה: השתמשו ב-RTMP כאשר מקודד נדרש לפרסם לנקודת קצה לקליטה, ב-WebRTC כאשר אינטראקציית הצופה והנתיב בזמן אמת מצדיקים זאת, וב-HLS כאשר הפצת קהל מבוססת HTTP היא הנתיב שנבחר. שירות חי משתמש לעיתים ביותר מאחד; שמות הפרוטוקולים מתארים גבולות שונים.

בחרו מהצופה חזרה אל המקור

שאלהWebRTCHLSRTMP
מקלט עיקריעמית דפדפן/יישום אינטראקטיבי או שירות מדיהנגן ונתיב הפצה התומכים ב-HTTPשרת קליטה או נקודת קצה של פלטפורמה
מודל תעבורה/הפצהסשן מדיה בזמן אמת שמתבצע עליו משא ומתן עבור העמיתיםפלייליסט ומקטעי מדיה שנשלפים דרך HTTPסשן פרסום מתמשך על גבי TCP
תפקיד הדפדפןנועד לממשקי API של מדיה בזמן אמת בדפדפןנמסר דרך נתיב נגן; תמיכת הפלטפורמה משתנהאינו ניגון מקורי בדפדפנים מודרניים
בדיקת מקודדאמתו תמיכה של הדפדפן, השירות ותהליך המשא ומתןאמתו תאימות של הנגן, האריזה והרנדישןאמתו תאימות של המקודד ונקודת הקצה לקליטה
בדיקת רשתתנאי איתות, ICE/STUN/TURN וחומת אשהתנהגות של מקור, מטמון/CDN ובקשות הנגןיכולת הגעה למארח ולפורט הקליטה שהוקצו
מתאים כאשראינטראקציה היא חלק מדרישת המוצרהפצת קהל היא המשימהמקודד חייב למסור הזנה למקלט קליטה

מה לבדוק תחילה

בחירת תהליך עבודהנקודת קצה לבדיקהבדיקת הקבלה הראשונה
תרומה אינטראקטיבית או קהל: WebRTCנקודת קצה מוגדרת של צופה/סשן WebRTCאיתות יחד עם קישוריות ICE/TURN, ולאחר מכן שמע/וידאו של התוכנית
ניגון רחב בדפדפן: HLShttps://example.invalid/live/master.m3u8שליפת מניפסט והרנדישן המיועד בנגן
קליטת מקודד/פלטפורמה: RTMPrtmp://example.invalid/app בתוספת מפתח שהוקצהמצב המפרסם, ולאחר מכן פלט ה-HLS או WebRTC שנבחר במפורש

אלו צורות של נקודות קצה, ולא כתובות שמוקצות על ידי Callaba. למודלי ההפצה הבסיסיים ראו W3C WebRTC, IETF HLS, ואת מפרט RTMP.

החלטה מהירה: בחרו את הפרוטוקול לפי המשימה

לתרומה אינטראקטיבית או להשתתפות קהל, בדקו איתות WebRTC ו-ICE/TURN לפני הבחירה בו. לניגון רחב בדפדפן, בדקו את מניפסט ה-HLS ואת הנגן. לקליטה ממקודד לפלטפורמה, בדקו RTMP מול נקודת הקצה שהוקצתה, ואז בחרו ובדקו את פלט ה-HLS או WebRTC במורד הזרם.

אם ההחלטה היא "כיצד הצופים מקבלים את התוכנית בדפדפן?", התחילו ב-WebRTC או HLS ובדרישות הנגן, הגישה וההפצה שלהם. אם היא "כיצד המקודד הזה מפרסם לפלטפורמה?", התחילו בחוזה קליטת ה-RTMP של הפלטפורמה. RTMP יכול להזין שלב HLS או WebRTC מאוחר יותר, אך אינו יוצר בעצמו שלב כזה.

השוואות שגויות נפוצות

WebRTC לעומת HLS

זוהי החלטת הפצה. WebRTC זקוק לנתיב סשן בזמן אמת; HLS זקוק להפצת פלייליסט/מקטעים ולנגן תואם. בדקו את נקודת הקצה המדויקת של הקהל ואת מודל הגישה שלה, ולא רק את הזנת המקור.

RTMP לעומת WebRTC

לרוב הם נמצאים בקצוות שונים של תהליך העבודה: RTMP כקליטת מקודד, ו-WebRTC כהפצה אינטראקטיבית. גשר הוא פונקציה מוגדרת של שרת מדיה או שירות, עם מקודדים, איתות ותפעול משלו — ולא מאפיין של כתובת URL כלשהי.

HLS לעומת RTMP

HLS אורז מדיה להפצת HTTP; RTMP מפרסם מדיה למקלט קליטה. צופה שאינו יכול לפתוח כתובת URL של RTMP זקוק לנתיב פלט ה-HLS או WebRTC שנבחר, ולא לדפדפן אחר.

תהליך עבודה משולב של פרוטוקולים

מקודד תוכנית יכול לפרסם RTMP למשאב קליטה מבוקר. המפעיל מאמת פעילות של המקור, ואז מגדיר פלט נפרד להפצת קהל — HLS לתהליך עבודה של נגן HTTP או WebRTC לנתיב האינטראקציה. אמתו כל גבול לפי הסדר: מקודד לקליטה, יצירת עיבוד/פלט, ואז כתובת ה-URL בפועל של הצופה.

רשימת בדיקה של פרוטוקולים לפני הפקה

  • רשמו את אילוצי המקודד, קצב הפריימים, השמע ומקלט היעד של המקור.
  • הקצו אחראי לאישורי פרסום, לאיתות/גישה ולבדיקת הנגן.
  • השתמשו בקהל חזרה פרטי ובדקו התאוששות לאחר עצירת המקור.
  • קשרו טענות על ניגון ישיר בדפדפן לפלט המוגדר, ולעולם לא לכתובת URL של מקור RTMP.

בחרו את הצעד הבא

לקליטת מקודד ולגישת מפרסם/מקלט, ראו RTMP Server. כתובת URL לפרסום RTMP עשויה להשתמש באותו שם יישום וזרם כמו כתובת URL של מקלט, אך למפרסם ולמקלט עדיין יש תפקידים שונים. לפלט בדפדפן, התחילו ב-הנחיות Web Player; לכוונת אריזה, ראו RTMP to HLS. אם תהליך העבודה הוא תרומת SRT ולא פרסום RTMP, SRT Server הוא הבעלים המתאים.