Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于onTornado的视频网站服务_Python_Html_Web_Tornado - Fatal编程技术网

Python 基于onTornado的视频网站服务

Python 基于onTornado的视频网站服务,python,html,web,tornado,Python,Html,Web,Tornado,我是新来的龙卷风,我想建立一个简单的网站看电影。 当然,hello world网站是成功的,我想在空的网站中添加一部电影。因此,我用HTML5编写了一个使用视频标签的html <html> <body> <video autoplay=true> <source src="aa.mp4" type="video/mp4"></source> </video> </body> </html> 图

我是新来的龙卷风,我想建立一个简单的网站看电影。 当然,hello world网站是成功的,我想在空的网站中添加一部电影。因此,我用HTML5编写了一个使用视频标签的html

<html>
<body>
<video  autoplay=true> 
<source src="aa.mp4" type="video/mp4"></source> 
</video>
</body>
</html>
图片是可以的,但是当我使用500MB的视频时。记忆错误出现

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 1141, in _when_complete
    callback()
  File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 1167, in _execute_finish
    self.finish()
  File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 760, in finish
    self.flush(include_footers=True)
  File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 703, in flush
    chunk = b"".join(self._write_buffer)
MemoryError
我觉得问题在于浏览器下载了整个视频,所以该函数无法返回并引发异常。是这样吗?以及如何修复它,非常感谢

谢谢你的帮助,我写了一行代码来提供视频文件。 然而,我发现这仍然是错误的。 当文件是图片时是可以的,当我提供一个更大的视频文件时会出错

(r"/(.*)",tornado.web.StaticFileHandler,{"path":"/home/alex/one/static"})

您使用的是哪种版本的Tornado?堆栈跟踪看起来很旧
StaticFileHandler
在4.0版中获得了服务大文件的能力,而无需将它们全部加载到内存中。

StaticFileHandler
应该能够处理大文件

发件人:

此处理程序主要用于开发和轻型文件服务;对于高流量,使用专用的静态文件服务器(如nginx或Apache)将更有效我们支持HTTP接受范围机制来返回部分内容(因为有些浏览器要求在HTML5音频或视频中提供此功能)。

如果您使用旧版本的Tornado,则应更新至最新版本。

或者像文档所说的那样,使用专用的静态文件服务器(比如NGIX或Apache)。< /P>你的代码> RequestHandler < /代码>处理你的视频文件吗?这只提供你的索引文件。对不起,我不知道需要视频文件。为什么?当我使用Nginx时,除了索引文件配置外,什么都没有。你不应该无缘无故地代理视频文件。Nginx可能会做得更好,因此只需将其配置为服务于这些文件(甚至所有静态文件),即可删除StaticHandler。
(r"/(.*)",tornado.web.StaticFileHandler,{"path":"/home/alex/one/static"})