Видео HTML5 ERR_CONTENT_LENGTH_MISMATCH

У меня возникла проблема с просмотром файла mp4 с Google Chrome с использованием тега HTML5. Видео начинает играть отлично, а прыжок в другую позицию на временной шкале также отлично работает.

Однако я получаю ошибку ERR_CONTENT_LENGTH_MISMATCH, если я продолжаю смотреть видео достаточно долго. Я заметил, что это происходит почти каждый раз, когда браузер загрузил 124 МБ (только один раз на 252 МБ) видео. Не имеет значения, я смотрю видео с самого начала или я прыгаю где-то на шкале времени и начинаю смотреть, он останавливается на скорости 124 МБ. Мне также не кажется, какой файл видео я использую.

HTML, который я использую, довольно простой:

<video width="1280" height="720" controls>
    <source src="videos/testvid.mp4" type="video/mp4">
</video>

Ответ 1

ERR_CONTENT_LENGTH_MISMATCH появляется каждый раз, когда браузер получает из файла больше байтов, чем заголовок ответа HTTP Content-Length

Существует несколько ошибок об apache и больших файлах, касающихся заголовка дефляции (gzip) и Content-Length.

Мы установили Apache для дефляции большинства веб-контента, которые он обслуживает с помощью gzip, чтобы ускорить передачу файлов с меньшими размерами файлов. Это отлично подходит для файлов HTML, CSS и JS файлов, но для двоичных файлов, таких как изображения и мультимедийные файлы или PDF файлы, это может вызвать проблемы. Для PDF файлов проблемы в том, что Acrobat не может читать PDF файлы, которые были gzipped, поэтому его необходимо отключить для них.

Источник: 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), используя следующие правила: