wulkano / Kap

An open-source screen recorder built with web technology
https://getkap.co
MIT License
18.11k stars 828 forks source link

Record computer audio #145

Open Partysun opened 7 years ago

Partysun commented 7 years ago

Hi, it's an awesome app! Thank you..
I suggest new feature - recording computer audio. (like in screenFlow app) Now we can record mic, but sometimes users will try to record audio from his apps/demos.

screenshot 2017-02-14 22 23 02

sindresorhus commented 7 years ago

The only way to achieve this with macOS Sierra, because of System Integrity Protection, is an Apple signed and approved kernel extension. That is what Screenflow does. I don't think we'll be able to do that.

What we could do is to have a link in preferences that opens a guide on how to achieve it with Kap, using Soundflower (free) or Loopback (free for 20min per recording).

There's a good guide here: http://blog.monosnap.com/how-to-record-video-with-the-system-audio/

doot0 commented 7 years ago

I found this, which could potentially go some ways to making this a possibility but I fear that the added complexity could be a pain in the butt - https://github.com/ZECTBynmo/node-core-audio

ahrorkosimi commented 4 years ago

is it possible to record audio from app if I turn of SIP? It is really needed feature to be able to record video and audio from app for demo purposes.

karaggeorge commented 4 years ago

@Partysun @doot0 @ahrorkosimi (or anyone else following this)

Could you guys test our work in progress solution for this? We are utilizing soundflower as described above, but created a plugin which takes care of creating the devices, setting them during the recording and cleaning up after.

To test, you'll need to install soundflower first, and then download this build, go to Preferences -> Plugins, install soundflower, and try to record.

You can also try messing with the plugin settings, but by default, you should be able to record system audio, while also being able to hear it while recording, and it should record system audio in addition to your specified input source (if any).

meshulam commented 4 years ago

@karaggeorge that build worked great for me! I didn't have to change any of the plugin settings for it to pick up both my mic and the system audio.

It wasn't immediately clear to me what the volume setting in the plugin was supposed to do. I was afraid I would have to adjust it to keep my speaker volume consistent when toggling recording on and off, but it seems like more of an advanced setting that should be ok staying at 1 in most cases. Maybe it should be moved below the "combine input/output" settings since users are more likely to want to change those?

aantix commented 4 years ago

Since Soundflower is MIT, is there any way to package it with Kap and have it installed seamlessly alongside the Kap installation?

Instead of a separate Soundflower installation.

dcst55 commented 4 years ago

@Partysun @doot0 @ahrorkosimi (or anyone else following this)

Could you guys test our work in progress solution for this? We are utilizing soundflower as described above, but created a plugin which takes care of creating the devices, setting them during the recording and cleaning up after.

To test, you'll need to install soundflower first, and then download this build, go to Preferences -> Plugins, install soundflower, and try to record.

You can also try messing with the plugin settings, but by default, you should be able to record system audio, while also being able to hear it while recording, and it should record system audio in addition to your specified input source (if any).

Is it possible to record only the System Sound (without the build-in micro) AND is it possible to record the System-Audio without playing it over the speakers? that would be great!

karaggeorge commented 4 years ago

Hey @dcst55 ,

yeah both of those are possible. For the microphone one, you could just disable audio recording in Preferences, or use the plugin settings to only record system sound. The second one can only be disabled in the plugin settings. To get there, open Preferences -> Plugins -> soundflower -> click the pencil icon, and then adjust the settings as you see fit. Let me know if any of them don't work for you

karaggeorge commented 4 years ago

@meshulam

You're right, I can move that down more. That is the volume at which the system sound will be played in the recording. Do you think a setting for what the computer (speaker) volume should be set to or is keeping it to where the user had it before the recording is ok?

karaggeorge commented 4 years ago

@aantix

Not sure how we can package the kernel extension within Kap and have that install at the same time, since it needs extra permissions, and some people might not need this feature. This is something that ideally would package with the plugin, but I'm not sure that's possible

dcst55 commented 4 years ago

Hey @dcst55 ,

yeah both of those are possible. For the microphone one, you could just disable audio recording in Preferences, or use the plugin settings to only record system sound. The second one can only be disabled in the plugin settings. To get there, open Preferences -> Plugins -> soundflower -> click the pencil icon, and then adjust the settings as you see fit. Let me know if any of them don't work for you

it dont work for me...

I get the following Error Message:

Error: Built-in Microphone is not an output device
    at throwIfStderr (/Users/<USER>/Library/Application Support/Kap/plugins/node_modules/macos-audio-devices/index.js:22:11)
    at module.exports.<computed> (/Users/selcuk/Library/Application Support/Kap/plugins/node_modules/macos-audio-devices/index.js:11:12)
    at async Object.willStartRecording (/Users/selcuk/Library/Application Support/Kap/plugins/node_modules/kap-soundflower/index.js:68:5)
    at async /Applications/Kap.app/Contents/Resources/app.asar/main/common/aperture.js:39:7
    at async Promise.all (index 0)
    at async Object.startRecording (/Applications/Kap.app/Contents/Resources/app.asar/main/common/aperture.js:129:3)
dcst55 commented 4 years ago

@Partysun @doot0 @ahrorkosimi (or anyone else following this)

Could you guys test our work in progress solution for this? We are utilizing soundflower as described above, but created a plugin which takes care of creating the devices, setting them during the recording and cleaning up after.

To test, you'll need to install soundflower first, and then download this build, go to Preferences -> Plugins, install soundflower, and try to record.

