You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

批处理脚本:命令运行时实现屏幕闪烁效果

解决VLC录屏与CMD窗口背景闪烁同步的问题

刚好遇到过类似的需求,批处理里要让两个任务并行运行,核心就是用start命令把VLC作为独立进程启动,这样批处理就能继续执行颜色循环的逻辑,同时还要加个进程检测,让闪烁只在录屏期间运行。

完整的批处理脚本

@echo off
:: 关闭命令提示符默认输出,让界面更干净
setlocal enabledelayedexpansion

:: 启动VLC录屏进程(如果VLC不在系统PATH里,要写完整路径,比如"C:\Program Files\VideoLAN\VLC\vlc.exe")
start "" /min "vlc.exe" screen:// --qt-start-minimized :screen-fps=30 :run-time=300 :quiet :sout=#transcode{vcodec=h264,vb=720}:standard{access=file,mux=mp4,dst="C:\Users\danbradshaw\Desktop\screencast.mp4"} vlc://quit

:: 短暂等待VLC启动,避免一开始检测不到进程
timeout /t 1 /nobreak >nul

:: 开始背景闪烁循环,直到VLC录屏结束
:FlashLoop
:: 检测VLC进程是否还在运行
tasklist /fi "imagename eq vlc.exe" | findstr /i "vlc.exe" >nul
if !errorlevel! equ 0 (
    :: 切换为红背景黑文字
    color 40
    :: 等待0.5秒,控制闪烁频率
    timeout /t 0.5 /nobreak >nul
    :: 切换为黑背景红文字
    color 04
    timeout /t 0.5 /nobreak >nul
    goto FlashLoop
) else (
    :: 录屏结束后恢复CMD默认颜色(黑底白字)
    color 07
    echo 录屏已完成!文件保存在:C:\Users\danbradshaw\Desktop\screencast.mp4
)
endlocal

关键细节解释

  1. start命令启动VLC

    • start "" /min 是核心:"" 是必填的窗口标题(防止路径有空格时出错),/min 让VLC以最小化窗口启动,不会干扰你的操作和录屏画面。这样VLC会在后台独立运行,完全不会阻塞批处理的后续代码执行。
  2. 进程检测逻辑

    • tasklist /fi "imagename eq vlc.exe" 列出所有vlc.exe进程,配合findstr判断进程是否存在。只要VLC还在录屏,循环就会继续闪烁;一旦VLC退出(录屏时间到或者手动关闭),循环就会停止,自动恢复CMD的默认颜色。
  3. 闪烁频率控制

    • 加入timeout /t 0.5 来控制每次颜色切换的间隔,0.5秒的延迟让闪烁节奏刚好,不会过于刺眼。如果觉得太快或太慢,可以调整这个数值(比如/t 1就是1秒切换一次)。
  4. 修正VLC参数

    • 你原来的命令里vb072应该是vb=720(视频比特率设置),我已经帮你修正了,不然VLC可能会报错无法正常录屏。

注意事项

  • 如果你的VLC没有添加到系统环境变量PATH里,需要把脚本里的"vlc.exe"替换成完整的安装路径,比如"C:\Program Files\VideoLAN\VLC\vlc.exe"
  • 测试的时候可以先把run-time改成10秒(:run-time=10),快速验证闪烁和录屏是否同步。

内容的提问来源于stack exchange,提问作者grelbatron

火山引擎 最新活动