通过nginx搭建一个基于http-flv的直播流媒体服务器
#新建modules文件夹mkdir /usr/local/nginx/modules#上传winshining-nginx-http-flv-module-master.zip至/usr/local/nginx/modules,并进行解压cd /usr/local/nginx/modulesunzip winshining-nginx-http-flv-module-master.zip#进入nginx目录添加该模块并且编译安装cd /data/nginx/nginx-1.16.0./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/modules/nginx-http-flv-modulemake && make install
添加nginx配置
worker_processes 1;events {worker_connections 1024;}rtmp {server {listen 1935; # 接受推流的端口号chunk_size 8192; # 单一推流数据包的最大容量?application myapp { # myapp 模块,可以自行更换名字live on; # 打开直播meta off; # 为了兼容网页前端的 flv.js,设置为 off 可以避免报错gop_cache on; # 支持GOP缓存,以减少首屏时间allow play all; # 允许来自任何 ip 的人拉流}}}http {include /usr/local/nginx/conf/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 8885; # http 服务的端口server_name localhost;location /live { # 拉流时的 uri ,可以自行修改flv_live on; # 打开 http-flv 服务chunked_transfer_encoding on;add_header 'Access-Control-Allow-Origin' '*'; # 允许跨域add_header 'Access-Control-Allow-Credentials' 'true';}}}
推流地址:rtmp://localhost:1935/myapp/mystream
拉流地址:http://localhost:8885/live/?port=1935&app=myapp&stream=mystream
其中的myapp
指的是配置文件(nginx.conf)中rtmp
块指定的application
,一个rtmp server
可以拥有多个application
示例地址中的mystream
可以由用户自己指定,只要拉流地址的参数stream
对应的上就行了