HTML5视频ERR_CONTENT_LENGTH_MISMATCH

use*_*183 12 javascript html5 html5-video

我在使用HTML5视频标记查看使用Google Chrome的mp4文件时遇到问题.视频开始播放得很好,跳到时间轴上的不同位置也很好.

但是,ERR_CONTENT_LENGTH_MISMATCH如果我长时间观看视频,我会收到错误.我注意到,几乎每次浏览器下载了124MB(仅一次为252MB)的视频时,就会发生这种情况.我从一开始就观看视频无关紧要,或者我跳到时间轴上的某个地方并开始观看,它停在124MB.我正在使用的视频文件似乎也不重要.

我正在使用的HTML非常基本:

<video width="1280" height="720" controls>
    <source src="videos/testvid.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

dse*_*ara 2

每次浏览器从文件获取的字节数多于 Content-Length HTTP 响应标头中报告的字节数时,都会出现 ERR_CONTENT_LENGTH_MISMATCH

apache 和大文件在压缩 (gzip) 和 Content-Length 标头方面存在一些错误。

我们已将 Apache 设置为使用 gzip 压缩其提供的大多数 Web 内容,从而以较小的文件大小提高文件传输速度。这对于 HTML 文件、CSS 和 JS 文件来说非常有用,但对于二进制文件(例如图像和媒体文件或 PDF)来说可能会导致问题。对于 PDF,问题是 Acrobat 无法读取经过 gzip 压缩的 PDF,因此必须将其关闭。

资料来源: http ://www.beetlebrow.co.uk/what-do-you-need/help-and-documentation/unix-tricks-and-information/apache-gzip-compression-and-binary-files

<Location />
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI  \
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI  \
    \.(?:mp3|wav|wma|au|m4p|snd|mid|wmv|mpg|mpeg|mp4|qt|mov)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI  \
    \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
</Location>
Run Code Online (Sandbox Code Playgroud)

解决方案是使用如下规则禁用某些文件类型(例如 *.mp4)的压缩: