Pernahkah Anda ingin menonton siaran langsung dari kamera keamanan atau perangkat IoT melalui browser web? Kelihatannya mudah, tapi saat coba langsung ternyata sangat merepotkan.
Apa Masalahnya
Kamera IP mengirimkan siaran lewat RTSP (Real Time Streaming Protocol), tapi browser tidak mendukung RTSP. Sejak 2010-an, browser menghapus dukungan RTSP karena alasan keamanan. Artinya, kamera dan browser seperti berbicara bahasa yang berbeda.
Ada dua tools dewa untuk mengatasi masalah ini:
FFmpeg — Dewa pemrosesan video. Digunakan di pipeline encoding VLC dan Netflix, serta banyak tool lain.
MediaMTX — Server streaming ringan. Bisa mengonversi RTSP→WebRTC dan lainnya.
Langkah-langkahnya Ada 3
1. Streaming File Video
Buat file konfigurasi MediaMTX (mediamtx.yml):
yaml
paths:
test_video:
source: publisher
Siaran file lewat RTSP:
bash
ffmpeg -re -i your_video.mp4 -c:v libx264 -preset fast -c:a aac -f rtsp rtsp://localhost:8554/test_video
Bisa dicek dengan VLC.
2. Siarkan Webcam Secara Real-time
Tambahkan ke konfigurasi MediaMTX:
yaml
paths:
webcam:
source: publisher
Buka http://localhost:8889/ di browser, RTSP otomatis dikonversi ke WebRTC dan tampil di browser. Hanya itu saja.
Alur Data
Kamera → frame mentah
FFmpeg → encoding H.264 → siaran RTSP
MediaMTX → menerima RTSP
Browser → permintaan WebRTC
MediaMTX → konversi otomatis → siaran WebRTC
Browser → pemutaran real-time
Konversi dilakukan tanpa re-encode, sehingga efisien. Sistem skala besar seperti Netflix pun memakai prinsip yang sama.
Langkah Selanjutnya?
Setup saat ini masih level demo. Kekurangan untuk produksi:
Tidak ada autentikasi
Hanya localhost
Belum mendukung kamera IP asli
Tidak ada error handling
Di Part 2, akan dibahas penambahan security, koneksi kamera IP asli, dan penyesuaian untuk lingkungan produksi.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Cobalah Membuat Sendiri Pipeline Live Video Streaming: Kisah tentang FFmpeg dan MediaMTX
Pernahkah Anda ingin menonton siaran langsung dari kamera keamanan atau perangkat IoT melalui browser web? Kelihatannya mudah, tapi saat coba langsung ternyata sangat merepotkan.
Apa Masalahnya
Kamera IP mengirimkan siaran lewat RTSP (Real Time Streaming Protocol), tapi browser tidak mendukung RTSP. Sejak 2010-an, browser menghapus dukungan RTSP karena alasan keamanan. Artinya, kamera dan browser seperti berbicara bahasa yang berbeda.
Ada dua tools dewa untuk mengatasi masalah ini:
FFmpeg — Dewa pemrosesan video. Digunakan di pipeline encoding VLC dan Netflix, serta banyak tool lain.
MediaMTX — Server streaming ringan. Bisa mengonversi RTSP→WebRTC dan lainnya.
Langkah-langkahnya Ada 3
1. Streaming File Video
Buat file konfigurasi MediaMTX (mediamtx.yml): yaml paths: test_video: source: publisher
Siaran file lewat RTSP: bash ffmpeg -re -i your_video.mp4 -c:v libx264 -preset fast -c:a aac -f rtsp rtsp://localhost:8554/test_video
Bisa dicek dengan VLC.
2. Siarkan Webcam Secara Real-time
Tambahkan ke konfigurasi MediaMTX: yaml paths: webcam: source: publisher
Windows: bash ffmpeg -f dshow -rtbufsize 100M -i video=“Integrated Webcam” -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://localhost:8554/webcam
Mac: bash ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i “0” -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://localhost:8554/webcam
Linux: bash ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -f rtsp rtsp://localhost:8554/webcam
3. Agar Bisa Ditonton di Browser (Sihir WebRTC)
Bagian ini yang paling menarik. Aktifkan dukungan WebRTC di MediaMTX:
yaml webrtc: yes webrtcAddress: :8889 webrtcEncryption: no webrtcAllowOrigin: ‘*’ webrtcLocalUDPAddress: :8189 webrtcIPsFromInterfaces: yes
paths: test_video: source: publisher webcam: source: publisher
Buka http://localhost:8889/ di browser, RTSP otomatis dikonversi ke WebRTC dan tampil di browser. Hanya itu saja.
Alur Data
Konversi dilakukan tanpa re-encode, sehingga efisien. Sistem skala besar seperti Netflix pun memakai prinsip yang sama.
Langkah Selanjutnya?
Setup saat ini masih level demo. Kekurangan untuk produksi:
Di Part 2, akan dibahas penambahan security, koneksi kamera IP asli, dan penyesuaian untuk lingkungan produksi.