Chrome замерзает при воспроизведении видео в облачных облаках Rackspace
Невозможно получить хром для воспроизведения видео с помощью тега html5, когда я размещаю их на сервере облачных сред Rackspace.
Работает отлично на обычном хостинге, но как только я связываю видео с URL-адресом rackspace cdn, Chrome замерзает (полное замораживание, полностью блокируется пользовательский интерфейс веб-сайта). Через некоторое время Chrome выводит сообщение "Следующая страница стала невосприимчивой bla bla bla" ).
Видеофайл прекрасен, так же как и когда я ссылаюсь на обычный хостинг.
Немного шпионил за запросами, и изначально я думал, что проблема в том, что файлы webm по умолчанию были serverd в виде mime-типа application/octet-stream. Я подал билет в rackspace, и они дали мне способ заставить mime-тип при загрузке файла. Сделал это, и файл теперь правильно отправлен как видео /webm.. но Chrome все еще зависает.
Любая идея, что здесь может быть неправильным?
EDIT: используя iheartvideo, загрузка видео из rackspace запускает MEDIA_ERR_SRC_NOT_SUPPORTED. То же видео с локального веб-сервера работает полностью нормально (??)
РЕДАКТИРОВАТЬ 2: происходит как на Mac, так и на окнах с последними хромированными хром
РЕДАКТИРОВАТЬ 3: curl -I результаты:
Rackspace (не работает):
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 для повторно загрузите файлы с помощью правильной тип содержимого.
Вы также можете использовать завиток из 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
Необходимо указать тип содержимого и вы должны указать правильную длину байты того, что загружается. Если вы не получите недопустимый запрос ошибка.
Ответы
Ответ 1
Я очень много работаю с API Rackspace.
Их API на самом деле позволяет вам устанавливать контейнер в режиме потоковой передачи. Мой первый инстинкт подсказывает мне, что вы этого не сделали.
Я передаю различные типы файлов, и все они работают безупречно.
Более подробную информацию о контейнерах с поддержкой CDN Streaming Enabled можно найти здесь: http://docs.rackspace.com/files/api/v1/cf-devguide/content/Streaming-CDN-Enabled_Containers-d1f3721.html
Надеюсь, это поможет, но если не дайте мне знать, и я не возражаю, если вы добавите код примера PHP вместе, чтобы помочь вам.
Все это довольно легко, но вы можете столкнуться с различными действиями API, которые Rackspace внедрило, иногда может быть сложной задачей.
Ответ 2
У меня нет конкретного ответа, просто некоторые мысли:
- а что в других браузерах?
- он работает на веб-сервере с указанным типом контента, является текстовым/обычным, поэтому зачем принудительно использовать видео /webm?
- может ли Rackspace предоставить вам (или вы можете найти на своем сайте или чьем-то другом) какой-нибудь образец контента, который играет, чтобы вы могли его проверить?
Вы можете попробовать бесплатную пробную версию от Brightcove или Bitgravity и посмотреть, работает ли это...