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格式的视频文件,支持在浏览器播放了!

相关推荐
我的xiaodoujiao2 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099672 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing3 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
赶紧写完去睡觉3 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda
迷途呀3 小时前
Python:函数中的参数类型
开发语言·笔记·python·langchain·nlp
你驴我4 小时前
WhatsApp 多账号下消息已读回执的实时聚合与推送实践
后端·python
丨白色风车丨6 小时前
OpenCV 基于 HSV 颜色空间实时颜色分割(摄像头蓝色识别)
人工智能·opencv·计算机视觉·hsv颜色识别·python计算机视觉
AC赳赳老秦6 小时前
OpenClaw 采集任务日志审计:全程记录采集行为,满足合规溯源与企业审计要求
java·大数据·python·数据挖掘·数据分析·php·openclaw
huangdong_7 小时前
电商图片下载工具横向对比深度评测:固乔、FATKUN、图快、当图、淘蛙、存图宝七款工具全面解析
python
满怀冰雪7 小时前
04-Paddle Tensor 基础:形状、数据类型、广播与索引
python·深度学习·神经网络·paddle