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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python装饰器使用示例及实际应用例子
Mar 06 Python
python标准算法实现数组全排列的方法
Mar 17 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
python3 实现验证码图片切割的方法
Dec 07 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
python通过链接抓取网站详解
Nov 20 Python
Python 实现try重新执行
Dec 21 Python
Python中的面向接口编程示例详解
Jan 17 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
yii框架builder、update、delete使用方法
2014/04/30 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Node 代理访问的实现
2019/09/19 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
python遍历数组的方法小结
2015/04/30 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
详解Python self 参数
2019/08/30 Python
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
事业单位辞职信范文
2014/01/19 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
配置Kubernetes外网访问集群
2022/03/31 Servers