一、安装Nginx
需要提前以预编译方式安装好Nginx
具体安装步骤点击下面链接 :
预编译方式安装nginx
二、下载nginx-vod-module模块
nginx-vod-module模块是基于nginx来提供VOD(video on demand)服务的第三方模块,它支持基于DASH、HDS、HLS、MSS的点播服务搭建。
nginx-vod-module下载地址:
https://github.com/kaltura/nginx-vod-module/archive/refs/tags/1.28.tar.gz
在nginx进行安装配置的过程中,需要使用--add-module=选项来添加第三方模块一起进行编译,相关的步骤可以参考模块的github网址:
https://github.com/kaltura/nginx-vod-module
- --with-file-aio - 启用异步I/O支持,强烈推荐,只适用于本地和映射模式
- --with-threads(nginx 1.7.11+)- 使用线程池启用异步文件打开(还需要在nginx.conf中设置 vod_open_file_thread_pool),只适用于本地和映射模式
- --with-cc-opt="-O3 -mpopcnt" - 启用更多编译器优化(我们看到解析mp4时间和处理帧时间比默认的nginx -O减少了约8%
- 调试设置:
--with-debug - 启用调试消息(也需要在nginx.conf中的error_log指令中传递debug)
--with-cc-opt="-O0" - 禁用编译器优化(用于gdb调试) - C宏配置:
--with-cc-opt="-DNGX_VOD_MAX_TRACK_COUNT=256 -mavx2" - 增加最大轨迹计数(最好是64的倍数)。同时建议启用向量扩展(AVX2)
三、增加模块
首先我nginx的安装包放在了/www/server/nginx 下
nginx-vod-module放在了www/server下
[root@VM-8-6-centos nginx-1.24.0]# pwd
/www/server/nginx-1.24.0
[root@VM-8-6-centos nginx-1.24.0]# ./configure --with-file-aio --with-threads --with-cc-opt="-O3 -mpopcnt" --add-module=/www/server/nginx-vod-module-1.33
[root@VM-8-6-centos nginx-1.24.0]# make
[root@VM-8-6-centos nginx-1.24.0]# make install
安装完成后会有个objs/nginx
将nginx移动到nginx的安装目录下,默认在/usr/local/nginx/sbin下,将里边的nginx备份,然后将objs下的nginx放到sbin下
四、nginx配置
在nginx的配置文件中,添加对应的location配置:
location /vod {
vod hls; # 协议使用hls模式
vod_mode local; # 访问模式指定为local模式
vod_align_segments_to_key_frames on; # 每个切片以关键帧开头
vod_manifest_segment_durations_mode accurate; # 精确显示每个切片的长度
# 解决浏览器跨域问题
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
add_header Access-Control-Allow-Origin '*';
alias /home/mp4; # 视频文件路径
}
修改配置文件后重启nginx
./nginx -s reload
五、验证
首先在nginx中我们配置过了视频地址 /home/mp4 我们只需吧视频放在此目录下就可以
地址验证
URL播放地址 ip替换成服务器ip就可以
http://ip/vod/111.mp4/index.m3u8
用VLC软件验证
六、HTML验证
<!DOCTYPE html>
<html>
<head>
<title>Video Player</title>
</head>
<body>
<video id="video" width="640" height="360" controls></video>
<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script>
<script>
var video = document.getElementById('video');
var hls = new Hls();
hls.loadSource('http://ip/vod/111.mp4/index.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, function() {
video.play();
});
</script>
</body>
</html>
标签:vod,--,hls,module,nginx,add,视频点播
From: https://www.cnblogs.com/zhangLiGang/p/18256399