使用Python3基于FFmpeg实现的录制摄像头和屏幕录制

1. 项目介绍

该项目是为珠海一家音频技术公司开发的会议视频录制管理工具。客户需求使用的场景是在会议室开会时切换录制电脑屏幕和摄像头的内容。项目采用python3语言+pyqt5界面实现,录制模块基于ffmpeg项目,在win系列系统上稳定运行。

系统主要模块及描述:

主界面。 主界面显示录制时间和开始/停止按钮展示录制状态,为了尽可能少的出现在录制内容当中,界面在失去焦点时会隐藏。

全局快捷键。 自定义全局快捷键控制录制开始与停止、切换录制方式。

托盘图标。 程序在运行的大部分时间通过托盘图标来展示当前录制状态,不同录制状态分别以不同的图标显示。

右键菜单。 当主界面隐藏时,除使用全局快捷键切换录制,还可以通过托盘图标和主界面的右键菜单操作。

自定义设置。 设置界面可以对录制相关参数进行自定义修改,主要可修改录制参数包括:设备信息、帧率、视频编码格式、cpu线程数、分辨率自适应或自定义等,以及自定义录制快捷键和输出视频文件夹。

编译和打包。 该项目是一个完整的安装包程序,安装界面定制显示客户公司相关的信息,客户在安装时可选择生成桌面快捷方式和开机启动等选项。

项目主要特色功能点:

防盗版机制。 通过注册表存储和验证安装信息防止复制运行实现简易防盗机制,限制非正常安装用户使用(客户将软件和自身硬件产品一起打包出售给他们的客户)。

按日期归档录制产生的文件。 文件名区分录制方式,标注录制时间,每天录制产生的视频文件在单独的文件夹内。

多种录制设备可选择切换。 应对缩放的屏幕可选择GDI(图形设备接口)录制方式。

检测到录制非人为断开,自动重新启动录制。 解决了某些录制设备在windows10系统中运行不兼容,录制时间长之后会随机断开的问题。

交付效果:

项目实际运行效果:在参数设置为分辨率=1024x768、帧率=30帧/s、视频编码=h264、threads=4的情况下,在i5计算机上进行录制,cpu占有率保持在30%~40%之间。保证录制清晰度的同时不会影响到计算机运行其他程序的资源。

2. 运行配置

1. 运行环境和所需组件

安装依赖组件,-i是代理地址,使用代理下载速度会加快一点:

pip install -r requirements.txt -i https://pypi.douban.com/simple

安装编译工具cx_Freeze(如果需要)。

pip install cx_freeze

下载安装打包工具Inno Setup(如果需要打包)。

2. 在命令行下运行

python recordwindow.py

#Win10-64系统稳定运行,其他系统暂未测试。

3. 设置

参考设置如下:

摄像头名称:USB2.0 HD UVC WebCam

声音输入设备:麦克风 (Realtek High Definition Audio)

屏幕录制设备:screen-capture-recorder

系统声音设备:virtual-audio-capturer

不同机器和设备名称有所不同。

4. 编译

python csetup.py build

#默认编译的可执行文件生成在目录:D:\dev\record\record-win

#参照csetup.py修改编译信息

5. 打包

用Inno setup打开setup.iss文件,修改必要信息,然后编译执行。

6. 开发总结

python实现屏幕录制_GitHub - Sijiu/record-camera-and-screen: 录制摄像头和录制屏幕,两者之间可以轻易切换...相关推荐

  1. ios录制屏幕_如何使您的ios应用免受屏幕截图和录制的影响

    ios录制屏幕 防止在iOS App中捕获和录制屏幕(Preventing Screen Capturing and Recording in iOS App) Thanks to the mobil ...

  2. 录制课程不用愁,win10自带一个免费的屏幕录像机,简单易用

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨Caesar 来源丨手机电脑双黑客(heike ...

  3. [python作业AI毕业设计博客]比Selenium IDE更好用的录制工具: Katalon Recorder

    Selenium IDE(集成开发环境 Integrated Development Environment)是用于构建测试脚本的原型工具. 它是一个Firefox插件,提供了易于使用的界面,用于开发 ...

  4. VideoSolo Screen Recorder for mac(mac屏幕录制工具)

    VideoSolo Screen Recorder是一款mac屏幕录制工具,无论您要对屏幕进行哪项活动都可以为您进行记录,例如在线视频,游戏,Skype聊天,演示等等,此软件都可以快速将计算机上的屏幕 ...

  5. [UE4]瞬移前后屏幕亮度变化,Get Player Camera Manager.Start Camera Fade

    From Alpha:开始的颜色透明度 To Alpha:结束的颜色透明度 Duration:过渡所使用的时间(单位:秒) Color:屏幕变化的颜色 Hold when finished:过渡时间结 ...

  6. OpenCV+python调用本地摄像头并录制视频

    1.调用摄像头并录制视频 from cv2 import cv2 #捕获摄像头帧 cameraCapture = cv2.VideoCapture(0) fps = 30 size=(int(came ...

  7. python 摄像头录视频教程,OpenCV+python调用本地摄像头并录制视频

    1.调用摄像头并录制视频 from cv2 import cv2 #捕获摄像头帧 cameraCapture = cv2.VideoCapture(0) fps = 30 size=(int(came ...

  8. Android通过屏幕方向和摄像头方向实现屏幕预览

    Android通过屏幕方向和摄像头方向实现屏幕预览 1. 前言 2. Android 的屏幕方向 2.1 什么是屏幕方向 2.2 为什么要获取或设置屏幕方向 2.3 如何获取与设置屏幕方向 2.3.1 ...

  9. Movavi Screen Recorder for Mac(专业屏幕录像编辑软件)

    还在寻找一款好用的mac屏幕录制软件吗?小编为您带来Movavi Screen Recorder for Mac,这是由知名多媒体软件开发公司Movavi所推出,专业的屏幕录像编辑软件.screen ...

最新文章

  1. pythonexcel介绍_Python 中pandas.read_excel详细介绍
  2. DOM渲染的详细过程 1
  3. HDU 4417 Super Mario
  4. android手势操作滑动效果触摸屏事件处理
  5. 卷积神经网络 卷积的概念
  6. python缓冲区_如何在Python中使用Google的协议缓冲区
  7. 读取swagger配置文件里的内容
  8. mysql-cluster安装与配置
  9. win10系统C盘突然红了爆满占了170G找了几天怎么也找不到哪个文件占用这么多磁盘空间
  10. Dijkstra算法和Floyd算法超详解以及区别
  11. 视频号将成为大众的生活方式
  12. 分享我成为GDE(Google开发者专家)的经历
  13. 组合数学(二)排列数和组合数
  14. B. Sereja and Mirroring
  15. 最详细PicGo(图床)加阿里云OSS实现图片自动上传
  16. 企业网盘到底应该怎么选?
  17. 视频剪辑必看,6个免费的音、视频素材网站
  18. Android实战开发-Kotlin教程(入门篇-RecyclerView数据列表的实现)
  19. 修改matlab虚拟内存,如何更改虚拟内存
  20. 数字硬盘录像机(DVR)市场现状调查报告

热门文章

  1. 揭秘OCR的策略规则
  2. 《如何搭建小微企业风控模型》第十三节 额度公式 节选
  3. 存量客户管理之提额降息
  4. 有关node.js学习笔记
  5. Java基础——Oracle(二)
  6. Oracle PL/SQL编程之变量
  7. Unsupported major.minor version 51.0
  8. linux下与windows下的换行符
  9. ToString函数用法
  10. [leetcode]Word Ladder