服务基于Tornado的视频网站

时间:2015-12-20 10:25:05

标签: python html5 web tornado

我是龙卷风的新手,我想建立一个观看电影的简单网站。 当然,你好世界网站是成功的,我想在空网站上添加一部电影。因此我在html 5中使用视频标签写了一个html。

fiboNum

龙卷风中的代码也很简单。

<html>
<body>
<video  autoplay=true> 
<source src="aa.mp4" type="video/mp4"></source> 
</video>
</body>
</html>

图片没问题,但是当我使用500MB的视频时。出现MemoryError。

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('index.html')
我觉得问题是浏览器下载整个视频,所以函数无法返回并抛出异常。这样对吗?以及如何解决它,非常感谢。

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

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

2 个答案:

答案 0 :(得分:1)

StaticFileHandler应该能够处理大文件。

来自StaticFileHandler docs

  

此处理程序主要用于开发和轻量级文件服务;对于繁重的流量,使用专用的静态文件服务器(如nginx或Apache)会更有效。 我们支持HTTP Accept-Ranges机制来返回部分内容(因为某些浏览器需要使用此功能来搜索HTML5音频或视频)。

如果您使用较旧版本的Tornado,则应更新至最新版本 或者正如文档所说,使用专用的静态文件服务器(例如nginx或Apache)。

答案 1 :(得分:0)

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