我尝试在 Ubuntu 服务器上使用 http_mp4_module,但似乎根本不起作用。当我检查 nginx -V 时,我得到:
nginx version: nginx/1.1.19
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.1.19/debian/modules/chunkin-nginx-module --add-module=/build/buildd/nginx-1.1.19/debian/modules/headers-more-nginx-module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-development-kit --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-http-push --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-lua --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upload-module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upload-progress --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-dav-ext-module
--with-http_mp4_module
并且--with-http_flv_module
在那里,我还添加了 sites-available/domaine.conf
location ~ .mp4$ {
mp4;
mp4_buffer_size 4M;
mp4_max_buffer_size 10M;
}
location ~ .flv$ {
flv;
}
并且 Nginx 重新启动且没有错误,一切似乎正常,但是当我检查我的网址时,myvideo.mp4?start=60 返回 404 错误(我认为这是正常的),并且 video.mp4?starttime=60 返回视频,但无论开始时间数字是多少,我从一开始就获得了完整的视频,我是否错过了什么?
答案1
你 应该 请求video.mp4?start=60
, 而 不是video.mp4?starttime=60
.
引自文档:
伪流与兼容的 Flash 播放器协同工作。播放器向服务器发送 HTTP 请求,并在查询字符串参数中指定开始时间(简称为开始并以秒为单位指定),并且服务器以流进行响应,使得其起始位置与请求的时间相对应,例如:
http://example.com/elephants_dream.mp4?start=238.88
ps 另请注意,您正在使用开发分支中过时且不受支持的 nginx 版本。强烈建议升级到最新的稳定版本或主流版本。