Kupas Tuntas Cara Membuat Live Streaming Linux NGINX - RTMP dan FFMPEG
Engine X |
Assalammualaikum,wr,wb.
Segala puji bagi allah tuhan semesta alam, yang memberikan saya kesempatan untuk membuat artikel ini, dan tidak lupa pula salawat beriring salam, kepada baginda Muhammad SAW, yang membawa rahmat bagi seluruh semesta alam.
Baiklah, saya akan memberikan sedikit Tutorial bagaimana membuat sebuah Server Streaming Menggunakan Nginx-RTMP dan FFmpeg. seperti yang kita ketahui, mungkin banyak server streaming dengan menggunakan Metode lain, dan Menggunakan Cara Lain,semoga cara yang saya lakukan ini, dapat memudahkan anda dalam membuat Streaming Server menggunakan Nginx-Rtmp, sebelum kita membahas lebih jauh, kita harus tau dulu Apa itu Streaming, Nginx-Rtmp, Ffmpeg.
Apa Itu Streaming ?
Di
zaman yang sudah maju ini, kita sering kali mendengarkan kata streaming. Pasti di pikiran kita tertuju
pada sebuah website yang sangat popular , yaitu youtube. Biasanya ketika sebuah
internet service provider menawarkan produk paket internetnya terdapat “streaming no buffering”. Ketika kita
membuka sebuah video melalui internet tanpa kita harus mendownloadnya, langsung
diputar pada web yang menyediakan video tersebut, itulah yang dinamakan Streaming. Kita melalukan request
terhadap web penyedia video dan kemudian web penyedia video tersebut melalukan
request dengan server, dimana tempat video tersebut berada.
Sumber: Buku Hacking Streaming
Apa itu Nginx-RTMP ?
Nginx ( dibaca engine x )
adalah sebuah aplikasi http server yang saat ini mulai banyak digunakan untuk
pembuatan webserver, bahkan dengan keamanan yang tinggi telah banyak layanan
webserver menggunakan Nginx sebagai aplikasi http server nya. Namun ada yang
menarik dari nginx ini yaitu, bahwa nginx ini dapat dijadikan server media
streaming RTMP flash (Andri johandri) .
Apa Itu FFmpeg ?
FFmpeg adalah program
komputer yang dapat merekam, mengkonversikan dan streaming audio dan video
digital dalam berbagai format. FFmpeg merupakan aplikasi command line yang
terdiri dari kumpulan pustaka perangkat lunak bebas / open source. Termasuk
libavcodec, library untuk audio codec / video codec yang digunakan oleh
beberapa proyek lain, dan libavformat, library untuk audio / video mux
kontainer dan demux container.
Alat yang diperlukan untuk Membuat Server Streaming:
- Sistem Operasi Linux (Ubuntu/Debian/Raspbian)
- Raspberry Pi
- Kamera SLR / Smartphone
- Access Point
- 1 Unit Server (Ubuntu/Debian/Raspbian)
Baiklah langsung saja kita ikuti langkah-langkah berikut ini:
Hal yang pertama kita lakukan adalah, menginstal Nginx dan Modul Nginx-RTMP
Buka Terminal Linux Anda (Ctrl+Alt+T)
Lakukan Update pada linux kita
apt-get update
Install depedencies yang diperlukan
apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
sekarang kita dwonload Nginx dan Module Nginx-RTMP nya
wget http://nginx.org/download/nginx-1.4.2.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
jika sudah selesai download, Extract File nya
tar -zxvf nginx-1.4.2.tar.gz
unzip master.zip
setelah itu masuk kedirekori Nginx
cd nginx-1.4.2
Sekarang kita Compile Nginx nya secara manual
./configure --add-module=../nginx-rtmp-module-master
make
make install
jika sudah selesai dicompile, sekarang kita edit nginx.conf, sesuaikan saja dengan yang ini, atau Copy Paste aja. nano /usr/local/nginx/conf/nginx.conf
#user nobody; worker_processes 1; error_log logs/error.log debug; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8080; server_name localhost; # sample handlers #location /on_play { # if ($arg_pageUrl ~* localhost) { # return 201; # } # return 202; #} #location /on_publish { # return 201; #} #location /vod { # alias /var/myvideos; #} # rtmp stat location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { # you can move stat.xsl to a different location root /usr/build/nginx-rtmp-module; } # rtmp control location /control { rtmp_control all; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } rtmp { server { listen 1935; ping 30s; notify_method get; application live { live on; # sample play/publish handlers #on_play http://localhost:8080/on_play; #on_publish http://localhost:8080/on_publish; # sample recorder #recorder rec1 { # record all; # record_interval 30s; # record_path /tmp; # record_unique on; #} # sample HLS #hls on; #hls_path /tmp/hls; #hls_sync 100ms; } # Video on demand #application vod { # play /var/Videos; #} # Video on demand over HTTP #application vod_http { # play http://localhost:8080/vod/; #} } }
Setelah disamakan, kita jalankan Nginx
/usr/local/nginx/sbin/nginx
Cek Port Nginx dan Nginx-RTMP apabila Port 80 dan 1935 sudah ada, berarti Nginx anda sudah berhasil diinstal.
Sekarang kita Install FFmpeg
Kita buat dulu folder compile aplikasi FFMPEG.
mkdir ~/folderffmpeg
Sekarang, kita Compile library Audio Video (AV) yang dibutuhkan untuk FFMpeg, disini lumayan Banyak, jadi harap sabar dalam mengcompile library nya masing-masing.
YASM LIBRARYcd ~/folderffmpegwget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gztar xzvf yasm-1.2.0.tar.gzcd yasm-1.2.0./configuremakesudo make installsudo make distclean
LIBX264 UNTUK VIDEO CODEC H264cd ~/folderffmpegwget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2tar xjvf last_x264.tar.bz2cd x264-snapshot*./configure --enable-staticmakesudo make installsudo make distclean
LIBFDK-AAC UNTUK CODEC AUDIO AACcd ~/folderffmpegwget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master unzip fdk-aac.zipcd mstorsjo-fdk-aac*autoreconf -fiv./configure --disable-sharedmakesudo make installsudo make distclean
LIBMP3LAME UNTUK CODEC AUDIO MP3sudo apt-get install nasmcd ~/folderffmpegwget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gztar xzvf lame-3.99.5.tar.gzcd lame-3.99.5./configure --enable-nasm --disable-sharedmakesudo make installsudo make distclean
LIBOPUS UNTUK CODEC AUDIO OPUScd ~/folderffmpegwget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gztar xzvf opus-1.1.tar.gzcd opus-1.1./configure --disable-sharedmakesudo make installsudo make distclean
LIBVPX UNTUK CODEC VIDEO WEBM (VP8/VP9)cd ~/folderffmpegwget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2tar xjvf libvpx-v1.3.0.tar.bz2cd libvpx-v1.3.0./configure --disable-examplesmakesudo make installsudo make clean
COMPILE FFMPEGcd ~/folderffmpegwget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2tar xjvf ffmpeg-snapshot.tar.bz2cd ffmpeg./configure --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grabmakesudo make installsudo make distcleanhash -r
Selesai sudah kita mengcompile FFmpeg, yang begitu banyak Library yang harus kita compile. jika tidak ada error, maka kita sudah bisa menjalankan Live Streaming mau dari Smartphone (Android/Ios) atau PC.
Untuk pengetesan, buatlah folder /var/live, kenapa di folder tersebut ? karena kita akan melakukan streaming live dengan inputan video, jadi kita masukan video ke dalam folder tersebut. untuk membuat folder, lakukan perintah berikut:
mkdir /var/live
masukan video kedalam folder live disini, saya memasukan video dengan format .mp4 ke dalam folder /var/live/
setelah video kita masukan, maka sekarang kita lakukan streaming menggunakan Ffmpeg
ffmpeg -re -i /var/live/tes.mp4 -c copy -f flv rtmp://localhost/live/mystream
sekarang kita jalankan menggunakan Ffplay
ffplay rtmp://localhost/live/mystream
maka akan muncul seperti ini:
Live Streaming Dengan Input Video |
Selesai, Semoga Bermanfaat..
Thanks to:
Om Jo (Andri johandri)
Babe Onno (Onno W Purbo)
0 Response to "Kupas Tuntas Cara Membuat Live Streaming Linux NGINX - RTMP dan FFMPEG"
Post a Comment