@0biwank/screen-capture
v2.0.5
Published
Native screen + audio capture for macOS with file-backed HLS output.
Maintainers
Readme
@0biwank/screen-capture
Native macOS screen, window, camera, microphone, and system-audio capture with file-backed HLS output.
Requirements
- macOS 14 or newer
- Apple silicon (
arm64) or Intel (x64) - Node.js 18 or newer, including N-API-compatible Electron releases
The npm package includes prebuilt binaries for both supported architectures and does not compile native code during installation.
Installation
npm install @0biwank/screen-captureUsage
const capture = require('@0biwank/screen-capture');
const display = capture.listDisplaySources()[0];
const recordingId = `capture-${Date.now()}`;
capture.setSegmentReadyCallback(fullPath => {
console.log('HLS segment ready:', fullPath);
});
const started = capture.startCapture({
displayId: display.id,
width: display.width,
height: display.height,
fps: 30,
gopSize: 120,
videoBitrate: 9_000_000,
systemAudio: true,
microphone: false,
outputDir: '/tmp/native-capture',
recordingId,
segmentTime: 4,
});
if (!started) throw new Error(capture.getLastError());Call stopCapture() to flush the final segment and close playlist.m3u8.
Pause and resume are available through pauseCapture() and resumeCapture().
See index.d.ts for the complete API and option types.
Building From Source
Release binaries are built by .github/workflows/publish.yml. Local builds use:
npm ci --ignore-scripts
brew install nasm pkg-config
NATIVE_CAPTURE_ARCH=arm64 npm run build
# or NATIVE_CAPTURE_ARCH=x64 npm run buildSee SOURCE.md for pinned upstream sources, checksums, and build details.
License
The distributed binary links FFmpeg configured with GPL support and x264. The package is distributed under GPL-2.0-or-later. See LICENSE and THIRD_PARTY_NOTICES.md. Distribution in another application should be reviewed for license compliance.
