在vps上下载了一些mp4格式的视频,点击是直接下载,不能直接在线播放, 所以google了一下有个nginx_mod_h264_streaming的模块。
下载
wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
编译安装
./configure --sbin-path=/usr/local/sbin --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre=/usr/local/src/pcre-8.10 --add-module=/usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.2/ext/nginx/ --add-module=/usr/local/src/nginx_mod_h264_streaming-2.2.7 make make install
出错了
.... In file included from /usr/local/src/nginx_mod_h264_streaming-2.2.7/src/ngx_http_h264_streaming_module.c:2: /usr/local/src/nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c: In function ‘ngx_streaming_handler’ : /usr/local/src/nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c:158: error: ‘ngx_http_request_t’ has no member named ‘zero_in_uri’ make[1]: *** [objs/addon/src/ngx_http_h264_streaming_module.o] Error 1 make[1]: Leaving directory `/usr/local/src/nginx-0.8.54' make: *** [build] Error 2
解决错误:
因为在新版本的nginx中废弃了zero_in_uri这个flag,稍微修改一下nginx_mod_h264_streaming的源代码
vim /usr/local/src/nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c
把158到161行注释掉
157 /* TODO: Win32 */ 158 //if (r->zero_in_uri) 159 //{ 160 // return NGX_DECLINED; 161 //}
然后再make就正常了,make install 完成安装 配置nginx使之支持mp4 在nginx配置文件中加入
location ~ \.mp4$ { mp4; }
重启nginx
/etc/init.d/nginx restart
效果来了
reference