实现直播和点播离不开服务器⽀持,可以使用开源的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