Use nginx to build a Streaming Media Server in ubuntu to implement on-demand video streaming and tung.pdf

Source: Internet
Author: User

Use nginx to build a Streaming Media Server in ubuntu to implement on-demand video streaming and tung.pdf

First, let's see how to implement on-demand video. On-demand video streaming supports flv files, H264 encoded videos, and ACC-encoded audio mp4 files:
Step 1: create a separate directory (because of the large number of software, it is easy to confuse) and download the required software:
We need to download nginx, pcre, zlib, openssl, and nginx-rtmp-module

 1 mkdir work 2  3 cd work 4  5 wget http://nginx.org/download/nginx-1.10.3.tar.gz 6  7 wget http://zlib.net/zlib-1.2.11.tar.gz 8  9 wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz10 11 wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz12 13 wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

 

Step 2: Decompress these four files:

Tar-zxvf file name

 

Step 3: Compile and install nginx:

./configure --prefix=/usr/local/nginx --with-debug --with-pcre=../pcre-8.40 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2k --add-module=../nginx-rtmp-module-mastermakesudo make install

 

Step 4: Enter/usr/local/nginx/conf, configure the nginx. conf file, and add the following content at the end of the file:

Rtmp {server {listen 1935; application vod {play/var/flvs; # specify the path for storing the video file} application vod_http {# myserver.com and the server address. If only local playback is performed, enter 127.0.0.1: the port number. The http listening port in the port configuration file is the same as play http://myserver.com/vod;} application vod_mirror {play/var/local_mirror http://myserver.com/vod ;}}}

Example full version:

#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}rtmp {    server {        listen 1935;    application vod {            play /video_test;    }    application vod_http {            play http://192.168.1.102:8080/vod;    }    application vod_mirror {            # try local location first, then access remote location        play /var/local_mirror http://192.168.1.102:8080/vod;    }    }}http {    include       mime.types;    default_type  application/octet-stream;    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';    #access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    server {        listen       8080;        server_name  localhost;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   html;            index  index.html index.htm;        }        #error_page  404              /404.html;        # redirect server error pages to the static page /50x.html        #        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }        # proxy the PHP scripts to Apache listening on 127.0.0.1:80        #        #location ~ \.php$ {        #    proxy_pass   http://127.0.0.1;        #}        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000        #        #location ~ \.php$ {        #    root           html;        #    fastcgi_pass   127.0.0.1:9000;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;        #    include        fastcgi_params;        #}        # deny access to .htaccess files, if Apache's document root        # concurs with nginx's one        #        #location ~ /\.ht {        #    deny  all;        #}    }    # another virtual host using mix of IP-, name-, and port-based configuration    #    #server {    #    listen       8000;    #    listen       somename:8080;    #    server_name  somename  alias  another.alias;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}    # HTTPS server    #    #server {    #    listen       443 ssl;    #    server_name  localhost;    #    ssl_certificate      cert.pem;    #    ssl_certificate_key  cert.key;    #    ssl_session_cache    shared:SSL:1m;    #    ssl_session_timeout  5m;    #    ssl_ciphers  HIGH:!aNULL:!MD5;    #    ssl_prefer_server_ciphers  on;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}}

Then, go to the sbin directory at the same level as the conf folder and run:

sudo ./nginx

Now, the server is set up to enable Vod.

VOD test:
Play the file. flv video file in/video_test:

ffplay rtmp://localhost/vod//file.flv

You can use the VLC player or ffplay (ffmpeg needs to be installed). You can install VLC on Baidu.

Ffmpeg installation:

sudo apt-add-repository ppa:jon-severinsson/ffmpegsudo apt-get updatesudo apt-get install ffmpeg

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.