python-flask-html:没有找到MIME类型的可能原因总结

总结

网上给出的答案未必都是能解决自己的问题,实际上还是看一个合格的程序员排错的能力问题。可惜我还需努力!

向这种没有头绪的报错我们,我们先尝试:

一:先测试一个浏览器可以直接点开的url视频文件或者本地文件

这个是一个可以浏览器打开的视频文件url:
http://media.w3.org/2010/05/bunny/movie.mp4

二:再尝试自己的视频文件(url或本地)浏览器能否直接打开?

三:html:是否html文件里<video>等标签或里面的内容写错了?

四:html:是否是视频格式问题(浏览器支持的视频问题)?

测试video.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试视频文件</title>
</head>
<body>
    <h5>11111</h5>
        播放v1→.mp4格式(手机上的视频):(X)
    <video src="video/video1.mp4" controls autoplay style="width: 150px;height: 150px"></video>
        播放v2→.mpg格式:(X)
    <video src="video/video2.mpg" controls autoplay style="width: 150px;height: 150px"></video>
        播放v3→.OGG格式:(√)
    <video src="video/video3.ogg" controls autoplay style="width: 150px;height: 150px"></video>
        播放v4→.ogg格式:(√)
    <video src="video/video4.ogg" controls autoplay style="width: 150px;height: 150px"></video>
        播放v5→.webm格式:(√)
    <video src="video/video5.webm" controls autoplay style="width: 150px;height: 150px"></video>
        播放v6→.avi格式:(X)
    <video src="video/video6.avi" controls autoplay style="width: 150px;height: 150px"></video>
        播放网页url视频→url的.mp4格式:(√)
    <video src="http://media.w3.org/2010/05/bunny/movie.mp4" controls autoplay  style="width: 150px;height: 150px"></video>
    <h5>22222</h5>
</body>
</html>

在这里插入图片描述

我用的是火狐浏览器:
在这里插入图片描述
如图可知:上面.OGG和.ogg和.webm和网页url的.mp4都没问题,本地的.mp4时间轴会动但是不显示视频内容

五:后端编写(非html文件):是否不支持 HTTP “Content-Type” 设为 “text/html”。媒体资源 xxx.mp4 载入失败。(Type类型问题)

在步骤四还是没有问题的前提下,则考虑type类型问题:

1、

flask开发的话,尝试flask–>视图函数return的时候Response带上Content-Type -->video/mp4

常见的MIME类型

2、

如果flask视图函数写的运行,浏览器不能正常打开播放。则考虑是否是windows问题(一般这项在上述尝试4中排除
windows找到iis
windows添加MIME类型

如果flask视图函数写的运行,浏览器也能正常打开,则可能是你编写用的python包自带的函数中被默认改掉了type类型。(那请节哀,只能仔细去分析python包里的函数问题了。或者尝试集成到上面可行的途径中去:尝试集成到flask中或尝试和html脚本结合开发)

六:啊啊啊啊啊啊啊,还是错的!!!!脑子要爆炸放弃了的时候,我终于找到了原因!!!

视频写网络地址的时候完全能播放,一写到本地就瘫痪了。。。
但是报错却毫无头绪:
在这里插入图片描述
在这里插入图片描述
不支持你个头啊不支持。。。气死我了。。害我找了半天的MIME类型啊、Type类型啊、怎么改Content-Type类型啊、怎么改Response啊。。。。
甚至下了个格式工厂 改了半天的格式,测试了大半天。。。还是无效!

app.layout = html.Div([html.Video(controls='controls',src='./video/apg.mp4')])

我创建的是Flask项目包:

我的本地视频的URL是这样写的:src=’./video/apg.mp4’

你看这个URL,一看是没有任何问题!

可是你品,你细品。。。。最关键的恰恰是这个问题!!!!!!!

flask项目里用到的的src只能用static中的东西,其他文件夹下的一律访问不到。。。。既然你访问不到,你报一个访问不到的错误不行???。。。害我无头绪的找了半天错误!

真是气死我了!

所以不管你用的是否是什么框架,如果视频文件在本地,请放在静态文件夹下尝试!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Flask实现Python的录屏功能,你可以使用OpenCV库来捕捉屏幕,并使用Flask来创建一个Web应用程序来显示录制的视频。下面是一个简单的示例代码: ```python from flask import Flask, render_template, Response import cv2 app = Flask(__name__) def generate_frames(): # 打开摄像头(如果要录制屏幕,请使用cv2.VideoCapture(0)) cap = cv2.VideoCapture(0) while True: # 读取帧 success, frame = cap.read() if not success: break else: # 将帧转换为JPEG格式 ret, buffer = cv2.imencode('.jpg', frame) frame = buffer.tobytes() # 生成视频流 yield (b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') @app.route('/') def index(): return render_template('index.html') @app.route('/video_feed') def video_feed(): return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame') if __name__ == '__main__': app.run(debug=True) ``` 在上面的代码,我们使用OpenCV来捕捉摄像头的视频帧。如果你要录制屏幕而不是摄像头,请将`cv2.VideoCapture(0)`更改为`cv2.VideoCapture(0)`。然后,我们使用Flask来创建一个Web应用程序,并在`/video_feed`路由上返回生成的视频流。 记得在项目目录下创建一个名为`templates`的文件夹,然后在其创建一个名为`index.html`的模板文件,用于显示视频流。模板文件的内容可以是以下代码: ```html <!DOCTYPE html> <html> <head> <title>Screen Recording</title> </head> <body> <img src="{{ url_for('video_feed') }}" width="640" height="480"> </body> </html> ``` 运行上述代码后,你可以在浏览器访问`http://localhost:5000`来查看录制的视频。请确保你已经安装了Flask和OpenCV库。如果没有安装,可以通过以下命令进行安装: ``` pip install flask opencv-python ``` 希望这能帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值