Python本地录屏和系统声音

  • **直接上代码**

moviepy:视频音频拼接
pyaudio:音频录制
opencv:视频录制

直接上代码

import wave
import threading
from os import remove,mkdir,listdir
from os.path import exists,splitext,basename,join
from datetime import datetime
from time import sleep
from shutil import rmtree
import pyaudio
from PIL import ImageGrab
from numpy import array
import cv2
from moviepy.editor import *CHUNK_sIZE = 1024
CHANNELS = 2
FORMAT = pyaudio.paInt16
RATE = 48000
allowRecording = Truedef record_audio():p= pyaudio.PyAudio()# event.wait()sleep(3)stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,input_device_index=4,#立体混音,具体选哪个根据需要选择frames_per_buffer = CHUNK_sIZE)wf = wave.open(audio_filename,'wb')wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)while allowRecording:# 从录音设备读取数据,直接写入wav文件data = stream.read(CHUNK_sIZE)wf.writeframes(data)wf.close()stream.stop_stream()stream.close()p.terminate()def record_screen():# 录制屏幕im = ImageGrab.grab()video =cv2.VideoWriter(screen_video_filename,cv2.VideoWriter_fourcc(*'XVID'),25,im.size) #帧速和视频宽度、高度while allowRecording:im = ImageGrab.grab()im = cv2.cvtColor(array(im),cv2.COLOR_RGB2BGR)video.write(im)video.release()now = str(datetime.now())[:19].replace(':','_')
audio_filename = "%s.mp3"%now
webcam_video_filename = "t%s.avi"%now
screen_video_filename = "tt%s.avi"%now
video_filename = "%s.avi"%now#创建两个线程,分别录音和录屏
t1 = threading.Thread(target=record_audio)
t2 = threading.Thread(target=record_screen)event = threading.Event()
event.clear()
for t in (t1,t2):t.start()
# 等待摄像头准保好,提示用户三秒钟以后开始录制
# event.wait()
print('3秒后开始录制,按q键结束录制')
while True:if input() =='q':break
allowRecording = False
for i in (t1,t2):t.join()#把录制的视频和音频合成视频文件
audio = AudioFileClip(audio_filename)
video1 = VideoFileClip(screen_video_filename)
ratio1 = audio.duration / video1.duration
video1 = (video1.fl_time(lambda t: t/ratio1,apply_to=['video'])\.set_end(audio.duration))video = CompositeVideoClip([video1]).set_audio(audio)
video.write_videofile(video_filename,codec= 'libx264',fps = 25)remove(audio_filename)
remove(screen_video_filename)

本文参考博文:https://cloud.tencent.com/developer/article/1588862

