Cara Live Streaming Dari Server VPS Menggunakan FFMPEG

Table of Contents
Cara Live Streaming Dari Server VPS Menggunakan FFMPEG
Tampilan SSH menggunakan Mobaexterm


GUNTURSAPTA.COMSekedar catatan kecil buat pengingat atau dokumentasi pribadi yang sering lupa kalau ngga di tulis.

Langsung saja gaes jangan kelamaan intornya. Sebelumnya Instal FFMPEG di VPS

🐧 Untuk Ubuntu atau Debian

Ini adalah metode yang paling umum untuk VPS.

  1. Perbarui daftar paket Anda:
    sudo apt update
    
  2. 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.


Selanjutnya Buat Folder Videos di dalam VPS, lalu upload semua video kita kedalam satu folder dan nanti akan menjalankan semua file video itu. Kita bisa merename video nya dengan nama 1.mp4,2.mp4, 3.mp4 (ini hanya agar memudahkan saja).

Agar memudahkan dalam menjalankan perintah FFMPEG nya kita akan buat Playlist dari semua video di dalam folder Videos itu.

Skrip ini akan secara otomatis membuat sebuah file teks yang berisi daftar semua video di dalam folder, lalu FFmpeg akan memutar video berdasarkan daftar tersebut secara berurutan.

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.

  1. Gunakan nano untuk membuat file skrip baru:
    nano buat_playlist.sh
    
  2. 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"
    
  3. Simpan dan tutup file (Ctrl+X, lalu Y, lalu Enter).
  4. 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 menggunakan concat 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

  1. Masuk kembali ke sesi dengan screen -r streaming.
  2. Hentikan proses yang berjalan di dalamnya (misalnya dengan menekan Ctrl+C untuk FFmpeg).
  3. Setelah proses berhenti, ketik exit dan tekan Enter
  4. Jika sesi lebih dari satu, maka catat nomor ID nya, lalu kembali masuk ke screen -r nomorid, lalu ENTER.
  5. Setelah bisa masuk dan melihat progress streaming fmpeg yang berjalan, matikan dengan ketik ctrl+c

Posting Komentar

Cara Live Streaming Dari Server VPS Menggunakan FFMPEG