Getting Started
Basic Commands
Command | Description |
---|
framecap sources | List all available recording sources |
framecap -t "screen:0" -o ~/Videos | Record primary screen |
framecap -t "camera:builtin" -o ~/Videos | Record webcam |
framecap --help | Show all options |
First Recording
framecap -t "screen:0,audio:system" -o ~/Desktop
Press Enter to stop recording.
Recording Sources
Screens
Source | Description | Example |
---|
screen:0 | Primary display | framecap -t "screen:0" |
screen:1 | External display | framecap -t "screen:1" |
Cameras
Source | Description | Example |
---|
camera:builtin | Built-in webcam | framecap -t "camera:builtin" |
camera:cam-link-4k | External camera | framecap -t "camera:cam-link-4k" |
Run framecap sources
to find your device IDs.
Audio Recording
Audio Options
Type | Description | Use With |
---|
audio:system | App & system sounds | Screens only |
audio:builtin | Built-in microphone | Any video source |
audio:none | No audio | Any video source |
audio:app | Single app's audio | With app: filter |
Examples
framecap -t "screen:0,audio:system"
framecap -t "camera:builtin,audio:builtin"
framecap -t "screen:0,app:com.spotify.client,audio:app"
Multi-Track Recording
Record multiple sources simultaneously with frame-perfect sync.
Screen + Webcam
framecap \
-t "screen:0,audio:system,filename:presentation" \
-t "camera:builtin,flip:h,audio:builtin,filename:presenter" \
-o ~/Videos/webinar
Multiple Screens
framecap \
-t "screen:0,filename:main_display" \
-t "screen:1,filename:external_display" \
-o ~/Videos/dual_screen
Video Filters
Crop Filter
Remove unwanted areas from your recording.
framecap -t "screen:0,filters:crop(x=0,y=39,w=1920,h=1041)"
Parameter | Description | Example |
---|
x | Start X position | x=100 or x=10% |
y | Start Y position | y=50 or y=5% |
w | Width | w=1280 or w=80% |
h | Height | h=720 or h=90% |
Mask Filter
Focus on a specific area with background.
framecap -t "screen:0,filters:mask(x=560,y=140,w=800,h=800,r=24),codec:prores4444"
Parameter | Description | Example |
---|
x,y,w,h | Area to show | Same as crop |
r | Corner radius | r=24 |
bg | Background color | bg=#000000 |
Note: Use codec:prores4444
for transparency, otherwise black background.
Filter Chaining
framecap -t "screen:0,filters:'mask(x=100,y=100,w=800,h=800,r=32),crop(x=50,y=50,w=700,h=700)'"
(more filters coming soon!)
Application Recording
Record specific application windows.
Single App
framecap -t "screen:0,app:com.figma.Desktop,audio:app" -o ~/Videos/design
With Transparency
framecap -t "screen:0,app:com.google.Chrome,codec:prores4444" -o ~/Videos
Find App Bundle IDs
framecap sources
Flip Options
Transform | Description | Example |
---|
flip:h | Mirror horizontally | camera:builtin,flip:h |
flip:v | Flip vertically | screen:0,flip:v |
flip:hv | Rotate 180° | camera:overhead,flip:hv |
Example: Mirrored Webcam
framecap -t "camera:builtin,flip:h,audio:builtin" -o ~/Videos/vlogs
Output Configuration
File Organization
Option | Description | Example |
---|
-o | Global output directory | -o ~/Videos |
out: | Track-specific directory | screen:0,out:~/Videos/screens |
filename: | Custom filename | camera:builtin,filename:facecam |
Multi-Directory Example
framecap \
-t "screen:0,out:~/Videos/screens,filename:tutorial" \
-t "camera:builtin,out:~/Videos/cameras,filename:instructor" \
-t "screen:0,app:com.apple.dt.Xcode,out:~/Videos/code,filename:xcode"
Codec Selection
Available Codecs
Codec | Quality | File Size | Use Case |
---|
h264 | Good | Smallest | Web sharing |
proreslt | Excellent | Medium | Default, editing |
prores422 | Excellent | Large | Professional |
prores4444 | Excellent + Alpha | Largest | Transparency |
Setting Codec
framecap -t "screen:0" -c h264 -o ~/Videos
framecap -t "screen:0,app:com.sketch.sketchapp,codec:prores4444"
Frame Rate Control
Common Frame Rates
FPS | Use Case | Example |
---|
24 | Cinematic | -r 24 |
30 | Standard (default) | -r 30 |
60 | Smooth motion | -r 60 |
framecap -t "screen:0" -r 60 -o ~/Videos/gameplay
Shortcuts Reference
Command Options
Short | Long | Description |
---|
-t | --track | Add recording track |
-o | --output | Output directory |
-r | --framerate | Frame rate (1-120) |
-c | --codec | Video codec |
-d | --duration | Recording duration |
-w | --overwrite | Replace existing files |
-q | --quiet | Minimal output |
-h | --help | Show help |
Quick Recording
--
--
-- --
Permissions
Required Permissions
Permission | When Needed | Grant In |
---|
Screen Recording | Recording screens | System Settings > Privacy |
Camera | Recording webcam | System Settings > Privacy |
Microphone | Recording audio | System Settings > Privacy |
First Run
framecap sources
Grant permissions when prompted.
Troubleshooting
Common Issues
Issue | Solution |
---|
"Permission denied" | Grant Screen Recording permission in System Settings |
"Camera not found" | Check device ID with framecap sources |
"No audio" | Verify audio device ID matches exactly |
"High CPU usage" | Use H.264 codec or reduce framerate |
"Another instance running" | Only one screen recording at a time allowed |
Debug Commands
framecap sources
framecap sources
framecap sources
System Requirements
- macOS 13.0 (Ventura) or later
- Storage ~500 MB/minute for ProRes LT at 1080p
- Memory 4 GB RAM minimum
- Processor Apple Silicon or Intel
All recordings saved as .mov
files with:
- Container: QuickTime
- Video: ProRes or H.264
- Audio: Linear PCM, 48kHz, 16-bit
- Frame Rate: Constant (CFR)
Tips & Best Practices
- Test First: Record 5 seconds to verify setup
- Check Space: ProRes uses ~1 GB/minute at 4K
- Use Shortcuts:
-t
instead of --track
- Copy IDs: Use exact IDs from
framecap sources
- Stop Method: Press Enter to stop recording
Limitations
- One screen recording instance at a time
- No HEVC/H.265 support
- macOS only
- No live preview
- No audio mixing (separate tracks only)