Python - Django: потоковое видео / mp4 файл с использованием HttpResponse

Я использую Python2.7,django==1.7 а такжеuwsgi для потокового видео / mp4 файла вiPhone игрок.

Мой код, как показано ниже:

def stream(request):
     with open('/path/video.mp4', 'r') as video_file:
        response = HttpResponse(video_file.read(), content_type='video/mp4')
        response['Content-Disposition'] = 'inline; filename=%s' % 'video.mp4'
        return response
     video_file.close

Когда я использую небольшое видео (менее 1 МБ), оно транслируется в браузере, но в iPhone palyer у меня появляется эта ошибка:

[uwsgi-http ключ: 127.0.0.1:8008 client_addr: 192.168.0.172 client_port: 14563] hr_write (): сломанный канал [plugins / http / http.c line 564]

А когда размер видео превышает 5 МБ, он не транслируется в обоих направлениях (имеется в виду браузер и проигрыватель iPhone) с одинаковой ошибкой.

Я попытался сделать это путем возврата чанка, используя StreamHttpRespose, как показано ниже:

def read(chunksize=8192):
    with open('/path/video.mp4', 'rb') as video_file:
        byte = video_file.read(chunksize)
        while byte:
            yield byte

return StreamingHttpResponse(read(), content_type='video/mp4')

Но есть та же ошибка:Broken pipe.

К вашему сведению, я могу передавать файлы в формате PDF и изображения. Эта проблема только с файлами mp4. А также я изменил content_type на 'video-mpeg', загруженный браузером, в то время как я хочу предотвратить загрузку файлов.

какая у тебя идея? Любое решение !!?

Ответы на вопрос(2)

Ваш ответ на вопрос