h5bp / lazyweb-requests

Get projects and ideas built by the community
https://github.com/h5bp/lazyweb-requests/issues
1.69k stars 85 forks source link

Screenshot / Screenshare sharing to URL #170

Closed paulirish closed 5 years ago

paulirish commented 9 years ago

There's www.getcloudapp.com, www.cloudup.com, www.gyazo.com, www.imgur.com, and www.gfycat.com. All are great but I am thinking of something slightly better …

Requirements:

arthurvr commented 9 years ago

Oh yeah. I'm in.

stuartpb commented 9 years ago

I was thinking the other day about how I really want an open-source Chrome extension for capturing within tabs (the Chrome Store has a few capture extensions listed, but they all feel kinda shady and have no source you can view).

stuartpb commented 9 years ago

server-side, can't the video/gif conversion just be done via ffmpeg (the imagemagick of video)?

uiur commented 9 years ago

Did you check out licecap? It's a gif screencapture tool and open source.

https://github.com/lepht/licecap

stuartpb commented 9 years ago

I just realized that, for within Chrome, this is actually really simple, using https://developer.chrome.com/extensions/tabs#method-captureVisibleTab. Not sure if its perf is suitable for video, though.

jomo commented 9 years ago

@stuartpb fyi, Firefox also has this feature in their GCLI (using the screenshot command). I'm sure it can be accessed by extensions in some way, too.

stuartpb commented 9 years ago

@paulirish @arthurvr What's the minimum framerate for this you would consider acceptable?

paulirish commented 9 years ago

10fps recording would be OK. 24fps would be acceptable. and 60fps would be ideal, considering the output format is a

Efreak commented 9 years ago

Given that you're mentioning bash, I'm guessing that ShareX isn't any good for you?

Several open source linux-only programs that don't do everything you want:

Some points:

@stuartpb imagemagick can actually transcode video to gif, although it still depends on ffmpeg.

stuartpb commented 9 years ago

I just realized Chrome has also had https://developer.chrome.com/extensions/tabCapture for like a year (along with https://developer.chrome.com/extensions/desktopCapture from a few versions later), though it seems like the problem is in capturing the video stream (it might be slightly more performant than repeatedly requesting the page as PNG DataURL).

My working plan for video is to do repeated PNG requests and then stitch them together with Whammy.js. If going the tabCapture / desktopCapture route, I'd probably go with https://github.com/streamproc/MediaStreamRecorder (which I guess uses Whammy under the hood).

Right now, the thing that's bugging me is that I can't figure out how I'd crop to a certain region with either of the media stream solutions. (I guess I just sort of need to figure out how MediaStreamRecorder gets its frames to Whammy and then hack over that.)

auchenberg commented 9 years ago

Instead of doing a continous a tapCapture, you might be able to use the chrome.debugger API from the extension to start Chrome's Screencasting feature, which emits BASE64 encoded PNG's over the remote debugging protocol. See https://chromedevtools.github.io/debugger-protocol-viewer/Page/#method-startScreencast

I don't know the implementation details, but I might get you a higher frame-rate.

styfle commented 7 years ago

I started working on a screen recording app built with Electron, but the use case is a little different than just grab and upload. The part I haven't figured out yet is how to get the video off the end-user's computer so I'll have to check out the source code in some of those links above.

grayghostvisuals commented 7 years ago

@paulirish Might be useful to reach out to Kap since it's Open Source, built with Web technology and already on GitHub https://github.com/wulkano/kap.

gariasf commented 6 years ago

I'd plus on using ShareX to take a screenshot. The good thing about it is that it allows for custom uploaders. A friend and I are building an app that'll allow people to self host a media sharing service, including uploading images via curl or ShareX.

You can take a look, still in development: client: https://github.com/nethruster/nethloader-frontend server: https://github.com/nethruster/nethloader-backend

acant commented 6 years ago

Firefox, as of version 55, is now shipping with Firefox Screenshots which can do screenshots in the browser and push them to the Mozilla service.

The code for the server and the WebExtension is available here: https://github.com/mozilla-services/screenshots

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

styfle commented 5 years ago

If you don't want to install anything and your website is public, you can take a screenshot with screenshot-v2.now.sh.

If you are interested in twitter cards, see og-image.now.sh which is open source so you can fork your own image generator.

stale[bot] commented 5 years ago

This issue has been automatically closed because it has not had recent activity. Thank you for your contributions.