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 disalurkan melalui koneksi SSL. Dokumen ini ditujukan untuk vendor enkode yang ingin menambahkan dukungan bagi RTMPS ke encoder yang sudah mendukung RTMP.
RTMPS adalah pilihan yang tepat untuk sebagian besar konten pengguna biasa, terutama jika memerlukan latensi rendah. Baca Perbandingan Protokol Penyerapan untuk melihat ringkasan berbagai protokol penyerapan yang didukung Live Streaming YouTube.
Persyaratan
Mengirimkan RTMPS ke YouTube Live memiliki beberapa prasyarat:
- Setiap bagian URL koneksi (
<protocol>://<server>/<path>
) harus benar:- Protokol harus
rtmps
. - Server harus merupakan endpoint penyerapan RTMPS YouTube yang valid.
- Jalur harus berupa nama aplikasi RTMP YouTube Live yang valid.
- Protokol harus
- Koneksi harus dibuat ke port 443 di server penyerapan.
- 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 penyerapan RTMPS mirip dengan proses untuk RTMP. Kirim permintaan
Sisipkan Live Stream (POST) untuk
membuat streaming penyerapan baru. Dalam respons tersebut, kolom
cdn.ingestionInfo.rtmpsIngestionAddress
menentukan URL RTMPS. Jika Anda mendukung penyerapan ganda, alamat cadangannya
adalah cdn.ingestionInfo.rtmpsBackupIngestionAddress
.
Membuat koneksi
Gunakan library socket pilihan Anda untuk membuat koneksi SSL/TLS ke port 443 di server yang ditentukan oleh URL penyerapan. Karena TLS hanya berfungsi dengan lapisan transpor, nama host server tidak mutlak diperlukan untuk memulai koneksi; namun, autentikasi tersebut diperlukan untuk autentikasi dengan server kami. Jadi, pastikan Anda menambahkan ekstensi SNI (Server Name Indication) ke handshake SSL Anda, lalu tetapkan nama server ke nama host server yang terhubung dengan Anda.
Setelah koneksi SSL dibuat, gunakan sebagai koneksi untuk library klien RTMP Anda. Koneksi SSL yang diinisialisasi memiliki API yang sama dengan koneksi TCP standar, sehingga library RTMP seharusnya dapat bekerja dengan keduanya secara identik.
Pemecahan masalah
Error SSL
Jika Anda mencoba membuat koneksi SSL, tetapi mendapatkan sertifikat yang tidak valid, maka Anda mungkin terhubung ke server YouTube yang mengharapkan RTMP. Pastikan nama server yang Anda gunakan memiliki "rtmp" di dalamnya — perhatikan "s".
Jika URL sudah benar, tetapi error SSL masih muncul, 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 tersebut dengan benar. Cari pesan diagnostik tingkat rendah tentang kegagalan SSL, dan periksa kembali apakah Anda menggunakan SNI di handshake.
Waktu koneksi habis
Jika Anda dapat terhubung ke server, tetapi waktu habisnya library RTMP 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.