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
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中的东西,其他文件夹下的一律访问不到。。。。既然你访问不到,你报一个访问不到的错误不行???。。。害我无头绪的找了半天错误!
真是气死我了!
所以不管你用的是否是什么框架,如果视频文件在本地,请放在静态文件夹下尝试!