Nginx: Konfigurasi RTMP dengan HLS dan Dash
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
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;
        }
    }
}
Contoh lain untuk hls
location /hls/ {
    hls;  # Use the HLS handler to manage requests
    # serve content from the following location
    alias /var/www/video;
    # HLS parameters
    hls_fragment  	        8s;
    hls_buffers         	10 10m;
    hls_mp4_buffer_size 	1m;
    hls_mp4_max_buffer_size 5m;
}
Contoh sederhana untuk men-stream sebuah video .avi menggunakan ffmpeg:
ffmpeg -loglevel verbose -re -i movie.avi  -vcodec libx264
    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1
    -f flv rtmp://localhost:1935/hls/movie
atau
avconv -loglevel verbose -re -i movie.avi  -vcodec libx264
    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1
    -f flv rtmp://localhost:1935/hls/movie
ffmpeg -loglevel verbose -re -i source.mp4 -c:v libx264 -crf 19
    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1
    -f flv rtmp://localhost:1935/hls/movie
Default playlist address pada setup ini adalah:
http://server.ip/hls/StreamKey.m3u8
contoh
http://192.168.0.3/hls/movie.m3u8
StreamKey pada contoh ffmpeg commandline di atas adalah “movie”. Ingat, address rtmp address selalu rtmp://ip/ApplicationName/StreamKey.
Sisi Client
Di sisi client tampaknya kita perlu menginstalasi CODEC khususnya untuk mendukung H.264.
apt-get install gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg \ gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-bad-faad \ gstreamer1.0-plugins-bad-videoparsers gstreamer1.0-plugins-ugly \ totem-plugins totem-plugins-extra gstreamer0.10-plugins-bad \ gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly \ gnome-codec-install gstreamer0.10-plugins-bad \ gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-base \ gstreamer0.10-plugins-base-apps gstreamer0.10-plugins-good \ gstreamer0.10-plugins-ugly gstreamer0.10-x gstreamer0.10-tools