Python - Django: transmisión de archivos de video / mp4 usando HttpResponse

Estoy usando Python2.7,django==1.7 yuwsgi para transmitir archivos de video / mp4 aiPhone jugador.

Mi código es el siguiente:

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

Cuando uso un pequeño video (menos de 1 MB), se transmite en el navegador, pero en el iPhone Palyer tengo este error:

[uwsgi-http key: 127.0.0.1:8008 client_addr: 192.168.0.172 client_port: 14563] hr_write (): Tubería rota [plugins / http / http.c línea 564]

Y cuando el tamaño del video es más de 5 MB, no se transmite en ambos (significa navegador y reproductor de iPhone) con el mismo error.

Intenté hacerlo volviendo un trozo de trozo usando StreamHttpRespose como se muestra a continuación:

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

Pero hay el mismo error:Broken pipe.

Para tu información, puedo transmitir archivos PDF e imágenes. Este problema es solo con archivos mp4. Y también cambié content_type a 'video-mpeg', el navegador lo descargó, mientras quiero evitar la descarga de archivos.

¿Cuál es tu idea? ¿¡¡Alguna solución!!?

Respuestas a la pregunta(2)

Su respuesta a la pregunta