העברת תוכן של YouTube בשידור חי באמצעות RTMPS

המסמך הזה מסביר איך להשתמש ב-RTMPS כדי לשדר נתונים בשידור חי ב-YouTube ממקודד. RTMPS הוא שידור וידאו רגיל של RTMP (RealTime Messaging Protocol) שעובר הצפנה באמצעות חיבור SSL. המסמך הזה מיועד לספקי מקודדים שרוצים להוסיף תמיכה ב-RTMPS למקודדים שכבר תומכים ב-RTMP.

RTMPS היא אפשרות טובה לרוב תוכן המשתמש הרגיל, במיוחד אם נדרש זמן אחזור קצר. בהשוואה בין פרוטוקולים של הטמעת נתונים תוכלו לקרוא סקירה כללית על הפרוטוקולים השונים להטמעת נתונים, לדעתכם ב-YouTube בשידור חי.

דרישות

שליחת RTMPS ל-YouTube בשידור חי עומדת במספר דרישות מוקדמות:

  • כל חלק בכתובת ה-URL לחיבור (<protocol>://<server>/<path>) חייב להיות נכון:
    • הפרוטוקול חייב להיות rtmps.
    • השרת חייב להיות נקודת קצה תקינה להטמעת נתונים ב-YouTube RTMPS.
    • הנתיב צריך להיות שם חוקי של אפליקציית RTMP ב-YouTube בשידור חי.
  • יש לבצע את החיבור ליציאה 443 בשרת הטמעת הנתונים.
  • יש לשלוח את זרם המולטימדיה באמצעות RTMPS, כלומר באמצעות RTMP באמצעות חיבור SSL.

קבלת כתובת ה-URL של החיבור

אם המקודד שלכם כבר משתמש ב-YouTube Live API, התהליך לקבלת כתובת URL להטמעת נתונים של RTMPS דומה לתהליך של RTMP. שולחים בקשה להוספה של שידורים חיים (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. מוודאים ששם השרת שבו השתמשתם כולל את המילה 'rtmps' – שימו לב ל-'s'.

אם כתובת ה-URL נראית נכונה אבל עדיין מופיעה שגיאת SSL, ייתכן שאתם מתחברים ליציאה שגויה. מוודאים שהתחברתם ליציאה 443.

אם כתובת ה-URL והיציאה נכונים, ייתכן שספריית ה-SSL לא מטפלת באישור בצורה נכונה. חפשו הודעות אבחון ברמה נמוכה לגבי כשלי SSL, וודאו שאתם משתמשים ב-SNI בלחיצת היד.

Connection timed out

אם אתם יכולים להתחבר לשרת אבל פג הזמן הקצוב של ספריית ה-RTMP בלי לקבל תגובה הגיונית, יכול להיות שהגדרתם חיבור RTMP ברור לטקסט לשרת שמצפה ל-RTMPS. ודאו שאתם יוצרים חיבור SSL ולא חיבור TCP פשוט.