Codificadores AV1¶
Video Capture SDK .Net Video Edit SDK .Net Media Blocks SDK .Net
VideoCaptureCoreX VideoEditCoreX MediaBlocksPipeline
VisioForge soporta múltiples implementaciones de codificadores AV1, cada una con sus propias características y capacidades únicas. Este documento cubre los codificadores disponibles y sus opciones de configuración.
Actualmente, los codificadores AV1 están soportados en los motores multiplataforma: VideoCaptureCoreX, VideoEditCoreX, y Media Blocks SDK.
Codificadores disponibles¶
- Codificador AMD AMF AV1 (AMF)
- Codificador NVIDIA NVENC AV1 (NVENC)
- Codificador Intel QuickSync AV1 (QSV)
- Codificador AOM AV1
- Codificador RAV1E
Puede usar el codificador AV1 con salida WebM o para streaming de red.
Codificador AMD AMF AV1¶
El codificador AMD AMF AV1 proporciona codificación acelerada por hardware usando tarjetas gráficas AMD.
Características¶
- Múltiples preajustes de calidad
- Modos de control de tasa de bits variable
- Control de tamaño GOP
- Control de QP (Parámetro de Cuantización)
- Soporte de Smart Access Video
Modos de control de tasa¶
Default: Depende del usoCQP: QP constanteLCVBR: VBR restringido por latenciaVBR: VBR restringido por picoCBR: Tasa de bits constante
Ejemplo de uso¶
var encoderSettings = new AMFAV1EncoderSettings
{
Bitrate = 3000, // 3 Mbps
GOPSize = 30, // Tamaño GOP de 30 cuadros
Preset = AMFAV1EncoderPreset.Quality, // Preajuste de calidad
RateControl = AMFAV1RateControlMode.VBR, // Modo de tasa de bits variable
Usage = AMFAV1EncoderUsage.Transcoding, // Uso de transcodificación
MaxBitrate = 5000, // Tasa de bits máxima de 5 Mbps
QpI = 26, // QP de cuadro I
QpP = 26, // QP de cuadro P
RefFrames = 1, // Número de cuadros de referencia
SmartAccessVideo = false // Smart Access Video deshabilitado
};
Codificador NVIDIA NVENC AV1¶
El codificador NVENC AV1 de NVIDIA proporciona codificación acelerada por hardware usando GPUs NVIDIA.
Características¶
- Múltiples preajustes de codificación
- Soporte de cuadros B adaptativos
- AQ (Cuantización Adaptativa) temporal
- Control de buffer VBV (Video Buffering Verifier)
- Soporte de AQ espacial
Modos de control de tasa¶
Default: Modo predeterminadoConstQP: Parámetro de cuantización constanteCBR: Tasa de bits constanteVBR: Tasa de bits variableCBR_LD_HQ: CBR de baja latencia, alta calidadCBR_HQ: CBR, alta calidad (más lento)VBR_HQ: VBR, alta calidad (más lento)
Ejemplo de uso¶
var encoderSettings = new NVENCAV1EncoderSettings
{
Bitrate = 3000, // 3 Mbps
Preset = NVENCPreset.HighQuality, // Preajuste de alta calidad
RateControl = NVENCRateControl.VBR, // Modo de tasa de bits variable
GOPSize = 75, // Tamaño GOP de 75 cuadros
MaxBitrate = 5000, // Tasa de bits máxima de 5 Mbps
BFrames = 2, // 2 cuadros B entre I y P
RCLookahead = 8, // 8 cuadros de lookahead
TemporalAQ = true, // Habilitar AQ temporal
Tune = NVENCTune.HighQuality, // Ajuste de alta calidad
VBVBufferSize = 6000 // Buffer VBV de 6000k
};
Codificador Intel QuickSync AV1¶
El codificador QuickSync AV1 de Intel proporciona codificación acelerada por hardware usando GPUs Intel.
Características¶
- Soporte de modo de baja latencia
- Uso objetivo configurable
- Control de cuadros de referencia
- Configuración flexible de tamaño GOP
Modos de control de tasa¶
CBR: Tasa de bits constanteVBR: Tasa de bits variableCQP: Cuantizador constante
Ejemplo de uso¶
var encoderSettings = new QSVAV1EncoderSettings
{
Bitrate = 2000, // 2 Mbps
LowLatency = false, // Modo de latencia estándar
TargetUsage = 4, // Balance calidad/velocidad
GOPSize = 30, // Tamaño GOP de 30 cuadros
MaxBitrate = 4000, // Tasa de bits máxima de 4 Mbps
QPI = 26, // QP de cuadro I
QPP = 28, // QP de cuadro P
RateControl = QSVAV1EncRateControl.VBR, // Modo de tasa de bits variable
RefFrames = 1 // Número de cuadros de referencia
};
Codificador AOM AV1¶
El codificador AOM AV1 de la Alliance for Open Media es una implementación de referencia basada en software.
Características¶
- Configuraciones de control de buffer
- Optimización de uso de CPU
- Soporte de descarte de cuadros
- Capacidades de multi-threading
- Soporte de super-resolución
Modos de control de tasa¶
VBR: Modo de tasa de bits variableCBR: Modo de tasa de bits constanteCQ: Modo de calidad restringidaQ: Modo de calidad constante
Ejemplo de uso¶
var encoderSettings = new AOMAV1EncoderSettings
{
BufferInitialSize = TimeSpan.FromMilliseconds(4000),
BufferOptimalSize = TimeSpan.FromMilliseconds(5000),
BufferSize = TimeSpan.FromMilliseconds(6000),
CPUUsed = 4, // Nivel de uso de CPU
DropFrame = 0, // Deshabilitar descarte de cuadros
RateControl = AOMAV1EncoderEndUsageMode.VBR, // Modo de tasa de bits variable
TargetBitrate = 256, // 256 Kbps
Threads = 0, // Conteo automático de hilos
UseRowMT = true, // Habilitar threading basado en filas
SuperResMode = AOMAV1SuperResolutionMode.None // Sin super-resolución
};
Codificador RAV1E¶
RAV1E es un codificador AV1 rápido y seguro escrito en Rust.
Características¶
- Control de preajuste de velocidad
- Configuración de cuantizador
- Control de intervalo de keyframes
- Modo de baja latencia
- Ajuste psicovisual
Ejemplo de uso¶
var encoderSettings = new RAV1EEncoderSettings
{
Bitrate = 3000, // 3 Mbps
LowLatency = false, // Modo de latencia estándar
MaxKeyFrameInterval = 240, // Intervalo máximo de keyframes
MinKeyFrameInterval = 12, // Intervalo mínimo de keyframes
MinQuantizer = 0, // Valor mínimo de cuantizador
Quantizer = 100, // Valor base de cuantizador
SpeedPreset = 6, // Preajuste de velocidad (0-10)
Tune = RAV1EEncoderTune.Psychovisual // Ajuste psicovisual
};
Notas generales de uso¶
- Todos los codificadores implementan la interfaz
IAV1EncoderSettings, proporcionando una forma consistente de crear bloques de codificador. - Cada codificador tiene su propio conjunto específico de optimizaciones y compensaciones.
- Los codificadores de hardware (AMF, NVENC, QSV) generalmente proporcionan mejor rendimiento pero pueden tener requisitos de hardware específicos.
- Los codificadores de software (AOM, RAV1E) ofrecen más flexibilidad pero pueden requerir más recursos de CPU.
Recomendaciones¶
- Para GPUs AMD: Use el codificador AMF
- Para GPUs NVIDIA: Use el codificador NVENC
- Para GPUs Intel: Use el codificador QSV
- Para máxima calidad: Use el codificador AOM
- Para codificación eficiente en CPU: Use el codificador RAV1E
Mejores prácticas¶
- Siempre verifique la disponibilidad del codificador antes de usarlo
- Establezca tasas de bits apropiadas basándose en su resolución y tasa de cuadros objetivo
- Use tamaños GOP apropiados basándose en su tipo de contenido
- Considere la compensación entre calidad y velocidad de codificación
- Pruebe diferentes modos de control de tasa para encontrar el mejor ajuste para su caso de uso