我使用的是Python2.7,Django==1.7
和uwsgi
。
我需要使用HttpResponse
流式传输mp4文件,以便在html(例如video
标记)中进行渲染,如下所示:
def test(request):
return render(request,
'shared/test.html',
{'video_url': BASE_URL + '/stream_video/'})
def stream_video(request):
path = '/var/www/test/video_file.mp4'
video_file = open(path, 'r')
response = HttpResponse(video_file, content_type='video/mp4')
response['Content-Length'] = os.path.getsize(path)
return response
我通过uwsgi使用以下参数运行我的Django应用程序:
uwsgi --http :8000 --chdir /var/www/test --module test.wsgi --chunked-input-timeout 40000 --post-buffering 12829000 --buffer-size 12829000 --post-buffering-bufsize 12829000 --fastrouter-buffer-size 12829000 --http-buffer-size 12829000
在小视频(小于1MB)中它可以正常工作,但在其他情况下我有uwsgi错误,如下所示:
uwsgi_response_write_body_do():通过对等方重置连接 GET / stream_video /(192.168.0.224)期间的[core / writer.c第331行] IOError:写入错误
如您所见,我设置了所有缓冲区大小参数来解决此问题。但它对我没有用。
你的想法是什么?