Skip to content
/ EdaCam Public

Native macOS screen recorder that lives in your menu bar. Features hardware-accelerated encoding via Apple's Media Engine, multi-display support, system audio capture, and global hotkeys. Built with SwiftUI, ScreenCaptureKit, and VideoToolbox.

License

Notifications You must be signed in to change notification settings

sadopc/EdaCam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

edacam icon

edacam

A lightweight, native macOS screen recorder with hardware-accelerated encoding

FeaturesRequirementsInstallationUsageBuildingTech Stack

Platform Swift License Architecture


Overview

edacam is a menu bar screen recording application built natively for macOS. It leverages Apple's Media Engine for hardware-accelerated H.264/HEVC encoding, resulting in minimal CPU usage and efficient recordings.

Designed with a warm, approachable aesthetic inspired by modern design principles, edacam provides professional-quality screen recordings without the complexity.

Features

Feature Description
🎬 Hardware Encoding Uses Apple's dedicated Media Engine for H.264/HEVC
🖥️ Multi-Display Record any connected display
🔊 System Audio Capture system audio output
⏸️ Pause/Resume Pause recordings without creating multiple files
⌨️ Global Hotkeys Control recording from anywhere (⌘⇧R, ⌘⇧P)
📊 Live Stats Real-time duration and file size display
🎨 Menu Bar App Minimal footprint, always accessible
🔒 Sandboxed App Store ready with proper entitlements

Requirements

  • macOS 12.3 (Monterey) or later
  • Processor Apple Silicon (M1/M2/M3/M4) or Intel
  • Disk Space ~15 MB/minute at High quality

Installation

Download

Download the latest release from the Releases page.

Build from Source

# Clone the repository
git clone https://github.com/yourusername/edacam.git
cd edacam

# Open in Xcode
open edacam.xcodeproj

# Build and run (⌘R)

Usage

Quick Start

  1. Launch edacam — it appears in your menu bar
  2. Select a display from the dropdown
  3. Click "Start Recording" or press ⌘⇧R
  4. Record your content
  5. Stop by clicking "Stop" or pressing ⌘⇧R
  6. Find your recording in ~/Movies

Keyboard Shortcuts

Shortcut Action
⌘⇧R Start/Stop Recording
⌘⇧P Pause/Resume Recording

Settings

Setting Options Default
Frame Rate 30 fps, 60 fps 60 fps
Video Codec H.264, HEVC H.264
Quality Low, Medium, High High
Output Format MP4, MOV MP4
Save Location Any folder ~/Movies

Quality Presets

Preset Bitrate File Size
Low 4 Mbps ~30 MB/min
Medium 8 Mbps ~60 MB/min
High 15 Mbps ~115 MB/min

Building

Prerequisites

  • Xcode 15.0 or later
  • macOS 14.0 or later (for building)
  • Apple Developer account (for code signing)

Build Steps

# Clone
git clone https://github.com/yourusername/edacam.git
cd edacam

# Build via command line
xcodebuild -scheme edacam -configuration Release build

# Or open in Xcode
open edacam.xcodeproj

Archive for Distribution

  1. In Xcode: ProductArchive
  2. In Organizer: Distribute App
  3. Choose distribution method (App Store / Direct)

Tech Stack

Frameworks

Framework Purpose
ScreenCaptureKit Screen capture
VideoToolbox Hardware video encoding
AVFoundation Media file writing
SwiftUI User interface
Carbon Global keyboard shortcuts

Architecture

┌─────────────────┐
│   SCStream      │  Screen capture
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  VideoEncoder   │  Hardware H.264/HEVC
│  (VideoToolbox) │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  MediaWriter    │  MP4/MOV output
│  (AVAssetWriter)│
└─────────────────┘

Project Structure

edacam/
├── edacamApp.swift              # App entry point
├── Models/
│   ├── RecordingState.swift     # Observable state
│   ├── RecordingSettings.swift  # User preferences
│   └── RecordingError.swift     # Error handling
├── Services/
│   ├── ScreenRecorder.swift     # Recording orchestrator
│   ├── CaptureManager.swift     # ScreenCaptureKit wrapper
│   ├── VideoEncoder.swift       # Hardware encoding
│   ├── MediaWriter.swift        # File writing
│   └── HotkeyManager.swift      # Global shortcuts
└── Views/
    ├── MenuBarView.swift        # Main UI
    ├── SettingsView.swift       # Settings panel
    └── ...

Performance

edacam is optimized for minimal resource usage:

State CPU GPU Memory
Idle < 1% 0% ~50 MB
Recording (1080p 60fps) 5-15% 2-5% ~150 MB

Hardware encoding is handled by Apple's dedicated Media Engine silicon, not the CPU or GPU.

Permissions

edacam requires the following permissions:

Permission Purpose
Screen Recording Capture screen content
Microphone System audio capture

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2026 edacam

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Acknowledgments


Made with ❤️ for macOS

About

Native macOS screen recorder that lives in your menu bar. Features hardware-accelerated encoding via Apple's Media Engine, multi-display support, system audio capture, and global hotkeys. Built with SwiftUI, ScreenCaptureKit, and VideoToolbox.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages