OpenCV Python 录制视频

    • 调用摄像头
      • 引入库支持
      • 初始化
      • 调整界面大小
      • 实时显示
    • 录制视频并保存
      • fourcc问题解决
      • 代码实现
      • 效果展示
    • 总结

学到实用OpenCV调用笔记本电脑的摄像头,并录制视频保存到本地硬盘的时候,出现了一点故障,那就是获取到的文件总是为0KB。经过一番查找,终于找到了解决办法。


调用摄像头

调用摄像头作为本实验的基础是必不可少的,因为我们很有可能在初始化的这一步出错,而导致整个视频录制的失败。

引入库支持

import cv2

初始化

初始化的时候,参数可以是整数,也可以是外部的视频文件的名称。这里需要强调的是整数类型。

通常来说,笔记本电脑内置了一个摄像头,我们用0代表,其余的外接摄像头我们可以按照具体的情况来使用1,2,3··· ··· 来进行调用和数据的采集。

cap = cv2.VideoCapture(0)

有的时候,我们初始化完成了,但是并不知道到底成功了没有,这时,我们可以调用cap.isOpened()方法来侦测。

调整界面大小

默认的窗体界面是640X480的,但是我们却也可以修改,有固定方式和可任意调节方式。

  • 固定大小方式:
cap = cv2.VideoCapture(0)
# cap.set(3,1080)
# cap.set(4,720)
  • 窗口可任意调节方式:
cv2.namedWindow(cv2.WINDOW_NORMAL)

实时显示

实时显示就是将OpenCV采集到的一帧一帧的数据实时的显示到界面窗体上。

import cv2

# 初始化摄像头
cap = cv2.VideoCapture(0)

while cap.isOpened():
    # 采集一帧一帧的图像数据
    isSuccess,frame = cap.read()
    # 实时的将采集到的数据显示到界面上
    if isSuccess:
        cv2.imshow("My Capture",frame)
    # 实现按下“q”键退出程序
    if cv2.waitKey(1)&0xFF == ord('q'):
        break

# 释放摄像头资源
cap.release()
cv2.destoryAllWindows()

如此,便可以实时的获取到摄像头采集到的数据了。

录制视频并保存

学会了如何采集数据,下一步就是将采集到的数据写入到一个视频文件中。这就涉及到了编码的问题了,因为将图片写到视频文件中需要实时的压缩,处理。所以我们的电脑上要装有相应的码库。

fourcc问题解决

一开始我是用的fourcc是:

fourcc = cv2.VideoWriter_fourcc(*"XVID")

但是总是不能正确的录制出视频文件,显示大小为0KB。最后发现是电脑上没有响应的视频解码库导致的。

