GithubHelp home page GithubHelp logo

Support Windows about kap HOT 24 CLOSED

wulkano avatar wulkano commented on May 17, 2024 35
Support Windows

from kap.

Comments (24)

maxlath avatar maxlath commented on May 17, 2024 7

was about to open the same issue for Linux: yep, cross-platform would be awesome :)

from kap.

Jbithell avatar Jbithell commented on May 17, 2024 6

+1 for Windows support

from kap.

dmitry avatar dmitry commented on May 17, 2024 4

I think it's better to open separate issue for linux.

from kap.

PaulBGD avatar PaulBGD commented on May 17, 2024 4

After I'm finished with #37 I'll look into getting this working on Window. Most of the work separating OS code is done in #37 so this shouldn't be too hard.

from kap.

bdbch avatar bdbch commented on May 17, 2024 4

wow nevermind... I just saw it's written by you too. :D I'll try to get it working on Windows somehow.

from kap.

benfavre avatar benfavre commented on May 17, 2024 4

Open source software for Mac only always makes me laugh. Just WTF

from kap.

doot0 avatar doot0 commented on May 17, 2024 3

@madcampos It does, but the performance is does not meet the standards we want to deliver. We experimented with it early on but we couldn't glean a decent FPS from the capturer API, hence why we opted to write a native library with AVFoundation and use that instead.

from kap.

madcampos avatar madcampos commented on May 17, 2024 3

What are the performance problems?
Maybe we can workout something, if it's more performant on windows there can be a option to use the native library on one platform and the electron builtin on another, or offer it as a fallback even with performance hits while a native addon is in the works.

from kap.

matheuss avatar matheuss commented on May 17, 2024 3

@madcampos I'm busy right now but I don't want to leave you without an answer, so I'm giving a quick one:

We tried the UserMedia API for several days and it turned out to be very shitty: we had an average of ~15 fps when recording the whole screen and it used a lot of CPU for that. Then we moved to ffmpeg, which can record just fine, but also uses a lot (less than UserMedia) of CPU.

So we decided to go native. It's the hardest path, but the best in terms of performance – based on our experience 😄

See aperture.js' Why section for more info: aperture.js#why

from kap.

bdbch avatar bdbch commented on May 17, 2024 2

Maybe we could use this library for recording the screen?
https://github.com/wulkano/aperture.js

from kap.

doot0 avatar doot0 commented on May 17, 2024 2

Commenting "+1" doesn't achieve anything. This is why github introduced emoji reactions to comments. Please refrain from commenting "+1".

from kap.

 avatar commented on May 17, 2024 1

Could FFMPEG support be added for Windows in Aperture?

Cos using Graphics Acceleration to record it provides far better framerate than using CPUs. E.g. using Intel QuickSync H.264 on Intel iGPUs.

OBS Studio implements QuickSync H.264 support (Intel iGPUs) as well as NVENC support (on Nvidia dGPUs)and AMD's GPU accelerated codec support so it's clearly possible.

from kap.

timothyis avatar timothyis commented on May 17, 2024

Our main lib that we created is Mac only right now. We want it to be full-on web tech and we'd love to support other systems, but we can't do that at the moment.

Pull requests are welcome at Aperture to make it cross-compatible!

from kap.

madcampos avatar madcampos commented on May 17, 2024

Doesn't electron's desktopCapturer api supply the methods needed?
I think it's almost like what is used for webrtc or something like that.

from kap.

doot0 avatar doot0 commented on May 17, 2024

To expand a little;

We've actually discussed this internally for a little while. We have explored using ffmpeg as a cross-platform fallback but the CPU usage has shown to be extremely costly (see here for comparison). Additionally, in order to meet our ideal performance margins we would need to tweak performance for ffmpeg on a per-system basis, which would probably be pretty complex. 🤔

from kap.

levrik avatar levrik commented on May 17, 2024

OBS is doing some screen capturing on Windows. I think the code is located here: https://github.com/jp9000/obs-studio/tree/master/plugins/win-capture
But I don't know how the CPU usage or performance is and if this is helpful.

from kap.

aredfox avatar aredfox commented on May 17, 2024

+1
I noticed desktopCapturer is indeed a pitfall and too slow, it (calling .getSources()) also freezes electron UI/process for a brief moment (even when using proper callbacks etc) - on all platforms. Since I feel the API that comes with electron really underdelivers, I posted this as an issue on electron/electron electron/electron#8246.

from kap.

madcampos avatar madcampos commented on May 17, 2024

From what I've been prospecting, it's an issue within chromium.
For windows, the native methods relay on basically 3 apis:

  1. GDI - witch is somewhat slow depending on the size of the screen and the codec been used, I tested it with ffmpeg (it's their default method)
  2. DirectX - from what I read, it can be fast but is a little harder to implement/depend on more libs/versions witch can lead to dll hell
  3. WinRT (universal platform api) - it's shinny and new, meaning it will be win 8+ but seems easy to implement.

The problem i got with ffmpeg was frame drop on the recording, some combinations of apis + codecs barely got 30fps. And that is a problem also, encoding to something other than AVI will be a question of post-processing the video.

from kap.

PaulBGD avatar PaulBGD commented on May 17, 2024

@madcampos Did you make sure to enable GPU encoding with ffmpeg?

from kap.

madcampos avatar madcampos commented on May 17, 2024

@PaulBGD I think no, it wasn't enabled... I don't think there is an option with the pre-compiled binaries (the one I'm using)

from kap.

grahamperrin avatar grahamperrin commented on May 17, 2024

Multi-platform #123 was closed in favour of this issue 20 so I'll express an interest in use on FreeBSD-based TrueOS Desktop. Related: electron/electron#3797

from kap.

Jbithell avatar Jbithell commented on May 17, 2024

I'd like it on Windows because it looks like a really cool piece of software, Macs are prohibitively expensive, and Windows has been crying out for this kind of thing for a long time.

from kap.

matheuss avatar matheuss commented on May 17, 2024

Actually commenting +1 just adds one useless notification to the ~100 that appeared on my github.com/notifications just today 😐

If someone has any useful info/idea/etc about how to port Kap to Windows, please feel free to contribute!

from kap.

skllcrn avatar skllcrn commented on May 17, 2024

See https://github.com/wulkano/aperture#why and wulkano/Aperture#30 (comment). Closing in favour of #456.

from kap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.