opencv VideoWriter保存视频失败原因

YOLOv8+PyQt5实战:构建桌面端人脸检测识别系统 目标检测与人脸识别是计算机视觉领域的高频应用方向,YOLOv8作为新一代实时检测算法,凭借高精度与易用性成为工程实践的热门选择;而桌面应用开发中,PyQt5提供了成熟的GUI组件与事件循环机制。本文将两者结合,从人脸检测的基本原理出发,解析YOLOv8模型推理与PyQt5界面交互的整合思路,涵盖图片、摄像头、视频等场景下的功能实现,并探讨批量处理、API扩展及性能调优等工程问题。通过本文,读者能够理解目标检测从算法到桌面工具的完整链路,并掌握搭建一套可操作的人脸识别系统的方法,适用于课设毕设、安防原型及内部 阅读详情
AI摘要

本文介绍了在使用OpenCV的VideoWriter类时遇到无法打开的问题及其原因。主要涉及两个方面:一是确保文件名正确指定了封装格式,如.avi;二是确认系统支持指定的编码格式,例如MJPEG。此外,还提供了如何查询ffmpeg支持的编解码器的方法。

opencv 中,VideoWriter类 如果不能成功打开(也就是说 .isOpened()返回为false), 通常有两类主要原因。

1. 封装支持

           保存文件名需要写明保存文件的封装格式,后缀为 .avi 可以成功打开编码器,本人试用过 .mp4, 未能打开。

2.编码格式支持

          VideoWriter构造函数的第二个参数是一个代表编码格式的整数,它是通过指名编码格式的名称来转换的。例如

          如果你不能正常保存视频,也有可能是你的系统没有对应的编码库。 指的是MJPEG 编码格式,那么需要你的系统里支持MJPEG编码(光支持解码是不够的)。本人的系统里面安装了ffmpeg(本人其他博文有ffmpeg 的安装方法), 在我编译opencv库时已经配置了这一选项。因此ffmpeg支持的编解码库,我的opencv 也是支持的。

          ffmpeg -codecs  查询ffmpeg支持的编解码形式

         例如: 查询是否支持264编码

ffmpeg -codecs | grep 264
ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov 10 2014 20:48:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: 
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
 D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
最后一行告诉了我  H264只支持啦decoder,  没有encoder ,因此我的opencv 是不能支持264编码的。

如果我使用 CV_FOURCC('A','V','C', '1')参数,那么打开VideoWriter时会提示我无法打开,提示我安装libx264(一个开源的H264编解码库)

但是我使用 CV_FOURCC('D', 'I','V','X') CV_FOURCC(‘M’, 'J', ‘P’, 'G') 都可以正常打开

正常使用案例:

    const char* fileName = "/home/sean/Projects/office_video_3.avi";
    videoWriter = VideoWriter(fileName, CV_FOURCC('D', 'I','V','X'), 30, sizeTemp, true);

   if(!videoWriter.isOpened())
    {
 	cout<< "Error : fail to open video writer\n"<<endl;
	return -1;
    }

为了采集测试样本,昨晚自己在PC上搭了一个简单的DVR(结合了运动检测,因此录了13小时,只用来 500M磁盘空间),晚上11点下班时将它打开,第二天来到办公室,采集到了各位同仁上班的风采。

YOLO26深度估计实战:从安装到部署全流程 深度估计是计算机视觉中从单目图像推断场景三维结构的关键技术,其输出深度图广泛应用于机器人避障、自动驾驶预研、AR交互及工业测距等场景。传统方案往往需要独立搭建MiDaS或Depth-Anything等流程,工程集成成本高。Ultralytics在YOLO26版本中正式将深度估计纳入统一框架,复用检测、分割、姿态估计的训练与部署链路,支持CLI、Python API及ONNX/TensorRT导出,显著降低单目深度估计的落地门槛。本文从深度估计的基本原理出发,介绍其核心价值与适用边界,并完整演示环境配置、模型 阅读详情