解决办法:

  • 一开始按照网上的参考资料,说是将out的第二个参数写为-1,这样运行的时候会弹出系统拥有的压缩方式,即可解决。但是在博主亲试之下,完美的失败了。 :(
  • 第二种方式,博主亲测有效,改变了fourcc的类型。
fourcc = cv2.cv.CV_FOURCC("D", "I", "B", " ")

代码实现

下面看一个完整的录制视频的小例子。

# coding:utf-8
import sys

reload(sys)
sys.setdefaultencoding('utf8')
#    __author__ = '郭 璞'
#    __date__ = '2016/9/7'
#    __Desc__ = 使用Python借助opencv实现对图像的读取,写入

import cv2
import numpy as np
# 选取摄像头,0为笔记本内置的摄像头,1,2···为外接的摄像头
cap = cv2.VideoCapture(0)
# cap.set(3,1080)
# cap.set(4,720)

# 为保存视频做准备
fourcc = cv2.cv.CV_FOURCC("D", "I", "B", " ")
# 第三个参数则是镜头快慢的,20为正常,小于二十为慢镜头
out = cv2.VideoWriter('output2.avi', fourcc,3.0,(640,480))
while True:
    # 一帧一帧的获取图像
    ret,frame = cap.read()
    if ret == True:
        frame = cv2.flip(frame, 1)
        # 在帧上进行操作
        # gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
        # 开始保存视频
        out.write(frame)
        # 显示结果帧
        cv2.imshow("frame", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
# 释放摄像头资源
cap.release()
out.release()
cv2.destroyAllWindows()

效果展示

亲测有效!

总结

本次试验收获有:

  • 如何使用OpenCV配合Python实时捕获摄像头数据
  • windows下录制视频文件大小为零的异常
  • 修改图像显示窗体大小的两种方式
  • 录制视频的过程中,输出为快慢镜头的调节方式
时间: 2024-10-16 04:00:46

OpenCV Python 录制视频的相关文章

求助:安卓手机vnc远程树莓派无法用opencv显示摄像头视频窗口

问题描述 求助:安卓手机vnc远程树莓派无法用opencv显示摄像头视频窗口 使用python,用opencv和usb摄像头实时图像处理并显示,在电脑上用远程桌面可以正常运行,但是在手机上无法运行,如截图.请问如何解决? 解决方案

鬼畜输入法怎么录制视频

  鬼畜输入法怎么录制视频?鬼畜输入法现在非常的火爆,其实和输入法没有一毛钱的关系,输入一段文字接着点击生成鬼畜视频就可以了,下面就和小编一起来看看鬼畜输入法录制视频教程吧. 1.首先下载本文附件的鬼畜输入法,打开后就能看到欢迎说明页面 2.然后会提示你输入一段文字,接着点击"生成鬼畜视频" 3.软件会自动生成视频,而且还有类似演员的准备进度直播,很有趣味 4.可以分享到各大社交平台,一起来感受新的聊天方式吧! 以上就是小编为大家带来的鬼畜输入法录制视频教程了.

KK录像怎么录制视频

  第一步:下载KK录像机 首先下载KK录像机,下载完毕直接安装运行. 第二步:选择录制模式 (注:切勿使用lol盒子;勿使用F9快捷键,游戏中按F9会导致lol游戏锁屏并出现红色边框) 1. 如果您是XP系统,KK录像机模式选择"全屏模式"或"区域模式",lol游戏必须以窗口模式-无边框方式运行:键盘按ESC-个性化设置-视频选项,窗口模式选择无边框,如果觉得窗口模式玩游戏不习惯,将游戏分辨率和桌面分辨率调成一致(建议1024x768,太高录制时可能会卡)实现全屏

iTools怎么录制视频?iTools录制视频教程

方法步骤 1.将手机USB数据线连接到电脑上,然后打开iTools3,打开后跟手机连接成功,在左侧会显示手机屏幕缩略图的,然后点击手机下方的实时桌面图标,如下图所示. 2.在实时桌面界面下,点击下方红色的录制按钮,如下图所示. 3.点击后弹出参数设置界面,我们先来设置下保存的位置,点击后面的"..."图标进行设置,如下图所示. 4.选择好保存路径,并填上录制视频的名字,然后点击保存,如下图所示. 5.保存位置设置好后,来设置视频分辨率和品质,还有麦克风音量,然后点击确定,如下图所示.

怎样用摄像头和Windows Movie Maker录制视频文件

  第一步:首先要确认摄像头已连接好,并调整好摄像头和麦克风与被拍物体之间的距离.由于摄像头的条件限制,应该控制在3米之内. 第二步:打开"开始"→"程序"→"Windows Movie Maker",弹出"Windows Movie Maker"主界面.左侧"电影任务"栏中点击"⒈视频捕获"→"从视频设备捕获",弹出"视频捕获向导"面板,在&qu

Camtasia studio 8录制视频的时候怎么取消倒数3秒的提?

  Camtasia studio 8录制视频的时候怎么取消倒数3秒的提?Camtasia studio 8 在开始录制视频的时候会有3秒倒计时,如果录制的视频比较少还可以,如果录制比较多,每一个3秒倒计时加起来还是很浪费时间的. 1.首先打开屏幕录制组件:如图,依次点开tools 2.接着点开 options选项,如图, 3.点开选项卡里面的,最后一个选项卡:Program,如图,下面有一个,显示倒计时(show countdown before recording),去掉前面的勾就可以了.

呱呱视频社区录制视频的方法

  呱呱视频社区录制视频的方法.在今天的呱呱视频社区使用教程中,我们将给大家分享的是呱呱视频社区录制视频的方法,可能很多网友都觉得很好奇,呱呱视频社区只是一款视频直播平台,它该怎么操作才能实现录制视频的方法呢?下面,小编就给大家讲一讲具体的流程! 呱呱视频社区 呱呱视频社区录制视频的方法: 1.比如你想录取某人的讲课.把鼠标放在上面.看到一个有剪刀形的图标,点击进去."抓图"就是拍照的意思."录音"跟"录像"大家都懂的意思.这里点击录像,如首图.

Potplayer怎么设置播放音乐快速定位录制视频

  设置作为音乐播放器 1.一般默认的是作为视频播放器使用的,但是也可以作为音乐播放器使用,右击鼠标选择"选项",点击"关联",再点击"选择音频"就可以关联所有的音频文件了 2.播放音乐的时候,在播放界面右击鼠标,选择"特效",勾选"可视化开/关",打开音乐播放特效比如小编图里的浮动球效果,充满动感 3.区域循环播放 播放的时候有时候我们想重复播放某一段,就像复读机一样,在开始位置点击大写的A,结束的时候点

KK录像机录制视频时很卡怎么解决

  KK录像机录制视频时很卡怎么解决: 降低游戏视频分辨率,如调成800x600;关闭无关软件和一些占资源的游戏效果,如降低多重采样和部分渲染效果. KK录像机的视频清晰度选择"标清",这种状态会降低对游戏的影响,同时录制的文件也小很多. 降低KK录像机的流畅度,选择中或低,能缓解游戏卡的现象,同时略微降低视频流畅度.