我有用于流媒体电影的 flask 服务器。当服务器在普通计算机(带拱门的笔记本电脑)上运行时,一切正常,但是当树莓派提供视频(使用 flask 的静态文件夹)时,我无法跳过(被迫按顺序观看),所以当我在电影中间关闭浏览器时,我有重新看一遍,这很烦人。
我只使用 <video>
标记为 <source>
链接到静态.mp4
由 flask 提供的文件。
我不知道这是否是由于树莓派无法正确传输全高清视频造成的,但是当我顺序观看时,我没有任何问题。
整个项目都在 GitHub 上,所以如果你想查看代码:
“电影播放器”模板是 here
生成“电影播放器”html 的代码是 here
感谢您的任何建议。
PS:我有 rapsberry 3 model 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/
最佳答案
在每种情况下,Flask 服务器为静态电影文件返回什么 MIME 类型?使用 wget
命令(或类似命令)查看返回的内容。
您可能会在不同的系统上获得不同的 MIME 类型,这会导致您的浏览器处理视频流的方式略有不同。请注意,浏览器并不关心文件扩展名;它只关心文件扩展名。它由服务器返回的 MIME 类型决定。
Flask 使用 mimetype
Python 库根据文件扩展名确定要使用的 MIME 类型。它使用一堆本地文件来进行猜测,请参阅:https://github.com/python/cpython/blob/2.7/Lib/mimetypes.py#L40
关于python - 我的 Flask 应用程序无法在树莓派上正确提供视频,但在我的笔记本电脑上正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48103261/