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

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

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

ข้อกำหนด

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

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

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

หากโปรแกรมเปลี่ยนไฟล์ใช้ YouTube Live API อยู่แล้ว ขั้นตอนการรับ URL การส่งผ่านข้อมูล RTMPS จะคล้ายกับ URL ของ RTMP ส่งคําขอแทรกสตรีมแบบสด (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" อยู่ในนั้น ดู "s"

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

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

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

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