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的Django框架中的模版相关知识
Jul 15 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
替换python字典中的key值方法
Jul 06 Python
python实现QQ空间自动点赞功能
Apr 09 Python
django将数组传递给前台模板的方法
Aug 06 Python
Python创建空列表的字典2种方法详解
Feb 13 Python
Python如何实现的二分查找算法
May 27 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
python实现简单的学生管理系统
Feb 22 Python
pytorch Dropout过拟合的操作
May 27 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
2009/06/29 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
python获得图片base64编码示例
2014/01/16 Python
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
机电一体化职业规划书
2014/01/07 职场文书
电焊工工作岗位职责
2014/02/06 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
酒桌上的开场白
2015/06/01 职场文书
战马观后感
2015/06/08 职场文书
小学语文教师研修日志
2015/11/13 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
如何利用Python实现一个论文降重工具
2021/07/09 Python
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
ant design vue的form表单取值方法
2022/06/01 Vue.js
Go 内联优化让程序员爱不释手
2022/06/21 Golang