我的Flask应用程序无法在覆盆子上正常提供视频,但通常在我的笔记本电脑上

时间:2018-01-04 20:42:32

标签: python python-3.x flask raspberry-pi video-streaming

我有流媒体电影的烧录服务器。服务器在普通计算机(带有拱形的笔记本电脑)上运行时一切正常,但当覆盆子提供视频时(使用烧瓶的静态文件夹)我无法跳过(强制顺序观看),所以当我关闭浏览器时在电影中间我要再看一遍,这很烦人。 我只使用<video>标记,<source>链接到烧瓶提供的静态.mp4文件。

我不知道这是否可能是因为树莓无法正常播放全高清视频,但是当我按顺序观看时,我没有任何问题。

整个项目在GitHub上,所以如果你想查看代码:

&#34;电影播放器​​&#34;模板是here

生成该电影播放器​​的代码&#34; html是here

感谢您的任何建议。

PS:我有rapsberry 3型号B和电影存储在4TB NTFS硬盘上。

编辑:尝试了8GB Fat32 USB记忆棒,但问题仍然存在。

请求最小的工作示例:

HTML - video_player_main.html

的一部分
<video controls="controls" autoplay="autoplay" style="margin: auto; display: block;">
    <source src="{{ url_for("static", filename="movies/%s" % filename) }}" type="video/mp4">
    Get better browser!!!
</video>

Flask生成网站

@video_player.route("/play/<path:movie>")
def play(movie):
    return render_template("video_player_main.html", filename=movie)

带有电影的硬盘安装在./static/movies /

1 个答案:

答案 0 :(得分:1)

在每种情况下,Flask服务器为静态影片文件返回什么MIME类型?使用wget命令(或类似的命令)查看返回的内容。

您可能在不同的系统上获得不同的MIME类型,这会导致您的浏览器稍微区别地处理视频流。请注意,浏览器并不关心文件扩展名;它取决于服务器返回的MIME类型。

Flask使用mimetype Python库根据文件扩展名确定要使用的MIME类型。它使用一堆本地文件进行猜测,请参阅:https://github.com/python/cpython/blob/2.7/Lib/mimetypes.py#L40