/***
通过js调用cmd命令利用ffmpeg实现录屏或者录像功能
***/
var cmd = new ActiveXObject("WScript.Shell");/*命令参数说明cmd.exe /c dir 是执行完dir命令后关闭命令窗口。cmd.exe /k dir 是执行完dir命令后不关闭命令窗口。cmd.exe /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。cmd.exe /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。*/video = Date.parse(new Date())var value = 'D:/ffmpegTest/test.bat '+sUrl+' '+video//sUrl、video为传入test.bat文件的参数var cmd = new ActiveXObject("WScript.Shell");cmd.run("cmd.exe /c" + value,0);cmd = null;
特别注意:如果这样运行cmd.run("cmd.exe /c" + value),cmd框会一闪而过然后隐藏,必须写成cmd.run("cmd.exe /c" + value,0)这样,才会完全不显示。
bat脚本
@echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""D:/ffmpegTest/%~nx0"" h %1 %2",0)(window.close)&&exit :begin D:/ffmpegTest/ffmpeg -f gdigrab -i desktop D:/ffmpegTest/video/%3.flv -y