Skip to content

Ini adalah dokumentasi pribadi untuk merubah file video streaming dari RTSP menjadi HLS sehingga video dapat diakses melalui halaman web.

Notifications You must be signed in to change notification settings

buangyulianto/rtsp2HLS

Repository files navigation

comment2 Ini adalah dokumentasi pribadi bagaimana cara untuk menayangkan tampilan live dari cctv yang ada di dalam ruangan ke perangkat yang terhubung ke jaringan.

Latar belakang masalah:

Adanya kebutuhan untuk melihat kondisi ruangan secara realtime dari perangkat yang tersedia meskipun saat kita berada diluar ruangan. Dalam percobaan kali ini kita akan dapat melihat kondisi ruangan dari browser pada perangkat mobile.

Topologi:

Kamera - DVR - Switch jaringan - Laptop | VM

Spesifikasi:

  • Laptop Acer swift 3, core i7 1,8GHz, 8GB RAM, 1TB SSD, LAN terhubung ke jaringan
  • VM Linux Ubuntu 18.04_x64, 4vCPU, 4GB RAM, 20GB HDD, bridge LAN
  • Perangkat DVR SPC

    Requirements:

  • Mengetahui dasar jaringan
  • Mengetahui dasar perintah linux
  • Memiliki akses ke perangkat DVR
  • Memiliki URL RTSP dari perangkat DVR. Dalam hal ini sebagai contoh rtsp://admin:passworddvr@10.21.0.14:554/mode=real&idc=6&ids=1
  • Keterangan:
    Protokol: RTSP
    Username: admin
    Password: passworddvr
    IP address DVR: 10.21.0.14
    Port RTSP: 554
    ID kamera: idc=6
    Mode kamera: ids=1 (1 merupakan kode untuk stream, 2 untuk substream)

    Step-by-step:

    VM yang terhubung ke jaringan bisa menggunakan alat yang terpisah atau jadi satu dengan laptop yang terinstall pada aplikasi virtualbox.

    Test rtsp url diatas pada VLC player terlebih dahulu

  • Install VLC player pada windows
  • Klik menu Media > Open Network Stream
  • Masukan Network URL rtsp diatas
  • Kesimpulan: jika video tampil pada VLC player maka alamat rtsp diatas sudah benar dan siap di uji cobakan pada proses berikutnya.

    Menyiapkan VM sebagai server RTSP dan konverter ke HLS supaya dapat diakses pada browser

  • Install apps virtualbox
  • Create new VM Linux Ubuntu 18.04 dengan spesifikasi yang telah ditentukan diatas
  • Install Sistem Operasi Linux Ubuntu
  • Gunakan IP address statis 10.21.0.19 (silakan menyesuaikan dengan jaringan masing2)
  • Lakukan update dengan perintah sudo apt update && dist-upgrade
  • reboot
  • Login ke VM
  • Copy semua file dari halaman ini ke VM dengan path /opt, bisa dengan menggunakan wincp atau git dengan perintah git clone https://github.com/buangyulianto/rtsp2HLS.git
  • Pastikan permission 755 pada file rtsp-simple-server dan streamnow.sh
  • Edit file rtsp-simple-server.yml dan sesuaikan isinya dengan kondisi masing2
    Tampak code yang aktif untuk kamera 6 saja karena sifatnya hanyalah testing, meskipun jika pada DVR terdapat lebih dari satu kamera tetap dapat diproses dengan konsekuensi resource CPU yang meningkat.
    cam6:
      
      source: rtsp://admin:passworddvr@10.21.0.14:554/mode=real&idc=6&ids=1

    Arti kode:
    Pada kode diatas akan merubah url aslinya rtsp://admin:passworddvr@10.21.0.14:554/mode=real&idc=6&ids=1 menjadi url baru rtsp://10.21.0.19:8554/cam6 sesuai konfigurasi pada file rtsp-simple.server.yml
  • Jalankan file rtsp-simple-server dengan mengetik ./rtsp-simple-server dan biarkan proses ini tetap berjalan
  • Lakukan test url rtsp baru dengan menggunakan VLC player seperti langkah sebelumnya
    Kesimpulan: jika video tampil pada VLC player maka proses perubahan alamat rtsp diatas sudah benar dan siap diroses untuk konversi menjadi format HLS

    Konversi RTSP ke HLS

  • edit file stream/cam6.sh
  • lakukan koreksi pada rtst url dan sesuaikan dengan masing2
    ffmpeg -rtsp_transport tcp -i rtsp://10.21.0.19:8554/cam6 -c:v libx264 -preset ultrafast -pix_fmt yuv420p -tune zerolatency -b:v 900k -max_muxing_queue_size 1024 -maxrate 750k -bufsize 3000k -f hls -hls_time 1 -segment_time 5 -hls_list_size 3 -hls_flags delete_segments -hls_allow_cache 0 /opt/cam6.m3u8

    Arti kode
    Kode diatas merupakan proses merubah sumber video dengan protokol RTSP menjadi HLS dan akan menyimpannya ke folder /opt/cam6.m3u8 dimana nanti di dalam folder /opt akan ada file baru dengan extensi .ts dan .m3u8. File dengan extensi .m3u8 ini yang nanti bisa kita panggil dari halaman html.
  • Jalankan file streamnow.sh dengan mengetik ./streamnow.sh dan biarkan proses kedua ini tetap berjalan

    Menampilkan video pada browser

  • Install apache web server pada VM dengan perintah apt install apache2
  • Lakukan test apakah apache sudar berjalan dengan cara buka browser dan buka alamat IP VM http://10.21.0.19
  • Kesimpulan: jika muncul tampilan apache webserver berarti siap untuk proses selanjutnya
  • Rename folder original dengan perintah mv /var/www/html /var/www/html-orig
  • Buat link html baru dengan perintah ln -s /opt /var/www/html
  • Lakukan modifikasi pada halaman /opt/index.html seperlunya sebelum melakukan test dibawah
  • Lakukan test apakah halaman index.html sudah berjalan dengan cara buka browser dan buka alamat IP VM http://10.21.0.19
  • Kesimpulan: jika muncul halaman index dengan tombol video yang bisa di play maka semua konfigurasi telah sesuai.
  • About

    Ini adalah dokumentasi pribadi untuk merubah file video streaming dari RTSP menjadi HLS sehingga video dapat diakses melalui halaman web.

    Topics

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages