Cara Live Streaming Dari Server VPS Menggunakan FFMPEG
Ini adalah metode yang paling umum untuk VPS.
- Perbarui daftar paket Anda:
sudo apt update
- Instal FFmpeg:
sudo apt install ffmpeg
✅ Verifikasi Instalasi
Setelah instalasi selesai, verifikasi bahwa FFmpeg telah terpasang dengan benar dengan menjalankan perintah berikut:
ffmpeg -version
Jika instalasi berhasil, perintah ini akan menampilkan informasi versi FFmpeg yang terpasal.
Ini adalah metode terbaik karena menciptakan satu siaran yang berkelanjutan tanpa terputus antar video.
Langkah 1: Buat Skrip untuk Membuat Playlist 📝
Pertama, kita buat sebuah skrip sederhana yang akan "memindai" folder video Anda dan membuat file playlist.txt
.
- Gunakan
nano
untuk membuat file skrip baru:nano buat_playlist.sh
- Salin dan tempel (paste) seluruh kode di bawah ini ke dalam editor
nano
:#!/bin/bash # --- GANTI INI SESUAI LOKASI ANDA --- VIDEO_FOLDER="/root/videos" # Lokasi file playlist yang akan dibuat PLAYLIST_FILE="$VIDEO_FOLDER/playlist.txt" # Hapus playlist lama jika ada agar tidak tumpang tindih rm -f "$PLAYLIST_FILE" echo "Membuat playlist untuk file di folder $VIDEO_FOLDER..." # Loop semua file .mp4 dan tulis ke dalam file playlist for file in "$VIDEO_FOLDER"/*.mp4; do # Formatnya harus 'file '/path/to/video.mp4'' if [ -f "$file" ]; then echo "file '$file'" >> "$PLAYLIST_FILE" fi done echo "Playlist selesai dibuat di: $PLAYLIST_FILE"
- Simpan dan tutup file (
Ctrl+X
, laluY
, laluEnter
). - Jadikan skrip ini bisa dieksekusi:
chmod +x buat_playlist.sh
Langkah 2: Jalankan Skrip untuk Membuat playlist.txt
Sekarang, jalankan skrip yang baru saja Anda buat.
./buat_playlist.sh
Setelah perintah ini dijalankan, sebuah file baru bernama playlist.txt
akan muncul di dalam folder video Anda.
Anda hanya perlu menjalankan skrip ini setiap kali Anda menambah atau mengurangi video di dalam folder.
Artinya, jika ada penambahan file video yang di upload, misal nama file nya 4.mp4, 5.mp4 dan seterusnya. Maka kita harus menjalankan perintah ./buat_playlist.sh lagi, agar file-file video yang baru saja di upload belakangan ini bisa ikut masuk ke dalam daftar playlist.
Langkah 3: Jalankan FFmpeg dengan Playlist ▶️
Sekarang, jalankan FFmpeg dengan playlist.txt
sebagai inputnya. Perhatikan penggunaan -f concat
.
ffmpeg -re -f concat -safe 0 -i /root/videos/playlist.txt -c copy -f flv rtmp://tujuan.streaming.com/live/STREAM_KEY
Penjelasan Perintah Baru:
-f concat
: Memberitahu FFmpeg untuk menggunakan mode "concatenate" atau penggabungan berdasarkan file teks.-safe 0
: Opsi keamanan yang diperlukan saat menggunakanconcat
dengan path file absolut (seperti/root/videos/video1.mp4
).-i /root/videos/playlist.txt
: Inputnya sekarang adalah file playlist.txt, bukan file video tunggal.-c copy
: Sama seperti-c:v copy -c:a copy
, ini menyalin stream tanpa re-encoding untuk performa terbaik.
Bonus: Cara Melakukan Looping Semua Video 🔄
Jika Anda ingin semua video dalam folder tersebut diputar berulang-ulang tanpa henti, cukup tambahkan parameter -stream_loop -1
seperti sebelumnya.
ffmpeg -re -stream_loop -1 -f concat -safe 0 -i /root/videos/playlist.txt -c copy -f flv rtmp://tujuan.streaming.com/live/STREAM_KEY
Sekarang FFmpeg akan memutar semua video di folder Anda secara berurutan, dan setelah video terakhir selesai, ia akan otomatis kembali ke video pertama dan mengulanginya terus-menerus.
Tentu, itu adalah alur kerja yang tepat untuk melakukan siaran "pseudo-live". Anda mengunggah file video terlebih dahulu, lalu menggunakan FFmpeg di server untuk menyiarkannya seolah-olah sedang berlangsung secara langsung.
Perintah Dasar FFmpeg
Gunakan perintah ini di terminal server Anda setelah mengunggah video.
ffmpeg -re -i /path/to/your/video.mp4 -c:v copy -c:a copy -f flv rtmp://tujuan.streaming.com/live/STREAM_KEY
Penjelasan Perintah
-re
: (Paling Penting) Perintah ini memberitahu FFmpeg untuk membaca file video pada kecepatan aslinya (native frame rate). Tanpa ini, FFmpeg akan mengirim seluruh file secepat mungkin, bukan sebagai siaran langsung.-i /path/to/your/video.mp4
: Mengarahkan ke lokasi file video yang Anda unggah.-c:v copy -c:a copy
: Menyalin stream video (v
) dan audio (a
) tanpa melakukan encoding ulang. Ini sangat efisien dan tidak membebani CPU server.-f flv
: Mengatur format output menjadi FLV (Flash Video), yang merupakan format standar untuk protokol RTMP.rtmp://tujuan.streaming.com/live/STREAM_KEY
: Alamat RTMP tujuan siaran Anda (misalnya dari YouTube atau Facebook).
Contoh Praktis (Streaming ke YouTube)
Misalkan Anda mengunggah video bernama acara_seminar.mp4
ke folder /root/videos/ dan stream key YouTube Anda adalah xxxx-xxxx-xxxx-xxxx
.
Perintahnya akan menjadi:
ffmpeg -re -i /root/videos/acara_seminar.mp4 -c:v copy -c:a copy -f flv rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx
💡 Tips Profesional
Untuk streaming yang berjalan lama, jika koneksi SSH Anda terputus, maka proses FFmpeg juga akan berhenti. Untuk mencegahnya, jalankan perintah di dalam sesi screen
.
🚀 Memulai Sesi Baru
Untuk memulai sesi baru dengan nama yang spesifik (misalnya "streaming"):
screen -S streaming
Setelah menjalankan ini, Anda akan masuk ke dalam "layar virtual" baru. Di sinilah Anda menjalankan perintah FFmpeg Anda.
🚪 Keluar dari Sesi (Tanpa Mematikan)
Setelah perintah Anda berjalan, Anda bisa keluar dari sesi screen
dan membiarkannya berjalan di latar belakang. Tekan tombol:
Ctrl+A
lalu D
(tekan D setelah melepas Ctrl+A)
📋 Melihat Daftar Sesi yang Aktif
Untuk melihat sesi screen
apa saja yang sedang berjalan:
screen -ls
🔄 Masuk Kembali ke Sesi
Untuk masuk kembali ke sesi yang sudah berjalan (misalnya yang bernama "streaming"):
screen -r streaming
🛑 Menghentikan Sesi Secara Total
- Masuk kembali ke sesi dengan
screen -r streaming
. - Hentikan proses yang berjalan di dalamnya (misalnya dengan menekan
Ctrl+C
untuk FFmpeg). - Setelah proses berhenti, ketik
exit
dan tekanEnter
- Jika sesi lebih dari satu, maka catat nomor ID nya, lalu kembali masuk ke screen -r nomorid, lalu ENTER.
- Setelah bisa masuk dan melihat progress streaming fmpeg yang berjalan, matikan dengan ketik ctrl+c
Posting Komentar