2012-01-18 20 views
0

我的要求是創建一個應用程序,將桌面活動和音頻一起記錄爲電影。搜索後,我發現Microsoft Expression Encoder可用於將桌面活動錄製爲電影,但輸出文件的大小非常大。對於10秒鐘的視頻,它佔用大約30到40 MB。另外,它使用xesc格式。以C#錄製電影捕獲桌面活動

是否有任何其他免費API可用於執行此項工作?

+2

看看這個主題 - http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/0f5e085f-069c-4540-9ca7-2968d47a8d76 – adatapost 2012-01-18 02:27:38

+1

感謝分享。我製作了我從給定網址獲得的樣本。但這[鏈接](http://mycomponent.blogspot.com/2009/04/capture-screen-activitiesvideo-using.html)正在給我一些額外的信息,我正在這個 – VIJAY 2012-01-18 03:03:44

回答

3

你放棄Expression Encoder的嘗試調整前:

ScreenCaptureJob.ScreenCaptureVideoProfile.Quality 

降低質量可以大大減少文件大小。嘗試一下,看看結果是否可以接受。

降低幀率實際上是無益的;我想它強制固定的幀速率,而默認的是使用基於活動的可變幀速率。

如果您不喜歡.xesc文件,您可以在捕獲視頻後轉碼視頻。

但是30到40MB十秒鐘仍然是方式太多了。我以默認的質量錄製了10秒(確實不是很大,1366x768)的全屏視頻。沒有太多的事情花了300K;有很多活動(不斷切換全屏應用程序),最多花費1.5MB。

降低質量減少了約50%的文件大小。

除非您正在播放全屏視頻並試圖記錄該視頻,否則您不應該看到30至40MB的任何內容。也許你應該看看你的音頻設置。

+0

謝謝。但它不會減小文件大小,我在開始錄製之前已經提供了以下代碼。 job.ScreenCaptureVideoProfile.Quality = 25 job.ScreenCaptureVideoProfile.FrameRate = 12 – VIJAY 2012-01-18 04:52:56

+0

對不起,原來改變幀率是假的。我還用我跑過的一些測試的結果更新了我的答案。 – arx 2012-01-18 14:18:48

0

從nuget的ScreenRecorderLib是好的。

SharpAVI正在佔用我太多的磁盤空間。

您需要小心ScreenRecorderLib,最後需要一些時間節省mp4文件。

確保您的程序不會在發生之前結束。

我使用FileInfo.Length來檢查文件大小是否不再增長。這將確定保存是否完成。