Python同時錄製螢幕、攝影機、聲音合成影片把人像放在最終影片右下角
- 2020 年 2 月 24 日
- 筆記
本書81個實驗項目可與董付國老師的《Python程式設計(第2版)》、《Python程式設計基礎(第2版)》、《Python程式設計基礎與應用》、《Python程式設計實例教程》等教材配合使用,用書老師可以聯繫董老師獲取配套源碼和測試數據文件。
===============
=================
之前寫了個使用pillow截圖和pyaudio錄音最後合成影片的程式碼,
那個程式碼雖然避免了opencv影片和pyaudio音頻同步困難的問題,但是如果錄製時間太長的話會佔用大量記憶體,甚至導致記憶體不足而崩潰。於是又重新設計了一下,改用opencv+pillow錄屏,並且完美解決了畫面和聲音同步的問題。
功能描述:
同時錄製螢幕影像和攝影機採集到的內容以及麥克風聲音,把所有內容合成為最終影片文件,保證螢幕畫面、攝影機畫面以及聲音的同步,把攝影機採集的人像縮小以後放在最終影片的右下角。
技術要點:
1)pillow進行螢幕截圖
2)opencv根據螢幕截圖生成影片
3)opencv採集攝影機影片
4)pyaudio錄製麥克風聲音
5)moviepy合成影片
6)使用事件進行多執行緒同步
參考程式碼:

生成的影片效果如下(播放器窗口縮小後截圖),錄製時長7分鐘,最終影片文件大小為25M,合成影片過程中程式佔用記憶體小於10%


