You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派motionEye录制视频嵌入HTML无法播放,求解决方法

解决motionEye录制视频嵌入HTML无法播放的问题

我来帮你搞定这个视频播放的坑!结合你提到的Chrome灰屏、Firefox提示MIME兼容的情况,再加上motionEye的编码信息,主要问题大概率出在路径配置错误、服务器MIME类型未正确设置或者视频编码兼容性这几个方面,咱们一步步排查解决:

1. 先排查最容易踩的坑:HTML里的视频路径错了

你说网页和视频在树莓派的同一目录?不对哦——网页里的src路径是相对于web服务器的根目录,不是你系统里的文件目录!

比如你用Python的http.server启动时,如果你在/home/pi/Desktop/目录下启动,那服务器根目录就是/home/pi/Desktop/,这时候HTML里的视频路径应该写成:

<video style="width: 23%; height: 23%; margin-right: 5%; margin-left: 5%; margin-bottom: 5%;" controls>
  <source src="video/2018-05-26/14-27-06.mp4" type="video/mp4">
</video>

而不是你原来写的绝对路径/home/pi/Desktop/video/...——浏览器会把这个当成域名根目录下的路径,自然找不到文件,导致灰屏或报错。

2. 修复服务器的MIME类型配置

Firefox提示MIME兼容性,说明你的web服务器没有给MP4文件返回正确的video/mp4类型标识,浏览器识别不了视频格式。

如果用Python简易HTTP服务器:

  • 在服务器根目录创建一个mime.types文件,内容写:
    video/mp4 mp4
    
  • 然后用这个文件启动服务器:
    python3 -m http.server --mime-types mime.types
    

如果用Nginx:

打开nginx.conf,在http块里添加MIME映射:

types {
    video/mp4 mp4;
}

重启Nginx生效:sudo systemctl restart nginx

如果用Apache:

在网站根目录的.htaccess文件里添加:

AddType video/mp4 .mp4

或者在Apache主配置文件里添加同样的内容,重启Apache:sudo systemctl restart apache2

3. 编码兼容性修复(如果前两步都不行)

从你提供的编码信息看,motionEye用的是H.264(avc1)+AAC编码,理论上浏览器支持,但树莓派硬件编码可能输出了高Profile的参数,部分浏览器不兼容。这时候用ffmpeg重新编码成通用兼容的格式:

先安装ffmpeg:

sudo apt update && sudo apt install ffmpeg -y

然后执行编码命令:

ffmpeg -i /home/pi/Desktop/video/2018-05-26/14-27-06.mp4 \
  -c:v libx264 -profile:v baseline -level 3.0 \
  -c:a aac -b:a 128k \
  /home/pi/Desktop/video/compatible_video.mp4

这个命令会把视频转成Baseline Profile的H.264(所有浏览器都支持),搭配标准AAC音频,转完后替换HTML里的视频路径再测试。

按这个顺序排查,应该能解决问题!

内容的提问来源于stack exchange,提问作者michael mattanza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:00:18