opencv-python保存视频为mp4格式并支持在浏览器播放

前言

之前在项目上使用yolov8进行视频检测的时候,yolov8默认windows系统下保存的是avi格式

python 复制代码
suffix, fourcc = ('.mp4', 'avc1') if MACOS else ('.avi', 'WMV2') if WINDOWS else ('.avi', 'MJPG')
self.vid_writer[idx] = cv2.VideoWriter(str(Path(save_path).with_suffix(suffix)),
                                                       cv2.VideoWriter_fourcc(*fourcc), fps, (w, h))

前端对接的时候说avi文件无法播放,需要转换为mp4格式,后来我修改了yolov8的源码,将结果视频的格式修改为了mp4。

python 复制代码
suffix, fourcc = ('.mp4', 'avc1') if MACOS else ('.mp4', 'mp4v') if WINDOWS else ('.avi', 'MJPG')

结果还是无法播放。。。在浏览器访问的效果如下:

后来百度发现,浏览器只支持播放H.264编码的mp4视频!!!opencv使用ffmpeg进行视频流的编解码,不支持H.264编码,需要额外安装openh264。

下载安装openh264

下载地址:Releases · cisco/openh264 (github.com)

下载后解压得到dll文件,并将其放置于虚拟环境下,下图所示是我本机的虚拟环境目录:

修改编码类型

使用编解码器H.264 (High Profile),需要设置fourcc_type = 'avc1'

python 复制代码
suffix, fourcc = ('.mp4', 'avc1') if MACOS else ('.mp4', 'avc1') if WINDOWS else ('.avi', 'MJPG')

然后在启动程序,生成的就是H.264编码的mp4格式的视频文件,支持在浏览器播放了!

相关推荐
Gitpchy9 小时前
Day 28 类的定义和方法
python·机器学习
jieyu11199 小时前
Python 实战:Web 漏洞 Python POC 代码及原理详解(3)
python·web安全
弗朗凌戈9 小时前
机器学习-导师优选
人工智能·python·机器学习
全栈探索者9 小时前
numpy基础
python·数据分析·numpy
程序员爱钓鱼10 小时前
Python编程实战 - 函数与模块化编程 - Python内置模块(math、os、sys、random等)
后端·python·ipython
Blossom.11810 小时前
把AI“灌”进奶瓶:1KB决策树让婴儿温奶器自己学会「恒温+计时」
人工智能·python·深度学习·算法·决策树·机器学习·计算机视觉
Jmayday11 小时前
python数据分析项目之:房地产数据可视化分析
python·信息可视化·数据分析
快乐的钢镚子13 小时前
【leetcode hot 100】49.字母异位词分组
python·leetcode
honeysuckle_luo14 小时前
RandLA-net-pytorch 复现
人工智能·pytorch·python
SunnyDays101115 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python·excel转txt·文本转excel·excel转文本·txt转excel