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 相关文章推荐
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
基于Django用户认证系统详解
Feb 21 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
python版本五子棋的实现代码
Dec 11 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
python如何制作缩略图
Apr 30 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
python中pyqtgraph知识点总结
Jan 26 Python
浅谈Python数学建模之固定费用问题
Jun 23 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的配置文件php.ini
2006/10/09 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
PHP中的self关键字详解
2019/06/23 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
python3实现多线程聊天室
2018/12/12 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
C#实现启动一个进程
2016/10/01 面试题
《桂林山水》教学反思
2014/02/08 职场文书
门市房租房协议书
2014/12/04 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android