RTMP-ke-HLS adalah serah-terima dari ingest yang menghadap encoder ke pemutaran berbasis HTTP. Terima dan verifikasi penerbit RTMP terlebih dahulu; kemas atau transkode untuk HLS setelahnya; kemudian uji playlist dan endpoint pemutar yang benar-benar digunakan pemirsa. Koneksi RTMP saja bukan pemutaran browser.
Jalur RTMP-ke-HLS
Setidaknya jalurnya adalah sumber → listener RTMP → pemrosesan atau pengemasan media → playlist dan segmen HLS → pemutar. Setiap tahap dapat sehat sementara tahap sesudahnya tidak. Karena itu operator harus menyimpan bukti ingest dan bukti pemirsa sebagai pemeriksaan terpisah.
Tentukan apakah media dapat disalin
Pengemasan tanpa transkode video mungkin dilakukan hanya jika codec masuk, audio, cap waktu, irama keyframe, dan kontrak pengemasan sesuai dengan jalur HLS sasaran. Jika tidak, lakukan transkode dengan sengaja dan dokumentasikan ladder keluaran. Jangan menyebutnya jalur salin universal tanpa memeriksa keluaran yang dikonfigurasi.
Validasi secara berurutan
- Terbitkan sumber RTMP yang diketahui dan pastikan listener melaporkan aktivitas serta media yang dapat digunakan.
- Buka URL playlist HLS yang dihasilkan dan pastikan playlist diperbarui ketika sumber hidup.
- Periksa bahwa segmen yang tercantum dapat diambil oleh lingkungan pemutar yang dimaksud.
- Dengarkan audio, periksa video, dan ukur jeda pemirsa aktual untuk jalur yang diterapkan.
- Hentikan lalu mulai kembali penerbit; pastikan playlist dan pemutar pulih seperti yang diharapkan rencana operasi.
Keyframe, segmen, dan latensi
HLS mengelompokkan media menjadi segmen yang dirujuk oleh playlist. Ikhtisar HLS Apple dan RFC 8216 menjelaskan model pengiriman playlist-dan-segmen. Durasi segmen, keyframe encoder, buffer pemutar, perilaku origin, dan konfigurasi CDN semuanya berkontribusi pada jeda pemirsa. Mengurangi satu buffer tidak menetapkan hasil latensi untuk jalur lengkap; ukur jalur yang akan dioperasikan.
Ketika RTMP sehat tetapi HLS gagal
| Hasil yang diamati | Pemeriksaan berikutnya |
|---|---|
| Penerbit aktif, tidak ada playlist | Periksa pekerjaan RTMP-ke-HLS dan konfigurasi keluarannya. |
| Playlist dimuat, pemutar macet | Periksa pengiriman segmen, galat pemutar, kompatibilitas codec, dan kebijakan akses. |
| Pemutaran terlambat dimulai | Ukur buffer encoder, pengemasan, playlist, pemutar, dan pengiriman sebelum mengubah pengaturan. |
Callaba dapat menerima sumber RTMP yang dikonfigurasi dan menyerahkannya ke alur kerja hilir yang dipilih. Listener bukan pemutar browser publik. Untuk diagnosis browser, gunakan pemutar RTMP dan pemutaran browser; untuk konfigurasi ingest, gunakan RTMP Server.
Konfigurasi terkait
Gunakan panduan operator RTMP Server untuk membuktikan ingest, lalu tinjau dokumentasi Web Player untuk modul yang menghadap pemirsa. Simpan panduan protokol RTMP untuk pertanyaan transport di sisi sumber.
Diagnostik lokal: kemas HLS dengan FFmpeg
mkdir -p hls-out && ffmpeg -re -i input.mp4 -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -f hls -hls_time 2 -hls_list_size 6 -hls_flags delete_segments hls-out/live.m3u8
Hasil yang diharapkan: live.m3u8 berubah saat input berjalan dan merujuk segmen media terbaru dalam hls-out. Sajikan direktori tersebut lewat server HTTP untuk uji browser; membuka jalur sistem berkas bukan uji origin HLS. Pada 30 fps, -g 60 menghasilkan irama keyframe dua detik yang selaras dengan durasi segmen contoh. Sesuaikan dengan frame rate sebenarnya.
Safari memiliki pemutaran HLS tingkat platform; banyak implementasi browser lain menggunakan Media Source Extensions melalui pustaka pemutar alih-alih memperlakukan setiap .m3u8 sebagai sumber video HTML bawaan. Uji pasangan browser/pemutar yang sebenarnya. Alur UI Callaba yang didokumentasikan adalah membuat Web Player dari RTMP Server terpilih atau input lain yang didukung, membuka URL pemutar hasilnya, lalu memverifikasi akses dan pemutaran; lihat dokumentasi Web Player.
Langkah berikutnya
Gunakan panduan operator RTMP Server untuk membuktikan ingest, lalu tinjau dokumentasi Web Player untuk modul yang menghadap pemirsa.