资讯专栏INFORMATION COLUMN

使用Nginx配置mp4视频播放踩坑记录

v1 / 4214人阅读

摘要:网上很多的解决办法是使用这个压缩包来配置,但是在一直无法正常的进行编译,同时也无法正常的使用命令添加到的目录下,同时大部分的说法是重新编译,对于已经有线上业务的环境这种做法非常不靠谱,没办法平滑的迁移。

一、环境配置

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

相关文章

  • H5视频活动踩坑

    摘要:最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案。视频的播放和暂停主要是调用和方法。最后需要注意的是在端播放视频后是不会主动退出同层播放器的。 最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案。1、碰到问题和解决方案1.1、ios 网页中播放视频默认全屏(点击视频会弹出播放器进行全屏播放...

    walterrwu 评论0 收藏0
  • H5视频活动踩坑

    摘要:最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案。视频的播放和暂停主要是调用和方法。最后需要注意的是在端播放视频后是不会主动退出同层播放器的。 最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案。1、碰到问题和解决方案1.1、ios 网页中播放视频默认全屏(点击视频会弹出播放器进行全屏播放...

    jzman 评论0 收藏0
  • H5视频活动踩坑

    摘要:最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案。视频的播放和暂停主要是调用和方法。最后需要注意的是在端播放视频后是不会主动退出同层播放器的。 最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案。1、碰到问题和解决方案1.1、ios 网页中播放视频默认全屏(点击视频会弹出播放器进行全屏播放...

    DirtyMind 评论0 收藏0
  • 使用PHP结合Ffmpeg快速搭建流媒体服务实践

    摘要:一背景笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。 一、背景 笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将MP4文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。...

    Drinkey 评论0 收藏0
  • 使用PHP结合Ffmpeg快速搭建流媒体服务实践

    摘要:一背景笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。 一、背景 笔者想将自己收藏的一些电影放到网站上可以用来随时播放,不过遇到了一个问题,便是如果直接将MP4文件放放到网站目录当中,手机端必须下载整个视频才可以播放,而如果跨外网传输,这实在是不太现实。...

    MASAILA 评论0 收藏0

发表评论

0条评论

v1

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<