Difference between revisions of "Nginx: Konfigurasi RTMP dengan HLS dan Dash"

From OnnoWiki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 66: Line 66:
 
     }
 
     }
 
  }
 
  }
 +
 +
 +
 +
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:
 
Contoh sederhana untuk men-stream sebuah video .avi menggunakan ffmpeg:
  
  # ffmpeg -loglevel verbose -re -i movie.avi  -vcodec libx264
+
  ffmpeg -loglevel verbose -re -i movie.avi  -vcodec libx264
  #    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1
+
    -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1
  #    -f flv rtmp://localhost:1935/hls/movie
+
    -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
  
  
Line 78: Line 109:
  
 
  http://server.ip/hls/StreamKey.m3u8  
 
  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.
 
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
  
  
Line 91: Line 136:
 
* http://www.helping-squad.com/category/server/
 
* http://www.helping-squad.com/category/server/
 
* http://www.helping-squad.com/nginx-rtmp-hls-or-dash-streaming/
 
* http://www.helping-squad.com/nginx-rtmp-hls-or-dash-streaming/
 +
* http://nginx.com/products/streaming-media-delivery/

Latest revision as of 07:31, 2 November 2014

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


Referensi