ShareX / ShareX

ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
https://getsharex.com
GNU General Public License v3.0
28.29k stars 3.11k forks source link

Pause screen recording #205

Closed phenri closed 9 years ago

phenri commented 9 years ago

Hello, Firstly, I would like to thank you for this fantastic software. I discovered ShareX to record the screen, and I have a request:

  1. Would it be possible to have the feature of being able to pause the screen recording?
  2. And, if possible, allow a fused transition between breaks.
  3. Possibility to send it on YouTube.
  4. And possibly to send stream on any site that allow streaming (perhaps youtube?)

Cheers

Jaex commented 9 years ago

ShareX using ffmpeg cli for recording and i wanted to add pause button but ffmpeg didn't have pause functionality for this. I don't think YouTube is suitable for frequent small video uploads for be able to share them with friends. Also youtube i think not instantly encode uploaded videos. Dropbox is far more suitable for such things. There is commands in ffmpeg to stream recording but when i tried, it was not successful and stream was keep dcing etc. So your best bet would be using proper streaming app.

phenri commented 9 years ago

Hi Jaex, Thanks for the quick reply I searched on google if ffmpeg had the feature and I found this: http://ffmpeg-users.933282.n4.nabble.com/possible-to-pause-encoding-tp935801p935804.html ([Pause] to pause and [Enter] to resume)

Cheers

Jaex commented 9 years ago

I think they talking about linux related hotkeys but not sure.

phenri commented 9 years ago

Or maybe in this way http://www.codeproject.com/Articles/2964/Win-process-suspend-resume-tool via http://stackoverflow.com/a/6579532

Jaex commented 9 years ago

I don't think suspending process is good idea.

phenri commented 9 years ago

Thank you, you are right because I just tried two methods, the first with the "Test with CMD" button and the second using Process Explorer. And in both cases, even if the frames are not recorded, the video keeps its duration despite the requests of pause/resume process. Regards

Jaex commented 9 years ago

Yea i was wondering it too even process is suspended how time can work.

phenri commented 9 years ago

But perhaps you could add a button "Pause/resume" that will stop the ffmpeg process but not the ShareX layout. Never mind if it split the video into several parts, I will merge the different parts later. (perhaps ShareX can send to ffmpeg a command to merge different files when I click on the "Stop" button?)

Good night and good bye.

phenri commented 9 years ago

Hi,

would it be possible to capture the last area/region used for screen recording?

Cheers

TheTechOddBug commented 8 years ago

+1 for phenri suggestions on Jul 21, 2014. A pause/resume button where pause generate one file and resume start regording in a new one file and stop button concatenate (as ffmpeg is able to do) those different files (with same record settings) to generate one only record file would be great. In fact, with this feature, your software will be a great alternative to other ones widely used as, for example, CamStudio.

Jaex commented 8 years ago

Starting new video file and merging them is very ugly workaround.

TheTechOddBug commented 8 years ago

Have you planned/found other way to do it? That "workaround" will be almost transparent for final user and it'll give your software an ability it hasn't got now and that's the reason i have to go back to CamStudio :(

Any way, this is your software and you decide what do you want to do with it :)

TheTechOddBug commented 8 years ago

Do you have any update on this kind of feature? Reviewing the idea of multiple files, it has the user other capability: if, for any reason, the video recording of one piece crash, if the previous pieces are stored in different files, they can be recover and merged and, in that case, not all work is lost :)

Jaex commented 8 years ago

I told FFmpeg not supports pausing. And you have no idea about making it multiple part issues. Like while making another part it will stop recording some time and won't start instantly again. Also merging them will require time and alot of other issues. So I don't want to do that workaround.

TheTechOddBug commented 8 years ago

Ok Jaex. Thank you very much for read and answer my suggestions.

ddavaham commented 6 years ago

Is this a potential fix for this

https://stackoverflow.com/questions/45206312/how-to-pause-resume-ffmpeg-video-capture-in-windows-from-c-sharp-application

Jaex commented 6 years ago

No freezing thread is not a solution. It can create tons of issues.

micbay commented 6 years ago

First off, i don't mean to open any old issues nor am i asking for anything. I had remembered this thread and later found a screen recording software called Captura 7.0.1 that has a pause function and for as much as i can tell it uses ffmpeg libraries (if that's the right word to use) to make .mp4 files. I really don't know much about it, when i use it, i choose Video-FFMpeg and Mp4 (x264|ACC), and it has a hotkey pause feature and seems to play nice with everything. It might be totally different thing, but I thought it might be helpful to this conversation, the code for Captura is open source.