相关推荐

开源AI视觉实现机器狗姿态检测:从MediaPipe部署到边缘设备实践

计算机视觉中的姿态估计技术,旨在通过算法从图像或视频中识别并定位目标(如人体、动物)的关键身体部位。其核心原理通常基于深度学习模型,通过卷积神经网络提取图像特征,并回归预测关键点的坐标位置。这项技术的价值在于为机器提供了“视觉感知”能力,使其能够理解目标的姿态和动作,是实现人机交互、运动分析和行为理解的基础。在机器人、嵌入式系统和边缘计算等应用场景中,轻量化的姿态估计模型(如MediaPipe)因其高效的推理性能而备受青睐。本文聚焦于将这一技术应用于四足机器人——机器狗,详细阐述了如何利用开源视觉库和预训练

ciya3282的博客 424

OpenCV VideoWriter 视频写操作及 保存的视频打不开

由于,我读取的图像是黑白相机保存的。cv::imread时,后面不要带参数0,带参数 0 的话,保存的视频会打不开。参考其他视频打不开的连接。

u012719076的博客 1510

LicheeRV Nano USB摄像头实战:从V4L2采集到远程预览全流程

嵌入式Linux开发中,USB摄像头是常见的视觉输入方案。其即插即用特性依赖于UVC标准与内核中的uvcvideo驱动,无论x86、ARM还是RISC-V架构,只要内核支持,就能将摄像头抽象为V4L2设备节点。V4L2作为Linux视频采集的核心框架,负责格式协商、缓冲区管理与帧数据传递,配合FFmpeg工具,可轻松完成单帧抓取、RTSP低延迟推流或HTTP MJPEG网页预览。在LicheeRV Nano这类RISC-V单板计算机上,受限于USB 2.0带宽与256MB内存,需优先采用MJPEG压缩格式以

weixin_29159441的博客 244

解决:VideoWriter保存视频无法打开以及保存的视频仅有几KB

文章目录VideoWriter保存视频无法打开以及保存的视频仅有几KB函数参数问题视频运行问题 VideoWriter保存视频无法打开以及保存的视频仅有几KB 函数参数问题 vw = cv2.VideoWriter(filename, fourcc, output_fps, size,isColor)的参数设置有问题,或者是vw.write(frame)的参数frame有问题,常见情况有: filename的父目录不存在,或者没有权限在path位置创建文件,或者filename的扩展名不是有效的视频文件

零碎@流年絮语 的博客 4925

使用moviepy进行视频剪辑时出现“NoneType” object has no attribute “stdout”问题

在这个修改后的代码中,我们首先使用os.path.abspath()方法获取绝对路径,然后使用os.path.dirname()方法获取父目录。这个错误信息并不太容易理解,经过一番排查,我发现这个错误是由于在调用write_videofile()方法时,指定了一个无效的输出文件名所引起的。但是,通过对源码的分析,我们可以发现它实际上是由于write_videofile()方法中指定的输出文件名无效所导致的。接下来,我们创建一个简单的视频剪辑,对某个视频进行裁剪,然后将结果保存为另一个文件。

. 755

OpenCV保存视频时的常见问题及解决方法

在使用OpenCV保存视频时,我们可能会遇到视频质量不佳、文件大小过大或者保存失败等问题。通过合理地设置这些参数,我们可以获得更好的视频质量、减小文件大小并确保保存成功。在使用OpenCV进行视频处理时,保存视频是一个常见的操作。然而,有时候我们可能会遇到一些问题,例如视频质量不佳、文件大小过大或者保存失败等。当保存视频时,有时候可能会发现生成的视频质量不如预期。保存视频时,有时候生成的视频文件可能会非常大,这可能会导致存储空间浪费或传输困难。对象的第二个参数指定了帧速率,第三个参数指定了视频的分辨率。

EiyMobile的博客 664

OpenCV图片转视频无法保存的问题

