Title
Logan港
细节决定成败,知识改变命运。

一、安装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

  1. --with-file-aio - 启用异步I/O支持,强烈推荐,只适用于本地和映射模式
  2. --with-threads(nginx 1.7.11+)- 使用线程池启用异步文件打开(还需要在nginx.conf中设置 vod_open_file_thread_pool),只适用于本地和映射模式
  3. --with-cc-opt="-O3 -mpopcnt" - 启用更多编译器优化(我们看到解析mp4时间和处理帧时间比默认的nginx -O减少了约8%
  4. 调试设置:
    --with-debug - 启用调试消息(也需要在nginx.conf中的error_log指令中传递debug)
    --with-cc-opt="-O0" - 禁用编译器优化(用于gdb调试)
  5. 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软件验证
image

六、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>

image

posted on 2024-06-19 15:43  Logan港  阅读(27)  评论(0编辑  收藏  举报