linux nginx搭建

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.安装nginx

1.解压安装包

分别解压nginx,pcre,openss,nginx-rtmp-module,nginx_mod_h264_streaming到/root/work/nginx_download目录下,进入nginx解压后的目录nginx-1.6.2

2.安装nginx

./configure\

--prefix=/root/work/nginx_download/nginx\

--with-pcre=../pcre-8.36\

--with-http_stub_status_module\

--with-http_ssl_module\

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

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

--with-debug --with-openssl=../openssl-1.0.1 j

make && make install

安装成功后,/root/work/nginx_download/nginx\下会有相关软件生成

出错解决方法:/vblittleboy/article/details/40616405

3.配置nginx

请将文件安装包\nginx\配置文件\nginx_rtmp.conf 拷贝到nginx/conf下

4.启动nginx

./sbin/nginx -c conf/nginx_rtmp.conf

正常运行后,可以发现有三个nginx进程

5.推流

利用ffmpeg可以将视频文件已rtmp格式推送到nginx服务器中。

推送流命令如下:./ffmpeg -re -i 7.mp4 -c copy -f flv rtmp://192.168.1.102/hls/1

6.观看效果

在/tmp/app下存在切片生成的ts流,通过hls协议就可以以点播的形式实现直播技术。

可以在pc上以及安卓系统中通过rtmp协议观看。

也可以在ios系统上通过hls协议观看。

相比,hls协议观看延迟要大些,大概延迟在1分钟左右。

7.nginx配置文件(修改配置文件时了解)

参考文档:

/eguid_1/article/details/51821297

#Nginx用户及组:用户组。window下不指定

user nginx nginx ;

#通常等于CPU数量或者2倍于CPU。

worker_processes 5

进程数改成1,否则客户端点播有问题

#错误日志查看出问题时日志位置

error_log logs/error.log;

#pid(进程标识符):存放路径。

pid logs/nginx.pid;

#指定进程可以打开的最大描述符:数目。

worker_rlimit_nofile 204800;

这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

events {

#工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行

4096;

hls_continuous

语法:hls_continuous on|off

上下文:rtmp, server, application

描述:切换HLS 连续模式。这一模式下HLS 序列号由其上次停止的最后时间开始。老的分段保留下来。默认为off。

record off:什么都不录制

record all:录制所有

record video:只录制视频

record audio:只录制音频

record keyframes:只录制关键帧

record maual:通过接口控制录制的启动停止

可以进行组合,比如:record video keyframes:就是只录制视频关键帧

#每一个application下都可以设置录制位置,时长等信息

rtmp

{

application live1

{

}

application live2

{

}

application hls

{

}

}

此段url为:rtmp://*/live/*

http://*/hls/*

hls_playlist_length 300s,代表了m3u8中ts流总长度,同时存储的ts总长度也在五分中左右。

hls关键字不会因为live改变。

application live{

live on;

hls on;

hls_path /tmp/app;

hls_fragment 10s;

hls_playlist_length 300s;

hls_sync 100ms;

meta copy;

#recorder chunked {

# record all;

# record_max_size 6200K;

# record_interval 10s;

# record_suffix -%Y-%m-%d-%H_%M_%S.flv;

# record_path /tmp/video;

# }

# recorder all {

# record all;

# record_suffix -%Y-%m-%d-%H_%M_%S.flv;

# record_max_size 6200000K;

# record_path /tmp/app3;

# }

}

1、recorder块:可以支持多方录制。

创建录制块,可以在application块中添加多个recorder记录,recorder块中可以使用所有录制指令,recorder块继承application块中的录制指令。(所有record开头的都是录制指令)。

目前遇到的问题:除了hls录制外,其他方式不支持分片。

貌似hls直播只能是http://*/hls/

#录制信息参考

application hls {

live on;

hls on;

hls_path /tmp/app; //录制位置(目录需要自己提前创建)

hls_fragment 10s; //每个ts平均大小

hls_playlist_length 60s; //时移时长

hls_sync 100ms; //音画同步差值

meta copy;

recorder chunked {

record all;

相关文档
最新文档