Skip to main content

What Problem Does This Solve?

When capturing video, you need to specify technical parameters: resolution (1920×1080), bitrate (5 Mbps), framerate (30 fps), and audio bitrate (192 kbps). These settings determine video quality, file size, and performance impact. CameraTrackDescriptor bundles these parameters into a single struct that you pass to quality options and camera configurations.

When to Use CameraTrackDescriptor

You’ll use this whenever configuring:
  • Quality presets in QualityOption
  • Recording vs. streaming settings (different bitrates)
  • Custom camera configurations
  • Device-specific overrides
This is the fundamental building block for all quality configurations in LCK.

Quick Example

// 1080p60 recording at 10 Mbps
var recordingTrack = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(1920, 1080),
    bitrate: 10 << 20,      // 10 Mbps
    framerate: 60,
    audioBitrate: 256000    // 256 kbps
);

// 1080p30 streaming at 5 Mbps
var streamingTrack = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(1920, 1080),
    bitrate: 5 << 20,       // 5 Mbps
    framerate: 30,
    audioBitrate: 192000    // 192 kbps
);

Understanding the Parameters

Resolution

The output video dimensions in pixels. Common values:
  • 1920×1080 — Full HD (1080p)
  • 1280×720 — HD (720p)
  • 2560×1440 — 2K/QHD
  • 3840×2160 — 4K/UHD

Bitrate

Controls video quality and file size. Higher = better quality, larger files.
BitrateUse Case
3 << 20 (3 Mbps)Low-quality streaming, mobile
5 << 20 (5 Mbps)Standard streaming, 1080p30
8 << 20 (8 Mbps)High-quality recording, 1080p60
15 << 20 (15 Mbps)Very high quality, 1440p/4K
The << 20 syntax shifts bits to get megabits. 5 << 20 = 5,242,880 bits/sec ≈ 5 Mbps.

Framerate

Frames per second. Common values:
  • 30 — Standard for most content
  • 60 — Smooth motion, gaming, action
  • 120 — High-speed capture (requires powerful hardware)

Audio Bitrate

Audio quality in bits per second:
  • 128000 (128 kbps) — Acceptable for voice
  • 192000 (192 kbps) — Good quality, default
  • 256000 (256 kbps) — High quality music/ambience

Default Values

If you don’t specify parameters, you get these defaults:
var defaultTrack = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(1920, 1080)
    // bitrate: 5 << 20      (5 Mbps)
    // framerate: 30         (30 fps)
    // audioBitrate: 192000  (192 kbps)
);

Common Patterns

High-quality recording

var recording = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(1920, 1080),
    bitrate: 12 << 20,     // 12 Mbps
    framerate: 60,
    audioBitrate: 256000
);

Bandwidth-constrained streaming

var streaming = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(1280, 720),
    bitrate: 3 << 20,      // 3 Mbps
    framerate: 30,
    audioBitrate: 128000
);

4K recording

var uhd = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(3840, 2160),
    bitrate: 25 << 20,     // 25 Mbps minimum for 4K
    framerate: 30,
    audioBitrate: 256000
);

Mobile-optimized

var mobile = new CameraTrackDescriptor(
    new CameraResolutionDescriptor(1280, 720),
    bitrate: 2 << 20,      // 2 Mbps
    framerate: 30,
    audioBitrate: 128000
);

Bitrate Guidelines by Resolution

Resolution30fps Min30fps Recommended60fps Recommended
720p2 Mbps3-4 Mbps5-6 Mbps
1080p3 Mbps5-8 Mbps10-12 Mbps
1440p6 Mbps10-15 Mbps18-25 Mbps
4K15 Mbps25-35 Mbps40-50 Mbps
Higher settings require more CPU/GPU power. Test on target devices to ensure smooth performance.

API Reference

Constructor

public CameraTrackDescriptor(
    CameraResolutionDescriptor resolution,
    uint bitrate = 5242880,      // 5 << 20
    uint framerate = 30,
    uint audioBitrate = 192000
)

Parameters

  • resolution — Output resolution (width × height)
  • bitrate — Video bitrate in bits per second (default: 5 Mbps)
  • framerate — Frames per second (default: 30)
  • audioBitrate — Audio bitrate in bits per second (default: 192 kbps)

Fields

FieldTypeDescription
ResolutionCameraResolutionDescriptorVideo output resolution
BitrateuintVideo bitrate in bits per second
FramerateuintVideo framerate (fps)
AudioBitrateuintAudio bitrate in bits per second

Performance Tips

Start conservative — Use 1080p30 at 5 Mbps as a baseline
Profile on device — Desktop performance ≠ mobile performance
Match display framerate — Recording at 60fps from a 30fps game wastes bandwidth
4K requires powerful hardware — Test extensively before shipping