A native macOS recorder for short-form video. Record your camera, your screen, or both at once, then export in the aspect ratio your platform wants, with styled captions generated on device.
- Three recording modes: camera only, screen only, or screen and camera together. The combined mode offers three layouts (side by side, circle bubble, square bubble), and the bubble can go in any corner.
- Four aspect ratios at export: 9:16, 16:9, 1:1 and 4:5, cropped from the full-resolution recording.
- Resolution choice: 720p, 1080p or 4K capture.
- On-device captions with Apple's Speech framework, in English, Spanish, Portuguese, French, German or Japanese. Captions are timed per word and burned into the export.
- Four caption styles: karaoke (word highlight), pop-up, classic and boxed, with a choice of font and position.
- Transcript editor: fix any misheard word before export, with playback following the transcript.
- Audio cleanup: an optional denoise and loudness-normalisation pass (Accelerate) before export. If it fails, the original audio is kept.
- Recordings library: previous recordings in a sidebar, ready to replay or re-export.
Exports are saved to your Downloads folder as .mov.
- macOS 14 (Sonoma) or later
- Xcode 16 or later to build
- Permissions requested on first use: Camera, Microphone, Screen Recording (screen modes only) and Speech Recognition (captions only)
git clone https://github.com/alediez2048/quick-cam-app.git
cd quick-cam-app
open Quick-Cam-App.xcodeprojBuild and run with ⌘R. To run the tests from the command line:
xcodebuild test -project Quick-Cam-App.xcodeproj -scheme Quick-Cam-App \
-destination 'platform=macOS' CODE_SIGNING_ALLOWED=NOCI runs the same command on every push.
- Capture.
CameraServiceruns theAVCaptureSession.CameraRecordingServicewrites camera frames withAVAssetWriterand starts the audio and video tracks on a shared clock, so they stay in sync.ScreenCaptureServicecaptures the display with ScreenCaptureKit andScreenRecordingServicewrites it to disk. - Compose. In screen-and-camera mode,
ScreenCameraCompositoris a customAVVideoCompositingimplementation that draws both sources into one frame using the chosen layout. - Transcribe.
TranscriptionServiceproduces word-level timings withSFSpeechRecognizer, andCaptionStyleEngineturns them into animated caption layers. - Export.
ExportServicecrops to the target aspect ratio, applies the caption layers throughAVVideoCompositionCoreAnimationTool, and replaces the audio track with the cleaned-up version when audio processing is on.
Quick-Cam-App/
├── Models/ Recording mode, aspect ratio, resolution, caption style, languages
├── ViewModels/ CameraViewModel (app state), TranscriptPlaybackObserver
├── Views/ SwiftUI views: controls, previews, caption and transcript editors
├── Services/ Capture, screen recording, composition, transcription, audio, export
└── ContentView.swift, PreviewView.swift
Quick-Cam-AppTests/ Unit tests for the view model and audio processing
documentation/ System design and test notes
Logging goes through os.Logger (subsystem com.quickcam.Quick-Cam-App), so it shows in Console.app instead of stdout.
Jorge Alejandro Diez · github.com/alediez2048