屏幕录制 (screen-recorder)
把屏幕录制为 MP4 视频。基于 mss(抓屏)+ opencv-python(H.264 编码),无需单独安装 ffmpeg。
触发场景
- 用户想"录屏""录制屏幕""屏幕录像""把操作过程录成视频"
- 需要录制桌面演示、软件操作、教程视频
- 需要定时/限时录制屏幕画面
前置依赖(一次性)
Python 虚拟环境与依赖包(mss、opencv-python、numpy):
PY="C:/Users/DELL/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
"$PY" -c "import mss, cv2, numpy" 2>/dev/null || \
"C:/Users/DELL/.workbuddy/binaries/python/envs/default/Scripts/pip.exe" install mss opencv-python numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
> 注意:默认 PyPI 源在本机可能连不上(报 "No matching distribution found"),请用清华镜像 -i https://pypi.tuna.tsinghua.edu.cn/simple。
使用方法
脚本位置:本 skill 目录下的 screen_record.py。
PY="C:/Users/DELL/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
SCRIPT="$HOME/.workbuddy/skills/screen-recorder/screen_record.py"
# 列出所有显示器
"$PY" "$SCRIPT" --list
# 全屏录制,Ctrl+C 停止(默认 30fps)
"$PY" "$SCRIPT" -o output.mp4
# 限时录制 30 秒
"$PY" "$SCRIPT" --duration 30 -o output.mp4
# 录制指定区域 x,y,w,h(左上角 1280x720)
"$PY" "$SCRIPT" --region 0,0,1280,720 -o output.mp4
# 录制第二块显示器,15 帧
"$PY" "$SCRIPT" --monitor 2 --fps 15 -o output.mp4
参数说明
| 参数 | 说明 | 默认 |
|---|---|---|
-o/--output |
输出 MP4 路径 | screen_record_时间戳.mp4 |
--fps |
帧率 | 30 |
--duration |
录制时长(秒),0 = 直到 Ctrl+C | 0 |
--monitor |
显示器编号 | 1(主屏) |
--region |
区域 x,y,w,h |
全屏 |
--list |
列出显示器后退出 | — |
注意事项
- 输出到当前工作目录;建议显式指定
-o的绝对路径。 - 录制的视频不含声音(仅画面)。如需带系统声音,需另用 ffmpeg gdigrab + dshow 或 OBS。
- 长时间录制请在后台运行:
run_in_background=true,结束时用 Ctrl+C 收尾(脚本会正常释放视频文件)。 - 脚本对分辨率做了偶数对齐(H.264 要求),若源为奇数会裁掉最右/最下一像素。