Nginx: Konfigurasi RTMP dengan HLS dan Dash
Untuk mendukung HLS & Dash, kita perlu mengubah sedikit konfigurasi nginx.conf
vi /usr/local/nginx/conf/nginx.conf
ubah agar
http { server { listen 80; location /hls { # Serve HLS fragments types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; } location /dash { # Serve DASH fragments root /tmp; add_header Cache-Control no-cache; } } }
Kita butuh menambahkan folder tmp/dash and tmp/hls di root folder untuk nginx.
mkdir /tmp/hls mkdir /tmp/dash chmod -Rf 777 /tmp/hls chmod -Rf 777 /tmp/dash
Juga di bagian rtmp:
rtmp { server { listen 1935; chunk_size 4000; application live { live on; record off; } application hls { live on; hls on; hls_path /tmp/hls; } # MPEG-DASH is similar to HLS application dash { live on; dash on; dash_path /tmp/dash; } } }
That is pretty much all we need. In his example configuration arut also shows us a simple ffmpeg configuration to stream a movie to either of the applications:
# ffmpeg -loglevel verbose -re -i movie.avi -vcodec libx264 # -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 # -f flv rtmp://localhost:1935/hls/movie
Now you are ready to go and test the stream on your mobile. There are different ways to playback the stream so you will probably want to google the best solution for your system (Android/iOS/WP).
Default playlist address in this setup is:
http://server.ip/hls/StreamKey.m3u8
The StreamKey in our example ffmpeg commandline was “movie”. Remember, the rtmp address is always rtmp://ip/ApplicationName/StreamKey. If you have questions, as always, post them below!