MathewSachin / Captura

Capture Screen, Audio, Cursor, Mouse Clicks and Keystrokes
https://mathewsachin.github.io/Captura/
MIT License
9.78k stars 1.83k forks source link

Only record changes *Feature request* #333

Open alexadam16 opened 5 years ago

alexadam16 commented 5 years ago

Hi,

at first thank you for that great app! It is really helpfull and has a perfect user interface. I have a possible feature request: It would be really nice to have an option to only record the screen/app when there are any changes. With this option it would be possible to make a small-size clip with all what was done.

Thank you!

Best regards alexadam16

MathewSachin commented 5 years ago

There's one thing I need to confirm:

What about the length of the video?

  1. Should it be original length of recording? OR
  2. The portion without changes be removed from the video
alexadam16 commented 5 years ago

Thank you for your fast feedback. I think it would be best to have option 2 because the video should be as small as possible for archiving.

vatterspun commented 5 years ago

I tried to put together a feature request on the ShareX thread along these lines. The dev didn't seem too interested, but maybe it will give you some ideas about how to implement this one on Captura: https://github.com/ShareX/ShareX/issues/2735

alexadam16 commented 5 years ago

@MathewSachin Why is it removed from v8.1.0 milestone? Is it not possible? Can I help?

MathewSachin commented 5 years ago

@alexadam16, I had decided to jump to v9.0.0 instead of v8.1.0. You don't need to worry :smile:.

I could implement what @vatterspun has suggested and it seems quite relevant. Please have a look at it. The output will then be in the form of a set of screenshots and audio will not be recorded.

The only problem I'm facing is how to adapt this into the current UI. I can do it for the console version without much problems like I did for the capture last n seconds feature.

alexadam16 commented 5 years ago

Oh this sound good. I think there is no great difference between the proposel of @vatterspun and my idea. But I think when a screenshot is taken for every change this is to much for seperate files. A video file with only the movements would be better. Audio is not important and I think it makes no sense.

The console version would be okay but perhaps you can integrate a checkbox in the settings "Only record changes". When it is selected, only changes in the screen are recorded and put together in one video.

Thank you!

MathewSachin commented 5 years ago

When making video, a problem I am facing is what should be the FPS of the video.

vatterspun commented 5 years ago

First, thanks for considering the idea.

When making video, a problem I am facing is what should be the FPS of the video.

I don't have a good answer here, but maybe I can give a bad answer will help...

Recordings when only a small thing has changed are a bit dull if there are long breaks between recordings. Picture a menu being clicked on followed by a selection in the sub-menu. It looks like an early video game that's struggling with a slow processor. In that case, I'd say roughly one frame per 0.75 seconds to maintain the activity.

When you watch videos with major changes - such as a full screen interface change - you want to give the eye a little more time to see everything that's going on and to adjust. So those frames should be a little longer. I'd say roughly 2 seconds.

You could handle medium changes by analyzing the difference between frames and adjusting by percentages. So a frame that changes a lot but not totally might take 1.5 seconds.

Additionally, you might also do a soft fade between changes to give an illusion of animation. A lot of PowerPoint-based animations do this.

--

I realize this is a complex problem -- I'll try to spend some time on the topic and try to think of how this might get managed.

alexadam16 commented 5 years ago

I think it is hard to have fixed values for the FPS. Perhaps it would be possible to have a new option where the user can choose the speed (FPS). Playback apps mostly have the possibility to slow down or accelerate a video so I think anybody can change the playback speed later viewing the video. So a fixed value could also be okay.

vatterspun commented 5 years ago

The output will then be in the form of a set of screenshots and audio will not be recorded.

So are you looking to do an output of video or of sequential screenshots? It's worth noting that a video who's contents don't change much will compress much smaller than a video where every frame is different. I'd say most screen recordings could have 50% of their current frames and have it be perfectly clear what's happening.