出现这个表明,指定的编解码器/标记组合不受支持,即mp4 / MP4 (MPEG-4 Part 14)组合不被支持,OpenCV 正在退回到另一种编解码器。当尝试使用不支持的编解码器写入视频文件或编解码器配置设置不正确时,经常会出现这种情况。如果 mp4v 不适合环境设置,也可以尝试这些不同的编解码器。修改存储格式为mp4v。

weixin_43248492的博客 770

YOLOv3目标检测实战:数据集标注与训练参数避坑指南

目标检测是计算机视觉中最基础也最常用的任务之一,YOLO系列以单阶段检测的简洁流程和实时性能成为工程落地的主流选择。然而在实际项目中,影响检测效果的关键往往不在网络结构,而在于数据质量与训练策略。数据集是否规整、标注格式是否与模型匹配、类别映射是否合理,这些前置环节直接决定了后续训练能否收敛。本文从目标检测的基本概念出发,梳理从VOC数据集准备、XML标注转YOLO txt格式、cfg配置项修改到loss曲线判读的完整链路,并给出课程作业与轻量级工程中最常见的五个翻车现场和排查方法。掌握这些数据与训练参数的

weixin_33826609的博客 930

解决opencv-python用VideoWriter保存视频失败或仅有1KB的问题

链接: https://blog.youkuaiyun.com/liuqixuan1994/article/details/90032755. 除了上面的链接提到的问题以外,VideoWriter保存灰度视频失败还有一种可能的原因: isColor 参数没有设为False。

weixin_44116254的博客 1441

校园人脸识别考勤系统工程实践指南

人脸识别考勤不是调用API的Demo,而是融合计算机视觉、嵌入式部署与高并发数据库的综合工程问题。其核心原理在于人脸特征提取的鲁棒性(如姿态校准、光照归一、特征聚类),实时识别的性能优化(流水线分离、硬件编码加速、内存复用),以及真实场景下的可信保障(活体检测、环境声纹绑定)。技术价值体现在从实验室到教室的落地稳定性——解决逆光、多人同框、USB设备漂移、MySQL写入冲突等典型工程瓶颈。广泛应用于高校课堂考勤、会议签到、门禁管理等需要高可靠性与可维护性的教育信息化场景。本文聚焦可复现、可部署的校园级人脸考

weixin_34348174的博客 390

光储微电网混合储能系统的控制策略

随着社会生产力的不断提高,对不可再生资源的大量消耗,人们已经意识到发展可再生能源的重要性,因此微电网技术作为再生能源利用的有效形式被快速发展。蓄电池容量无限大是传统光储微电网混合储能系统控制策略一种理想形式,但实际上蓄电池的容量是有限度的,传统控制策略在蓄电池剩余电量达到阖值时将无法正常使用,由此提出了光储微电网混合储能系统的新型控制策略,又结合实际情况,对开关进行了改进,利用开关与二极管并联,使其拥有四种工作状态,当储能元件剩余电量达到阈值时,可自动恢复电量降低成本,提高并输出电池电能质量。

nhkg888的博客 1742

Opencv3+yolov3+Qt5 项目开发遇坑小记

1.VideoCapture 打开 video失败 原因:opencv编译时ffmpeg.dll下载失败。导致缺少ffmpeg相关库。 解决:cmake编译时,若提示ffmpeg下载失败 ffmpeg下载失败解决办法参考博客: https://blog.youkuaiyun.com/KayChanGEEK/article/details/79919417 ...

Soly_semon的博客 659

让AI镜头“活”起来:22个核心运镜提示词,告别视频画面呆板

介绍了22种影视级镜头语言的AI提示词用法。内容涵盖推轨/后拉镜头等距离变化技巧、横摇/俯仰等方向控制手法、环绕/升降等空间位移方式,以及POV视角等特殊构图。

weixin_43489601的博客 6283

OpenCV cv2.VideoWrite() 写出为空

