wulkano / Aperture

Record the screen on macOS
MIT License
1.23k stars 111 forks source link

Linux Support (again) #32

Closed fearphage closed 6 years ago

fearphage commented 7 years ago

This is the fixes (and some) of the PR #7. I couldn't figure out how to continue progress on that branch/PR.

Let me know if everything still works.

Question: Why don't we/you use ffmpeg on all platforms? It seems like it would greatly simplify the code and it would add support for MacOS older than 10.10.

sindresorhus commented 7 years ago

Why don't we/you use ffmpeg on all platforms?

https://github.com/wulkano/aperture#why

sindresorhus commented 7 years ago

Also note my comment in #7: https://github.com/wulkano/aperture/pull/7#issuecomment-265879006

sindresorhus commented 7 years ago

Let me know if everything still works.

You can do that by putting the following in index.js:

module.exports().startRecording().then(console.log).catch(console.error);
fearphage commented 7 years ago

You can do that by putting the following

I'm sure it works for me. I just have zero macs on which to confirm the functionality.

I addressed the code review concerns and added the mouse cursor toggle.

fearphage commented 7 years ago

Not sure what changed between last night and today, but I was getting strings back from the stderr stream and now I'm getting buffers. Weird.

fearphage commented 7 years ago

@sindresorhus Anything else?

sindresorhus commented 7 years ago

Setting showCursor: false doesn't seem to work. I still get the cursor in the recording.

By default it captures only part of the screen, while it should capture the whole screen. Setting the cropArea option does nothing.

.getAudioSources() return duplicate audio sources for me:

[ '0:I82801BAICH2 [Intel 82801BA-ICH2]',
  '0:I82801BAICH2 [Intel 82801BA-ICH2]' ]

It also needs to be in the format:

[ { id: 'AppleHDAEngineInput:1B,0,1,0:1',
    name: 'Built-in Microphone' } ]

ffmpeg version 3.0.7-0ubuntu0.16.10.1

fearphage commented 7 years ago

Setting showCursor: false doesn't seem to work

Confirmed.

By default it captures only part of the screen, while it should capture the whole screen

I'll look into it.

.getAudioSources() return duplicate audio sources for me

Cannot reproduce locally.

It also needs to be in the format

From your sample output, is that id [name]?

ffmpeg version 3.0.7-0ubuntu0.16.10.1

Same here.

sindresorhus commented 7 years ago

From your sample output, is that id [name]?

$ arecord --list-devices
**** List of CAPTURE Hardware Devices ****
card 0: I82801BAICH2 [Intel 82801BA-ICH2], device 0: Intel ICH [Intel 82801BA-ICH2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: I82801BAICH2 [Intel 82801BA-ICH2], device 1: Intel ICH - MIC ADC [Intel 82801BA-ICH2 - MIC ADC]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
sindresorhus commented 7 years ago

It seems if you specify default to ffmpeg, it will use the default device. According to the web it's sometimes hard to determine this yourself, so maybe we should add in a Default Microphone entry, that just supplies -i default to ffmpeg?