python3将视频流保存为本地视频文件


Posted in Python onJune 20, 2018

使用python3+opencv3.3.1环境将视频流保存为本地视频文件,具体内容如下

1、利用opencv中的VideoCapture类获取视频流的链接,通过cv2的方法得到该视频流的帧数和每帧大小。

2、使用VideoWriter类进行视频编码

3、通过VideoCapture的read()方法进行视频流解码成每一帧

4、获取到每一帧frame,我们就可以对该帧做图像算法(例如识别、图像加强、灰度变换等)

import cv2 
from matplotlib import pyplot as plt 
 
#通过cv2中的类获取视频流操作对象cap 
cap = cv2.VideoCapture('rtsp://admin:passwd@10.130.10.111:554/MPEG-4/ch1/main/av_stream') 
#调用cv2方法获取cap的视频帧(帧:每秒多少张图片) 
fps = cap.get(cv2.CAP_PROP_FPS) 
print(fps) 
#获取cap视频流的每帧大小 
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), 
    int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))) 
print(size) 
 
#定义编码格式mpge-4 
fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', '2') 
#定义视频文件输入对象 
outVideo = cv2.VideoWriter('saveDir.avi',fourcc,fps,size) 
 
#获取视频流打开状态 
if cap.isOpened(): 
  rval,frame = cap.read() 
  print('ture') 
else: 
  rval = False 
  print('False') 
 
tot=1 
c=1 
#循环使用cv2的read()方法读取视频帧 
while rval: 
  rval,frame = cap.read() 
  cv2.imshow('test',frame) 
  #每间隔20帧保存一张图像帧 
  # if tot % 20 ==0 : 
  #   cv2.imwrite('cut/'+'cut_'+str(c)+'.jpg',frame) 
  #   c+=1 
  tot+=1 
  print('tot=',tot) 
  #使用VideoWriter类中的write(frame)方法,将图像帧写入视频文件 
  outVideo.write(frame) 
  cv2.waitKey(1) 
cap.release() 
outVideo.release() 
cv2.destroyAllWindows()

结果:

python3将视频流保存为本地视频文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中的__init__和__new__
Mar 12 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
python爬取哈尔滨天气信息
Jul 14 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Django中使用Celery的方法示例
Nov 29 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
Nov 25 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 Python
Python获取字典中某个key的value
Apr 13 Python
Python操作MySQL数据库的方法
Jun 20 #Python
python实现抖音视频批量下载
Jun 20 #Python
Python 类的特殊成员解析
Jun 20 #Python
python实现音乐下载的统计
Jun 20 #Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 #Python
python基于http下载视频或音频
Jun 20 #Python
python实现下载pop3邮件保存到本地
Jun 19 #Python
You might like
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
python远程登录代码
2008/04/29 Python
wxpython 学习笔记 第一天
2009/02/09 Python
Python 序列的方法总结
2016/10/18 Python
Python Socket传输文件示例
2017/01/16 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
int在python中的含义以及用法
2019/06/27 Python
python进阶之自定义可迭代的类
2019/08/20 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
小学教育见习报告
2014/10/31 职场文书
节约用电倡议书
2015/04/28 职场文书
Python利用capstone实现反汇编
2022/04/06 Python