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中if __name__ == "__main__"详细解释
Oct 21 Python
详解Python自建logging模块
Jan 29 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
Python配置虚拟环境图文步骤
May 20 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
python实现中文文本分句的例子
Jul 15 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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
php 远程图片保存到本地的函数类
2008/12/08 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
JS 建立对象的方法
2007/04/21 Javascript
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python中的random()方法的使用介绍
2015/05/15 Python
Python2.x与Python3.x的区别
2016/01/14 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
Python实现ATM系统
2020/02/17 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
小学生自我鉴定
2013/10/12 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android