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实现的简单文件传输服务器和客户端
Apr 08 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
Python实现的对一个数进行因式分解操作示例
Jun 27 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
详解Python绘图Turtle库
Oct 12 Python
Python 寻找局部最高点的实现
Dec 05 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
如何基于Python实现word文档重新排版
Sep 29 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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
PHP5 安装方法
2007/01/15 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
python属于解释语言吗
2020/06/11 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
如何用Python徒手写线性回归
2021/01/25 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
高中生班主任评语
2014/04/25 职场文书
留学经费担保书
2014/05/12 职场文书
先进员工事迹材料
2014/12/20 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
PHP设计模式(观察者模式)
2021/07/07 PHP