问题: cv2.VideoWrite() 写出为空 症状:输出的文件为空或损坏或无法打开 原因: ①封装支持 保存文件名需要写明保存文件的封装格式,后缀为 .avi 可以成功打开编码器,而诸如 .mp4,.rmvb, 未能打开。 ②运行环境没有相对应的编码器 1 import numpy as np 2 import cv2 3 cap = cv2.VideoCaptur...

weixin_30315435的博客 1305

trae CN 配置ida的mcp教程

本文介绍了在TraeCN中配置IDA Pro MCP服务的完整步骤:1)准备IDA Pro 9.0+和Python 3.11+环境;2)安装MCP服务端并配置插件;3)生成MCP配置文件;4)在TraeCN中添加HTTP类型MCP服务(默认端口13337);5)测试连接。重点说明了HTTP配置方式的操作流程,包括手动启动服务、正确填写JSON配置等关键环节。

2401_87915504的博客 1956

设备树实践:从零构建一个嵌入式板级的设备树描述

本文详细介绍了如何从零开始为嵌入式Linux系统构建设备树(Device Tree),以i.MX6ULL处理器为例,涵盖硬件分析、设备树语法、外设配置及调试技巧。通过实践指导,帮助开发者掌握设备树编写,实现硬件与软件的高效对接,提升嵌入式开发效率。

plum99的博客 307

视频AI增强:调色放大与C位跟踪技术实践

视频处理技术通过AI算法实现画质增强和智能分析,其核心原理包括深度学习模型对图像特征的提取与重建。在工程实践中,视频放大技术能够将低分辨率素材提升至4K级别,同时保持细节清晰度;而人物跟踪算法则通过目标检测与运动预测实现精准定位。这些技术的价值在于为虚拟偶像、自媒体创作等领域提供专业级的视频增强方案。具体到应用场景,结合Real-ESRGAN进行分辨率提升,配合DeepSort实现C位人物跟踪,能够有效解决练习室视频画质不足、焦点模糊等问题。本文以VAYONN项目为例,详细解析了从环境配置、GPU加速优化到

weixin_34409357的博客 366

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1315

Skild S1机器人基础模型:视频即提示词的机器人控制新范式

大语言模型已深刻改变文本生成与多模态理解,而在机器人领域,一种名为“机器人基础模型”的范式正在兴起。这类模型借鉴预训练大模型与下游适配的思路,将海量视频作为学习素材,学习物理世界中视觉输入与动作输出之间的映射关系。Skild S1正是这一方向的典型代表,其核心设计哲学是“视频即提示词”——通过视频示范代替手写控制代码,模型可直接输出关节角度、末端位姿等机器人可执行的动作序列。这种交互方式大幅降低了任务定制的复杂度,提升了泛化能力,也为仓储搬运、精密装配等自动化场景提供了低门槛开发路径。理解从视频预处理、任务

weixin_34146805的博客 318

Android 13.0仿ios的hotseat效果修改hotseat样式

在13.0系统产品rom定制化开发中,在项目需求的需要,系统原生Launcher的布局样式很一般,所以需要重新设计ui对布局样式做调整,产品在看到 ios的hotseat效果觉得特别美观,所以要仿ios一样不需要横屏铺满的效果 居中显示就行了,所以就要看hotseat的具体布局显示了

安卓兼职framework和app工程师的博客 1144

RFSoC全面解析(八)—— ZCU111 RFSoC评估工具的上位机界面

下面的内容的参考文献为:XILINX公司文档UG1287。 XILINX公司提供了一个RFSoC的ADC/DAC性能的评估工具或者叫评估系统,这个文档就是讲如何使用这个评估工具的。 整个评估系统总的框图如上图所示,评估系统由上位机、ZCU111开发板、子卡以及网线、射频线缆组成。 ZCU111开发板内主要使用的RFSoC外设为时钟驱动和DDR4,RFSoC的PS部分和PL部分都使用了。 PS部分发挥的功能为通过网口与上位机通信,通过IIC总线控制时钟驱动芯片以及数据流控制等;PL部分发挥的功能为

