การส่งเนื้อหา YouTube แบบสดผ่าน RTMPS

เอกสารนี้อธิบายวิธีใช้ RTMPS เพื่อสตรีมข้อมูลสดบน YouTube จากโปรแกรมเปลี่ยนไฟล์ RTMPS คือสตรีมวิดีโอ RTMP (RealTime Messaging Protocol) ปกติ ที่ส่งผ่านการเชื่อมต่อ SSL เอกสารนี้มีไว้สำหรับผู้ให้บริการโปรแกรมเปลี่ยนไฟล์ที่ต้องการเพิ่มการรองรับ RTMPS ลงในโปรแกรมเปลี่ยนไฟล์ที่รองรับ RTMP อยู่แล้ว

RTMPS เป็นตัวเลือกที่ดีสำหรับเนื้อหาของผู้ใช้ทั่วไปส่วนใหญ่ โดยเฉพาะอย่างยิ่งหากต้องมี เวลาในการตอบสนองต่ำ ดูภาพรวมของโปรโตคอลการส่งผ่านข้อมูลต่างๆ ที่ YouTube Live Streaming รองรับได้ใน การเปรียบเทียบโปรโตคอลการส่งผ่านข้อมูล

ข้อกำหนด

การส่ง RTMPS ไปยัง YouTube Live มีข้อกำหนดเบื้องต้น 2-3 ข้อดังนี้

  • แต่ละส่วนของ URL การเชื่อมต่อ (<protocol>://<server>/<path>) ต้อง ถูกต้อง
    • โปรโตคอลต้องเป็น rtmps
    • เซิร์ฟเวอร์ต้องเป็นปลายทางการส่งผ่านข้อมูล RTMPS ของ YouTube ที่ถูกต้อง
    • เส้นทางต้องเป็นชื่อแอปพลิเคชัน RTMP ของ YouTube Live ที่ถูกต้อง
  • การเชื่อมต่อต้องทำที่พอร์ต 443 ในเซิร์ฟเวอร์การส่งผ่านข้อมูล
  • ต้องส่งสตรีมมัลติมีเดียด้วย RTMPS ซึ่งก็คือการใช้ RTMP ผ่านการเชื่อมต่อ SSL

การรับ URL การเชื่อมต่อ

หากโปรแกรมเปลี่ยนไฟล์ใช้ YouTube Live API อยู่แล้ว กระบวนการรับ URL การส่งผ่านข้อมูล RTMPS จะคล้ายกับกระบวนการรับ URL การส่งผ่านข้อมูล RTMP ส่งคำขอ LiveStreams insert (POST) เพื่อสร้างสตรีมการส่งผ่านข้อมูลใหม่ ในคำตอบ ฟิลด์ cdn.ingestionInfo.rtmpsIngestionAddress จะระบุ URL ของ RTMPS หากคุณรองรับการส่งผ่านข้อมูลแบบคู่ ที่อยู่สำรอง คือ cdn.ingestionInfo.rtmpsBackupIngestionAddress

สร้างการเชื่อมต่อ

ใช้ไลบรารีซ็อกเก็ตที่คุณต้องการเพื่อสร้างการเชื่อมต่อ SSL/TLS กับพอร์ต 443 ที่ เซิร์ฟเวอร์ที่ URL การส่งผ่านข้อมูลระบุ เนื่องจาก TLS ทำงานกับ เลเยอร์การขนส่งเท่านั้น จึงไม่จำเป็นต้องใช้ชื่อโฮสต์ของเซิร์ฟเวอร์อย่างเคร่งครัดในการเริ่ม การเชื่อมต่อ แต่จำเป็นต้องใช้สำหรับการตรวจสอบสิทธิ์กับเซิร์ฟเวอร์ของเรา ดังนั้น โปรดตรวจสอบว่าคุณได้เพิ่มส่วนขยาย SNI (การระบุชื่อเซิร์ฟเวอร์) ลงในการแฮนด์เชค SSL และตั้งชื่อเซิร์ฟเวอร์เป็นชื่อโฮสต์ของเซิร์ฟเวอร์ที่คุณเชื่อมต่อด้วย

เมื่อสร้างการเชื่อมต่อ SSL แล้ว ให้ใช้การเชื่อมต่อดังกล่าวเป็นไลบรารีไคลเอ็นต์ RTMP การเชื่อมต่อ SSL ที่เริ่มต้นแล้วจะมี API เดียวกันกับการเชื่อมต่อ TCP มาตรฐาน ดังนั้นไลบรารี RTMP จึงควรทำงานกับทั้ง 2 อย่างได้ เหมือนกัน

การแก้ปัญหา

ข้อผิดพลาด SSL

หากคุณพยายามสร้างการเชื่อมต่อ SSL แต่ได้รับใบรับรองที่ไม่ถูกต้อง แสดงว่า คุณอาจเชื่อมต่อกับเซิร์ฟเวอร์ YouTube ที่คาดหวัง RTMP ตรวจสอบว่าชื่อเซิร์ฟเวอร์ที่คุณใช้มี "rtmps" อยู่ด้วย

หาก URL ดูคล้ายจะถูกต้องแต่คุณยังเห็นข้อผิดพลาด SSL แสดงว่าคุณอาจเชื่อมต่อกับพอร์ตที่ไม่ถูกต้อง ตรวจสอบว่าคุณเชื่อมต่อกับพอร์ต 443

หาก URL และพอร์ตถูกต้อง แสดงว่าไลบรารี SSL อาจจัดการใบรับรองไม่ถูกต้อง มองหาข้อความการวินิจฉัยระดับต่ำเกี่ยวกับความล้มเหลวของ SSL และตรวจสอบอีกครั้งว่าคุณใช้ SNI ในการแฮนด์เชค

การเชื่อมต่อหมดเวลา

หากคุณเชื่อมต่อกับเซิร์ฟเวอร์ได้ แต่ไลบรารี RTMP หมดเวลาโดยไม่ได้รับ การตอบกลับที่เหมาะสม คุณอาจตั้งค่าการเชื่อมต่อ RTMP แบบข้อความธรรมดา กับเซิร์ฟเวอร์ YouTube ที่คาดหวัง RTMPS ตรวจสอบว่าคุณกำลังสร้างการเชื่อมต่อ SSL ไม่ใช่การเชื่อมต่อ TCP แบบธรรมดา