HTML5视频ERR_CONTENT_LENGTH_MISMATCH

时间:2014-04-10 13:32:16

标签: 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>

1 个答案:

答案 0 :(得分:2)

每当浏览器从文件中获取的字节多于Content-Length HTTP响应头上报告的字节时,

出现ERR_CONTENT_LENGTH_MISMATCH

关于deflation(gzip)和Content-Length标头的apache和大文件存在一些错误。

  

我们已经设置了Apache来解压缩它使用gzip服务的大多数网络内容,以便在文件较小的情况下更快地传输文件。这对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>

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