Table of Contents

Enum AMFEncoderUsage

Namespace
VisioForge.Core.Types.FFMPEGEXE
Assembly
VisioForge.Core.dll

Represents the usage presets for the AMD Advanced Media Framework (AMF) H.264 encoder.

public enum AMFEncoderUsage

Fields

Transcoding = 0

Generic transcoding mode for general-purpose video encoding.

Transcoding mode optimizations:

  • Full lookahead buffer (up to 32 frames)
  • B-frames enabled (typically 3)
  • Advanced motion estimation
  • Full rate control features
  • Multi-pass analysis when possible

VCE pipeline configuration:

  • Maximum quality algorithms enabled
  • Full reference frame utilization
  • Adaptive GOP structure
  • Scene change detection active

Performance characteristics:

  • Latency: 1-2 seconds typical
  • Quality: Best possible for given bitrate
  • Speed: Depends on resolution and GPU

Ideal for:

  • File-to-file transcoding
  • VOD content preparation
  • Batch video processing
  • Archive format conversion
  • Non-real-time workflows

FFMPEG: -usage transcoding or -usage 0 (default)

This is the default mode providing the best quality when real-time encoding is not required.

Ultralowlatency = 1

Ultra-low latency mode for real-time interactive applications.

Ultra-low latency optimizations:

  • No B-frames (P-frames only)
  • Minimal lookahead (0-1 frames)
  • Instant rate control decisions
  • Simplified motion estimation
  • No frame reordering

VCE hardware configuration:

  • Streamlined pipeline path
  • Bypass frame analysis stages
  • Direct frame processing
  • Minimal buffering

Latency specifications:

  • Glass-to-glass: < 50ms possible
  • Encoding delay: 1-2 frames max
  • Zero lookahead delay
  • Instant bitstream output

Quality trade-offs:

  • 20-30% larger files vs transcoding
  • Less efficient rate control
  • Potential quality fluctuations
  • No B-frame compression benefits

Critical for:

  • Cloud gaming (Stadia, GeForce NOW)
  • Remote desktop (RDP, VNC)
  • Live video surgery
  • Drone control feeds
  • Real-time collaboration

FFMPEG: -usage ultralowlatency or -usage 1

Combine with:

  • -tune zerolatency (x264 equivalent)
  • -rc cqp or vbr_latency
  • Small -bufsize values
  • -g 60 (short GOPs)
Lowlatency = 2

Low latency mode for live streaming applications.

Low latency optimizations:

  • Limited B-frames (0-2)
  • Short lookahead (2-5 frames)
  • Fast rate control adaptation
  • Balanced motion estimation
  • Controlled frame buffering

VCE pipeline balance:

  • Moderate quality features
  • Some predictive analysis
  • Adaptive algorithms
  • Reasonable buffer depth

Latency targets:

  • End-to-end: 1-3 seconds
  • Encoding delay: 100-300ms
  • Suitable for live interaction
  • CDN-friendly buffering

Quality characteristics:

  • 10-15% larger files vs transcoding
  • Good motion handling
  • Stable quality output
  • Efficient bitrate usage

Standard for:

  • Twitch/YouTube Live streaming
  • Sports broadcasting
  • Live events coverage
  • Webinars and conferences
  • RTMP/HLS streaming

FFMPEG: -usage lowlatency or -usage 2

Recommended settings:

  • -preset fast/faster
  • -tune zerolatency
  • -g 60 (2-second GOPs at 30fps)
  • -rc vbr_latency or cbr
  • -b:v appropriate for platform
Webcam = 3

Webcam mode optimized for webcam capture and video conferencing.

Webcam-specific optimizations:

  • Tuned for talking head content
  • Enhanced face detection regions
  • Optimized for 720p/1080p @ 30fps
  • Adaptive noise reduction
  • Stable bitrate for uploads

VCE adaptations:

  • ROI (Region of Interest) for faces
  • Less aggressive motion search
  • Stable quality on static backgrounds
  • Power-efficient encoding

Content assumptions:

  • Limited motion (talking heads)
  • Static or virtual backgrounds
  • Consistent lighting
  • Fixed camera position
  • Voice-synchronized video

Network optimization:

  • Smooth bitrate for upload
  • Quick adaptation to bandwidth
  • Resilient to packet loss
  • Compatible with WebRTC

Perfect for:

  • Zoom/Teams/Skype calls
  • OBS webcam sources
  • Streaming webcam overlay
  • Video podcasts
  • Online teaching

FFMPEG: -usage webcam or -usage 3

Typical configuration:

  • Resolution: 1280x720 or 1920x1080
  • FPS: 24-30
  • Bitrate: 1-3 Mbps
  • -tune zerolatency
  • -profile baseline (for compatibility)

Note: May not be optimal for screen sharing or high-motion content.

Remarks

The AMF encoder usage type determines the encoder's optimization strategy for different use cases. Each mode is optimized for specific scenarios with different trade-offs between quality, latency, and performance.

These presets configure multiple internal parameters:

  • Lookahead buffer depth
  • B-frame settings
  • Rate control aggressiveness
  • Motion estimation complexity
  • Reference frame management

AMD's VCE hardware adapts its pipeline configuration based on the selected usage, optimizing for the specific requirements of each use case.

FFMPEG usage: -c:v h264_amf -usage [transcoding|ultralowlatency|lowlatency|webcam]