Menayangkan Konten YouTube Live melalui RTMPS

Dokumen ini menjelaskan cara menggunakan RTMPS untuk melakukan streaming data live di YouTube dari encoder. RTMPS adalah streaming video RTMP (RealTime Messaging Protocol) biasa yang di-tunnel melalui koneksi SSL. Dokumen ini ditujukan untuk vendor encoder yang ingin menambahkan dukungan untuk RTMPS ke encoder yang sudah mendukung RTMP.

RTMPS adalah pilihan yang baik untuk sebagian besar konten pengguna biasa, terutama jika memerlukan latensi rendah. Lihat Perbandingan Protokol Ingesti untuk mengetahui ringkasan berbagai protokol ingesti yang didukung Streaming Langsung YouTube.

Persyaratan

Mengirim RTMPS ke YouTube Live memiliki beberapa prasyarat:

  • Setiap bagian URL koneksi (<protocol>://<server>/<path>) harus benar:
    • Protokol harus rtmps.
    • Server harus berupa endpoint ingesti RTMPS YouTube yang valid.
    • Jalur harus berupa nama aplikasi RTMP YouTube Live yang valid.
  • Koneksi harus dibuat ke port 443 di server ingesti.
  • Streaming multimedia harus dikirim dengan RTMPS; yaitu, menggunakan RTMP melalui koneksi SSL.

Mendapatkan URL koneksi

Jika encoder Anda sudah menggunakan YouTube Live API, proses untuk mendapatkan URL ingesti RTMPS mirip dengan proses untuk RTMP. Kirim permintaan penyisipan LiveStreams (POST) untuk membuat streaming ingesti baru. Dalam respons, kolom cdn.ingestionInfo.rtmpsIngestionAddress menentukan URL RTMPS. Jika Anda mendukung ingesti ganda, alamat cadangan adalah cdn.ingestionInfo.rtmpsBackupIngestionAddress.

Membuat koneksi

Gunakan library socket pilihan Anda untuk membuat koneksi SSL/TLS ke port 443 di server yang ditentukan URL ingesti. Karena TLS hanya berfungsi dengan lapisan transport, nama host server tidak benar-benar diperlukan untuk memulai koneksi; namun, nama host server diperlukan untuk autentikasi dengan server kami. Jadi, pastikan Anda menambahkan ekstensi SNI (Server Name Indication) ke handshake SSL, dan menetapkan nama server ke nama host server yang Anda hubungkan.

Setelah koneksi SSL dibuat, gunakan koneksi tersebut sebagai koneksi untuk library klien RTMP Anda. Koneksi SSL yang diinisialisasi memiliki API yang sama dengan koneksi TCP standar, sehingga library RTMP dapat berfungsi dengan keduanya secara identik.

Pemecahan masalah

Error SSL

Jika Anda mencoba membuat koneksi SSL, tetapi mendapatkan sertifikat yang tidak valid, kemungkinan Anda terhubung ke server YouTube yang mengharapkan RTMP. Pastikan nama server yang Anda gunakan memiliki "rtmps" di dalamnya — perhatikan "s".

Jika URL terlihat benar, tetapi Anda masih mendapatkan error SSL, Anda mungkin terhubung ke port yang salah. Pastikan Anda terhubung ke port 443.

Jika URL dan port sudah benar, library SSL Anda mungkin tidak menangani sertifikat dengan benar. Cari pesan diagnostik tingkat rendah tentang kegagalan SSL, dan periksa kembali apakah Anda menggunakan SNI dalam handshake.

Waktu sambungan habis

Jika Anda dapat terhubung ke server, tetapi library RTMP Anda mengalami waktu tunggu tanpa mendapatkan respons yang masuk akal, Anda mungkin telah menyiapkan koneksi RTMP cleartext ke server YouTube yang mengharapkan RTMPS. Pastikan Anda membuat koneksi SSL, bukan koneksi TCP biasa.