基于Nginx搭建点播直播服务器

实现直播和点播离不开服务器⽀持,可以使用开源的NGINX服务器搭建直播和点播服务。
当然,NGINX本身是不⽀持视频的,需要为NGINX增加相应的RTMP模块进行支持。

1、下载nginx和rtmp模块

bash 复制代码
# nginx
wget ht
tp://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
# nginx-http-flv-module
wget https://github.com
/winshining/nginx-http-flv-module/archive/master.zip
unzip master.zip

2、使用源码进行编译

bash 复制代码
# 安装操作系统的依赖项
sudo yum install gcc make pcre pcre-devel openssl openssl-devel make curl wget unzip vim
# 在nginx中进⾏配置
./configure --add-module=../nginx-http-flv-module-master
# 编译构建产品 如无权限 则输入 sudo make && sudo make install
make & make install 

由于C语⾔的编译⾮常依赖服务器的各种类库,所以很容易出现各种各样的问题。
如果⼀切正常,那么就会在/usr/local/nginx目录下搭建起nginx服务,使用nginx -v,能看到版本输出,就表示,nginx服务安装成功了。
如果命令不存在 当前用户环境下仍然无法找到 nginx 命令。这通常是因为 /usr/local/nginx/sbin 目录没有被添加到系统的 PATH 环境变量中

解决方法
临时解决方案:直接使用完整路径来运行 nginx 命令。

bash 复制代码
/usr/local/nginx/sbin/nginx -v

永久解决方案:
将 /usr/local/nginx/sbin 添加到系统的 PATH 环境变量中。
打开 ~/.bash_profile 文件:

bash 复制代码
vi ~/.bash_profile

添加 Nginx 的路径到 PATH:

在文件末尾添加以下内容:

bash 复制代码
export PATH=$PATH:/usr/local/nginx/sbin

保存并退出:

按 Esc 键返回普通模式。

输入 :wq 并按 Enter 键保存更改并退出 vi。

使配置文件生效:

bash 复制代码
source ~/.bash_profile

验证配置:

bash 复制代码
# root 权限查找 nginx 可执行文件的位置
which nginx
nginx -v

3、测试点播服务

点播服务需要将视频⽂件上传到服务器中。在服务器的/usr/local/nginx/vod⽬录中提前上传⼀个xxx.mp4视频文件。
需要网络demo资源的自行下载https://mirror.aarnet.edu.au/pub/TED-talks/

https://media.w3.org/2010/05/sintel/trailer.mp4

随便下一个测试用
然后进⼊/usr/local/nginx/conf ⽬录下修改nginx.conf,添加以下⽚段

XML 复制代码
rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application vod{
            play /usr/local/nginx/vod;
        }
    }
}

修改配置文件后,使⽤nginx -t指令检查配置⽂件的正确性。
如果检查没有问题,就可以使⽤ nginx指令启动nginx服务。正常的话,访问服务器的80端口,就能够看到 nginx的页面。
客户端需要使⽤流媒体播放器查看视频。VLC就是⼀个免费开源的流媒体播放器。事实上很多商用的播放器都是根据VLC修改得到。
在VLC中打开⼀个网络地址: rtmp://192.168.xx.xxx:1935/vod/xxx.mp4 (填上自己的ip、视频名称) 就可以直接播放服务器上的视频文件

碰到无法上传视频的参考这个帖子
virtualbox安装centos7,共享文件夹及其正确的挂载,网络与IP设置完整教程_virtual box centos7自动挂载-CSDN博客

bash 复制代码
# 启动nginx
./nginx

#重启
sudo ./nginx -s reload
相关推荐
第十人i38 分钟前
Linux 系统初始化配置清单:新服务器快速部署
linux·服务器
Lsetea1 小时前
部署证书后提示“证书名称与输入不匹配”:Safari 报错的三层排查
nginx·https·safari·ssl证书·openssl
蓝速科技1 小时前
会议室门牌签到功能选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
逐流人1 小时前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
Wang's Blog1 小时前
Java 项目实战: 外卖平台-后台退出功能与首页iframe架构
java·服务器·redis
Wang's Blog2 小时前
Java 项目实战: 外卖平台-软件开发流程与项目整体介绍
java·服务器·redis
X7766X2 小时前
暴雨重构国产大模型底层加速体系
服务器
酣大智4 小时前
网络协议计时器 & 发包间隔汇总
运维·网络·tcp/ip
Wang's Blog10 小时前
Java 接入Redis: 服务启动停止与后台运行配置
java·服务器·redis
云运维笔记11 小时前
IP地址从入门到精通:网络通信的核心基石
运维·网络·计算机网络