Back to Documentation

Transcoding & Quality

Quality presets, encoding settings, and hardware acceleration

Quality Presets

StreamDev provides built-in quality presets optimized for common use cases. Select a preset to automatically configure resolution, bitrate, and encoding parameters:

Preset Resolution Video Bitrate Best For
360p 640 x 360 800 kbps Low bandwidth, mobile data
480p 854 x 480 1,500 kbps Standard definition, moderate bandwidth
720p 1280 x 720 3,000 kbps HD streaming, general purpose
1080p 1920 x 1080 6,000 kbps Full HD, high quality broadcasts
4K 3840 x 2160 15,000 kbps Ultra HD, premium content

Tip: The 720p preset offers the best balance between quality and resource usage for most streaming scenarios.

Custom Settings

For fine-grained control, configure encoding parameters manually:

  • Resolution: Set any custom width and height (e.g., 1280x720, 1920x1080)
  • Video Bitrate: Specify in kbps (e.g., 4000 for 4 Mbps)
  • Frame Rate: Set output FPS (common values: 24, 25, 30, 60)
  • Audio Bitrate: Configure audio encoding quality (e.g., 128 kbps, 192 kbps)
  • Audio Sample Rate: Typically 44100 or 48000 Hz
# Example custom encoding settings
Resolution: 1280x720
Video Bitrate: 4000 kbps
Frame Rate: 30 fps
Audio Bitrate: 192 kbps
Audio Codec: AAC

Passthrough Mode

Passthrough mode copies the source stream directly to HLS output without re-encoding. This preserves original quality and uses minimal CPU resources.

Transcoding

  • Full re-encoding of video and audio
  • CPU usage: 15–100% per stream
  • Can change resolution, bitrate, FPS
  • Supports watermark overlays
  • Enables adaptive bitrate

Tip: Use passthrough when the source quality is already suitable for your viewers. This allows you to run significantly more concurrent streams on the same hardware.

GPU Acceleration (NVIDIA NVENC)

StreamDev supports hardware-accelerated encoding using NVIDIA GPUs with NVENC. This dramatically reduces CPU usage while maintaining excellent quality.

Requirements

  • NVIDIA GPU (GTX 1050 or higher recommended)
  • NVIDIA drivers installed on the server
  • CUDA toolkit (automatically detected by StreamDev)

Verify GPU Availability

# Check if NVIDIA GPU is detected
nvidia-smi

# Verify FFmpeg NVENC support
ffmpeg -encoders | grep nvenc

Important: Consumer NVIDIA GPUs (GeForce) are limited to 3–5 simultaneous NVENC sessions. For higher concurrency, use professional GPUs (Quadro/Tesla) or multiple GPUs.

CPU Usage Guidelines

Understanding CPU usage per stream helps you plan server capacity. These are approximate values per stream on a modern multi-core CPU:

Mode CPU per Stream Visual
Passthrough ~1–2%
720p Transcode ~15–25%
1080p Transcode ~30–50%
4K Transcode ~80–100%

Important: Keep total CPU usage below 80% to prevent frame drops and stream instability. Leave headroom for system processes.

When to Use Passthrough vs Transcoding

Use Passthrough When:

  • The source is already in a suitable quality and format
  • You need to maximize the number of concurrent streams
  • CPU resources are limited
  • No watermark or resolution change is needed
  • Source is already H.264 with AAC audio

Use Transcoding When:

  • You need to change resolution or bitrate for bandwidth optimization
  • Adding a watermark or logo overlay
  • Source codec is incompatible with HLS (e.g., H.265 to H.264 conversion)
  • Creating multiple quality variants (adaptive bitrate)
  • Normalizing frame rate or audio format across sources

Recommended Hardware per Quality Level

Use the following as a starting point for hardware planning:

Quality Level CPU RAM Concurrent Streams
Passthrough Only 2+ cores 2 GB 20–50 streams
720p Transcoding 4–8 cores 4–8 GB 4–8 streams
1080p Transcoding 8–16 cores 8–16 GB 2–4 streams
4K Transcoding 16+ cores / GPU 16–32 GB 1–2 streams (CPU) / 4+ (GPU)

Tip: Adding an NVIDIA GPU can increase transcoding capacity by 3–5x compared to CPU-only encoding, making it a cost-effective upgrade for transcoding-heavy workloads.