摘要:网上很多的解决办法是使用这个压缩包来配置,但是在一直无法正常的进行编译,同时也无法正常的使用命令添加到的目录下,同时大部分的说法是重新编译,对于已经有线上业务的环境这种做法非常不靠谱,没办法平滑的迁移。
一、环境配置
Nginx : Tengine(2.1.1)/ Nginx(1.6.2)
二、安装步骤
1、下载/ngx_http_enhance_mp4_module
执行命令:
cd /data/wwwroot/server/nginx_module git clone https://github.com/whatvn/ngx_http_enhance_mp4_module cd ngx_http_enhance_mp4_module
2、添加mp4模块
dso_tool --add-module=/data/wwwroot/server/nginx_module/ngx_http_enhance_mp4_module
(dso_tool命令是Tengine的动态加载模块工具)
通过上面的命令添加完毕之后,会在tengine的安装目录下的module文件夹下生成ngx_http_enhance_mp4_module文件
3、编辑nginx的nginx.conf文件
在dso节点中增加如下配置
dso { load ngx_http_enhance_mp4_module.so; }
4、查看是否安装成功
使用nginx -V查看安装的模块,如果出现了这个图,则说明模块已经成功的安装,否则,请检查原因
5、添加访问配置
配置一个host文件,比如www.a.com.conf,其内容如下
server { listen 80; listen 443 ssl; server_name www.a.com; #错误日志和访问日志的路径配置 access_log /data/wwwlogs/nginx/access_log/www.a.com_nginx.log combined; error_log /data/wwwlogs/nginx/error_log/www.a.com_errr_log; #增加重写规则 index index.html index.htm index.php; include /usr/local/tengine/conf/rewrite/other.conf; #项目的路径 root /data/wwwroot/resource/video; #https相关的配置 ssl_certificate /data/wwwroot/ssl_file/www.a.com/v.chained.crt; ssl_certificate_key /data/wwwroot/ssl_file/www.a.com/www.a.com.key; # limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s; charset utf-8; #所有的mp4文件的自动解析 location ~ .mp4$ { enhance_mp4; fix_mp4 on; enhance_mp4_buffer_size 1m; enhance_mp4_max_buffer_size 50m; } }
6、访问文件
比如服务器上有1.mp4文件,则访问http://www.a.com/1.mp4,如果视频能够正常播放,说明配置搭建成功
三、学到的知识点
1、使用Tengine的dso_tool来动态添加模块
2、视频文件的编码格式有h.264 h.265 vpc等,音频格式有aac pcm等格式
3、ngx_http_enhance_mp4_module无法解码高于h.264格式的编码
四、踩坑点
1、因为ngx_http_enhance_mp4_module无法解码高于h.264这种类型是mp4文件,所以在配置的过程中一直没办法正常的播放视频,解决的办法是将原始的视频使用格式工厂将视频文件转码为avc格式。
2、网上很多的解决办法是使用nginx_mod_h264_streaming-2.2.7.tar.gz这个压缩包来配置,但是在一直无法正常的进行编译,同时也无法正常的使用dso_tool命令添加到Tengin的目录下,同时大部分的说法是重新编译nginx,对于已经有线上业务的环境这种做法非常不靠谱,没办法平滑的迁移。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/39829.html
摘要:一背景笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。 一、背景 笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将MP4文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。...
摘要:一背景笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。 一、背景 笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将MP4文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。...
阅读 1026·2021-11-22 15:33
阅读 3310·2021-11-08 13:20
阅读 1287·2021-09-22 10:55
阅读 2013·2019-08-29 11:08
阅读 729·2019-08-26 12:24
阅读 3019·2019-08-23 17:15
阅读 2156·2019-08-23 16:12
阅读 1886·2019-08-23 16:09