Python本地录屏和系统声音相关推荐

  1. 电脑录屏没有系统声音怎么办

    如今很多的电脑都有录屏功能,我们当中也有很多人会利用这个功能录制一些有趣.精彩的视频.其中游戏视频.解说视频.教学视频等就是通过录屏的方式录制完成的.但是在电脑上用这个功能的时候总是录不到系统的声音该 ...

  2. JavaCV音视频开发宝典:JavaCV混合屏幕录屏和系统声音录制mp4视频文件(windows桌面屏幕和系统声音混合录制)

    <JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 前言 之前已经写过dshow方式采集摄像头画面.麦克风.系统声音和桌面屏幕画面. 之前 ...

  3. 【记录日常】解决Mac M1录屏带系统声音的方法(Quicktime Player+Blackhole)

    前言 -由于Quicktime Player自带的屏幕录制无法录制系统自带声音,因此需要借助第三方插件的帮忙 -soundflower可能没法和M1适配,所以本文使用到的软件是: mac自带的 Qui ...

  4. 计算机EV录屏培训体会,ev录屏不能录制声音怎么办?对照原因进行解决

    很多用户在做系统演示的时候都会用到ev软件来录制电脑的操作屏幕.但是有部分新用户对该软件不太熟悉,在ev录屏时会发生录不进去声音的情况.那该怎么解决这个问题?下面来详细讲解ev录屏录不进去声音的解决办 ...

  5. iphone录屏怎么录声音_ev录屏怎么录制声音 ev录屏声音设置教程

    ev录屏怎么录制声音,小伙伴们也是刚刚使用这款软件,对于软件中很多的功能也还是不太的了解,发现自己录屏出来以后没有声音,对此也不知道该怎么办,想要知道这个ev录屏怎么录制声音,下面就一起来看看吧. P ...

  6. 电脑录屏怎么把声音录进去?这些方法可以帮到你!

    电脑录屏怎么把声音录进去?我们平时在进行电脑录屏的时候,有时候会发现录制完成的视频是没有声音的,这对于一些场景来说特别不方便.那么电脑录屏怎么录制带声音的视频呢,今天我们一起来试试好用的解决方法吧! ...

  7. 电脑录屏怎么把声音录进去,两招教你把声音录进去

    无论是在学习.办公.娱乐都需要用到录屏功能,很多人在录完视频后都会出现视频没有声音的情况.那电脑录屏怎么把声音录进去?方法有多种,比如可以使用系统自带的录屏功能录制视频,再比如也可以选择一款性价比高的 ...

  8. 带声音计算机在线应用,电脑录屏软件带声音用什么?电脑录屏录音软件推荐

    (图:电脑录屏软件带有声音用什么) 嗨格式录屏大师是一款专业的电脑录屏软件,支持游戏模式.全屏录制.区域录制等录屏模式.除了电脑录屏以外,嗨格式录屏大师还支持录制游戏.在线课程.视频教程.加密视频.场 ...

  9. 录屏怎么录声音?用手机录屏怎么把声音录进去

    ​在我们的日常生活中,录屏功能是比较常用的功能之一.对于手机和电脑的录屏方法教程,大家在网上可能找到很多.但在实际的操作中,很多小伙伴发现,自己录屏录出来的视频是没有声音的.录屏怎么录声音?用手机录屏 ...

最新文章

  1. opencv-python图像处理之轮廓算法
  2. 许式伟:毕业两年成为首席架构师,我的技术学习方法论
  3. 另一个程序正在使用此文件 进程无法访问 iis
  4. 使用gparted live分区工具对VMware及ESXI(vsphere)虚拟机进行根目录扩容(可视化界面操作)
  5. Bilibili资深运维工程师:DCDN在游戏应用加速中的实践
  6. LeetCode--226--翻转二叉树
  7. hdu 2669 Romantic
  8. 苹果推送iOS13.1.3更新:iOS13发布仅一个月疯狂补Bug
  9. 嘉楠发布阿瓦隆浸入式冷却矿机A1066I
  10. 中国水龙头市场趋势报告、技术动态创新及市场预测
  11. 设计模式—原型模式及其扩展(思维导图)
  12. 代码分享:php对二维数组进行排序
  13. Hibernate二级缓存适用场景
  14. 微信公众号自动回复添加文件
  15. 讨论BUCK、BOOST、BUCK-BOOST电路CCM模式下的设计参数计算
  16. 深度学习领域,你心目中 idea 最惊艳的论文是哪篇?
  17. php octet stream,php 上传excel时,excel mime-type类型为application/octet-stream,无法通过验证...
  18. LinkIn基于Dynamo设计的系统:伏地魔(voldemort)设计中文文档[我是陈科学院译]-完稿...
  19. 自动驾驶轨迹预测论文阅读(二)TPNet: Trajectory Proposal Network for Motion Prediction
  20. 硬件安全之ARM体系架构的演进

热门文章

  1. 后台开发、前端开发的一些想法
  2. ubuntu NCNN Vulkan cuda 测试环境搭建,转载一篇简洁的搭建方法
  3. 自己动手制作更好用的markdown编辑器-01
  4. 自动根据当前日期生成流水号!自取!!!
  5. 【JAVA】Socket通讯发送报文
  6. 增删查改html模板,dataGrid增删改查(EasyUI)示例源码
  7. elasticsearch 使用RestHighLevelClient
  8. java - FileUtils类
  9. 了解目前市面上几款常见的四足机器人
  10. XSS攻击常识及常见的XSS攻击脚本汇总