一、ngx_http_mp4_module模块
ngx_http_mp4_module模块提供伪流媒体(pseudo-streaming)服务端支持, 将mp4、m4v、m4a等多媒体文件流式传输。可以在http请求中用start参数表示播放的起始时间,使用end参数(从1.5.13版本开始引入)表示播放结束时间。如果请求中不带start或end参数,请求的多媒体文件将被当作静态文件返回。
ngx_http_mp4_module模块默认未安装,需要在安装的configure阶段指定--with-http_mp4_module
参数,例如:./configure --prefix=/usr/local/nginx --with-http_mp4_module
如果未安装ngx_http_mp4_module模块会提示指令不被支持:
二、ngx_http_flv_module模块
ngx_http_flv_module模块为flash视频文件(FLV格式)提供伪流媒体的服务端支持,http请求中使用start参数表示播放起始位置。 ngx_http_flv_module模块默认未安装,需要在configure阶段指定--with-http_flv_module
参数,如./configure --prefix=/usr/local/nginx --with-http_flv_module
。
使用flv
指令启用ngx_http_flv_module模块,如:
location /videos/ {
alias /var/www/video/;
# 启用flash流媒体支持
flv;
}
如果未安装with-http_flv_module模块会提示flv指令不支持:
三、测试
1.nginx配置:
location /videos/ {
alias /var/www/video/;
# 启用mp4流媒体支持
mp4;
# 处理mp4文件的缓冲区初始大小,默认512K
mp4_buffer_size 1m;
# 处理mp4文件的最大缓冲区大小,默认10m
mp4_max_buffer_size 20m;
# 启用flash流媒体支持
flv;
# 允许跨域访问
add_header Access-Control-Allow-Origin *;
}
2.播放测试
PotPlayer播放器中打开链接:
播放效果: