首页 > 系统相关 >nginx增加 nginx-vod-module模块实现MP4视频点播

nginx增加 nginx-vod-module模块实现MP4视频点播

时间:2024-06-19 16:03:53浏览次数:26  
标签:vod -- hls module nginx add 视频点播

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

标签:vod,--,hls,module,nginx,add,视频点播
From: https://www.cnblogs.com/zhangLiGang/p/18256399

相关文章

  • [面试题]Nginx
    [面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]SpringBoot[面试题]SpringCloud[面试题]SpringMVC[面试题]Spring[面试题]MyBatis[面试题]Nginx请解释一下什么是Nginx?Nginx,是一个Web服务......
  • nginx四层+七层分享代理实现与tomcat多实例动静分离
     实验架构图如下,最终实现负载均衡和动静分离:一、Tomcat多实例1.配置思路1)修改tomcat主配置文件server.xml中的三个端口号808080058009;2)修改tomcat启动停止脚本startup.shshutdown.sh,添加exportCATALINABASECATALINAHONETOWCATHOME变量都指向实例的工作......
  • Nginx优化与防盗链
    Nginx服务优化隐藏版本号为了防止攻击者不能通过nginx针对特定版本进行攻击方法1:修改配置文件方式[root@localhost~]#vim/usr/local/nginx/conf/nginx.confhttp{includemime.types;default_typeapplication/octet-stream;server_tokensoff;......
  • Nginx下载大文件超时配置和请求超时配置等
    https://blog.csdn.net/weixin_42949219/article/details/139354348 Nginx下载大文件超时配置和请求超时配置等location/download{......proxy_bufferingoff; proxy_connect_timeout180s; proxy_send_timeout180s; proxy_read_timeout180s; proxy_se......
  • 3、k8s-服务的部署(nginx)
    说明:pod是kubernetes的最小单元-而容器时运行在pod中的、服务是运行在容器中的、所以:pod>容器>服务  --(这是一个包含的关系) 1、创建部署nginx:kubectlcreatedeploymentnginx--image=nginx:1.14-alpine#kubectlcreatedeployment是一个Kubernetes命令,用于创建一个......
  • 5、k8s-资源管理-yaml语言--使用yaml语言创建nginx服务
    YAML语言是一个类似XML、JSON的标记性语言、他强调以数据为中心、而不是以标识语言为重点、因而YANL本身定义比较简单:对比如下XML语言:<html><age>15</age><address>hainan</address></html>YAML语言:heima:age:15address:hainanyaml语言没有过多的......
  • Nginx如何反向代理后端服务?
    Nginx(Engine-X)是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它由俄罗斯的程序员IgorSysoev于2004年开发,并在BSD许可下发布。Nginx不仅以其高性能和低资源消耗而闻名,还因其灵活的配置和扩展能力受到广大开发者的欢迎。本文将详细介绍Nginx如何反向......
  • Nginx网站服务
            在各种网站服务器软件中,除了ApacheHTTPSenver外,还有一款轻量级的HTTP服务器软件——Nginx,由俄罗斯的lgorSysoev开发,其稳定、高效的特性逐渐被越来越多的用户认可。本章将讲解Nginx服务的基本构建、访问控制方式、虚拟主机的搭建,还有应用广泛的LNMP架构服务器的......
  • Nginx的平滑升级和回滚
    一、Nginx平滑升级和回滚1.平滑升级流程(1)平滑升级的四个阶段只用旧版本nginx和master和worker旧版和新版nginx的master和worker进程并存,由旧版本nginx接受处理用户的新请求旧版和新版nginx的master和worker进程并存,由新版nginx接收处理用户的新请求只有新版nginx的master......
  • NginxProxyManager 数据库迁移记录
    原因家里服务器的NginxMangerProxy使用的是SQLite作为数据库的。虽然数据不是很重要,但是丢了也是挺蛋疼的。考虑改为MySQL作为数据库,然后使用定时备份的策略来做数据库多备份。升级步骤1.保存sqlite的database文件NginxProxyManager是使用Portainer拉起的容器,可......