作者:忘爱LIAN | 来源:互联网 | 2023-12-10 10:52
最近在使用C#进行录屏,通过调用ffmpeg的cmd命令进行录制。设置的录制时长是30秒,但实际只录制了11秒就停止了。关闭程序后,又开始录制并成功录制了30秒。请问大神,这是什么原因?附上了简单的调用程序。
最近在用C#做录屏,只要求录屏,保存下来即可,采用的是ffmpeg ,用CMD命令调用的,将它放到了一个线程中,设置的是30秒,但只录了11秒就停止了,将程序关掉后,他又开始录屏,录了30秒。。。。。求问大神什么原因??
程序如下:很简单的调用。
private void button1_Click(object sender, EventArgs e)
{
num++;
//创建线程
screen_record = new Thread(recording);
//将窗体线程设置为与后台同步
screen_record.IsBackground = true;
//启动线程,开始录屏
screen_record.Start();
timer1.Enabled = true;
}
private void recording()//调用cmd命令,使用ffmpeg进行录屏10秒,每秒15帧
{
//string cmd = @"c:&cd &f: &cd f:\ffmpeg\bin &ffmpeg -f gdigrab -t 10 -r 15 -i desktop -vcodec libx264 capture77.mkv";
string cmd = @"c:&cd &f: &cd f:\ffmpeg\bin &ffmpeg -f gdigrab -t 30 -r 10 -i desktop -vcodec libx264 " + num.ToString() + ".mkv";
string output = "";
CmdHelper.RunCmd(cmd, out output);
}
1 个解决方案