LINUX.ORG.RU

Не получается отдать видео файл в виде partial content

 , ,


2

2

Всем трям. Пытаюсь на торнадо научиться отдавать видео файл. Проверяю в хроме. Если отдаю файл целиком, то все работает, но браузер кидает мне 2 реквеста, желая работать по технологии partial content https://ru.wikipedia.org/wiki/HTTP#.D0.94.D0.BE.D0...BA.D0.B0.D1.87.D0.B8.D0....

Почитал, запилил реализацию у себя, но браузер кидает теперь 2-3 запроса и видео не показывает. Вот кот http://pastebin.com/DvsPmevc

В чем может быть проблема?

Если надо, могу скопипастить реквест/респонз.

Ты на диапазоны смотри. Он скорее всего запрашивает заголовок и хвост, чтобы декодеру скормить, а потом уже хапает всё остальное.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Так я диапазоны ему и отдаю. Что спрашивает, то и даю.

self.write(clip.data[clip_range[0]:clip_range[1]])

panter_dsd ★★★★
() автор топика
Ответ на: комментарий от MrClon

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

panter_dsd ★★★★
() автор топика

М****ля, 2 дня копаний и... я нашел ошибку. Вместо

self.set_header('Content-Range', 'bytes {}-{}/{}'.format(clip_range[0], clip_range[1], len(clip.data)))

Должно быть

self.set_header('Content-Range', 'bytes {}-{}/{}'.format(clip_range[0], clip_range[1] - 1, len(clip.data)))

Работает как часы. Все дело в единичке.

panter_dsd ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.