Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Create plugin for screenshots / screen recordings #1479

Closed
rajsite opened this issue Apr 23, 2019 · 18 comments
Closed

[Feature] Create plugin for screenshots / screen recordings #1479

rajsite opened this issue Apr 23, 2019 · 18 comments
Labels
Feature Help Wanted Indicates that we’d especially appreciate community input in this issue

Comments

@rajsite
Copy link

rajsite commented Apr 23, 2019

It would be useful to use getDisplayMedia() from the Screen Capture API to allow users to take a screenshot of their window and upload. This would be useful for a support form, etc.

https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API/Using_Screen_Capture

@rajsite
Copy link
Author

rajsite commented Apr 23, 2019

Related to existing closed feature #148

The difference is that today the getDisplayMedia api is now shipping in Chrome, Firefox, Edge, and is in development for Safari: https://www.chromestatus.com/feature/6744724455030784

@goto-bus-stop
Copy link
Contributor

Having additional Webcam modes for

  • modes: ['screenshot']
  • modes: ['screencast']

seems like a good idea. I don't think the core team will have capacity to work on this soon, but PRs would be welcome (and we should be able to provide some guidance there) :)

@goto-bus-stop goto-bus-stop added Help Wanted Indicates that we’d especially appreciate community input in this issue and removed Webcam labels May 8, 2019
@goto-bus-stop
Copy link
Contributor

@arturi mentioned it probably makes more sense as a separate plugin like Uppy.ScreenCapture rather than adding it into Webcam. The UI will need to be different, there's no need for the video playback and mirroring stuff, because you won't be looking at Uppy when you're recording something else on your screen anyway.

@kvz kvz pinned this issue Jun 3, 2019
@kvz
Copy link
Member

kvz commented Jun 3, 2019

We like this idea and are hoping the community can chime in on this one, so we've marked it as Help Wanted as well as pinned it to the repo 🤞!

@goto-bus-stop goto-bus-stop changed the title Support getDisplayMedia for screenshot capture and upload [Feature] Create plugin for screenshots / screen recordings Jul 1, 2019
@jukakoski
Copy link
Contributor

This would be very useful feature in our app, therefore I started build a new plugin for this one. Basic concept is already functional :)

@jukakoski
Copy link
Contributor

Here is a preview of capturing screen using getDisplayMedia.
I think it's important to be able to preview the recorded file prior to upload. User has to submit the file with green check button which is extra step in this process flow. It might be bad UX, but I couldn't figure out any other way to make it work. By the way, I copied the UI for Record and Stop buttons from webcam, but I'm not 100% satisfied with the UI. Maybe stop button should be in different color to distinguish from record button (just an idea).

https://www.youtube.com/watch?v=xYVnyFqYflo

@arturi
Copy link
Contributor

arturi commented Aug 1, 2019

@jukakoski thanks so much for sharing your work! looks very exciting, I’d love to see a PR and make this part of Uppy. I agree, the UI in the Webcam could be improved, and then it will be mirrored to your plugin. We could do an iteration once the functionality is in place. Please let us know if we can help in some way!

@jukakoski
Copy link
Contributor

I have took this plugin a bit further. getDisplayMedia doesn't support audio, thus I added getUserMedia stream to get audio for this plugin. Basically plugin will ask user to give access also for mic, but with this approach this plugin will be very useful tool for making educational video clips etc.
I fine tuned the UI also a little bit. What do you think about rec/stop button? Are you planning to move the button after iteration under common UI components?

Here is a capture of latest version.
https://www.youtube.com/watch?v=7NpMUhL05tU

@arturi
Copy link
Contributor

arturi commented Aug 22, 2019

@jukakoski Sorry for the long response! The comment slipped from my radar. Sorry.

getDisplayMedia doesn't support audio, thus I added getUserMedia stream to get audio for this plugin.

👍 I agree, it’s useful to have audio as well. Mic access is a fair tradeoff and kind of expected when you do some kind of video recording, even if it’s just the screen.

What do you think about rec/stop button? Are you planning to move the button after iteration under common UI components?

We might move it into a common component, yes. I like the concept of it, we can tweak the visual aspect just a bit to match Uppy/Webcam plugin.

Now the whole team is really looking forward to your PR 💯 Thank you.

@rajsite
Copy link
Author

rajsite commented Aug 22, 2019

Do you think the plugin would also support capturing a single image similar to the webcam workflow?

@arturi
Copy link
Contributor

arturi commented Aug 30, 2019

@jukakoski 👋 wondering how is the progress, maybe you could send the PR already and we move the discussion there? Really looking forward to this!

@jukakoski
Copy link
Contributor

@arturi Sorry about the silence. I have been quite busy last week...
I deployed this feature to prod in our app this week and some things need to be fixed. At least Samsung S8 informs incorrectly support for getDisplayMedia, thus it shows the screencap button even thought it's not capable to use getDisplayMedia. As a quick fix I disabled the screencap in mobile devices. Is there or is there on the road map any plans to add mobile device detection in core plugin component?

@xoraingroup
Copy link

@jukakoski its an amazing feature. How is the progress? Do you have the possibility to send PR and let the discussion going to have some sort of beta version. I would love to test it.

@jukakoski
Copy link
Contributor

@xoraingroup I haven't found to time proceed with this one. Hopefully in near future there is more time...
I added you as collaborator in my fork if you want to check the code.
I think there should be a prop (in plugin) to tell if user agent is mobile or not as getDisplayMedia doesn't work in mobile. In Samsung S8 getDisplayMedia was true even thought it doesn't support it.

@xoraingroup
Copy link

Thanks @jukakoski , I will have a look at it. Cheers

@arturi
Copy link
Contributor

arturi commented Mar 4, 2020

@jukakoski could you please PR your branch to Uppy, so I can tweak and merge, and you’ll be attributed properly? The invitation you sent me also expired. Sorry for the delay with this again.

@jrschumacher
Copy link
Contributor

jrschumacher commented Apr 28, 2020

@goto-bus-stop looks like this can be closed, yes?

@goto-bus-stop
Copy link
Contributor

yes, thanks @jrschumacher!

@arturi arturi unpinned this issue Jun 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Help Wanted Indicates that we’d especially appreciate community input in this issue
Projects
None yet
Development

No branches or pull requests

7 participants