Django: Streaming de arquivo de vídeo / mp4 usando HttpResponse

Estou usando Python2.7,django==1.7 euwsgi para streaming de arquivo de vídeo / mp4 paraiPhone jogador.

Meu código é como abaixo:

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

Quando uso um vídeo pequeno (menos de 1 MB), ele é transmitido no navegador, mas no iPhone palyer eu tenho este erro:

[chave uwsgi-http: 127.0.0.1:8008 client_addr: 192.168.0.172 client_port: 14563] hr_write (): tubo quebrado [plugins / http / http.c linha 564]

E quando o tamanho do vídeo é superior a 5 MB, ele não é transmitido em ambos (significa navegador e player do iPhone) com o mesmo erro.

Tentei fazer isso retornando usando o StreamHttpRespose como abaixo:

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')

Mas há o mesmo erro:Broken pipe.

Eu posso transmitir arquivos PDF e de imagem. Esse problema é apenas com arquivos mp4. E também mudei o content_type para 'video-mpeg', o navegador baixou isso, enquanto eu quero impedir o download de arquivos.

Qual é a sua ideia? Qualquer solução!!?

questionAnswers(2)

yourAnswerToTheQuestion