0
我使用ScreenCaptureJob尝试捕捉我的屏幕视频。虽然它工作正常,但问题是文件大小很大。一个2-3分钟的录音将有一个高达600 MB的文件大小。从屏幕捕获视频,海量文件大小?
我已经尝试降低帧率,但它没有做太多,甚至将质量降低到10%,只会将我降低到100 MB,并且看起来很糟糕。这是关于3分钟1080p高清电影的预期文件大小,而不是可怕的质量,30 FPS屏幕录制。
有没有什么我在这里,我缺少,或以任何方式解决这个问题,或者ScreenCaptureJob只是记录海量文件大小?也许有办法缩小这些文件,或者我应该使用一种不同的方法?
由于一吨的帮助:
private void CaptureMoni(string x)
{
try
{
Rectangle _screenRectangle = Screen.PrimaryScreen.Bounds;
ScreenCaptureJob scJob = new ScreenCaptureJob();
scJob.CaptureRectangle = _screenRectangle;
scJob.ShowFlashingBoundary = true;
scJob.ScreenCaptureVideoProfile.FrameRate = 30;
scJob.ScreenCaptureVideoProfile.Quality = 10;
scJob.CaptureMouseCursor = true;
scJob.OutputScreenCaptureFileName = string.Format(@"C:\cSharp\10quality" + x +".wmv");
if (File.Exists(scJob.OutputScreenCaptureFileName))
{
File.Delete(scJob.OutputScreenCaptureFileName);
}
scJob.Start();
[[ code to set recording time ]]
scJob.Stop();
}
catch (Exception e) { }
}
你可以使用像ffmpeg这样的文件转换为更多磁盘空间友好的格式。 – itsme86
你记录的分辨率是多少?你说你预计1080p电影是100MB,那将是1920x1080,你的分辨率是那么高吗?另外'catch(Exception e){}'这是一件可怕的事情。你不能分辨出什么时候出现问题,要么在异常情况下做一些事情,向用户显示信息出错或让程序崩溃。 –
你使用的比特率也会影响文件的大小。 'scJob.ScreenCaptureVideoProfile.Bitrate.BitrateValue'的价值是什么? –