Chrome зависает при воспроизведении видео из облачных файлов Rackspace - PullRequest
13 голосов
/ 25 февраля 2011

Невозможно заставить Chrome воспроизводить видео с тегом html5, когда я размещаю их на сервере облачных файлов Rackspace.

Отлично работает на обычном хостинге, но как только я связываю видео сrackspace cdn url, Chrome зависает (полное зависание, пользовательский интерфейс веб-сайта полностью заблокирован - через некоторое время Chrome выдает сообщение «Следующая страница перестала отвечать на запросы»).

Видеофайл в порядкекак, например, когда я делаю ссылку на обычный хостинг.

Я немного шпионил за запросами, и я сначала подумал, что проблема в том, что файлы webm по умолчанию были представлены сервером как mime-тип application / octet-stream.Я подал билет на место в стойке, и они дали мне способ заставить MIME-тип при загрузке файла.Сделал это, и теперь файл правильно отправляется как video / webm ... но Chrome по-прежнему зависает.

Есть идеи, что здесь может пойти не так?

РЕДАКТИРОВАТЬ : при использовании iheartvideo загрузка видео из стоечного пространства вызывает MEDIA_ERR_SRC_NOT_SUPPORTED.То же видео с локального веб-сервера работает совершенно нормально (??)

РЕДАКТИРОВАТЬ 2 : происходит как на Mac, так и в Windows с последним распространенным Chrome

РЕДАКТИРОВАТЬ 3 : curl -I результаты:

Место в стойке (без работы):

HTTP/1.1 200 OK
Server: nginx/0.7.65
Content-Type: video/webm
Last-Modified: Thu, 24 Feb 2011 23:45:12 GMT
ETag: 7029f83b241aa691859012dfa047e20d
Content-Length: 20173074
Cache-Control: public, max-age=900
Expires: Fri, 25 Feb 2011 01:32:11 GMT
Date: Fri, 25 Feb 2011 01:17:11 GMT
Connection: keep-alive

Веб-сервер (без работы)

HTTP/1.1 200 OK
Date: Fri, 25 Feb 2011 01:17:51 GMT
Server: Apache
Last-Modified: Thu, 24 Feb 2011 03:56:26 GMT
ETag: "11a0b47-133d112-49cff32940e80"
Accept-Ranges: bytes
Content-Length: 20173074
Content-Type: text/plain

РЕДАКТИРОВАТЬ 4 : Для тех, кто заинтересован, это то, что команда Rackscape сказала мне сделать, чтобы установить тип содержимого webm для файла:

Файловый браузерне достаточно умен, чтобы определить тип контента видео / вебм.К сожалению, нет способа изменить тип содержимого файла, который уже был загружен.

Вам потребуется использовать один из API для повторной загрузки файлов с правильным типом содержимого.

Вы также можете использовать curl из командной строки linux / MacOS, если доступно.

Используя ваше имя пользователя и ключ API, выполните эту команду ...

curl -I -X GET -H "X-Auth-User: USERNAME" -H "X-Auth-Key: API_KEY" https://auth.api.rackspacecloud.com/v1.0

Из вывода есть 2 важных значения.

X-Storage-Url: https://storage101.......
X-Storage-Token: Long hash

Вы можете загружать файлы с помощью,

curl -X PUT -T test.webm -H "Content-Type: video/webm" -H "Content-Length: FILESIZEINBYTE" -H "X-Auth-Token: TOKEN FROM RESPONSE ABOVE" https://STORAGE URL FROM RESPONSE ABOVE/test.webm

Вы должны указать тип контента, и вы должны дать правильныйдлина байтов того, что загружается.Если нет, вы получите неверный запрос об ошибке.

Ответы [ 2 ]

1 голос
/ 08 августа 2012

Я немного работаю с Rackspace API.Их API фактически позволяет вам устанавливать контейнер как включенный потоковый режим.Мой первый инстинкт говорит мне, что ты этого не сделал.Я передаю потоковые файлы разных типов, и все они работают абсолютно.

Более подробная информация о контейнерах с поддержкой потоковой передачи CDN приведена здесь: http://docs.rackspace.com/files/api/v1/cf-devguide/content/Streaming-CDN-Enabled_Containers-d1f3721.html

Надеюсь, это поможет, но если нет, дайте мне знатьЯ не против собрать пример кода PHP вместе, чтобы помочь вам.Это все довольно просто, но разобраться в различных операциях API, реализованных в Rackspace, иногда может быть непростой задачей.

0 голосов
/ 14 марта 2012

У меня нет конкретного ответа, только некоторые мысли:

  1. как насчет других браузеров?
  2. он работает на веб-сервере с типом контента выше - text / plain, так зачем форсировать видео / webm?
  3. Может ли Rackspace предоставить вам (или вы можете найти на их сайте или чужом) образец контента, который воспроизводится, чтобы вы могли его проверить?Brightcove или Bitgravity и посмотреть, если это работает ...
...