我的mp4以前没有在烧瓶中显示

时间:2019-07-06 15:07:40

标签: html python-3.x flask

因此,我刚从烧瓶开始,然后进行各种练习。昨天,我成功地将视频部署到了我的Flask网页上,但是今天,当我运行相同的代码时,我得到了一个黑色的窗口,应该在该窗口中播放视频(与图像有关)。

(image related)

这是我的烧瓶代码

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('video.html')

if __name__ == "__main__":
    app.run(host="localhost", port=8000, debug=True)

还有我的HTML代码

<html>
<head>
  <meta name="viewport" content="width=device-width">
</head>
<body>
  <video controls="" autoplay="" name="media">
    <source src="file:///C:/Users/(username)/Desktop/Code/Flask/templates/sample.mp4" type="video/mp4">
  </video>
</body>
</html>

我的文件结构是

Flask\
  -app.py (flask code)
  \templates\
     -video.html (html code)
     -sample.mp4

链接的视频可以正常工作,例如 https://s3.amazonaws.com/codecademy-content/projects/make-a-website/lesson-1/ollie.mp4

2 个答案:

答案 0 :(得分:1)

<source src="file:///C:/Users/(username)/Desktop/Code/Flask/templates/sample.mp4" type="video/mp4">

问题是该源标记将在用户的浏览器中呈现,并尝试将c:\Users路径解析为他们自己的计算机。

您可能希望通过将templates/sample.mp4移至static/sample.mp4(如有需要,创建static目录)来解决此问题。

然后在模板中:

  <video controls="" autoplay="" name="media">
    <source src="{{ url_for('static', filename='sample.mp4') }}" type="video/mp4">
  </video>

使用url_for方法可确保始终生成正确的链接,而不管应用程序最终托管于哪个URL。

如果您改为编写src='/static/sample.mp4',它将在开发中工作,但是如果您的应用程序后来托管在https://example.com/music/上,则此链接应指向example.com/static/sample.mp4,当它应为{{ 1}}。

答案 1 :(得分:0)

尝试使用relative address而不是absolute address

  <video controls="" autoplay="" name="media">
    <source src="./sample.mp4" type="video/mp4">
  </video>