­

Python同时录制屏幕、摄像头、声音合成视频把人像放在最终视频右下角

  • 2020 年 2 月 24 日
  • 筆記

本书81个实验项目可与董付国老师的《Python程序设计(第2版)》、《Python程序设计基础(第2版)》、《Python程序设计基础与应用》、《Python程序设计实例教程》等教材配合使用,用书老师可以联系董老师获取配套源码和测试数据文件。

===============

Python相关课程教材选用参考与建议

=================

之前写了个使用pillow截图和pyaudio录音最后合成视频的代码,

60行Python代码打造自己的录屏软件(附源码)

那个代码虽然避免了opencv视频和pyaudio音频同步困难的问题,但是如果录制时间太长的话会占用大量内存,甚至导致内存不足而崩溃。于是又重新设计了一下,改用opencv+pillow录屏,并且完美解决了画面和声音同步的问题。

功能描述:

同时录制屏幕图像和摄像头采集到的内容以及麦克风声音,把所有内容合成为最终视频文件,保证屏幕画面、摄像头画面以及声音的同步,把摄像头采集的人像缩小以后放在最终视频的右下角。

技术要点:

1)pillow进行屏幕截图

2)opencv根据屏幕截图生成视频

3)opencv采集摄像头视频

4)pyaudio录制麦克风声音

5)moviepy合成视频

6)使用事件进行多线程同步

参考代码:

生成的视频效果如下(播放器窗口缩小后截图),录制时长7分钟,最终视频文件大小为25M,合成视频过程中程序占用内存小于10%