Regardless, if you just output to pure images (no video), that's still extremely useful. I could use for at least a dozen different things, including testing, writing documentation, how-to files, bug reports, etc.


Some other possible "only record changes" ideas:

1: t 2: th 3: thi 4: this

I can mock these up if that's helpful. Also, I recognize the logic behind creating any of these is complex and probably more than you want to dig into, but some ideas.

alexadam16 commented 5 years ago

@vatterspun: I think this is a little bit too complex. I just thought of a video which is missing all frames with no changes. I think this is much easier and this is why I would suggest a solution in this direction.

vatterspun commented 5 years ago

I think this is a little bit too complex.

Easily possible. I've spent a lot of time on the topic and may be overdoing it.

MathewSachin commented 5 years ago

@vatterspun @alexadam16 Thank you for your suggestions.

I've started implementing based on what @vatterspun has suggested. I'm still working on it and it's not done yet. Please have a look and let me know.

Here's the dev build to test: https://ci.appveyor.com/api/buildjobs/s1gapypw8ic0flt1/artifacts/Captura-Portable.zip


You can view the progress on #391.

alexadam16 commented 5 years ago

Thank you. I found the "Steps Recorder" Option and tried it. The videos are really short even when I choice slow playback all changes in the video are really fast. Perhaps you can slow it down a little bit or integrate a speed option behind "Steps Recorder" But it's on a really good way ;-)

MathewSachin commented 5 years ago

I'll add a separate option for controlling speed later. For now, try setting the FPS to a small value like 1.

Edit: Also, try recording with SharpAvi if you face problems with FFmpeg.

vatterspun commented 5 years ago

You can view the progress on #391.

This is really exciting, thank you. I've got an unusually full week ahead of me but will do my best to test it and get back to you before the end of the month.

MathewSachin commented 5 years ago

@alexadam16 @vatterspun I've made more progress on this feature. Here is the latest build for testing: https://ci.appveyor.com/api/buildjobs/x2cs275bant9p94x/artifacts/Captura-Portable.zip

Steps mode is now enabled from Main page. There is an option to export as either Video (avi) or Set of images (png).

alexadam16 commented 5 years ago

The options look great but I have a problem using it. After a short time (about 30 secounds). Captura closes without any error.

MathewSachin commented 5 years ago

@alexadam16 I'll take a look into the problem in a week. I'm currently busy with my exams. Thank you for your patience.

vatterspun commented 5 years ago

I finally got a free night and was very excited to test this ...

Setup: Win7x86 machine

Steps:

  1. Download ZIP file, extract, and launch
  2. Select Steps and choose Images
  3. Press record
  4. Click and drag the Captura window

Results:

Yellow arrow appears for drag-and-drop operation:

image

This is fine and honestly better than any other tool I've tested on this topic. How click-and-drag is handled by step recording tools is (from what I've seen): they don't. I'd like to be able to customize the color but this is amazing.

Showing the mouse scroll functionality was maybe the most impressive part. I think only Flashback Recorder (I don't recommend the program for a long list of reasons) showed that in the overlay.

image

Issues:

An odd yellow circle appears where the mouse was with the number 2 present. This seemed to happen after finishing a drag operation.

image

Video output still has the yellow circles / arrows but in sequence. So far looks very promising.


Wishlist:


Thank you again for your hard work on this and good luck with your exams! :)

vatterspun commented 5 years ago

Hey I've seen a few items in my Github notifications about this but didn't know if there was anything additional to test. Is there something new you need feedback on?

MathewSachin commented 5 years ago

Umm... I was working on integrating this feature with the other features I was working on. It's not really at a point for further testing. I'll let you know when I make testable progress on this.

vatterspun commented 5 years ago

I'll let you know when I make testable progress on this.

Cool, thanks

vatterspun commented 4 years ago

Hey I saw over on the https://github.com/MathewSachin/Captura/pull/391 post that there's been a fair amount of activity over the past year. Is there something I could assist with in terms of testing? Did you need feedback or is this still in the early stages?