常常搭建nginxserver,可是好像每次的情况都不同,这次具体记录这个过程:

平台:unbutu 10.04 内核:2.6.32-33-generic

1, 编译环境搭建。

sudo apt-get install g++

sudo apt-get -y install autoconf automake build-essential libass-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev libssl-dev

2, 建立例如以下下载脚本:getfile.sh

-------------------getfile.sh start here---------------------------------------------------

wget http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz

wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz

wget http://nginx.org/download/nginx-1.5.9.tar.gz

wget http://zlib.net/zlib-1.2.8.tar.gz

wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz

git clone https://github.com/arut/nginx-rtmp-module.git

tar xvf pcre-8.32.tar.gz

tar xvf openssl-1.0.1e.tar.gz

tar xvf nginx-1.5.9.tar.gz

tar xvf zlib-1.2.8.tar.gz

tar xvf nginx_mod_h264_streaming-2.2.7.tar.gz

-------------------getfile.sh end here---------------------------------------------------



3, 编译openssl,这部是必须的,否则后面编译会fail的

cd openssl-1.0.1e #:notice the version

编译静态库



sudo chmod u+x ./config

./config --prefix=/usr/local --openssldir=/usr/local/opensll

make

sudo make install



编译动态库



./config shared --prefix=/usr/local --openssldir=/usr/local/opensll

make clean

make

sudo make install







4, 在nginx-1.5.9建立配置文件脚本nginx_configure.sh

----------------------------nginx_configure.sh start here-------------------------------------------------

#!/bin/sh



./configure \

--prefix=/usr/local/nginx/ \

--add-module=../nginx-rtmp-module \

--with-http_ssl_module \

--add-module=../nginx_mod_h264_streaming-2.2.7 \

--with-pcre=../pcre-8.32 \

--with-zlib=../zlib-1.2.8  \

--with-http_flv_module \

--with-http_stub_status_module \

--with-http_mp4_module  \

--with-cc-opt='-O3'

----------------------------nginx_configure.sh end here-------------------------------------------------



5, 进入nginx-1.5.9

运行./nginx_configure.sh

make -j8

出错

-------------------------------the error log start here----------------------------------------------------

In file included from ../nginx_mod_h264_streaming-2.2.7/src/ngx_http_h264_streaming_module.c:2:

../nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c: In function ‘ngx_streaming_handler’:

../nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c:158: error: ‘ngx_http_request_t’ has no member named ‘zero_in_uri’

make[1]: *** [objs/addon/src/ngx_http_h264_streaming_module.o] Error 1

make[1]: *** Waiting for unfinished jobs....

