Tornado Python - 流式传输视频

Tornado Python - Stream a video

我建立网站已经有一段时间了,但我仍然坚持:

我在 dbm 数据库中为我的网站存储了一些小视频(最多约 400MB),我想在我的网站上播放它们。

我正在使用 Tornado python 框架手动构建请求处理程序,我想知道如何构建我的处理程序。我从来没有发现媒体流是如何工作的,也没有在网络上找到很多主题。

所以我想要实现的完整结果是在我的网站上有一个网络播放器,我可以在其中请求特定的视频,然后播放它们而不必在 memory/send 中加载整个文件 1请求。

这两个link:

  • One for Tornado only:这似乎使用了特殊的注释。
  • One for Flask:虽然是动态 JPEG 示例,但它显示了您
    可以 return 执行 "while" 循环的函数作为响应。

似乎是您要找的答案。你猜怎么着?我也是!

请注意,两者都在 python 中使用了 "yield" 关键字。我不清楚 Flask 示例中是否需要 "coroutine" 和 "asynchronous" 装饰器(换句话说,不清楚 link 中给出的示例是否完整......虽然, 他真的写了一本关于它的书,所以我怀疑它是)。

注意:测试表明 tornado.web 在下载过程中会保留整个文件,即使您对其进行流式传输(即读取、写入、刷新、读取...)。原因尚不清楚,我还没有找到解决办法。