#环境:opencv 3.4.0    python 3.5.2

#读取视频

import cv2

cap = cv2.VideoCapture('video.avi')

#读取摄像头,0为摄像头索引,当有多个摄像头时,从0开始编号

cap = cv2.VideoCapture(0)

#从视频或摄像头中读取一帧(即一张图像),返回是否成功标识ret(True代表成功,False代表失败),img为读取的视频帧

ret,frame = cap.read()


#完整的读取视频流并播放视频流代码

# -*- coding:utf-8 -*-

import cv2

cap = cv2.VideoCapture("video.avi")

while(1):

# 读取视频帧

ret, frame = cap.read()

# 显示视频帧

cv2.imshow("capture", frame)

#等候50ms,播放下一帧,或者按q键退出

if cv2.waitKey(50) &0xFF ==ord('q'):

break

#释放视频流

cap.release()

#关闭所有窗口

cv2.destroyAllWindows()


#创建视频流写入对象,VideoWriter_fourcc为视频编解码器,20为帧播放速率,(640,480)为视频帧大小

videoWriter = cv2.VideoWriter('video.avi', cv2.VideoWriter_fourcc('I', '4', '2', '0'), 20, (640,480))

#向视频文件写入一帧

videoWriter.write(frame)

#详解cv2.VideoWriter_fourcc对象(摘自Learning OpenCV3 Computer Vision with Python,坦白讲不太懂)

#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

#以下为写视频的完整代码

#-*-coding:utf-8-*-

import cv2

cap = cv2.VideoCapture('./dataset/video/cap_zhihao.avi')

fps =int(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.VideoWriter('video.avi', cv2.VideoWriter_fourcc('I','4','2','0'), fps, size)

ret, frame = cap.read()

while(ret):

# 展示一帧

cv2.imshow("capture", frame)

videoWriter.write(frame)

cv2.waitKey(fps)

ret,frame = cap.read()

cap.release()

cv2.destroyAllWindows()

作者:远叔
链接:https://www.jianshu.com/p/d239e221cab4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

opencv+python读写视频流相关推荐

  1. opencv python全屏显示、置窗口大小和位置

    opencv python全屏显示.设置窗口大小和位置 文章目录: 一.全屏显示图片或视频 二.设置窗口的大小和位置 1.设置窗口的大小 2.设置窗口的位置 一.全屏显示图片或视频 有时我们需要显示图 ...

  2. opencv 图像读写显示、matplotlib 库图像读写显示

    图片格式: bmp 全称:Bitmap 不压缩 png 全称:Portable Network Graphics 无损压缩 jpg 全称:Joint Photographic Experts Grou ...

  3. flask+python 实时视频流输出到前台

    flask+python 实时视频流输出到前台 二.问题描述: 1.调用摄像头获取视频流 2.将视频流处理并传递给浏览器 3.不是录制后处理,而是边录制边处理,边传递 4. flash后台进行处理,而 ...

  4. 【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建

    本书分享内容来自图书学习OpenCV 4:基于Python的算法实战>,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解.第一章有在各个平台搭建环境的介绍, ...

  5. 用Numba加速OpenCV Python视频处理代码,提升6.5倍性能

    使用Numba对OpenCV Python视频处理代码加速.性能提升6.5倍 1.目标问题: 在 OpenCV Python 中视频处理是比较耗资源的,从而造成画面卡顿,如果跳帧处理可能造成丢失关键数 ...

  6. python 读写16bit图像的四种方法

    python 读写16bit图像的四种方法 应对超高清.HDR等图像增强类深度学习任务和专业图片处理任务时,我们需要对16bit图像进行读取.转tensor和保存等操作,这里总结出四种python实现 ...

  7. OpenCV+python:Canny边缘检测算法

    1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...

  8. OpenCV Python在计算机视觉中的应用

    OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...

  9. python读写压缩文件使用gzip和bz2

    python读写压缩文件使用gzip和bz2 #读取压缩文件 # gzip compression import gzip with gzip.open('somefile.gz', 'rt') as ...

最新文章

  1. Oracle添加定时任务
  2. 23装饰模式(Decorator Pattern)
  3. idea新建xml文件
  4. Android自定义对话框(Dialog)位置,大小
  5. 深入理解 Linux 的 RCU 机制
  6. 某处发现百分百恢复覆盖的分区数据恢复方法(掌握)
  7. 极域电子书包课堂管理系统怎么控屏_极域电子教室使用说明
  8. [20170209]索引范围访问2.txt
  9. code review流程规范。
  10. CAD如何绘制多边形的外切圆?
  11. 熊绎:我看软件工程师的职业规划
  12. 小米发明“永动机”:走路即可为智能设备充电
  13. 市场营销环境分析的方法
  14. GA002-186-11
  15. PowerBI数据处理-聚合
  16. HDU1255 覆盖的面积 (线段树 + 扫描线)
  17. OpenCV基础九:滤波与卷积(陆续更新)
  18. teamviewer存在linux版本_TeamViewer 9发布-在Linux下安装运行
  19. javascript事件触发器
  20. Java入门 18 3\25

热门文章

  1. 2017暑假 第四周 学习总结(复习)
  2. eclipse 和 myeclipse 字符编码设置
  3. 20145208 20145230 20145235 《信息安全系统设计基础》实验三 实时系统的移植
  4. duilib拖动控制功能的实现(源代码)
  5. SPOJ 3899. Finding Fractions 连分数
  6. python学起来难不难-python很难学?学起来很吃力,想放弃?看别人是怎样学习的...
  7. python空类型-python 空类型
  8. python笔记基础-python笔记(二)基础二
  9. python推荐书籍-7本经典的Python书籍,你都读过了么?
  10. python代码壁纸-python实现壁纸批量下载代码实例