Overview
TheQualityController class manages optimal video quality by controlling:
- Codec selection: Choose between VP8, VP9, H.264, and AV1
- Resolution management: Control send and receive video resolution
- Adaptive mode: Automatically adjust quality based on CPU and bandwidth
- Last-N: Limit number of received video streams
Codec Configuration
Codec Preference Order
Configure codec preferences in conference options:Codec Selection by Complexity
Codecs are automatically selected based on conference complexity:Mobile Codec Settings
Video Resolution Management
Sender Video Constraints
Control outgoing video resolution:Receiver Video Constraints
Control resolution for each received video stream:Dynamic Resolution Adjustment
Last-N Configuration
Limit the number of video streams received to optimize bandwidth:Adaptive Last-N
Automatically adjust based on CPU performance:Last-N Events
Adaptive Quality Mode
Enable Adaptive Mode
How Adaptive Mode Works
Adaptive mode automatically:- Monitors encode stats: Tracks CPU usage and encoding performance
- Detects quality limitations: Identifies CPU or bandwidth bottlenecks
- Adjusts parameters: Reduces Last-N or switches codecs
- Ramps back up: Gradually increases quality when conditions improve
Quality Limitation Events
Bandwidth Management
Video Bitrate Control
Simulcast Configuration
Simulcast sends multiple quality layers:Audio Quality Settings
Audio Constraints
Stereo Audio
Quality Monitoring
Connection Quality
Track Statistics
Performance Metrics
Codec-Specific Features
VP9 SVC (Scalable Video Coding)
H.264 Hardware Acceleration
AV1 Support (Experimental)
Advanced Quality Control
Per-Track Quality Settings
Quality Profiles
Auto Quality Adjustment
Best Practices
Choose the right codec for your use case
Choose the right codec for your use case
- VP9: Best quality, good for small conferences (2-4 participants)
- VP8: Balanced performance, good for medium conferences (5-10 participants)
- H.264: Hardware accelerated, good for mobile and large conferences
Use adaptive mode for dynamic conditions
Use adaptive mode for dynamic conditions
Enable adaptive mode to automatically handle CPU and bandwidth limitations:
Optimize for layout and use case
Optimize for layout and use case
Adjust Last-N and receiver constraints based on your UI layout:
Monitor quality metrics
Monitor quality metrics
Track quality metrics to identify issues:
Next Steps
End-to-End Encryption
Enable E2EE in conferences
Statistics & Analytics
Monitor performance metrics