2014-06-04 40 views
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) { } 
} 
+1

你可以使用像ffmpeg这样的文件转换为更多磁盘空间友好的格式。 – itsme86

+0

你记录的分辨率是多少?你说你预计1080p电影是100MB,那将是1920x1080,你的分辨率是那么高吗?另外'catch(Exception e){}'这是一件可怕的事情。你不能分辨出什么时候出现问题,要么在异常情况下做一些事情,向用户显示信息出错或让程序崩溃。 –

+0

你使用的比特率也会影响文件的大小。 'scJob.ScreenCaptureVideoProfile.Bitrate.BitrateValue'的价值是什么? –

回答

0

使用ffmpeg的编译文件。对于ü需要@ “-r 5 -i” + RawFolderPath +创建图像

的序列 “img_1%04d.png -pattern_type序列-start_number 0001 -pix_fmt YUV420P” +路径+文件名