要为Nginx添加MP4流媒体支持,您需要配置Nginx以正确处理MP4文件并支持HTTP流媒体(HTTP pseudo-streaming)。以下是详细步骤:
大多数现代Nginx版本默认包含ngx_http_mp4_module
。您可以通过以下命令检查:
nginx -V 2>&1 | grep -o mp4
如果看到mp4
输出,说明模块已安装。
在您的Nginx配置文件中(通常在/etc/nginx/nginx.conf
或站点配置文件中),添加或修改以下内容:
server {
listen 80;
server_name your_domain.com;
location /videos/ {
root /path/to/your/videos;
# MP4流媒体支持
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
# 启用范围请求(支持视频跳转)
add_header Accept-Ranges bytes;
# 优化缓存和MIME类型
expires max;
add_header Cache-Control "public, no-transform";
types {
video/mp4 mp4;
}
}
}
mp4
: 启用MP4流媒体处理mp4_buffer_size
: 初始缓冲区大小(默认512K)mp4_max_buffer_size
: 处理元数据时最大缓冲区大小(默认10M)Accept-Ranges bytes
: 启用字节范围请求,允许视频跳转# 测试配置是否正确
sudo nginx -t
# 重载Nginx配置
sudo systemctl reload nginx
上传一个MP4文件到您的视频目录,然后尝试:
1. 直接访问视频URL
2. 检查是否支持跳转(拖动进度条)
3. 使用开发者工具查看响应头是否包含Accept-Ranges: bytes
location ~ \.mp4$ {
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
}
location /videos/ {
# ...其他配置...
limit_rate_after 500k; # 初始500KB后开始限速
limit_rate 100k; # 限速100KB/s
}
moov
原子位于文件开头(可使用ffmpeg -movflags faststart
处理)完成以上步骤后,您的Nginx服务器应该能够正确提供MP4流媒体服务,并支持视频跳转功能。