Linux(ubuntu)搭建基于nginx-http-flv-module的视频推拉流服务器

it2025-03-18  9

前言

     上篇说到基于MacOS的服务器搭建,是自己在本地电脑上的小尝试,真正用的时候还是要上linuxOS 的,下面来看下ubuntu系统的搭建过程。

正文

环境准备

操作系统: Ubuntu 16.04 x86_64 软件版本: Nginx-1.9.7 (http://nginx.org/download/) 注意: 因为要重新编译,所以下载源码包 Nginx-http-flv-module-master(https://github.com/winshining/nginx-http-flv-module) FFmpeg(cli命令行安装) 软件目录(此处放目录截图):

编译&安装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

总结

     接受过去和现在的模样,才会有能量去追寻自己的未来。

最新回复(0)