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 AMFEncoderUsageFields
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]