make[1]: Leaving directory `/media/zangcf/works/works/nginx/x86/nginx_x86/nginx-1.5.9'

make: *** [build] Error 2

-------------------------------the error log end here-------------------------------------------------------

gedit ../nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c



找到例如以下

  /* TODO: Win32 */

  if (r->zero_in_uri)

  {

    return NGX_DECLINED;

  }

凝视掉



make -j8



pass



sudo make install



6, 改动config文件

sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

sudo gedit /usr/local/nginx/conf/nginx.conf

--------------------------nginx.conf start here----------------------------------------------------------------------

user  root;

worker_processes  2;



#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;

}





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      80 default;

        server_name  localhost;

        autoindex            on;

        autoindex_exact_size on;

        root    /var/wwwroot;

        index   index.html index.htm index.php;



        #charset koi8-r;



        #access_log  logs/host.access.log  main;



        #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$ {

            fastcgi_index  index.php;

            client_max_body_size 64m;

            fastcgi_pass   unix:/data/data/android.php-fpm/tmp/php-fpm.socket;

            fastcgi_param  SCRIPT_FILENAME  /data/data/android.wwwroot$fastcgi_script_name;

            include        fastcgi_params;

        }



       location ~ \.flv$ {

                         flv;

                        }

       location ~ \.mp4$ {

                         mp4;

                        }





        # 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  default;

    #    listen       somename:8080;

    #    server_name  somename  alias  another.alias;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}





    # HTTPS server

    #

    #server {

    #    listen     443 default;

    #    server_name  localhost;



    #    ssl                  on;

    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;



    #    ssl_session_timeout  5m;



    #    ssl_protocols  SSLv2 SSLv3 TLSv1;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers   on;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}



}





rtmp {

    server {

        listen 1935;



        chunk_size 4096;



        application myapp {

            live on;

        }

    }

}



----------------------------------------------nginx.conf end here--------------------------------------



7, 測试

Ubuntu x86 64 settup nginx rtmp server的更多相关文章

  1. (转)Nginx+rtmp+ffmpeg搭建流媒体服务器

    (1)下载第三方扩展模块nginx-rtmp-module # mkdir module && cd module //创建一个存放模块的目录 # wget https://githu ...

  2. Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务

    1. 背景 不知不觉笔者来到流媒体部门已经一年半多了,积攒了不少的流媒体知识,但平时工作也比较忙,很少进行总结性的梳理,最近准备花几个周末时间写一个流媒体系列的实践文章,也算是给自己做总结的同时帮助有 ...

  3. Ubuntu中使用Nginx+rtmp搭建流媒体直播服务

    一.背景 本篇文章是继上一篇文章<Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务>文章而写,在上一篇文章中我们搭建了一个点播服务器,在此基础上我们再搭建一个直播服务器, ...

  4. 转:Nginx RTMP 功能研究

    看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.cs ...

  5. Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能

    2019.3.22更新 最新的nginx-1.15.9可与openssl1.1.1兼容了 以下原文: 这个东西我眼馋挺久了,最近终于试玩了一下,感觉很好玩,在搭建的过程在也遇到一些坑,这里总结一下 安 ...

  6. 使用 ffmpeg nginx rtmp 搭建实时流处理平台

    环境: ubuntu 16.04 问题引入: 使用 opencv 获取摄像头数据帧, 进行处理之后(如进行 keypoint 识别), 将 opencv 中图像的 Mat类型转化为 ffmpeg 的 ...

  7. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    公司最近在做视频直播的项目,我这里分配到对直播的视频进行录制,录制的方式是通过rtmpdump对rtmp的视频流进行录制 前置的知识 ffmpeg: 用于实现把录屏工具发出的视频和音频流,转换成我们需 ...

  8. Mac上搭建Nginx + rtmp

    介绍 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 安装步骤 1.先安装brew: /usr/bin/ru ...

  9. Mac上搭建直播服务器Nginx+rtmp

    简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 步骤安装 1.安装Homebrow Homebrew简 ...

随机推荐

  1. (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)

    openssl  rsa      是RSA对称密钥的处理工具 openssl  pkey   是通用非对称密钥处理工具,它们用法基本一致,所以只举例说明openssl rsa. 它们的用法很简单,基 ...

  2. JavaScript基础对象---Number

    一.创建Number实例对象 /** * new Number(value); * value 被创建对象的数字值 * * Number 对象主要用于: 如果参数无法被转换为数字,则返回 NaN. 在 ...

  3. LeetCode(27)Remove Element

    题目 Given an array and a value, remove all instances of that value in place and return the new length ...

  4. Eclipse设置反编译插件

    有些项目我们想看看引入的包的源码的时候,因为打包好的.class文件的内容我们是看不懂的,但是又懒得去找源码文件的时候,就会用到反编译工具. 步骤: 1.安装反编译插件. 2.设置使用的反编译工具. ...

  5. 「BZOJ1537」Aut – The Bus(变形Dp+线段树/树状数组 最优值维护)

    网格图给予我的第一反应就是一个状态 f[i][j] 表示走到第 (i,j) 这个位置的最大价值. 由于只能往下或往右走转移就变得显然了: f[i][j]=max{f[i-1][j], f[i][j-1 ...

  6. JustinMind

    看到公司老板新请来的兼职产品经理,在讲项目功能设计图是,用的是justinmind这个工具,觉得很好奇,默默记下,或许以后能用到.下面是搜的简单的介绍,只是为了记住这个工具名字,现并没有想要深入探究这 ...

  7. HDU 4436 str2int

    str2int Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on HDU. Original ID: 4 ...

  8. 80. Hibernate 5.0命名策略使用naming-strategy 不起作用【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 事情的起因:一不小心从1.3.3升级到了1.4.0版本,结果就碰到了各种悲催的事情了,好吧,Hibernate5.0的新特性就是其中一个坑,我们会发现我们配置的namin ...

  9. js清除非数字输入

    function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 ...

  10. xftp向ubuntu传输文件错误

    xftp向ubuntu传输文件错误原因: 登陆用户对文件夹没有权限. 解决方法:授予权限 chmod 777 该目录名