python读取和保存视频

内容来自博客+博客~

读取视频

用cv2库的好处是返回的就是arrary,不用转换,但这种方法是从头读到尾

利用cv2库读取视频,代码实现如下:

import cv2cap = cv2.VideoCapture('C:\\Users\\xxx\\Desktop\\sweet.mp4')while(cap.isOpened()):# ret返回布尔值ret, frame = cap.read()# 展示读取到的视频矩阵cv2.imshow('image', frame)# 键盘等待k = cv2.waitKey(20)# q键退出if k & 0xff == ord('q'):break# 释放资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()

读取和保存视频

  1. 读取视频
  2. 对每一帧进行处理
  3. 保存视频
import cv2# VideoCapture方法是cv2库提供的读取视频方法
cap = cv2.VideoCapture('C:\\Users\\xxx\\Desktop\\sweet.mp4')
# 设置需要保存视频的格式“xvid”
# 该参数是MPEG-4编码类型,文件名后缀为.avi
fourcc = cv2.VideoWriter_fourcc(*'XVID')
# 设置视频帧频
fps = cap.get(cv2.CAP_PROP_FPS)
# 设置视频大小
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# VideoWriter方法是cv2库提供的保存视频方法
# 按照设置的格式来out输出
out = cv2.VideoWriter('C:\\Users\\xxx\\Desktop\\out.avi',fourcc ,fps, size)# 确定视频打开并循环读取
while(cap.isOpened()):# 逐帧读取,ret返回布尔值# 参数ret为True 或者False,代表有没有读取到图片# frame表示截取到一帧的图片ret, frame = cap.read()if ret == True:# 垂直翻转矩阵frame = cv2.flip(frame,0)out.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:break# 释放资源
cap.release()
out.release()
# 关闭窗口
cv2.destroyAllWindows()

cv2.waitKey()是一个键盘绑定函数。它的时间量度是毫秒ms。函数会等待(n)里面的n毫秒,看是否有键盘输入。若有键盘输入,则返回按键的ASCII值。没有键盘输入,则返回-1.一般设置为0,它将无线等待键盘的输入。

cv2.VideoWriter_fourcc()函数

fourcc 意为四个字符代码(Four-Character Codes ),该编码由四个字符组成,下面是 VideoWriter_fourcc 对象一些常用的参数:

注意:字符顺序不能混合

  • cv2.VideoWriter_fourcc(‘I’,’4’,’2’,’0’),该参数是 YUV 编码类型,文件名后缀为.avi
  • cv2.VideoWriter_fourcc(‘P’,’I’,’M’,’I’),该参数是 MPEG-1 编码类型,文件名后缀为.avi
  • cv2.VideoWriter_fourcc(‘X’,’V’,’I’,’D’),该参数是 MPEG-4 编码类型,文件名后缀为.avi
  • cv2.VideoWriter_fourcc(‘T’,’H’,’E’,’O’),该参数是 Ogg Vorbis,文件名后缀为.ogv
  • cv2.VideoWriter_fourcc(‘F’,’L’,’V’,1),该参数是 Flash 视频,文件名后缀为.flv

cv2.flip()函数

语法:

cv2.flip(src, flipCode[, dst]) #src为要操作的图像

flipCode的使用方法:

flipCode=-1        #水平垂直翻转
flipCode= 0        #垂直翻转
flipCode= 1        #水平翻转

应用:

cv2.imshow('img1',cv2.flip(img,-1))#水平垂直翻转
cv2.imshow('img2',cv2.flip(img,0))#垂直翻转
cv2.imshow('img3',cv2.flip(img,1))#水平翻转

初次编写于2021年8月23日。

