Skip to content
USTB-SkyCodePublic

About

OBS Lecture Recording Script | OBS 录课妙妙脚本(自动在电脑屏幕与外置摄像头之间切镜头)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

OBS-Luke

OBS Lecture Recording Script
OBS录课妙妙脚本(自动在电脑屏幕与外置摄像头之间切镜头)

activity-scene-switch.lua

功能介绍

  • 每隔一段时间采样一次系统范围内的鼠标和键盘输入空闲时长,距最后一次输入不足 X 秒即视为“回来”,切换到活跃场景。
  • 无操作持续 X 秒,视为“离开”,切换到离开场景。可选开启屏幕变化检测,若屏幕画面仍在持续变化则会阻止“离开”。

安装与使用

  1. 打开 OBS → 工具 → 脚本 → “+”,选择本目录里的 activity-scene-switch.lua。
  2. 在脚本设置里选择(或输入)活跃场景与离开场景,按需调整各项数值。
  3. 关闭设置窗口即可生效,加载日志与每次切换都会写进“脚本日志”。

设置项

设置 默认 说明
Active scene (recent input) 空 “回来”时切换到的场景
Away scene (no input) 空 “离开”时切换到的场景
Check interval (seconds) 0.2 采样间隔
Activity window (seconds) 0.4 距最后一次输入小于该值视为“回来”
Idle time before away (seconds) 10 无操作持续多久算“离开”
Screen change detection (prevents the away state) 开 画面变化会阻止“离开”
Screen capture area Primary monitor 对比的画面区域;另一个值是 All monitors
Screen compare interval (seconds) 1 画面对比间隔(0.5–60)
Screen change threshold (bits of 64) 6 dHash 汉明距离达到该值算“画面在变”

行为细节

  • 只在状态翻转时动作:脚本只会在“离开 → 回来”和“回来 → 离开”两个时机切换场景。手动切换场景后,仅在下次发生状态翻转时脚本才会重新接管。
  • 持续画面对比:开启后只要不处于离开状态,就按一定间隔持续对显示器截图,随时刷新“画面安静多久”的计时。只有离开状态期间暂停,回来后重取一次基线。
  • 加载时不评估:脚本加载之后发生第一次状态翻转时才开始自动切换场景,而不会在脚本加载好之后立即切换场景。
  • 场景缺失:配置的场景在当前场景集合里不存在时,跳过本次切换并在日志里警告。场景恢复存在后,下一次状态翻转即可正常切换。
  • 原生转场:切换场景时会使用 OBS 当前的转场配置,可享受到 OBS 的原生转场动画。

已知限制

  • 仅支持 Windows 操作系统,因为依赖 user32.GetLastInputInfo。
  • 部分行为不会算作有效输入操作:
    • 手柄原生输入不算“操作”,但被 Steam Input、DS4Windows、reWASD 等映射成鼠标键盘的输入会被算作操作。
    • 长按鼠标键并保持不动时不会产生新的输入事件;但键盘长按有自动重复事件,不受影响。
    • 锁屏与 UAC 安全桌面上的输入可能不计入输入事件。
  • 判定是系统级的:任何程序(包括自动化工具、远程桌面)产生的输入都会刷新计时。
  • 轮询跑在 OBS 图形线程的帧时刻上,检查间隔是“至少多久”而不是精确定时。
  • 屏幕变化检测依赖桌面级 GDI 截图,独占全屏游戏、HDR 输出下可能黑屏或偏色,从而影响检测。

移植到其他电脑

examples/ 里是一份脱敏后的场景集合与配置档案(场景集合与配置档案都叫「讲课」), install.ps1 可以把它们装到另一台电脑的 OBS 上:

  1. 关闭 OBS(运行中的 OBS 会在退出时覆盖配置)。
  2. 在仓库目录里运行 powershell -ExecutionPolicy Bypass -File .\install.ps1; 想先看看会改成什么样就加 -DryRun。
  3. 脚本会自动检测 OBS、必要时从 GitHub 下载本仓库、遇到同名场景或配置时询问是否替换 (替换前备份)、安装并激活,然后把能确定的变量(素材与脚本路径、录制目录)改成本机实际值。
  4. 按脚本末尾打印的清单手动完成剩下的部分:选显示器、选摄像头、填推流服务器与密钥、 确认麦克风与音频滤镜、开播前检查画面。

About

OBS Lecture Recording Script | OBS 录课妙妙脚本(自动在电脑屏幕与外置摄像头之间切镜头)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages