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%

Tags: