2013-10-08 2 views
2

Я загрузил 2 .mp4 videoointo blobstore.
Когда я подал 311.0KB mp4 видео, нет проблем с ним. Я могу воспроизвести видео
Но когда я служил 3,3 МБ видео mp4, видео не загружается. Поэтому я пошел в консоль администратора и щелкнул меню Blob Viewer. Когда я нажал, чтобы увидеть 3,3 МБ видео, он не загружается. Зачем?Google App Engine не может обслуживать некоторые файлы mp4

Я использую бесплатную версию GAE.

+0

Какой браузер вы используете? –

+0

Я использую хром ... – Lin

+0

У меня были проблемы с обслуживанием видеофайлов из blobstore. Метод, который я использовал, заключался в установке заголовка X-AppEngine-BlobKey в ответе. Этот метод иногда использует Transfer-encoding chunked. Однако он создает проблемы с обслуживанием файлов mp4. На самом деле у меня были проблемы с IE. То, что я сделал для решения проблемы, - это реализовать файлы сервисов с использованием 206 кода ответа и диапазонов байтов и убедиться, что заголовок Cache-control не установлен для файлов mp4. Это, конечно, не решит проблему с консолью администратора. –

ответ

2

Через некоторое время я узнал, что использование X-AppEngine-BlobKey и X-AppEngine-BlobRange отлично работает. Я использую Django и здесь является частью кода, который я использую, это должно дать вам представление, как она работает

response = HttpResponse() 
response['Accept-Ranges'] = 'bytes' 
response['Content-Type'] = content_type 
response['X-AppEngine-BlobKey'] = blob_key 
if 'HTTP_RANGE' in request.META: 
    response['X-AppEngine-BlobRange'] = request.META['HTTP_RANGE'] 
return response 

Пожалуйста, обратите внимание, что X-AppEngine-BlobRange устанавливается в точно такое же значение, как заголовок диапазона в запросе , Документация по GAE для этого случая может быть немного запутанной, поскольку в примерах показаны значения типа «0-499», когда она должна быть установлена ​​в «bytes = 0-499».

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