zoukankan      html  css  js  c++  java
  • 再见,付费录屏软件!我用70行Python代码打造免费版!

    最近小编在为大家录制视频展示文件的时候,需要花钱来购买,才能去除水印,而且额外的软件增大了电脑的负担。所以小编就想着自己打造一款录屏程序。

    很多人学习python,不知道从何学起。
    很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
    很多已经做案例的人,却不知道如何去学习更加高深的知识。
    那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
    QQ群:1097524789

     

    对于录屏的程序,小编想实现的目的就是实现屏幕的录制,并记录自己的声音。而我们的程序也是基于此进行实现的,程序的框架如下图所示:

    主程序启动后,我们利用两个线程来分别实现音频的录制和视频的录制,再将两个线程录制的音频和视频通过主程序进行合成,最终形成我们的录屏结果。

    这里需要注意的是,我们的音频和视频的录制必须是同时启动和结束。下面我们一起来看看程序吧~~

    01.音频的录制

    首先是音频的录制,我们利用pyaudio库来启用我们的麦克风,然后收录我们的声音,并将录音保存到本地的mp3文件当中,程序如下图所示:

    上述的程序中,我们首先创建一个音频的输入流对象stream,不断的获取音频数据,然后我们利用wave库,不断的读取输入流中的音频数据,写入到本地的音频当中。这里的self.recording是一个关键的参数,其控制着音频是否持续的记录。

    02.视频的记录

    接下来是对于视频的记录,对于视频的记录,我们采用的是不断的获取当前屏幕的图片截屏,然后利用opencv写入到视频文件当中去。程序如下图所示:

    上述的程序中,我们通过不断的捕获当前屏幕的内容,然后通过opencv的视频写入对象,将图片不断的写入到视频文件当中去。注意这里用到了与音频录制相同的self.recording参数,来控制视频是否继续进行记录。

    上述的程序中,我们开启了两个线程来分别录制视频和音频,同时让主程序保持循环等待,当我们输入“quit”时,让两个子线程同时结束。

    注意,这里会有几毫秒的时间差,但是不影响,然后我们把两个子线程采集到的音频和视频进行合并,便完成了我们的录频程序。

  • 相关阅读:
    操作系统第一章绪论
    JavaScript推断E-mail地址是否合法
    projecteuler---->problem=8----Largest product in a series
    QQ聊天原理初识
    窗体和线程漫谈之工作线程怎样将数据的处理结果显示到窗体
    Swift
    iOS-UIApplication详解
    iOS开发拓展篇——如何把项目托管到GitHub
    Swift
    Swift
  • 原文地址:https://www.cnblogs.com/shann001/p/13092627.html
Copyright © 2011-2022 走看看