python 调用摄像头拍照_《自拍教程67》Python调用摄像头, 拍照拍照!
案例故事:有一款已经上市的终端产品,偶现异常自动重启的情况,
测试经理要求我们压测并尝试复现,我们的压测方案是:
利用摄像头,每1 ~ 2秒拍一张终端产品运行的图片,拍摄一晚上,
回头一张图片一张图片快速过一遍,看是否出现过了系统启动界面。
许多需要长时间的压测的场景,我们都可以通过摄像头拍照,来记录被测试设备的运行情况,
本篇主要介绍如何通过Python + ffmpeg + 电脑摄像头实现自动化持续拍照功能。
准备阶段
ffmpeg的下载地址及其介绍可参考:ffmpeg - 音视频图像编解码工具
确保ffmpeg.exe已经加入Path环境变量里的某个路径下。
确保摄像头驱动已经Ok,在Windows设备管理器"图像设备"里可以找到这个设备。
Python面向对象形式
由于涉及设备初始化,开始拍照等功能,
更建议直接用面向对象形式来定义这个ffmpeg_capture.py模块。
# coding=utf-8
import os
import time
class FFmpegCapturer(object):
def __init__(self, camera_device="None"):
self.camera_device = camera_device
def start_capture(self, output_file):
command = "ffmpeg -f dshow -i video=\"%s\" -qscale:v 2 -vframes 1 -s 1920x1080 -y %s"%(self.camera_device, output_file)
os.system(command)
if __name__ == "__main__":
CAMERA_DEVICE = "USB " # 常量,自行去Windows设备管理器查看
f_obj = FFmpegCapturer(CAMERA_DEVICE)
for i in range(1000):
print("摄像头正在进行第%s次拍照"%i)
f_obj.start_capture("%s.jpg"%i)
time.sleep(1)
运行效果视频
小提示
(1). 摄像头购买一个USB口支持高清的即可,一般100 - 300元左右一个
(2). 其实笔记本电脑自带的摄像头也可以通过以上方法调用
(3). 设备管理器里显示的设备名称,有时候带有特殊字符,比如以上案例的"USB "居然多了一个空格,
碰到这种情况,可以通过“ffmpeg -list_devices true -f dshow -i dummy”命令准确列出设备名称的文本来。
(4). 以上核心其实就1条命令:
ffmpeg -f dshow -i video="USB " -qscale:v 2 -vframes 1 -s 1920x1080 -y C:\1.jpg
但是通过Python面向对象封装后,可以实现更完美的自动化调用!
python 调用摄像头拍照_《自拍教程67》Python调用摄像头, 拍照拍照!相关推荐
- python 功能化模块_【软件测试教程】Python模块化以及内置模块的使用
一:什么是模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. 二:模块类型 1:自定义模块 由编程人员自己写的模块.自定义模块时要 ...
- openpyxl安装_自拍教程76Python 一键批量安装第三方包
案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时, 可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上. 准备阶段 1.确保p ...
- 根据测试路径自动生成测试用例_自拍教程75Python 根据测试用例选择测试资源
案例故事:Android手机音视频图片解码播放测试,有将近上千条用例, 包含了不同的音视频图片文件,每条用例都至少对应了一个测试资源文件.整个测试资源仓库,将近100G,一些视频比如High Prof ...
- python函数模块化教程_【软件测试教程】Python模块化以及内置模块的使用
一:什么是模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. 二:模块类型 1:自定义模块 由编程人员自己写的模块.自定义模块时要 ...
- python3.7基础教程_关于本教程 |《Python 官方文档:入门教程 3.7.0》| Python 技术论坛...
本文档最新版为 3.8,旧版本可能放弃维护,推荐阅读最新版! Python 入门教程 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并能够用简单又有效的方式进行面向对象编 ...
- python数据科学入门_干货!小白入门Python数据科学全教程
前言本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据工 ...
- python运行怎么下一步_简明Python3教程 18.下一步是什么
如果你有认真通读本书之前的内容并且实践其中包含的大量例程,那么你现在一定可以熟练使用python了. 同时你可能也编写了一些程序用于验证python特性并提高你的python技能.如果还没有这样做的话 ...
- cad和python哪个应该学_史上最全Python快速入门教程,满满都是干货
Python是面向对象,高级语言,解释,动态和多用途编程语言.Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力. Python的语法和动态类型具有其解释性质,使其成为 ...
- 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例
前言: 今天为大家带来的内容是零基础入门:python中子类继承父类的__init__方法实例!具有不错的参考意义,希望在此能够帮助到各位!(喜欢的话记得点赞转发关注不迷路哦) 使用Python写过面 ...
最新文章
- python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...
- Intellij IDEA中使用Protobuf的正确姿势
- C# 将DataTable数据源转换成实体类
- iPhone拍人像,人头直接不见了,什么情况?
- Redis 16 大应用场景,竟然这么多。。
- Java中泛型的使用场景
- 俄罗斯“指尖旋风”席卷南京
- linux命令画圣诞树图片,以 Linux 的方式庆祝圣诞节
- 判断本地是否存在Jquery文件,如果不存在则使用CDN加速的Jquery文件
- 图解 SpringMVC 五大组件
- 前端js获取本项目的项目根地址
- sysservers 中找不到服务器,请执行 sp_addlinkedserver 将该服务器添加到sysserver
- 【百度之星程序设计大赛】2020年初赛第三场第四题Intersection
- 服务器上qq打不开网页,能上qq打不开网页的解决方法
- 机器智能正在代替人类做的5件事
- 解决Strokeit在win8下的图标问题和开机启动问题
- 不小心设置了xml文件中的namespace(xmln)如何取消
- 基于Android的健康医疗论坛的设计与开发(android studio)
- MPAndroidChart实现曲线阴影效果
- npm install下载依赖项时报错 fatal: unable to access ‘https://github.com/nhn/raphael.git/‘: Failed to connect