megamorphg commented 5 years ago

It sucks that we closed this completely... almost all major screen recorders have a pause function even teleconference tools. I'd be fine with a low performance or unstable button as ddavaham recommended above.

talanc commented 5 years ago

I've had a look at the source for ShareX and Captura. While they both use ffmpeg in some way their methods of doing the screen recording is very different.

ShareX uses ffmpeg with a gdigrab input. So ffmpeg does the recording and the output file.

Meanwhile Captura captures the screen and streams that data to ffmpeg as a named pipe input. Because Captura controls the input stream, it can much easily pause and resume the recording. ffmpeg does the output file.

It's not as simple as changing ShareX input option to stream the images to ffmpeg. ShareX would now need to capture the screen and send that to ffmpeg at the required frame rate and all the complications that has (steady frame rate, skipped frames, etc).

You're asking a lot of @Jaex and I think if people want this then they should start a bounty and contribute to that to incentivise that it gets worked on.

alexgman commented 3 years ago

Any new info on pausing a recording?

iboabap commented 3 years ago

Any new info on pausing a recording? we need it please. We can not work without Pause!!!!

bitroniq commented 3 years ago

Upvote this issue

asraful commented 3 years ago

just testing these amazing tools for an hour, i was looking for this pause/resume ..and ended up here. its really required .

BahgatMashaly commented 3 years ago

Kindly add this important feature

goyalyashpal commented 3 years ago

But perhaps you could add a button "Pause/resume" that will stop the ffmpeg process but not the ShareX layout \ - https://github.com/ShareX/ShareX/issues/205#issuecomment-49566698

would it be possible to capture the last area/region used for screen recording?

This is opened as a separate issue: #5334

rajesh-smartwebtech commented 3 years ago

Kindly add this important feature

santos7117 commented 3 years ago

Amazing Application !!! I really wish there was a pause option for screen recording

dehghani-mehdi commented 2 years ago

Why this important and useful feature request is closed?

goyalyashpal commented 2 years ago

i think spamming like comments wont help. @talanc input is conclusive, read here: https://github.com/ShareX/ShareX/issues/205#issuecomment-472634252

the only thing that seems helpful, like said in that comment, is those who consider this important start the bounty program. let the money speak. and this will help jaex too.

vertigo220 commented 2 years ago

Does ShareX have any control or ability as to where to put keyframes and/or chapter markers? For example, could it be set up so when paused, it creates a keyframe there (not really necessary except to get exact timing) as well as a bookmark, that way the user could at least open the file in MKVToolNix once done and split at chapter markers, then recombine the desired pieces? In fact, even that should be able to be automated.

At least, that's the concept, though there would likely have to be some modifications, e.g. since mp4 doesn't support chapters AFAIK, ShareX could just log the times, then feed those into MKVToolNix once done. That, at least, should be doable and fairly straightforward.

SaadhJawwadh commented 2 years ago

I think adding a merger tool might be really helpful even though we cannot add pause or resume feature.

SnugglePilot commented 2 years ago

Can someone link the bounty? I will gladly put money towards this.

Jaex commented 1 year ago

Even I find merging video files to mimic pause feature is very ugly workaround and not up to my standards, still decided to add pause support like that now. But my implementation works little different than what's discussed here. It not keeps video file for each pause and instead only keeps maximum two video files (previous and current) and works like this:

Because concat happens after pause is pressed and not after press resume, the delay is not very noticeable to users.

But I really need people to help me test these stuffs because there is just so many combinations involving start/stop, pause/resume, abort, auto start timer and duration options (https://jaex.getsharex.com/2022/09/ShareX_dSQ607wWRr.png), hotkey and tray button usages etc. And there could be a lot of timing related issues that I'm unable to test properly.

If you want to help test the pause feature, you can use dev build.

Also changed visual look of the buttons.

Jaex commented 1 year ago

https://user-images.githubusercontent.com/822090/188325599-ce817da8-3136-4e61-9d1d-4baf6ccd2e2e.mp4

SaadhJawwadh commented 1 year ago

Great work team 🔥🔥 and I am using dev build the feature is working fine on my end.