Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器
Posted 奔跑的大白啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器相关的知识,希望对你有一定的参考价值。
前言
上篇说到基于MacOS的服务器搭建,是自己在本地电脑上的小尝试,真正用的时候还是要上linuxOS 的,下面来看下ubuntu系统的搭建过程。
正文
环境准备
操作系统: Ubuntu 16.04 x86_64
软件版本:
nginx-1.9.7 注意下载tar.gz 格式的(http://nginx.org/download/)
注意: 因为要重新编译,所以下载源码包
Nginx-http-flv-module-master(https://github.com/winshining/nginx-http-flv-module)
FFmpeg(cli命令行安装):sudo apt install ffmpeg
编译&安装nginx
1、进入nginx目录
cd /usr/local/src/nginx-1.9.7
2、将nginx-http-flv-module-master 编译到nginx中
sudo ./configure --add-module=/usr/local/src/nginx-http-flv-module-master
3、编译及安装
# 在nginx 目录下执行
sudo make
sudo make install
配置nginx.conf
events
worker_connections 1024;
# 新增部分---start----
# 1935 和 myapp 可自定义
rtmp
server
listen 1935;
application myapp
# 开启实时流模式
live on;
record off;
# 新增部分---end----
server
listen 80;
server_name localhost;
# 新增部分-----start----------
# rtmpLive 自定义
location /rtmpLive
flv_live on;
chunked_transfer_encoding on; #open 'Transfer-Encoding: chunked' response
add_header 'Access-Control-Allow-Credentials' 'true'; #add additional HTTP header
add_header 'Access-Control-Allow-Origin' '*'; #add additional HTTP header
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
add_header 'Cache-Control' 'no-cache';
# 新增部分-----end----------
location /
root html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html
root html;
启动Nginx
sudo /usr/local/nginx/sbin/nginx -c /usr/local/src/nginx-1.9.7/conf/nginx.conf
注意: 启动nginx时用编译时nginx提示的bin文件,具体路径看nginx编译时的提示信息
如下图:
安装FFmpeg
sudo apt install ffmpeg
# 查看ffmpeg版本
fmpeg -version
遇到问题
pcre not found
解决:
sudo apt-get install libpcre3 libpcre3-dev
openssl not found
解决:
sudo apt-get install openssl libssl-dev
测试效果
1、服务器上执行推流:
# rtsp://xxxx 为可正常预览视频流的rtsp协议地址,可以用vlc测试
# 24 为自定义部分
ffmpeg -i rtsp://xxxx -vcodec copy -acodec copy -f flv -s 800x600 rtmp://ip:1935/myapp/24
2、视频流访问地址(http和rtmp两种协议)
# 80 为nginx.conf配置监听端口
# rtmpLive 为nginx.conf中server中配置location部分
# myapp 为nginx.conf配置中rtmp中的application部分 ,1935为nginx.conf配置中rtmp中的监听端口
# 24为流名称,自定义
http://IP:80/rtmpLive?port=1935&app=myapp&stream=24
rtmp://IP:1935/myapp/24
3、访问效果
参考链接
https://blog.csdn.net/somanlee/article/details/69808788
https://github.com/winshining/nginx-http-flv-module
https://blog.csdn.net/string_kai/article/details/100598268#comments_13464335
https://www.ruanyifeng.com/blog/2020/01/ffmpeg.html
总结
接受过去和现在的模样,才会有能量去追寻自己的未来。
以上是关于Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器的主要内容,如果未能解决你的问题,请参考以下文章
Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器