Recording
Resolution & Bitrate Guidelines
| Quality | Resolution | Bitrate | Target FPS | Use Case |
|---|---|---|---|---|
| SD | 1280 x 720 | 2-4 Mbps | 30 | Mobile VR, performance mode |
| HD | 1920 x 1080 | 4-8 Mbps | 30 | Standard recording |
| 2K | 2560 x 1440 | 8-12 Mbps | 30 | High quality |
| 4K | 3840 x 2160 | 12-20 Mbps | 30 | Maximum quality (PC) |
Event-Driven Operations
Subscribe to recording events for responsive feedback:ULCKRecorderSubsystem directly:
Audio
Source Priority
When multiple sources are available:| Source | Best For | Latency |
|---|---|---|
| LCKUnrealAudio | General use, cross-platform | Low |
| LCKFMOD | FMOD projects | Very Low |
| LCKWwise | Wwise projects | Very Low |
| LCKOboe | Android microphone | Very Low |
| LCKVivox | Voice chat capture | Low |
Sample Rate Matching
Audio Callbacks
Audio callbacks may come from different threads. Use thread-safe patterns:UI
Button Cooldown
The SDK includes automatic 0.25s cooldown - don’t add your own:Showable Groups
Group related UI for batch operations:Performance
Scene Capture Optimization
Memory Management
Common Pitfalls
Not handling recording state feedback
Not handling recording state feedback
Problem: No feedback to user when recording starts/stops/fails.Solution: Subscribe to
OnRecordingSaveFinished, OnRecordingError, and OnRecordingSaveProgress delegates.Mismatched resolutions
Mismatched resolutions
Problem: Render target doesn’t match recording resolution.Solution: Ensure render target and recording parameters match exactly.
Forgetting to unregister capture
Forgetting to unregister capture
Problem: Memory leaks from orphaned capture components.Solution: Always call
UnregisterCaptureComponent(ComponentName) when done.Sample rate mismatch
Sample rate mismatch
Problem: Audio distortion or sync issues.Solution: Query and match sample rates between audio source and encoder.
Using AddLambda for audio delegate
Using AddLambda for audio delegate
Problem: Audio delegate is single, not multicast.Solution: Use
BindLambda() instead of AddLambda() for OnAudioDataDelegate.Platform Checklist
- Android
- Windows
- Vulkan enabled
-
RECORD_AUDIOpermission -
WRITE_EXTERNAL_STORAGEpermission - LCKOboe plugin enabled (for low-latency mic)
Debugging
Log Categories
Common Log Messages
| Log | Meaning |
|---|---|
LogLCK: Recording started | Recording began |
LogLCKEncoding: Encoder initialized | Encoder ready |
LogLCKAudio: Audio source registered | Audio available |
LogLCKUI: Button pressed | UI interaction |