You can also try messing with the plugin settings, but by default, you should be able to record system audio, while also being able to hear it while recording, and it should record system audio in addition to your specified input source (if any).

will Soundflower be compatible with MacOS Catalina? I'm using MacOS Catalina and it don't work stable for me...

karaggeorge commented 4 years ago

Hey @dcst55 ,

yeah both of those are possible. For the microphone one, you could just disable audio recording in Preferences, or use the plugin settings to only record system sound. The second one can only be disabled in the plugin settings. To get there, open Preferences -> Plugins -> soundflower -> click the pencil icon, and then adjust the settings as you see fit. Let me know if any of them don't work for you

it dont work for me...

I get the following Error Message:


Error: Built-in Microphone is not an output device

    at throwIfStderr (/Users/<USER>/Library/Application Support/Kap/plugins/node_modules/macos-audio-devices/index.js:22:11)

    at module.exports.<computed> (/Users/selcuk/Library/Application Support/Kap/plugins/node_modules/macos-audio-devices/index.js:11:12)

    at async Object.willStartRecording (/Users/selcuk/Library/Application Support/Kap/plugins/node_modules/kap-soundflower/index.js:68:5)

    at async /Applications/Kap.app/Contents/Resources/app.asar/main/common/aperture.js:39:7

    at async Promise.all (index 0)

    at async Object.startRecording (/Applications/Kap.app/Contents/Resources/app.asar/main/common/aperture.js:129:3)

Hey @dcst55

Can you please share what settings you had on when you got this error? That seems like a plugin error which I can work on fixing

As per the Catalina issue, I am not sure. We don’t have any connection with Soundflower so you might have to wait for them to get a stable build for Catalina. I’m on 10.14 myself so I can’t test on Catalina

leafac commented 4 years ago

This worked great for me on Catalina 👍

devnoname120 commented 2 years ago

Soundflow isn't available on Apple silicon. Is there an alternative? I couldn't get it to work with Blackhole 2ch.

leafac commented 2 years ago

@devnoname120 I use BlackHole on a Mac with the M1 processor. I can assist you in getting it working if you provide some more information. What you tried, what went wrong, what error messages you saw, and that sort of thing.

devnoname120 commented 2 years ago

@leafac I can confirm that I've followed https://github.com/ExistentialAudio/BlackHole/wiki/Multi-Output-Device and https://github.com/ExistentialAudio/BlackHole/wiki/Aggregate-Device — it works now! My virtual devices were not properly configured.

seahindeniz commented 2 years ago

Here's YouTube video of how to install BlackHole

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

eisenbruch commented 2 years ago

So once we have BlackHole setup is there a way to route it through to Kap?

Seems like this still needs to be added.

5 year old issue.

Is someone working on adding this?

timothyis commented 2 years ago

Kap is open-source, you are more than welcome to take a look at this issue @eisenbruch!

thearnica commented 2 years ago

Found an easy way to record what I need:

eisenbruch commented 2 years ago
  • install Background Music
  • set it as a microphone to Kap
  • ✅ you are recording "internal sound"

Can confirm this works. Thanks @thearnica ! Didn't know about the Background Music app

timothyis commented 2 years ago

Thank you for sharing this @thearnica!

ilqvya commented 2 years ago

omg, Mac 13 is released, implement it natively plz

ilqvya commented 2 years ago
  • install Background Music
  • set it as a microphone to Kap
  • ✅ you are recording "internal sound"

Can confirm this works. Thanks @thearnica ! Didn't know about the Background Music app

Hey, I just found an easer way to record screen with all sounds

timothyis commented 2 years ago

There's no need to speak like that and be negative @effolkronium.

I appreciate that you edited your post, but your post is not helpful to this issue.

eisenbruch commented 2 years ago

Imagine thinking screen recording with Apple's built-in tool is superior to Kap

ilqvya commented 1 year ago

OBS program is able to capture screen audio without any crutches starting from macos 13

timothyis commented 1 year ago

Thanks for your input @effolkronium, but I'd like to reiterate that this thread is not a topic to share the benefits of other apps. This is counter-productive. I'm quite happy if you prefer using alternative software, but please stay on topic in this thread or don't take part.

birobirobiro commented 8 months ago

any update or alternative?

Mennaruuk commented 7 months ago

I've read that a program called Audio Hijack can also record all internal audio. Does anyone know how they've managed to make this happen, and whether this could be somehow replicated within Kap?

tibotiber commented 2 months ago

I've just set it up in 10 minutes based on previous messages. I'm on Apple Silicon, not supported by Soundflower yet, but supported by BlackHole, which seems to be a modern equivalent, allowing to route audio between app, or in our case, create an aggregate mic that includes mic + system audio.

Here are the step:

  1. Download and install BlackHole 2ch from https://existential.audio/blackhole/ (free or donate what you want)
  2. Follow https://github.com/ExistentialAudio/BlackHole/wiki/Aggregate-Device
  3. Select your desired mic and audio output (e.g. Mac Microphone and Mac Speakers) + BackHole 2ch
  4. Name the aggregate audio device
  5. Use it as microphone in Kap

ProTip: I'm using Krisp for noise cancelling on my microphone, it's cleaner to record and you can create your aggregate device using Krisp mic + Krisp speakers + BlackHole 2ch. Then dynamically pick the actual mic/speakers you want from Krisp when you record.

I hope it helps.

Thanks @leafac and @devnoname120! ✌️