訓練家的佈弱格-Patch1.2

The BLOG of trainer



編輯日期:2024-07-15 00:41

類型:Python 程式
作者:羽山
文章時間:2024-07-15 00:41:50
瀏覽人數:1256人
標題: my_cam_py 我的桌面錄影
網址:http://59-126-75-42.hinet-ip.hinet.net/blog/blog.php?id=2090
內容:
 

# my_cam_py 我的桌面錄影 用 python 寫的桌面錄影工具

   

  作了一套桌面錄影小工具

 

截 4k 60fps 馬蓋先的影片展示,相當的順暢,畫質也很清晰,影片與聲音也都對上(撒花)

比 power point 截的品質好多了,ppt 的幀數有點慘啊...

原始碼網址:

https://github.com/shadowjohn/my_cam_py

 

開發動機:

覺得人生是該寫一個桌面錄影,就開始寫了
雖然 ffmpeg 錄桌面很好用,或是 win+G 內鍵的錄桌面,或是 powerpoint 內鍵的桌面錄影
現在測試 python 的 mss 與 openai 處理影像的部份,可以作到截看youtube 4k 60fps 也相當順暢,下一步打算用 yolo 作點練習

 

版本:

V0.01

 

作者:

羽山秋人 (https://59-126-75-42.hinet-ip.hinet.net)

 

版權:

MIT

 

最初開發日期:

2024-07-12

 

使用方法:

  • 1. 框選螢幕想錄的範圍
  • 2. 設定好 fps,通常大概只會選 30 或 60 吧
  • 3. 壓縮品質,與 png 壓縮品質有關 0 最清晰,建議設 1 或 2
  • 4. 要錄滑鼠指標嗎 可勾選
  • 5. 錄系統聲音嗎 可勾選
  • 6. 要錄麥克風嗎 可勾選
  • 7. 按下開始錄影即開始
  • 8. 按下停止錄影,會稍卡一下,按下確定後,會開始進行影片、聲音合併轉檔
  • 9. 打開資料夾,影片會存在執行程式的 output 目錄


   
程式執行畫面

相依套件:

python3.12 x64 位元,建議可安裝在 C:\python312_64
將系統路徑
PATH 加上 C:\python312_64
PATH 加上 C:\python312_64\Scripts

環境變數 PATH 設定


opencv-python==4.10.0.84

sounddevice==0.4.7 soundfile==0.12.1

scipy==1.14.0 moviepy==1.0.3

pydub==0.25.1

pywin32==306

pywin32-ctypes==0.2.2

pyinstaller==6.9.0 mss (此版羽山有微調 base.py 與 windows.py) 詳見 requirements.txt

 

安裝相關套件:

pip install -r requirements.txt

 

啟動:

run.bat

 

編譯成exe:

可詳見 build.bat 如果不想執行時有視窗,可以加上 -w 參數

 

成果範例:

https://github.com/shadowjohn/my_cam_py/tree/main/examples

 

更新歷程:

(2024-07-14) v0.01 版:
初版簽入

 

Todo:

 

開發心得:

之前同樣的程式也有用 C# 開發一次,這次用 python,python 寫 GUI 還是比較麻煩些~

不過現在有 chatgpt 可以問,會省很多事情,上次用 C# 寫沒有考慮影片與聲音合併時,

如果幀數不足指定幀數,會有影像與聲音不同步的問題,這次在 python 裡加了幾行,判斷

每一個影格間是否符合fps的時間 (1/fps) ,超過就要補影格,用上一個影隔即可,如果低於

代表過多影像,就要跳過,觀念很簡單,確實可以順利運作

另外就是處理系統聲音與麥克風聲音的合併比較麻煩,這個如果沒問 chatgpt 單靠查

Stack Overflow 或翻文件,可能也會花很多時間...

 

另外就是 mss 處理截圖時的每個影格,一截完就轉 BGRAtoRGB 給影片合併

如:

frame_rgb = cv2.cvtColor(np.array(current_frame), cv2.COLOR_RGBA2RGB)

GDATA["out"].write(frame_rgb)

這個步驟會花很多 cpu ,所以抓畫面讓他專心抓就好,再用另一個排程去消化已抓的圖

不過缺點是用 60fps 抓,ram 會飆高,來不及消化資料,也許要再考慮用更多的執行緒去消化

都轉完再進行輸出,有閒作下一次改版再調吧 XD

 

這個版本之後也許會改成可以拿來作點 yolo 的研究,一直想嘗試看看,有空就弄

 

同樣的東西如果要再開發一次,也許用 GUI 去呼叫 ffmpeg 就好,會省很多事

https://trac.ffmpeg.org/wiki/Capture/Desktop

 

 

首頁  上十頁  上一頁  1 下一頁    最末頁 (總共有...1頁)

第 1 頁

有話要說  看留言 【0】
其他分類
當月訓練
(2024-07-31)
【C / C++ / C# 語言】我的影片清晰機 my_cartoon_beautiful

(2024-07-24)
【KTM 390】KTM Duke390 整理後煞總成

(2024-07-16)
【Arduino】(Arduino D1 mini) 這是一個引擎轉速在拉轉,安全帽上的燈條也在拉轉的故事...

(2024-07-15)
【Python 程式】my_cam_py 我的桌面錄影

(2024-07-07)
【Arduino】(ATtiny85) 屁孩限定藍光呼吸燈安全帽

最新訓練
(2024-11-04)
【酷龍 150】酷龍150 換新鏈條 里程:39250km

(2024-10-31)
【機車綜合相關】煞車檢測筆測量電阻範圍

(2024-10-29)
【機車綜合相關】拆胎特工-輪胎拆胎架

(2024-10-25)
【NSR 150】NSR150 更換前煞車油(簡易) 43177km

(2024-10-25)
【網誌】加密文章測試

(2024-10-19)
【本田 MSX-125】MSX-125 更換前輪軸承

(2024-10-18)
【HONDA CBR1000RR】CBR1000RR 側柱維修

(2024-10-15)
【KTM 390】KTM RC390 側柱增加 1.5cm

(2024-10-12)
【NSR 150】NSR150 更換空濾綿 43010km

(2024-10-10)
【NSR 150】NSR150 側柱加高1.5cm