python视频操作——python实现读取和保存视频相关推荐

  1. python打开文件夹中的tiff_浅谈python下tiff图像的读取和保存方法

    对比测试 scipy.misc和 PIL.Image和 libtiff.TIFF三个库 输入: 1. (读取矩阵) 读入uint8.uint16.float32的lena.tif 2. (生成矩阵) ...

  2. Python-OpenCV 读取和保存视频和解决保存失败的原因分析

    一.安装OpenCV # 打开终端输入,没有装pip的话装上pippip install opencv-contrib-python# 打开Python交互环境,打印opencv版本import cv ...

  3. python读视频文件_python读取和保存视频文件

    如何用python实现视频关键帧提取并保存为图片?也许你会觉得对小编多做一点事你会觉得你很爽,可是在小编看来这是不屑的 import cv2vc = cv2.VideoCapture('Test.av ...

  4. python视频操作——python实现将图片合成为视频

    python 将图片合成视频 内容来自博客~ 代码如下: import os import cv2# 要被合成的多张图片所在文件夹 # 路径分隔符最好使用"/",而不是" ...

  5. C++和Python,JSON文件的读取和保存

    1. Python python很简单,因为python自带json包,所以只要import就可以,具体使用如下. import json#保存json文件 root = {'Exp':[], 'Ex ...

  6. OpenCV读取、保存视频

    1.从相机中读取视频 ①用cv.VideoCapture()创建一个对象来绑定所要选择的摄像头. 参数为0.-1:选择第一个摄像头(一般是电脑上自带的摄像头) 参数为1:选择第二个摄像头 ②用isOp ...

  7. 怎么在计算机里找到CF里保存的视频,电脑怎么查看穿越火线录制保存视频?操作方法...

    在Win10电脑上玩穿越火线,遇到精彩时刻我们都会录制下,好跟朋友分享,但是在Win10电脑上穿越火线录制保存之后的视频,在哪看呢?有很多用户都不知道怎么在Win10电脑查看这个穿越火线录制保存的视频 ...

  8. python视频操作——python实现将视频分解为图片序列

    python将视频分解为图片序列 内容参考自博客~ 详细实现代码如下: import cv2# 读取视频,方法是来自cv2库的VideoCapture cap = cv2.VideoCapture(& ...

  9. 【成功实现】python对tif图片的读取与保存

    读取tif图片: import tifffile as tiff import numpy as np img = tiff.imread('a.tif') print(img.shape) 输出形状 ...

最新文章

  1. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传
  2. 小记mysql备份同库中一张表的历史记录
  3. vmware esxi 查看网卡、Raid卡驱动
  4. 清空、重设input框
  5. Ubuntu18.04安装Intel® oneAPI Toolkit
  6. 实践 config drive - 每天5分钟玩转 OpenStack(170)
  7. java生成大素数_用BigInteger实现大素数生成算法
  8. html复选框不可修改,如何用【伪类】成功修改HTML checkbox默认样式?(新checkbox覆盖老checkbox无法点击的问题)...
  9. 80-10-015-原理-Java NIO-ByteBuffer
  10. 第一个mybatis项目(IDEA+MAVEN+Junit)
  11. C++ 面向对象程序三大特性之 继承
  12. Java封装JSON数据
  13. java背景颜色代码_java设定背景颜色
  14. 在HTML中可以链接Word文档吗,为Word文档添加超文本链接就是这么简单!
  15. 基于控制主题的对话生成 相关论文总结
  16. Spring中同一个service类中方法相互调用事务不生效问题解决方案
  17. 【教学】深度学习小项目汇总_含源代码_包运行
  18. 农村的我在1024分享开始杭漂的经历和心酸,我们一起共勉~
  19. jenkins+docker+maven自动化部署
  20. 谁不喜欢《长安十二时辰》? | Alfred数据室

热门文章

  1. codeforces 849B Tell Your World(计算几何)
  2. 微信官宣:一大波 2022 新年红包封面来了,这波太秀了!!
  3. three.js加载3D模型,在网页上展示3D模型(.glb.gltf.fbx格式)
  4. 【论文查找】查找某个会议往年录用文章
  5. Light Emitting Hindenburg 解题思路
  6. 在本地计算机无法启动clipbook,依赖服务组无法启动 win7依赖服务或组无法启动 怎么弄啊...
  7. Java中日期格式化字符串大小写区别YYYY和yyyy
  8. 项目实战2 | 基于Swarm+Prometheus实现双VIP可监控Web高可用集群
  9. 视频音轨音量是否为0检测过程
  10. 商品id- item_id /条形码/skuid