2015-06-30 1 views
1

У меня есть видеофайлы .mp4, хранящиеся в ведро AWS S3, и я могу передавать их с веб-страницы HTML5 в chrome, firefox , сафари (как настольные, так и мобильные). HTML код выглядит следующим образом:Невозможно передать .mp4 с помощью HTML5 из ​​AWS S3 в IE, даже если задан тип контента

<video style="margin: 0 auto; width: 70%; display:block;" controls autoplay> 
    <source src="https://s3.amazonaws.com/my-bucket/item1/16x9/main.mp4" type="video/mp4" /> 
</video> 

Однако, я не могу получить эту работу в IE 11/10/9 (ошибка, я получаю «Ошибка: неподдерживаемый тип видео или недопустимый путь к файлу»). Я знаю, что видео правильно закодировано для IE, потому что, если я размещаю его на своем локальном веб-сервере, видео очень хорошо работает в IE.

Я вырыл через переполнение стека, и форумы амазонок, и главное, что люди, похоже, сталкиваются, не меняют метаданные Content-Type из «application/octet-stream» на «video/mp4». Изменение этого для меня, кажется, не имеет никакого значения для IE:

enter image description here

Сначала я думал, может быть, я просто не установить тип содержимого правильно в S3, но если я ударил URL S3 с помощью скрипача я могу видеть, что правильный тип контента на самом деле получение передаются в заголовках:

HTTP/1.1 200 OK 
x-amz-id-2: XsUylpKUMmFPGEQUYyEVdHlicQK3ge2PH6f2lW7quS7ixsBLgEbGww0+qimVGJS4 
x-amz-request-id: AC0B4231F897147C 
Date: Tue, 30 Jun 2015 15:09:13 GMT 
Last-Modified: Tue, 30 Jun 2015 14:38:11 GMT 
ETag: "123430248eca490c3fbf7a3a361c1118" 
Accept-Ranges: bytes 
Content-Type: video/mp4 
Content-Length: 35874512 
Server: AmazonS3 

что еще более странно, что стелька имеет опцию отображения WebView, который может представить предварительный просмотр видео с помощью окна IE и что ДЕЙСТВИТЕЛЬНО воспроизводит видео просто отлично.

Есть ли у кого-нибудь какие-либо предложения о том, как заставить это видео играть с S3 в IE?

EDIT 1:

Это кажется странным ... если я изменить URL-адрес, указывающий на S3 с HTTPS на HTTP, то видео играет в IE. Это не приемлемое решение для меня, но, возможно, указывает на проблему с IE потоковым html5 видео по https? (Это видит, как она должна быть фундаментальной чертой, так что я не уверен, если это верно для всех видео по протоколу HTTPS.)

EDIT 2:

Итак, IE, кажется, играть в любые видео через HTTP, что Я просто замечаю. Если мой сайт размещен поверх http, а видео размещается поверх https, он не хочет его воспроизводить. Итак, я подтолкнул свой код к тестовому серверу с включенным https и обнаружил, что могу воспроизводить видео по https, если видео размещено в том же домене. Поскольку S3 явно находится в другом домене, это все еще не воспроизводит видео в IE. Если я загружу файл test.html на S3, у которого есть вышеупомянутый тег видео в нем, тогда видео отлично воспроизводится в IE. Если у меня есть тот же файл test.html, размещенный на моем веб-сайте, он не воспроизводится.

ответ

0

Я встретил ту же проблему. Наконец, я обнаружил, что IE пытается получить доступ к ocsp.digicert.com перед загрузкой видео, и если сбой доступа (поскольку ocsp.digicert.com недоступен), видео нельзя воспроизвести.

Причина, по которой IE пытается получить доступ к ocsp.digicert.com, - это протокол OCSP (Online Certificate Status Protocol). Органы сертификации (CA) могут аннулировать SSL-сертификаты, а браузеры будут проверять доступный доступ к веб-сайту, который недоступен (не отменяется).

В общем, если проверка OCSP не удалась (сеть недоступна), IE все равно выполнит свою работу. Но видео, встроенное на другой сайт, будет невозможно воспроизвести. Я думаю, что это ошибка.

Вы можете отключить OCSP в настройках IE.

Некоторые Литература:

Смежные вопросы