VIJAY
VIJAY

Reputation: 849

Capturing Desktop activities as recorded movie in C#

My requirement is to create an application that records desktop activities, along with audio, as a movie. After searching, I found that Microsoft Expression Encoder can be used to record desktop activities as a movie but the output file size is very large. For 10 seconds of video, it occupied around 30 to 40 MB. Also, it uses xesc format.

Is there is any other free API available to do this job?

Upvotes: 1

Views: 2121

Answers (2)

Richard
Richard

Reputation: 106

ScreenRecorderLib from nuget is good.

SharpAVI is taking too much of my disc space.

You will need to be careful for ScreenRecorderLib, it would require some time saving mp4 file in the end.

Make sure your program won't end before that happens.

I use FileInfo.Length to check if the file size is not growing anymore. This will determine if the saving is finished or not.

Upvotes: 0

arx
arx

Reputation: 16896

Before you give up on Expression Encoder try adjusting:

ScreenCaptureJob.ScreenCaptureVideoProfile.Quality

Reducing the quality can greatly reduce the file size. Try it and see if the results are acceptable for you.

Reducing the framerate is actually unhelpful; I guess it forces a fixed framerate, whereas the default is to use a variable framerate based on activity.

If you don't like .xesc files you can transcode the video after you've captured it.

But 30 to 40MB for ten seconds is still way too much. I recorded ten seconds of (admittedly not very large, 1366x768) full-screen video at the default quality. With not much going on it took 300K; with lots of activity (constantly switching between full-screen apps) it took at most 1.5MB.

Reducing the quality reduced file sizes by about 50%.

Unless you're playing a full-screen video and trying to record that, you shouldn't see anything like 30 to 40MB. Perhaps you should look at your audio settings.

Upvotes: 4

Related Questions