基于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
相关推荐
知白守黑26719 小时前
docker资源限制
运维·docker·容器
霍格沃兹测试开发学社测试人社区19 小时前
新手指南:通过 Playwright MCP Server 为 AI Agent 实现浏览器自动化能力
运维·人工智能·自动化
ximy133520 小时前
AI服务器工作之服务器的种类分类
运维·服务器
恒创科技HK20 小时前
香港服务器CPU中E5和Gold的区别
运维·服务器
黄沐阳21 小时前
stp,rstp,mstp的区别
服务器·网络·php
清静诗意21 小时前
在 Ubuntu 上安装 MinIO 并使用 Python 封装类操作对象存储
服务器·minio
Wang's Blog1 天前
Linux小课堂: 文件操作警惕高危删除命令与深入文件链接机制
linux·运维·服务器
2501_915909061 天前
iOS 混淆实战,多工具组合完成 IPA 混淆与加固(源码 + 成品 + 运维一体化方案)
android·运维·ios·小程序·uni-app·iphone·webview
我科绝伦(Huanhuan Zhou)1 天前
分享一个可以一键制作在线yum源的脚本
linux·运维
爱宇阳1 天前
禅道社区版 Docker Compose 服务迁移教程
运维·docker·容器