robmikh / SimpleRecorder

A simple screen recorder using both the Windows.Graphics.Capture and Windows.Media.Transcoding APIs.
MIT License
223 stars 48 forks source link

Does MediaTranscoder not apply any compression/frame diffing for MP4 profiles? #43

Closed bitbound closed 1 year ago

bitbound commented 2 years ago

Hey, Robert.

First, thanks for all your example projects. They've been really helpful!

I can't seem to find an answer anywhere about this, so maybe you can help me. I'm considering using the MediaTranscoding APIs for screen recording/screen sharing purposes, but I'm noticing that the MP4 encoding profile doesn't appear to do any compression or frame diffing.

For example, if I use this project to record a window that has no changes occurring, the file size continues increasing linearly with the length of the video. A 10-second video with no visual changes ends up being about 20 MB.

However, if I use WMV format, the resulting file is about 1.5MB. This is about the size I'd expect from either format after diffing/compression is applied (e.g. about the size of a screenshot).

Is this expected behavior for MP4? Am I missing something?

Thanks! :)

robmikh commented 2 years ago

I'm glad you find the samples useful!

This is something I've been wondering myself, but I haven't had any luck tracking down any APIs that would help here. But then again, I'm not a Media Foundation expert.

In the new year I'll try to ping some media folks and I'll report back when I get an answer.