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实现文件上传
Jan 17 Python
python实现分页效果
Oct 25 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
python 实现list或string按指定分段
Dec 25 Python
opencv python图像梯度实例详解
Feb 04 Python
Python如何访问字符串中的值
Feb 09 Python
django queryset相加和筛选教程
May 18 Python
Python网络爬虫四大选择器用法原理总结
Jun 01 Python
python属于解释语言吗
Jun 11 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 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 Mysql编程之高级技巧
2008/08/27 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
Python实现随机选择元素功能
2017/09/14 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
Python I/O与进程的详细讲解
2019/03/08 Python
简单了解Python write writelines区别
2020/02/27 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
2014年教育工作总结
2014/11/26 职场文书
副总经理岗位职责
2015/02/02 职场文书
优秀教师个人总结
2015/02/11 职场文书
公司清洁工岗位职责
2015/04/15 职场文书