本文目录导读:

- 批量录制多个窗口或不同进程(如:同时录制多个浏览器标签、多个软件界面)
- 批量录制预制场景(如:录制多个视频会议的固定流程、多台设备的屏幕测试)
- 批量录制多个子屏幕或虚拟屏幕(如:多显示器、VNC/RDP会话)
- 离线视频批量转换/剪辑(有时被误称为“批量录屏”)
- 真正“自动化批量录屏”的简易成品脚本(Python示例)
- 回答你问题
可以,但“批量录屏”的实现方式取决于你的具体场景,以下是几种常见的批量录屏方案及对应的实用脚本思路:
批量录制多个窗口或不同进程(如:同时录制多个浏览器标签、多个软件界面)
对于Windows,可以使用Python + pyautogui 或 mss(截屏库)+ opencv 进行帧合成,但效率较低。
更推荐的实用脚本工具:
- OBS Studio + 自动化插件/脚本:OBS支持通过WebSocket协议(
obs-websocket)远程控制,你可以写一个Python脚本:- 批量启动OBS。
- 为每个待录制窗口动态创建“窗口捕获”源。
- 启动录制。
- 按时间或条件停止并保存为独立文件。
- FFmpeg + 窗口句柄:FFmpeg
gdigrab或ddagrab可以根据窗口名称/句柄录制,配合批处理或Python脚本,遍历所有特定窗口并逐一录制。
批量录制预制场景(如:录制多个视频会议的固定流程、多台设备的屏幕测试)
需要一个“自动化流程+录屏”的组合脚本。
实用脚本思路:
#!/bin/bash (Linux/Mac) 或 批处理(Windows)
# 伪代码:批量录制多个固定的网页流程
for url in "https://example1.com" "https://example2.com"; do
# 1. 启动浏览器(或其他程序)并打开该URL
# 2. 等待加载
# 3. 使用 FFmpeg 开始录制屏幕(指定区域或窗口)
# 4. 自动化操作(如点击按钮、填写表单 → 需要Selenium/Puppeteer)
# 5. 停止录制
# 6. 关闭进程
# 7. 循环下一个URL
echo "录制完成: $url"
done
关键库:
Selenium/Playwright:自动化Web操作。FFmpeg:录屏核心(ffmpeg -f gdigrab -i output.mp4)。xdotool(Linux) 或pygetwindow(Python):定位和操作窗口。
批量录制多个子屏幕或虚拟屏幕(如:多显示器、VNC/RDP会话)
方案:
FFmpeg指定输出设备:ffmpeg -f x11grab -i :0.0+0,0可指定屏幕和偏移。- 脚本循环:
for i in {0..3}; do ffmpeg -f x11grab -i :0.$i ... & done(注意需后台运行,并在结束时统一捕获)
离线视频批量转换/剪辑(有时被误称为“批量录屏”)
如果你指的是:已有多个视频文件,需要批量添加水印、裁剪、变速等。
最实用脚本(FFmpeg + 批处理/Python):
# 将当前目录所有.mp4转成指定分辨率并压缩
for %%f in (*.mp4) do (
ffmpeg -i "%%f" -vf "scale=1280:720" -c:v libx264 -crf 23 "%%~nf_compressed.mp4"
)
或使用Python的subprocess调用FFmpeg,实现复杂逻辑(按CSV列表处理不同参数)。
真正“自动化批量录屏”的简易成品脚本(Python示例)
假设你需要每隔X分钟录制当前活动窗口1分钟,保存为单独文件:
import pyautogui
import cv2
import numpy as np
import time
import os
from datetime import datetime
def record_screen(duration=60, out_path="output"):
os.makedirs(out_path, exist_ok=True)
# 获取屏幕尺寸
screen_size = pyautogui.size()
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
# 录制活动窗口(pyautogui默认是整个屏幕,但可以配合mss截取特定窗口区域)
out = cv2.VideoWriter(f"{out_path}/record_{int(time.time())}.mp4", fourcc, 20.0, screen_size)
start = time.time()
while int(time.time() - start) < duration:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
out.write(frame)
out.release()
# 批量循环:每120秒执行一次60秒的录制
while True:
record_screen(duration=60)
time.sleep(60) # 间隔60秒
回答你问题
是的,实用脚本完全可以批量录屏。 关键在于:
- 定制定位目标:你需要明确“录什么”(是窗口、全屏、特定区域、还是多显示器)。
- 选择引擎:推荐
FFmpeg作为底层视频编码引擎,用Python或Shell脚本做调度。 - 自动化触发:如果用浏览器,配合
Selenium;如果录桌面程序,配合pyautogui/pynput进行点击操作。 - 输出管理:根据录制时间、来源程序名自动命名和分类文件。
如果你能补充说明具体要录制什么(100个网站首页、每次登录不同账户后的手机App界面、还是每周固定时间录某个直播),我可以给你一个更精确的最小脚本。