4381

现场AI监控与隐私保护:人脸匿名化及视频流处理实战

人脸识别技术已广泛应用于安防监控、活动安保等场景,但也引发了对个人隐私的担忧。在计算机视觉领域,人脸检测与识别通过YOLO、ArcFace等模型实现,而视频流处理则依赖OpenCV与RTSP协议。如何在不侵犯隐私的前提下利用AI技术?人脸匿名化成为关键手段,通过对检测到的人脸区域进行高斯模糊或对抗噪声处理,可有效防止身份信息泄露。同时,将匿名化能力封装为API接口,便于批量视频处理和实时流接入,实现工程化部署。本文从环境配置到代码实现,介绍基于Python和FastAPI构建的人脸匿名化系统,涵盖视频帧处理

weixin_33849215的博客 336

B07:AI 时代怎么考核团队?我把 KPI 改了 5 版才找到答案

最后说一句掏心窝的话。绩效考核不是"管人"的工具,是"引导团队行为"的工具。你定什么指标,团队就会做什么行为。你定"AI 占比",团队就凑占比你定"效率提升",团队就挑软柿子你定"代码行数",团队就刷行数你定"工具使用率",团队就刷使用只有定"业务价值 + 工程质量 + 能力成长"三个维度的指标,团队才会真正关注长期价值。这套 KPI,我在我带的团队里跑了 6 个月,没有任何一个指标被"刷"出来。考核的是结果,不是过程。永远考核"创造了多少价值",永远不考核"用了多少 AI"。

刘一说的IT专栏 503

基于YOLOv8与PyQt5的水下垃圾生物检测识别系统实现

目标检测是计算机视觉领域的核心任务之一,旨在从图像或视频中定位并分类物体。在传统陆场景中,成熟算法已能取得较好效果,但水下环境因光照衰减、水体浑浊、目标尺度多变等问题,对检测模型提出了更高挑战。YOLOv8作为新一代单阶段检测算法,凭借其高效的网络结构和灵活的部署能力,成为解决此类复杂场景的有力工具。PyQt5作为成熟的桌面GUI框架,可构建直观的交互界面,实现图像、视频及摄像头的实时推理与结果展示。将两者结合,可快速打造一套面向水下垃圾和生物识别的桌面端检测系统,广泛应用于海洋环保监测、水下机器人巡检及渔

weixin_33806914的博客 406

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

具身智能数据采集实战:低成本方案与自动化流程全解析

在机器人学与人工智能领域,数据采集是构建感知与决策模型的基础环节。其核心原理在于通过多模态传感器同步记录物理世界的状态与交互信息,形成可供算法学习的结构化数据集。这一过程的技术价值在于,高质量、大规模的数据是提升模型泛化能力、实现精准控制的关键驱动力,尤其在具身智能等需要与物理环境深度交互的应用场景中。当前,行业正面临如何高效、低成本获取海量训练数据的系统性挑战。本文聚焦于此,深入探讨了利用消费级硬件(如智能手机)与开源框架(如ROS)构建自动化采集管道的可行策略,并详细解析了从环境部署、脚本编写到任务管理

weixin_33912246的博客 380

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Jan AutoQA:构建集成 ReportPortal、屏幕录制与回合监控的端到端自动化测试框架

Jan 仓库中的 `autoqa/` 目录提供了一套面向 Jan 桌面应用本身的端到端(E2E)自动化测试框架:它以「文本 prompt 即测试用例」的方式驱动一个计算机操作智能体(Computer Agent)去真实点击、操作 Jan 应用,并自带屏幕录制、回合数(turn)监控、ReportPortal 结果上报与跨平台(Windows/macOS/Linux)进程管理能力。读完本篇,你可以掌

gitblog_00168的博客 493

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: ubuntu截图工具scrot
下一篇: c 语言字符处理函数 strtok strstep
sean_xyz
博客等级 码龄15年 78粉丝 79原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值