OpenCV视频写入详解_Python

问题:为何视频能读出来,而写入代码也没报错,但文件大小为0k,视频好似没有写入成功!

原因:cv2.VideoWriter()第二个参数控制视频编码的格式,多数教程上是这样写的

videoWriter = cv2.VideoWriter(‘out.mp4‘, cv2.cv.CV_FOURCC(‘M‘, ‘J‘, ‘P‘, ‘G‘), fps, size)

videoWriter = cv2.VideoWriter(‘out.avi‘, cv2.cv.CV_FOURCC(‘I‘,‘4‘,‘2‘,‘0‘), fps, size)

实际运行时生成的视频大小为0k,究其原因是运行环境没有相对应的视频编码器,故无法生成的视频,或者说第二个参数设置的不合适,系统里没有合适的。

解决办法

cv2.VideoWriter()第二个参数设置为-1,程序运行时则会交互地弹出一个对话框让你从系统已有的编码中选择一个。

import cv2
videoCapture = cv2.VideoCapture('clocka.avi')
fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS)
size = (int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
v = cv2.VideoWriter('bb.avi', -1, fps, size)

print fps, size,'v->',v

success, frame = videoCapture.read()

while success:
	cv2.imshow('MyWindow', frame)
	cv2.waitKey(1000/int(fps))
	v.write(frame)
	success, frame = videoCapture.read()

结果如下

文件信息

时间: 2024-11-07 06:16:11

OpenCV视频写入详解_Python的相关文章

indows下PHP通过ffmpeg给上传的视频截图详解

windows下PHP通过ffmpeg给上传的视频截图详解,php_ffmpeg.dll安装下载,找了很久php_ffmpeg.dll的下载地址和应用,发现有用的资源很少,现在问题解决了,贴出来跟大家分享一下: 首先要安装PHP的ffmpeg扩展,我们需要php_ffmpeg.dll文件和一些其他的辅助文件,        这里整理了一下提供给大家: ffmpeg-php-win32-all.rar: 解压后你将得到5个文件,将avcodec-51.dll, avformat-51.dll, a

树莓派的设置及opencv的安装详解

1.树莓派的系统下载网站为:https://www.raspberrypi.org/downloads/raspbian/,其中选择Raspbian Jessie with desktop此版本,另外的mini版功能不是很健全,不推荐. 当然也可以在https://www.raspberrypi.org/downloads/网址下载NOOBS然后选择安装,据说会更简洁. 下载raspbian系统时可以用utorrent种子软件来下载,速度可达2M左右,很节省时间.系统压缩包为1.6G,安装完成占

第五章 音频和视频应用详解(第一篇)

---恢复内容开始--- 5.1处理音频 1.使用<video>元素标记 当前<video>标记支持如下三种格式 Ogg:带有Theora视频编码和vorbis音频的Ogg文件 MPEG4:带有H.264视频编码和Acc音频编码的MPEG4文件 WebM:带有Vp8视频编码和Vorbis音频编码的WebM文件 control:供添加播放.暂停和音量控件 <video>标记允许多个"source"元素,"source元素可以链接不同的视频文件

涉江采芙蓉——语音视频采集详解(源码赠送)

对于OMCS而言,采集是第一个环节.所谓“巧妇难为无米之炊”,首先我们要从多媒体设备上拿到第一手材料.对于音频而言,就是要从麦克风.声卡等设备获取到音频信号:对于视频而言,就是要从显示器.摄像头等设备获取到图像信息.如何获取到这些信息呢?于是我们需要采集. 所谓采集又可以拆分成采样和集聚两个步骤来理解.这就好比“曹聪称象”,先将大的总体分解成一个个样本,再将分解得到的样本整合起来,其思想无非就是用样本来模拟总体.  (1)对于视频而言,采集的过程就如同下图所示 我们知道,视频总是连续的,但是我们

OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解

原文:http://blog.csdn.net/yang_xian521/article/details/7107786 我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看core这部分也算是走马观花吧,随着使用的增多,对Mat这个结构越来越喜爱,也觉得有必要温故而知新,于是这次再看看Mat. Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,对于一些大型的开发,有时候投入的lpImage内存管理的时间甚至比关注算法实现的时间还要多,这

RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)

一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 HTTP.下面分别介绍下三者的特点. 1,RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP 1个通道上传输命令和数据. 2,RTSP协议 (1)是流媒体协议. (2)R

RTMP、RTSP、HTTP视频协议详解(转)

一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 HTTP.下面分别介绍下三者的特点. 1,RTMP协议 (1)是流媒体协议. (2)RTMP协议是 Adobe 的私有协议,未完全公开. (3)RTMP协议一般传输的是 flv,f4v 格式流. (4)RTMP一般在 TCP 1个通道上传输命令和数据. 2,RTSP协议 (1)是流媒体协议. (2)R

CloudCompare视频录制详解

CloudCompare is a 3D point cloud and mesh processing software , Open Source Project 这款开源软件的功能很强大,被很多人用来做点云的显示和处理,现在就CloudCompare(以下简称cc)的视频录制功能进行详细的操作说明. 在cc操作界面的Plugins菜单下拉子菜单中有一个qAnimationPlugin,这个功能就是用来进行视频录制的: 如果直接点击qAnimationPlugi,会出现下面的弹出框 这是因为

opencv 图像变换原理详解 图像平移 图像旋转 图像缩放

常见的2D图像变换从原理上讲主要包括基于2×3矩阵的仿射变换和基于3×3矩阵透视变换. 仿射变换 原理 基本的图像变换就是二维坐标的变换:从一种二维坐标(x,y)到另一种二维坐标(u,v)的线性变换: 如果写成矩阵的形式,就是: 作如下定义: 矩阵T(2×3)就称为仿射变换的变换矩阵,R为线性变换矩阵,t为平移矩阵,简单来说,仿射变换就是线性变换+平移.变换后直线依然是直线,平行线依然是平行线,直线间的相对位置关系不变,因此非共线的三个对应点便可确定唯一的一个仿射变换,线性变换4个自由度+平移2