python 带声音的屏幕录制

import pyaudio
import wave
from PIL import ImageGrab
import cv2
import threading
import time
from numpy import array
from moviepy.editor import *
import osclass PyRecord:def __init__(self, file_path="test"):self.allow_record = Trueself.file_path = file_pathdef record_audio(self):# 如无法正常录音 请启用计算机的"立体声混音"输入设备CHUNK = 1024FORMAT = pyaudio.paInt16CHANNELS = 2RATE = 11025p = pyaudio.PyAudio()stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK,)wf = wave.open(self.file_path + ".wav", "wb")wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)while self.allow_record:data = stream.read(CHUNK)wf.writeframes(data)stream.stop_stream()stream.close()p.terminate()wf.close()def record_screen(self):im = ImageGrab.grab()video = cv2.VideoWriter(self.file_path + ".avi", cv2.VideoWriter_fourcc(*"XVID"), 10, im.size)while self.allow_record:im = ImageGrab.grab()im = cv2.cvtColor(array(im), cv2.COLOR_RGB2BGR)video.write(im)video.release()def compose_file(self):print("合并视频&音频文件")audio = AudioFileClip(self.file_path + ".wav")video = VideoFileClip(self.file_path + ".avi")ratio = audio.duration / video.durationvideo = video.fl_time(lambda t: t / ratio, apply_to=["video"]).set_end(audio.duration)video = video.set_audio(audio)video = video.volumex(5)video.write_videofile(self.file_path + "_out.avi", codec="libx264", fps=10, logger=None)video.close()def remove_temp_file(self):print("删除缓存文件")os.remove(self.file_path + ".wav")os.remove(self.file_path + ".avi")def stop(self):print("停止录制")self.allow_record = Falsetime.sleep(1)self.compose_file()self.remove_temp_file()def run(self):t = threading.Thread(target=self.record_screen)t1 = threading.Thread(target=self.record_audio)t.start()t1.start()print("开始录制")pr = PyRecord()
pr.run()
time.sleep(10)
pr.stop()

python 带声音屏幕录制相关推荐

  1. windows录屏html文件,win7系统自带的屏幕录制工具如何打开使用

    win7系统自带了许多实用功能,比如画图,截图,记事本等等,这些都是我们经常用到的.有时我们为了录制电脑屏幕上的操作视频发给对方看或者是上课学习视频.一些win7用户下载安装了屏幕录制工具,但许多需要 ...

  2. 有哪些计算机软件可以录制声音,屏幕录制怎么录声音?这三个录屏软件需了解...

    屏幕录制怎么录声音?这三个录屏软件需了解 2020年08月21日 15:05作者:黄页编辑:黄页 分享 屏幕录制怎么录声音?不管是日常的工作还是学习,都免不了与电脑打交道.经常会在电脑上浏览一些重要的 ...

  3. 解决MacOS12.6自带的屏幕录制闪退的问题

    问题 在使用m1mac Monterey12.6的时候, 当按下command+shift+5快捷键进行屏幕的局部录制时, 会出现闪退的情况, 不管是全屏录制还是局部录制. 解决 后来发现, 当通过Q ...

  4. python web Android屏幕录制

    执行测试用例时,自动触发屏幕录制,单用例单录制 录制方式采用多线程,主线程开始,另开一个线程,跑录制脚本 web端 录制检测的是电脑页面,录制电脑页面展示的数据. from datetime impo ...

  5. Win10 自带【屏幕录制】功能(win + G)----(附带:录屏时没有声音,声音不清楚 问题解决;---提取视频中的音频)

    目录 ■前言 ■各种工具的快捷键,以及使用 1.Win+V 笔记 2.Win+G 进入游戏模式 (即,运行Xbox Game Bar) 3.Win+Tab 虚拟桌面 4.Win+Shift+S 截屏工 ...

  6. Win10使用自带工具屏幕录制

    1.按下win+G打开录制界面: 2.点击"广播与捕获"中间的原点开始录制 3.录制过程 开始录制后,点击屏幕任意处继续执行自己之前的操作 点击蓝色按钮停止录制 4.打开之前的录制 ...

  7. windows电脑如何开启系统自带的屏幕录制

    键盘上敲下win+r,唤出运行对话框.然后输入psr.exe并点击确定. 之后,我们点击开始记录即可录制视频,点击停止记录便能完成屏幕视频的录制.

  8. iphone屏幕录制没声音_苹果屏幕录制没有声音?快检查这个功能是否打开

    为什么苹果手机在屏幕录制的时候没有声音?很多小伙伴会在苹果手机上录制屏幕,录制的过程中会出现一些问题,今天针对这些疑问给大家特意分享解答一下. 问:苹果手机怎么录制屏幕? 答:在iOS 11以及更新的 ...

  9. python 屏幕录制_Python实现屏幕录制功能的代码

    前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了下能不能通过万能的python来实现呢?经过一晚上的尝试发现 ...

最新文章

  1. maven nexus 3 third party 构件上传
  2. 识别手写字体app_我如何构建手写识别器并将其运送到App Store
  3. nacos如何做注册中心?服务注册之后自带负载均衡,这一篇文章就够了!
  4. 大小端模式,stm32采用小端模式
  5. mysql分隔字符串转变为多行_【mysql】将以固定分隔符分隔的字符串转成多行的形式...
  6. MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
  7. 淘宝商品库MySQL优化实践的学习
  8. 程序人生之我们的故事:十年如歌(9)
  9. 【三万字!】Dubbo、Zookeeper学习笔记!秒杀面试官!——双非上岸阿里巴巴系列
  10. leetcode64. 最小路径和(dp)
  11. Linux下C++静态库、动态库的制作与使用
  12. 从技术、服务到共创 声网 Agora 携手合作伙伴共建 RTC 生态
  13. 空循环和无穷循环的区别
  14. 探究JVM——运行时数据区
  15. C# HttpClient Multipart 上传文件
  16. ElasticSearch学习(四):可视化管理之Kibana
  17. 【数学建模】评价类算法
  18. 人工智能AI系列 - 视频图像搜索
  19. 排序算法之二路归并排序
  20. webpack梳理之常用loader(一)

热门文章

  1. The Twenty-second Of Word-Day
  2. uni-app的发展历程
  3. 免费的知网下载网址。
  4. 在线JSON转MySQL建表语句工具
  5. 2020年存储技术展望:AI推动数据存储理念进化
  6. Android Log日志系统
  7. 2021-05-26wms系统的出库单价是这样自动生成的?
  8. html5设备面板 twaver,TWaver可视化编辑器(二)3D编辑器
  9. pettitt检验r语言_基于Kriging方法和Pettitt检验的数据冲突判别
  10. ibm mq java 发布订阅,JMS调用IBM MQ 监听模式的点对点模式