במסמך הזה מוסבר איך להשתמש ב-RTMPS כדי להזרים נתונים בשידור חי ב-YouTube ממקודד. פרוטוקול RTMPS הוא סטרימינג וידאו רגיל של RTMP (RealTime Messaging Protocol) שמועבר דרך חיבור SSL. המסמך הזה מיועד לספקי מקודדים שרוצים להוסיף תמיכה ב-RTMPS למקודדים שכבר תומכים ב-RTMP.
RTMPS היא בחירה טובה לרוב תוכן המשתמשים הרגיל, במיוחד אם נדרש זמן אחזור קצר. במאמר השוואה בין פרוטוקולי הטמעה מופיע סקירה של פרוטוקולי ההטמעה השונים שנתמכים ב-YouTube בשידור חי.
דרישות
יש כמה דרישות מוקדמות לשליחת RTMPS ל-YouTube בשידור חי:
- כל חלק בכתובת ה-URL של החיבור (
<protocol>://<server>/<path>) צריך להיות נכון:- הפרוטוקול חייב להיות
rtmps. - השרת צריך להיות נקודת קצה תקינה להעלאה ב-RTMPS ב-YouTube.
- הנתיב צריך להיות שם אפליקציה תקין של YouTube בשידור חי בפורמט RTMP.
- הפרוטוקול חייב להיות
- החיבור צריך להתבצע ליציאה 443 בשרת הטמעת הנתונים.
- הזרם של המולטימדיה צריך להישלח באמצעות RTMPS, כלומר באמצעות RTMP דרך חיבור SSL.
איך מקבלים את כתובת ה-URL של החיבור
אם המקודד שלכם כבר משתמש ב-YouTube Live API, התהליך לקבלת כתובת URL להטמעת נתונים ב-RTMPS דומה לתהליך ב-RTMP. שולחים בקשת LiveStreams insert (POST) כדי ליצור שידור חדש להטמעה. בתשובה, השדה cdn.ingestionInfo.rtmpsIngestionAddress מציין את כתובת ה-URL של RTMPS. אם אתם תומכים בהעברה כפולה, כתובת הגיבוי היא cdn.ingestionInfo.rtmpsBackupIngestionAddress.
יצירת החיבור
משתמשים בספריית השקעים המועדפת כדי ליצור חיבור SSL/TLS ליציאה 443 בשרת שצוין בכתובת ה-URL להטמעה. מכיוון ש-TLS פועל רק עם שכבת התעבורה, שם המארח של השרת לא נדרש באופן מוחלט כדי להתחיל את החיבור, אבל הוא נדרש לאימות מול השרתים שלנו. לכן, חשוב להוסיף את התוסף SNI (Server Name Indication) ללחיצת היד של ה-SSL, ולהגדיר את שם השרת לשם המארח של השרת שאליו מתחברים.
אחרי שנוצר חיבור SSL, משתמשים בו כחיבור לספריית הלקוח של RTMP. לחיבור SSL מאותחל יש את אותו API כמו לחיבור TCP רגיל, ולכן ספריית ה-RTMP אמורה להיות מסוגלת לעבוד עם שניהם באופן זהה.
פתרון בעיות
שגיאות SSL
אם ניסיתם ליצור חיבור SSL אבל קיבלתם אישור לא חוקי, כנראה שאתם מתחברים לשרת YouTube שמצפה ל-RTMP. חשוב לוודא ששם השרת שבו אתם משתמשים כולל את האות s, כלומר rtmps.
אם כתובת ה-URL נראית נכונה אבל עדיין מופיעה שגיאת SSL, יכול להיות שאתם מתחברים ליציאה הלא נכונה. מוודאים שאתם מתחברים ליציאה 443.
אם כתובת ה-URL והיציאה נכונות, יכול להיות שספריית ה-SSL לא מטפלת באישור כמו שצריך. חפשו הודעות אבחון ברמה נמוכה לגבי כשלים ב-SSL, ובדקו שוב שאתם משתמשים ב-SNI בלחיצת היד.
תם פרק הזמן שהוקצב להתחברות
אם אתם מצליחים להתחבר לשרת, אבל ספריית ה-RTMP שלכם נסגרת בגלל זמן קצוב לתפוגה בלי לקבל תגובה הגיונית, יכול להיות שהגדרתם חיבור RTMP בטקסט לא מוצפן לשרת YouTube שמצפה ל-RTMPS. חשוב לוודא שאתם יוצרים חיבור SSL ולא חיבור TCP רגיל.