Documentación de codecs de FFmpeg
1 Descripción
Este documento describe los codecs (decoders y encoders) que proporciona la biblioteca libavcodec.
2 Opciones de codec
libavcodec ofrece algunas opciones globales genéricas que se pueden establecer en todos los encoders y decoders. Además, cada codec puede admitir las llamadas opciones privadas, específicas de ese codec en concreto.
A veces, una opción global solo afecta a un tipo concreto de codec y puede carecer de sentido o ser ignorada por otro, por lo que es necesario conocer el significado de las opciones especificadas. Además, algunas opciones están pensadas únicamente para la decodificación o la codificación.
Las opciones se pueden establecer indicando -option value en las herramientas de FFmpeg, estableciendo el valor explícitamente en las opciones de AVCodecContext, o utilizando la API de libavutil/opt.h para uso mediante programación.
A continuación se muestra la lista de opciones admitidas:
b integer (encoding,audio,video)
Establece la tasa de bits en bits/s. El valor predeterminado es 200K.
ab integer (encoding,audio)
Establece la tasa de bits del audio (en bits/s). El valor predeterminado es 128K.
bt integer (encoding,video)
Establece la tolerancia de tasa de bits del vídeo (en bits/s). En el modo de 1 pasada, la tolerancia de tasa de bits indica cuánto puede desviarse el control de tasa del valor medio de tasa de bits objetivo. Esto no está relacionado con la tasa de bits mínima/máxima. Reducir demasiado la tolerancia tiene un efecto negativo en la calidad.
flags flags (decoding/encoding,audio,video,subtitles)
Establece flags genéricos.
Valores posibles:
‘mv4’
Utiliza cuatro vectores de movimiento por macrobloque (mpeg4).
‘qpel’
Utiliza compensación de movimiento de cuarto de píxel.
‘loop’
Utiliza el filtro de bucle.
‘qscale’
Utiliza una escala de cuantización fija.
‘pass1’
Utiliza el control de tasa interno de 2 pasadas en el modo de primera pasada.
‘pass2’
Utiliza el control de tasa interno de 2 pasadas en el modo de segunda pasada.
‘gray’
Solo decodifica/codifica en escala de grises.
‘psnr’
Establece las variables error[?] durante la codificación.
‘truncated’
El bitstream de entrada puede estar truncado de forma aleatoria.
‘drop_changed’
No genera fotogramas cuyos parámetros difieran del primer fotograma decodificado del flujo. Se devuelve el error AVERROR_INPUT_CHANGED cuando se descarta un fotograma.
‘ildct’
Utiliza DCT entrelazada.
‘low_delay’
Fuerza el modo de baja latencia.
‘global_header’
Coloca las cabeceras globales en extradata en lugar de en cada keyframe.
‘bitexact’
Solo escribe datos independientes de la plataforma, la compilación y el tiempo (excepto la (I)DCT). Esto garantiza que las sumas de comprobación de archivos y datos sean reproducibles y coincidan entre plataformas. Su uso principal es para pruebas de regresión.
‘aic’
Aplica la codificación intra avanzada de H263 / predicción AC de mpeg4.
‘ilme’
Aplica estimación de movimiento entrelazada.
‘cgop’
Utiliza GOP cerrado.
‘output_corrupt’
Genera incluso fotogramas potencialmente dañados.
time_base rational number
Establece la base de tiempo del codec.
Es la unidad fundamental de tiempo (en segundos) en la que se representan las marcas de tiempo de los fotogramas. Para contenido con fps fijos, la base de tiempo debería ser 1 / frame_rate y los incrementos de marca de tiempo deberían ser exactamente 1.
g integer (encoding,video)
Establece el tamaño del grupo de imágenes (GOP). El valor predeterminado es 12.
ar integer (decoding/encoding,audio)
Establece la frecuencia de muestreo del audio (en Hz).
ac integer (decoding/encoding,audio)
Establece el número de canales de audio.
cutoff integer (encoding,audio)
Establece el ancho de banda de corte. (Solo lo admiten determinados encoders; consulte sus respectivas secciones de documentación.)
frame_size integer (encoding,audio)
Establece el tamaño de fotograma del audio.
Cada fotograma enviado, salvo el último, debe contener exactamente frame_size muestras por canal. Puede ser 0 cuando el codec tiene establecido CODEC_CAP_VARIABLE_FRAME_SIZE; en ese caso, el tamaño de fotograma no está restringido. Algunos decoders lo establecen para indicar un tamaño de fotograma constante.
frame_number integer
Establece el número de fotograma.
delay integer qcomp float (encoding,video)
Establece la compresión de la escala de cuantización de vídeo (VBR). Se usa como constante en la ecuación de control de tasa. Rango recomendado para el rc_eq predeterminado: 0.0-1.0.
qblur float (encoding,video)
Establece el desenfoque de la escala de cuantización de vídeo (VBR).
qmin integer (encoding,video)
Establece la escala de cuantización mínima de vídeo (VBR). Debe estar comprendida entre -1 y 69; el valor predeterminado es 2.
qmax integer (encoding,video)
Establece la escala de cuantización máxima de vídeo (VBR). Debe estar comprendida entre -1 y 1024; el valor predeterminado es 31.
qdiff integer (encoding,video)
Establece la diferencia máxima entre escalas de cuantización (VBR).
bf integer (encoding,video)
Establece el número máximo de fotogramas B entre fotogramas que no son B.
Debe ser un entero entre -1 y 16. 0 significa que los fotogramas B están deshabilitados. Si se usa el valor -1, se elegirá un valor automático según el encoder.
El valor predeterminado es 0.
b_qfactor float (encoding,video)
Establece el factor QP entre fotogramas P y B.
codec_tag integer bug flags (decoding,video)
Aplica soluciones alternativas para errores del encoder no detectados automáticamente.
Valores posibles:
‘autodetect’ ‘xvid_ilace’
error de entrelazado de Xvid (autodetectado si fourcc==XVIX)
‘ump4’
(autodetectado si fourcc==UMP4)
‘no_padding’
error de padding (autodetectado)
‘amv’ ‘qpel_chroma’ ‘std_qpel’
qpel estándar antiguo (autodetectado según fourcc/versión)
‘qpel_chroma2’ ‘direct_blocksize’
error de direct-qpel-blocksize (autodetectado según fourcc/versión)
‘edge’
error de padding de bordes (autodetectado según fourcc/versión)
‘hpel_chroma’ ‘dc_clip’ ‘ms’
Solución para varios errores de decoders defectuosos de Microsoft.
‘trunc’
fotogramas truncados
strict integer (decoding/encoding,audio,video)
Especifica con qué grado de rigor se deben seguir los estándares.
Valores posibles:
‘very’
se ajusta estrictamente a una versión anterior y más estricta de la especificación o del software de referencia
‘strict’
se ajusta estrictamente a todo lo indicado en la especificación, sin importar las consecuencias
‘normal’ ‘unofficial’
permite extensiones no oficiales
‘experimental’
permite elementos experimentales no estandarizados, así como decoders y encoders experimentales (inacabados/en desarrollo/no probados a fondo). Nota: los decoders experimentales pueden suponer un riesgo de seguridad; no los use para decodificar entradas no fiables.
b_qoffset float (encoding,video)
Establece el desplazamiento de QP entre fotogramas P y B.
err_detect flags (decoding,audio,video)
Establece los flags de detección de errores.
Valores posibles:
‘crccheck’
comprueba los CRC incrustados
‘bitstream’
detecta desviaciones respecto a la especificación del bitstream
‘buffer’
detecta una longitud de bitstream incorrecta
‘explode’
aborta la decodificación al detectar un error menor
‘ignore_err’
ignora los errores de decodificación y continúa decodificando. Resulta útil si se quiere analizar el contenido de un vídeo y, por tanto, se desea que todo se decodifique pase lo que pase. Esta opción no producirá un vídeo agradable de ver en caso de errores.
‘careful’
considera como errores aquello que infringe la especificación y que no se ha observado en la práctica
‘compliant’
considera como errores todos los incumplimientos de la especificación
‘aggressive’
considera como error aquello que un encoder razonable no debería hacer
has_b_frames integer block_align integer rc_override_count integer maxrate integer (encoding,audio,video)
Establece la tolerancia máxima de tasa de bits (en bits/s). Requiere que bufsize esté establecido.
minrate integer (encoding,audio,video)
Establece la tolerancia mínima de tasa de bits (en bits/s). Resulta más útil al configurar una codificación CBR. En otros casos, tiene poca utilidad.
bufsize integer (encoding,audio,video)
Establece el tamaño del búfer de control de tasa (en bits).
i_qfactor float (encoding,video)
Establece el factor QP entre fotogramas P e I.
i_qoffset float (encoding,video)
Establece el desplazamiento de QP entre fotogramas P e I.
dct integer (encoding,video)
Establece el algoritmo DCT.
Valores posibles:
‘auto’
selecciona automáticamente uno adecuado (predeterminado)
‘fastint’
entero rápido
‘int’
entero preciso
‘mmx’ ‘altivec’ ‘faan’
DCT AAN en coma flotante
lumi_mask float (encoding,video)
Comprime las zonas claras con más fuerza que las de tono medio.
tcplx_mask float (encoding,video)
Establece el enmascaramiento de complejidad temporal.
scplx_mask float (encoding,video)
Establece el enmascaramiento de complejidad espacial.
p_mask float (encoding,video)
Establece el enmascaramiento inter.
dark_mask float (encoding,video)
Comprime las zonas oscuras con más fuerza que las de tono medio.
idct integer (decoding/encoding,video)
Selecciona la implementación de IDCT.
Valores posibles:
‘auto’ ‘int’ ‘simple’ ‘simplemmx’ ‘simpleauto’
elige automáticamente una IDCT compatible con la simple
‘arm’ ‘altivec’ ‘sh4’ ‘simplearm’ ‘simplearmv5te’ ‘simplearmv6’ ‘simpleneon’ ‘xvid’ ‘faani’
IDCT AAN en coma flotante
slice_count integer ec flags (decoding,video)
Establece la estrategia de ocultación de errores.
Valores posibles:
‘guess_mvs’
búsqueda iterativa de vectores de movimiento (MV) (lenta)
‘deblock’
usa un filtro de desbloqueo intenso para los MB dañados
‘favor_inter’
prioriza la predicción a partir del fotograma anterior en lugar del actual
bits_per_coded_sample integer aspect rational number (encoding,video)
Establece la relación de aspecto de muestra.
sar rational number (encoding,video)
Establece la relación de aspecto de muestra. Es un alias de aspect.
debug flags (decoding/encoding,audio,video,subtitles)
Muestra información de depuración específica.
Valores posibles:
‘pict’
información de la imagen
‘rc’
control de tasa
‘bitstream’ ‘mb_type’
tipo de macrobloque (MB)
‘qp’
parámetro de cuantización por bloque (QP)
‘dct_coeff’ ‘green_metadata’
muestra los metadatos de complejidad del siguiente fotograma, GoP o de una duración determinada.
‘skip’ ‘startcode’ ‘er’
reconocimiento de errores
‘mmco’
operaciones de control de gestión de memoria (H.264)
‘bugs’ ‘buffers’
asignaciones del búfer de imágenes
‘thread_ops’
operaciones de multihilo
‘nomc’
omite la compensación de movimiento
cmp integer (encoding,video)
Establece la función de comparación de estimación de movimiento de píxel completo.
Valores posibles:
‘sad’
suma de diferencias absolutas, rápido (predeterminado)
‘sse’
suma de errores al cuadrado
‘satd’
suma de diferencias transformadas de Hadamard en valor absoluto
‘dct’
suma de diferencias transformadas mediante DCT en valor absoluto
‘psnr’
suma de errores de cuantización al cuadrado (evitar, baja calidad)
‘bit’
número de bits necesarios para el bloque
‘rd’
óptimo en tasa-distorsión, lento
‘zero’
0
‘vsad’
suma de diferencias verticales absolutas
‘vsse’
suma de diferencias verticales al cuadrado
‘nsse’
suma de diferencias al cuadrado que preserva el ruido
‘w53’
wavelet 5/3, usado solo en snow
‘w97’
wavelet 9/7, usado solo en snow
‘dctmax’ ‘chroma’ subcmp integer (encoding,video)
Establece la función de comparación de estimación de movimiento de subpíxel.
Valores posibles:
‘sad’
suma de diferencias absolutas, rápido (predeterminado)
‘sse’
suma de errores al cuadrado
‘satd’
suma de diferencias transformadas de Hadamard en valor absoluto
‘dct’
suma de diferencias transformadas mediante DCT en valor absoluto
‘psnr’
suma de errores de cuantización al cuadrado (evitar, baja calidad)
‘bit’
número de bits necesarios para el bloque
‘rd’
óptimo en tasa-distorsión, lento
‘zero’
0
‘vsad’
suma de diferencias verticales absolutas
‘vsse’
suma de diferencias verticales al cuadrado
‘nsse’
suma de diferencias al cuadrado que preserva el ruido
‘w53’
wavelet 5/3, usado solo en snow
‘w97’
wavelet 9/7, usado solo en snow
‘dctmax’ ‘chroma’ mbcmp integer (encoding,video)
Establece la función de comparación de macrobloques.
Valores posibles:
‘sad’
suma de diferencias absolutas, rápido (predeterminado)
‘sse’
suma de errores al cuadrado
‘satd’
suma de diferencias transformadas de Hadamard en valor absoluto
‘dct’
suma de diferencias transformadas mediante DCT en valor absoluto
‘psnr’
suma de errores de cuantización al cuadrado (evitar, baja calidad)
‘bit’
número de bits necesarios para el bloque
‘rd’
óptimo en tasa-distorsión, lento
‘zero’
0
‘vsad’
suma de diferencias verticales absolutas
‘vsse’
suma de diferencias verticales al cuadrado
‘nsse’
suma de diferencias al cuadrado que preserva el ruido
‘w53’
wavelet 5/3, usado solo en snow
‘w97’
wavelet 9/7, usado solo en snow
‘dctmax’ ‘chroma’ ildctcmp integer (encoding,video)
Establece la función de comparación de DCT entrelazada.
Valores posibles:
‘sad’
suma de diferencias absolutas, rápido (predeterminado)
‘sse’
suma de errores al cuadrado
‘satd’
suma de diferencias transformadas de Hadamard en valor absoluto
‘dct’
suma de diferencias transformadas mediante DCT en valor absoluto
‘psnr’
suma de errores de cuantización al cuadrado (evitar, baja calidad)
‘bit’
número de bits necesarios para el bloque
‘rd’
óptimo en tasa-distorsión, lento
‘zero’
0
‘vsad’
suma de diferencias verticales absolutas
‘vsse’
suma de diferencias verticales al cuadrado
‘nsse’
suma de diferencias al cuadrado que preserva el ruido
‘w53’
wavelet 5/3, usado solo en snow
‘w97’
wavelet 9/7, usado solo en snow
‘dctmax’ ‘chroma’ dia_size integer (encoding,video)
Establece el tipo y el tamaño de diamante para la estimación de movimiento.
‘(1024, INT_MAX)’
estimación de movimiento completa (la más lenta)
‘(768, 1024]’
estimación de movimiento umh
‘(512, 768]’
estimación de movimiento hex
‘(256, 512]’
estimación de movimiento en diamante l2s
‘[2,256]’
estimación de movimiento en diamante var
‘(-1, 2)’
estimación de movimiento en diamante pequeño
‘-1’
estimación de movimiento en diamante funny
‘(INT_MIN, -1)’
estimación de movimiento en diamante sab
last_pred integer (encoding,video)
Establece la cantidad de predictores de movimiento procedentes del fotograma anterior.
precmp integer (encoding,video)
Establece la función de comparación de la preestimación de movimiento.
Valores posibles:
‘sad’
suma de diferencias absolutas, rápido (predeterminado)
‘sse’
suma de errores al cuadrado
‘satd’
suma de diferencias transformadas de Hadamard en valor absoluto
‘dct’
suma de diferencias transformadas mediante DCT en valor absoluto
‘psnr’
suma de errores de cuantización al cuadrado (evitar, baja calidad)
‘bit’
número de bits necesarios para el bloque
‘rd’
óptimo en tasa-distorsión, lento
‘zero’
0
‘vsad’
suma de diferencias verticales absolutas
‘vsse’
suma de diferencias verticales al cuadrado
‘nsse’
suma de diferencias al cuadrado que preserva el ruido
‘w53’
wavelet 5/3, usado solo en snow
‘w97’
wavelet 9/7, usado solo en snow
‘dctmax’ ‘chroma’ pre_dia_size integer (encoding,video)
Establece el tipo y el tamaño de diamante para la pasada previa de estimación de movimiento.
subq integer (encoding,video)
Establece la calidad de la estimación de movimiento de subpíxel.
me_range integer (encoding,video)
Establece el límite del rango de los vectores de movimiento (1023 para el reproductor DivX).
global_quality integer (encoding,audio,video) slice_flags integer mbd integer (encoding,video)
Establece el algoritmo de decisión de macrobloques (modo de alta calidad).
Valores posibles:
‘simple’
usa mbcmp (predeterminado)
‘bits’
usa el menor número de bits posible
‘rd’
usa la mejor tasa-distorsión
rc_init_occupancy integer (encoding,video)
Establece el número de bits que deben cargarse en el búfer de rc antes de que comience la decodificación.
flags2 flags (decoding/encoding,audio,video,subtitles)
Valores posibles:
‘fast’
Permite trucos de aceleración que no cumplen la especificación.
‘noout’
Omite la codificación del bitstream.
‘ignorecrop’
Ignora la información de recorte del sps.
‘local_header’
Coloca las cabeceras globales en cada keyframe en lugar de en extradata.
‘chunks’
Los datos de fotograma pueden dividirse en varios fragmentos.
‘showall’
Muestra todos los fotogramas anteriores al primer keyframe.
‘export_mvs’
Exporta los vectores de movimiento como side data del fotograma (véase AV_FRAME_DATA_MOTION_VECTORS) para los codecs que lo admitan. Véase también doc/examples/export_mvs.c.
‘skip_manual’
No omite muestras y exporta la información de omisión como side data del fotograma.
‘ass_ro_flush_noop’
No restablece el campo ReadOrder de ASS al ejecutarse un flush.
‘icc_profiles’
Genera o analiza perfiles ICC incrustados a partir de las etiquetas de colorimetría, y viceversa.
‘fixed_frame_size’
Fuerza a los encoders de audio a usar un tamaño de fotograma fijo.
export_side_data flags (decoding/encoding,audio,video,subtitles)
Valores posibles:
‘mvs’
Exporta los vectores de movimiento como side data del fotograma (véase AV_FRAME_DATA_MOTION_VECTORS) para los codecs que lo admitan. Véase también doc/examples/export_mvs.c.
‘prft’
Exporta el Producer Reference Time del encoder como side data del paquete (véase AV_PKT_DATA_PRFT) para los codecs que lo admitan.
‘venc_params’
Exporta los parámetros de codificación de vídeo como side data del fotograma (véase AV_FRAME_DATA_VIDEO_ENC_PARAMS) para los codecs que lo admitan. Actualmente son H.264 y VP9.
‘film_grain’
Exporta los parámetros de grano de película mediante side data de fotograma (véase AV_FRAME_DATA_FILM_GRAIN_PARAMS). Actualmente compatible con los decoders de AV1.
‘enhancements’
Exporta metadatos de mejora de imagen mediante side data de fotograma, por ejemplo LCEVC (véase AV_FRAME_DATA_LCEVC).
threads integer (decoding/encoding,video)
Establece el número de hilos (threads) que se van a usar, en caso de que la implementación del codec seleccionado admita multihilo.
Valores posibles:
‘auto, 0’
selecciona automáticamente el número de hilos que se debe establecer
El valor predeterminado es ‘auto’.
dc integer (encoding,video)
Establece intra_dc_precision.
nssew integer (encoding,video)
Establece el peso de nsse.
skip_top integer (decoding,video)
Establece el número de filas de macrobloques que se omiten en la parte superior.
skip_bottom integer (decoding,video)
Establece el número de filas de macrobloques que se omiten en la parte inferior.
profile integer (encoding,audio,video)
Establece el perfil de codec del encoder. El valor predeterminado es ‘unknown’. Los perfiles específicos de cada encoder se documentan en la página de ese encoder.
level integer (encoding,audio,video)
Establece el nivel del encoder. Este nivel depende del codec concreto y puede corresponder al nivel del perfil. Su valor predeterminado es ‘unknown’.
Valores posibles:
‘unknown’ lowres integer (decoding,audio,video)
Decodifica a resoluciones de 1 = 1/2, 2 = 1/4, 3 = 1/8.
mblmin integer (encoding,video)
Establece el factor lagrangiano mínimo de macrobloque (VBR).
mblmax integer (encoding,video)
Establece el factor lagrangiano máximo de macrobloque (VBR).
skip_loop_filter integer (decoding,video) skip_idct integer (decoding,video) skip_frame integer (decoding,video)
Hace que el decoder descarte el procesamiento en función del tipo de fotograma seleccionado por el valor de la opción.
skip_loop_filter omite el filtrado de bucle del fotograma, skip_idct omite la IDCT/descuantización del fotograma y skip_frame omite la decodificación.
Valores posibles:
‘none’
No descarta ningún fotograma.
‘default’
Descarta fotogramas inútiles, como los de tamaño 0.
‘noref’
Descarta todos los fotogramas que no son de referencia.
‘bidir’
Descarta todos los fotogramas bidireccionales.
‘nokey’
Descarta todos los fotogramas excepto los keyframes.
‘nointra’
Descarta todos los fotogramas excepto los fotogramas I.
‘all’
Descarta todos los fotogramas.
El valor predeterminado es ‘default’.
bidir_refine integer (encoding,video)
Refina los dos vectores de movimiento usados en los macrobloques bidireccionales.
keyint_min integer (encoding,video)
Establece el intervalo mínimo entre fotogramas IDR.
refs integer (encoding,video)
Establece los fotogramas de referencia que se deben tener en cuenta para la compensación de movimiento.
trellis integer (encoding,audio,video)
Establece la cuantización óptima de tasa-distorsión (rate-distortion).
mv0_threshold integer (encoding,video) compression_level integer (encoding,audio,video) bits_per_raw_sample integer channel_layout integer (decoding/encoding,audio)
Consulte (ffmpeg-utils)the Channel Layout section in the ffmpeg-utils(1) manual para conocer la sintaxis requerida.
rc_max_vbv_use float (encoding,video) rc_min_vbv_use float (encoding,video) color_primaries integer (decoding/encoding,video)
Valores posibles:
‘bt709’
BT.709
‘bt470m’
BT.470 M
‘bt470bg’
BT.470 BG
‘smpte170m’
SMPTE 170 M
‘smpte240m’
SMPTE 240 M
‘film’
Film
‘bt2020’
BT.2020
‘smpte428’ ‘smpte428_1’
SMPTE ST 428-1
‘smpte431’
SMPTE 431-2
‘smpte432’
SMPTE 432-1
‘jedec-p22’
JEDEC P22
color_trc integer (decoding/encoding,video)
Valores posibles:
‘bt709’
BT.709
‘gamma22’
BT.470 M
‘gamma28’
BT.470 BG
‘smpte170m’
SMPTE 170 M
‘smpte240m’
SMPTE 240 M
‘linear’
Linear
‘log’ ‘log100’
Log
‘log_sqrt’ ‘log316’
Log square root
‘iec61966_2_4’ ‘iec61966-2-4’
IEC 61966-2-4
‘bt1361’ ‘bt1361e’
BT.1361
‘iec61966_2_1’ ‘iec61966-2-1’
IEC 61966-2-1
‘bt2020_10’ ‘bt2020_10bit’
BT.2020 - 10 bit
‘bt2020_12’ ‘bt2020_12bit’
BT.2020 - 12 bit
‘smpte2084’
SMPTE ST 2084
‘smpte428’ ‘smpte428_1’
SMPTE ST 428-1
‘arib-std-b67’
ARIB STD-B67
colorspace integer (decoding/encoding,video)
Valores posibles:
‘rgb’
RGB
‘bt709’
BT.709
‘fcc’
FCC
‘bt470bg’
BT.470 BG
‘smpte170m’
SMPTE 170 M
‘smpte240m’
SMPTE 240 M
‘ycocg’
YCOCG
‘bt2020nc’ ‘bt2020_ncl’
BT.2020 NCL
‘bt2020c’ ‘bt2020_cl’
BT.2020 CL
‘smpte2085’
SMPTE 2085
‘chroma-derived-nc’
Chroma-derived NCL
‘chroma-derived-c’
Chroma-derived CL
‘ictcp’
ICtCp
color_range integer (decoding/encoding,video)
Si se usa como parámetro de entrada, sirve como indicación al decoder de qué color_range tiene la entrada. Valores posibles:
‘tv’ ‘mpeg’ ‘limited’
MPEG (219*2^(n-8))
‘pc’ ‘jpeg’ ‘full’
JPEG (2^n-1)
chroma_sample_location integer (decoding/encoding,video)
Valores posibles:
‘left’ ‘center’ ‘topleft’ ‘top’ ‘bottomleft’ ‘bottom’ alpha_mode integer (decoding/encoding,video)
Valores posibles:
‘premultiplied’ ‘straight’ log_level_offset integer
Establece el desplazamiento (offset) del nivel de log.
slices integer (encoding,video)
Número de slices, usado en la codificación paralelizada.
thread_type flags (decoding/encoding,video)
Selecciona qué métodos de multihilo se van a usar.
El uso de ‘frame’ aumenta el retardo de decodificación en un fotograma por hilo, por lo que los clientes que no puedan proporcionar fotogramas futuros no deberían usarlo.
Valores posibles:
‘slice’
Decodifica más de una parte de un mismo fotograma a la vez.
El multihilo mediante slices solo funciona cuando el vídeo se codificó con slices.
‘frame’
Decodifica más de un fotograma a la vez.
El valor predeterminado es ‘slice+frame’.
audio_service_type integer (encoding,audio)
Establece el tipo de servicio de audio.
Valores posibles:
‘ma’
Main Audio Service
‘ef’
Effects
‘vi’
Visually Impaired
‘hi’
Hearing Impaired
‘di’
Dialogue
‘co’
Commentary
‘em’
Emergency
‘vo’
Voice Over
‘ka’
Karaoke
request_sample_fmt sample_fmt (decoding,audio)
Establece el sample format que deberían preferir los decoders de audio. El valor predeterminado es none.
pkt_timebase rational number sub_charenc encoding (decoding,subtitles)
Establece la codificación de caracteres de los subtítulos de entrada.
field_order field_order (video)
Establece o sobrescribe el orden de campos del vídeo. Valores posibles:
‘progressive’
Vídeo progresivo
‘tt’
Vídeo entrelazado; el campo superior se codifica y se muestra primero
‘bb’
Vídeo entrelazado; el campo inferior se codifica y se muestra primero
‘tb’
Vídeo entrelazado; el campo superior se codifica primero, el inferior se muestra primero
‘bt’
Vídeo entrelazado; el campo inferior se codifica primero, el superior se muestra primero
skip_alpha bool (decoding,video)
Establézcalo en 1 para desactivar el procesamiento del alfa (transparencia). Esto funciona igual que el flag ‘gray’ de la opción flags, que omite la información de croma en lugar de la de alfa. El valor predeterminado es 0.
codec_whitelist list (input)
Lista de decoders permitidos separados por ",". De forma predeterminada se permiten todos.
dump_separator string (input)
Separador usado para delimitar los campos que se muestran en la línea de comandos sobre los parámetros de flujo. Por ejemplo, para separar los campos con saltos de línea y sangría:
ffprobe -dump_separator "
" -i ~/videos/matrixbench_mpeg2.mpg
max_pixels integer (decoding/encoding,video)
Número máximo de píxeles por imagen. Este valor puede usarse para evitar fallos por falta de memoria debidos a imágenes grandes.
apply_cropping bool (decoding,video)
Habilita el recorte (cropping) si los parámetros de recorte son múltiplos de la alineación requerida para los parámetros left y top. Si no se cumple la alineación, el recorte se aplicará solo parcialmente para mantenerla. El valor predeterminado es 1 (habilitado). Nota: la alineación requerida depende de si AV_CODEC_FLAG_UNALIGNED está definida y de la CPU. AV_CODEC_FLAG_UNALIGNED no se puede cambiar desde la línea de comandos. Además, los decoders por hardware no aplicarán el recorte left/top.
3 Decoders
Los decoders son elementos configurables de FFmpeg que permiten la decodificación de flujos multimedia.
Al configurar la compilación de FFmpeg, todos los decoders nativos admitidos se habilitan de forma predeterminada. Los decoders que requieren una biblioteca externa deben habilitarse manualmente mediante la opción --enable-lib correspondiente. Puede listar todos los decoders disponibles con la opción de configure --list-decoders.
Puede deshabilitar todos los decoders con la opción de configure --disable-decoders, y habilitar/deshabilitar decoders individuales de forma selectiva con las opciones --enable-decoder=DECODER / --disable-decoder=DECODER.
La opción -decoders de las herramientas ff* mostrará la lista de decoders habilitados.
4 Video Decoders
A continuación se describen algunos de los decoders de vídeo actualmente disponibles.
4.1 av1
Decoder de AOMedia Video 1 (AV1).
4.1.1 Opciones
operating_point
Selecciona un operating point de un bitstream de AV1 escalable (0 - 31). El valor predeterminado es 0.
4.2 hevc
Decoder de HEVC (también conocido como ITU-T H.265 o ISO/IEC 23008-2).
El decoder admite flujos multivista MV-HEVC con un máximo de dos vistas. Las vistas que se van a emitir se seleccionan proporcionando al decoder una lista de IDs de vista (la opción view_ids). Esta opción puede establecerse de forma estática antes de inicializar el decoder, o bien desde el callback get_format(), lo cual resulta útil cuando el número de vistas o los IDs cambian dinámicamente durante la decodificación.
De forma predeterminada solo se decodifica la capa base.
Tenga en cuenta que, si usa la herramienta CLI ffmpeg, debería utilizar los especificadores de vista documentados en su manual, en lugar de las opciones descritas aquí.
4.2.1 Opciones
view_ids (MV-HEVC)
Especifica una lista de IDs de vista que deben emitirse. Esta opción también puede establecerse a un único ’-1’, lo que hará que se decodifiquen y emitan todas las vistas definidas en el VPS.
view_ids_available (MV-HEVC)
El llamador puede leer esta opción para obtener un array con los IDs de vista disponibles en el VPS activo. El array está vacío para vídeo de una sola capa.
Se garantiza que el valor de esta opción es correcto cuando se lee desde el callback get_format(). También puede establecerse en otros momentos (por ejemplo, tras abrir el decoder), pero en ese caso el valor es solo informativo y puede ser incorrecto (por ejemplo, cuando el flujo contiene varios NALU de VPS distintos).
view_pos_available (MV-HEVC)
El llamador puede leer esta opción para obtener un array con las posiciones de vista (izquierda, derecha o no especificada) disponibles en el VPS activo, como valores AVStereo3DView. Cuando el array está disponible, sus elementos se corresponden con los elementos de view_ids_available; es decir, view_pos_available[i] contiene la posición de la vista con ID view_ids_available[i].
A esta opción se le aplican las mismas restricciones de validez que a view_ids_available.
4.3 rawvideo
Decoder de vídeo sin comprimir.
Este decoder decodifica flujos rawvideo.
4.3.1 Opciones
top top_field_first
Especifica el tipo de campo que se asume para el vídeo de entrada.
-1
se asume que el vídeo es progresivo (valor predeterminado)
0
se asume bottom-field-first
1
se asume top-field-first
4.4 libdav1d
Decoder dav1d para AV1.
libdav1d permite que libavcodec decodifique el codec AOMedia Video 1 (AV1). Requiere que las cabeceras y la biblioteca de libdav1d estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libdav1d.
4.4.1 Opciones
El wrapper de libdav1d admite las siguientes opciones.
max_frame_delay
Establece la cantidad máxima de fotogramas que el decoder puede almacenar internamente en búfer. El valor predeterminado es 0 (autodetección).
filmgrain
Aplica grano de película al vídeo decodificado si está presente en el bitstream. El valor predeterminado es el valor interno predeterminado de la biblioteca. Esta opción está obsoleta y se eliminará en el futuro. Consulte la opción global export_side_data para exportar los parámetros de grano de película en lugar de aplicarlo.
oppoint
Selecciona un operating point de un bitstream de AV1 escalable (0 - 31). El valor predeterminado es el valor interno predeterminado de la biblioteca.
alllayers
Emite todas las capas espaciales de un bitstream de AV1 escalable. El valor predeterminado es false.
4.5 libdavs2
Wrapper de decoder de vídeo AVS2-P2/IEEE1857.4.
Este decoder permite que libavcodec decodifique flujos AVS2 con la biblioteca davs2.
4.6 libuavs3d
Decoder de vídeo AVS3-P2/IEEE1857.10.
libuavs3d permite que libavcodec decodifique flujos AVS3. Requiere que las cabeceras y la biblioteca de libuavs3d estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libuavs3d.
4.6.1 Opciones
El wrapper de libuavs3d admite la siguiente opción.
frame_threads
Establece la cantidad de hilos de fotograma que se usarán durante la decodificación. El valor predeterminado es 0 (autodetección).
4.7 libxevd
Wrapper de decoder para MPEG-5 EVC mediante eXtra-fast Essential Video Decoder (XEVD).
Este decoder requiere que las cabeceras y la biblioteca de libxevd estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libxevd.
El sitio web del proyecto xevd es https://github.com/mpeg5/xevd.
4.7.1 Opciones
El wrapper de libxevd admite las siguientes opciones. Las opciones o valores equivalentes de xevd se indican entre paréntesis para facilitar la migración.
Para obtener documentación más precisa y extensa de las opciones de libxevd, ejecute el comando xevd_app --help o consulte la documentación de libxevd.
threads (threads)
Fuerza el uso de un número específico de hilos
4.8 QSV Decoders
La familia de decoders de Intel QuickSync Video (VC1, MPEG-2, H.264, HEVC, JPEG/MJPEG, VP8, VP9, AV1, VVC).
4.8.1 Opciones comunes
Todos los decoders qsv admiten las siguientes opciones.
async_depth
Profundidad de paralelización interna; cuanto mayor sea el valor, mayor será la latencia.
gpu_copy
Una copia acelerada por GPU entre la memoria de vídeo y la memoria del sistema
‘default’ ‘on’ ‘off’
4.8.2 Opciones de HEVC
Opciones adicionales para hevc_qsv.
load_plugin
Un plugin de usuario que se debe cargar en una sesión interna
‘none’ ‘hevc_sw’ ‘hevc_hw’ load_plugins
Una lista de UID de plugin en hexadecimal, separados por ":", que se deben cargar en una sesión interna
4.9 v210
Decoder de 4:2:2 sin comprimir a 10 bits.
4.9.1 Opciones
custom_stride
Establece el tamaño de línea de los datos v210 en bytes. El valor predeterminado es 0 (autodetección). Puede usar el valor especial -1 para un v210 sin stride, como el que se ve en los archivos BOXX.
5 Audio Decoders
A continuación se describen algunos de los decoders de audio actualmente disponibles.
5.1 ac3
Decoder de audio AC-3.
Este decoder implementa parte de ATSC A/52:2010 y ETSI TS 102 366, así como el formato no documentado RealAudio 3 (también conocido como dnet).
5.1.1 Opciones del decoder AC-3
-drc_scale value
Factor de escala de rango dinámico (Dynamic Range Scale Factor). El factor que se aplica a los valores de rango dinámico del flujo AC-3. Este factor se aplica de forma exponencial. El valor predeterminado es 1. Existen 3 rangos de factor de escala destacables:
drc_scale == 0
DRC deshabilitado. Produce audio de rango completo.
0 < drc_scale <= 1
DRC habilitado. Aplica una fracción del valor de DRC del flujo. La reproducción de audio queda entre el rango completo y la compresión total.
drc_scale > 1
DRC habilitado. Aplica drc_scale de forma asimétrica. Los sonidos fuertes se comprimen totalmente. Los sonidos suaves se realzan.
5.2 flac
Decoder de audio FLAC.
Este decoder pretende implementar la especificación completa de FLAC de Xiph.
5.2.1 FLAC Decoder options
-use_buggy_lpc
El encoder FLAC de lavc solía producir flujos defectuosos con valores altos de lpc (como el valor predeterminado). Esta opción permite decodificar correctamente tales flujos empleando la antigua lógica de lpc defectuosa de lavc para la decodificación.
5.3 ffwavesynth
Sintetizador de ondas interno.
Este decoder genera patrones de onda según secuencias predefinidas. Su uso es puramente interno y el formato de los datos que acepta no está documentado públicamente.
5.4 libgsm
Wrapper de decoder de libgsm.
libgsm permite que libavcodec decodifique el codec de audio GSM full rate. Requiere que las cabeceras y la biblioteca de libgsm estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libgsm.
Este decoder admite tanto el GSM normal como la variante de Microsoft.
5.5 libilbc
Wrapper de decoder de libilbc.
libilbc permite que libavcodec decodifique el codec de audio Internet Low Bitrate Codec (iLBC). Requiere que las cabeceras y la biblioteca de libilbc estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libilbc.
5.5.1 Opciones
El wrapper de libilbc admite la siguiente opción.
enhance
Habilita la mejora del audio decodificado cuando se establece en 1. El valor predeterminado es 0 (deshabilitado).
5.6 libmpeghdec
Wrapper de decoder de libmpeghdec.
libmpeghdec permite que libmpeghdec decodifique el codec de audio MPEG-H 3D. Requiere que las cabeceras y la biblioteca de libmpeghdec estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libmpeghdec --enable-nonfree.
5.7 libopencore-amrnb
Wrapper de decoder de libopencore-amrnb.
libopencore-amrnb permite que libavcodec decodifique el codec de audio Adaptive Multi-Rate Narrowband. Para usarlo se requiere que las cabeceras y la biblioteca de libopencore-amrnb estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libopencore-amrnb.
Existe un decoder nativo de FFmpeg para AMR-NB, por lo que los usuarios pueden decodificar AMR-NB sin esta biblioteca.
5.8 libopencore-amrwb
Wrapper de decoder de libopencore-amrwb.
libopencore-amrwb permite que libavcodec decodifique el codec de audio Adaptive Multi-Rate Wideband. Para usarlo se requiere que las cabeceras y la biblioteca de libopencore-amrwb estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libopencore-amrwb.
Existe un decoder nativo de FFmpeg para AMR-WB, por lo que los usuarios pueden decodificar AMR-WB sin esta biblioteca.
5.9 libopus
Wrapper de decoder de libopus.
libopus permite que libavcodec decodifique el Opus Interactive Audio Codec. Requiere que las cabeceras y la biblioteca de libopus estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libopus.
Existe un decoder nativo de FFmpeg para Opus, por lo que los usuarios pueden decodificar Opus sin esta biblioteca.
6 Subtitles Decoders
6.1 libaribb24
Decoder de subtítulos ARIB STD-B24.
Implementa los perfiles A y C del estándar ARIB STD-B24.
6.1.1 Opciones del decoder libaribb24
-aribb24-base-path path
Establece la ruta base de la biblioteca libaribb24. Se utiliza para leer archivos de configuración (para conversiones Unicode personalizadas) y para volcar los símbolos que no son texto como imágenes en esa ubicación.
Sin definir de forma predeterminada.
-aribb24-skip-ruby-text boolean
Indica al wrapper del decoder que omita los bloques de texto que contienen texto ruby de media altura.
Habilitado de forma predeterminada.
6.2 libaribcaption
Otro decoder más de subtítulos ARIB STD-B24, que usa la biblioteca externa libaribcaption.
Implementa los perfiles A y C del estándar japonés ARIB STD-B24, el ABNT NBR 15606-1 brasileño y la versión filipina de ISDB-T.
Requiere que las cabeceras y la biblioteca de libaribcaption (https://github.com/xqq/libaribcaption) estén presentes durante la configuración. Debe configurar explícitamente la compilación con --enable-libaribcaption. Si se habilitan tanto libaribb24 como libaribcaption, tiene prioridad el decoder libaribcaption.
6.2.1 Opciones del decoder libaribcaption
-sub_type subtitle_type
Especifica el formato de los subtítulos decodificados.
‘bitmap’
Imagen gráfica.
‘ass’
Texto con formato ASS.
‘text’
Salida de texto simple sin formato.
El valor predeterminado es ass, igual que en el decoder libaribb24. Algunos reproductores actuales (p. ej., mpv) esperan formato ASS para los subtítulos ARIB.
-caption_encoding encoding_scheme
Especifica el esquema de codificación del texto de subtítulos de entrada.
‘auto’
Detecta automáticamente la codificación de texto (valor predeterminado).
‘jis’
Codificación JIS de 8 bits por carácter definida en ARIB STD B24. Esta codificación se usa en Japón para los subtítulos ISDB.
‘utf8’
Codificación UTF-8 definida en ARIB STD B24. Esta codificación se usa en Filipinas para los subtítulos ISDB-T.
‘latin’
Codificación de caracteres latinos definida en ABNT NBR 15606-1. Esta codificación se usa en Sudamérica para los subtítulos SBTVD / ISDB-Tb.
-font font_name[,font_name2,...]
Especifica una lista de nombres de familias tipográficas separados por comas para el renderizado de subtítulos de tipo bitmap o ass. Para los subtítulos de tipo ass solo se usa el primer nombre de fuente.
Si no se especifica, se usa la familia tipográfica predeterminada definida internamente.
-ass_single_rect boolean
ARIB STD-B24 especifica que algunos subtítulos pueden mostrarse en distintas posiciones a la vez (subtítulo multirrectángulo). Dado que algunos reproductores (p. ej., versiones antiguas de mpv) no pueden manejar varios rectángulos ASS en un único AVSubtitle, ni varios rectángulos ASS de duración indeterminada con la misma marca de tiempo de inicio, esta opción puede cambiar el comportamiento para que todo el texto se muestre en un único rectángulo ASS.
El valor predeterminado es false.
Si su reproductor no puede manejar correctamente los AVSubtitles con varios rectángulos ASS, establezca esta opción en true o defina ASS_SINGLE_RECT=1 para cambiar el comportamiento predeterminado en tiempo de compilación.
-force_outline_text boolean
Especifica si se debe renderizar siempre el contorno del texto para todos los caracteres, independientemente de lo indicado por el estilo de carácter.
El valor predeterminado es false.
-outline_width number (0.0 - 3.0)
Especifica el ancho del contorno del texto, en puntos (relativo).
El valor predeterminado es 1.5.
-ignore_background boolean
Especifica si se debe ignorar el renderizado del color de fondo.
El valor predeterminado es false.
-ignore_ruby boolean
Especifica si se debe ignorar el renderizado de caracteres tipo ruby (furigana).
El valor predeterminado es false.
-replace_drcs boolean
Especifica si los caracteres DRCS sustituidos se deben renderizar como caracteres Unicode.
El valor predeterminado es true.
-replace_msz_ascii boolean
Especifica si se deben reemplazar los caracteres alfanuméricos de ancho completo MSZ (Middle Size; medio ancho) por caracteres alfanuméricos de medio ancho.
El valor predeterminado es true.
-replace_msz_japanese boolean
Especifica si se deben reemplazar algunos caracteres especiales japoneses de ancho completo MSZ (Middle Size; medio ancho) por sus equivalentes de medio ancho.
El valor predeterminado es true.
-replace_msz_glyph boolean
Especifica si se deben reemplazar los caracteres MSZ (Middle Size; medio ancho) por glifos de medio ancho si la fuente lo admite. Esta opción funciona con el renderizador FreeType o DirectWrite con fuentes compatibles con Adobe-Japan1, p. ej., IBM Plex Sans JP, Morisawa BIZ UDGothic, Morisawa BIZ UDMincho, Yu Gothic, Yu Mincho y Meiryo.
El valor predeterminado es true.
-canvas_size image_size
Especifica la resolución del lienzo sobre el que se renderizan los subtítulos; normalmente debería ser el tamaño de fotograma del vídeo de entrada. Esto solo se aplica cuando -subtitle_type está establecido en bitmap.
El decoder libaribcaption asume el siguiente tamaño de fotograma de entrada para el renderizado en bitmap:
- PROFILE_A : 1440 x 1080 con SAR (PAR) 4:3
- PROFILE_C : 320 x 180 con SAR (PAR) 1:1
Si el tamaño de fotograma real del vídeo de entrada no coincide con la suposición anterior, los subtítulos renderizados pueden distorsionarse. Para evitar que los subtítulos se distorsionen, añada la opción -canvas_size para especificar el tamaño real del vídeo de entrada.
Tenga en cuenta que la opción -canvas_size no es necesaria para un vídeo con distinto tamaño pero la misma relación de aspecto. En esos casos, si no se especifica la opción -canvas_size, el subtítulo se estirará o encogerá hasta el tamaño real del vídeo. Si se especifica la opción -canvas_size con un tamaño distinto, el subtítulo se estirará o encogerá al tamaño especificado con el SAR calculado.
6.2.2 Ejemplos de uso del decoder libaribcaption
Mostrar un archivo MPEG-TS con subtítulos ARIB mediante la herramienta ffplay:
ffplay -sub_type bitmap MPEG.TS
Mostrar un archivo MPEG-TS con tamaño de fotograma de entrada 1920x1080 mediante la herramienta ffplay:
ffplay -sub_type bitmap -canvas_size 1920x1080 MPEG.TS
Incrustar subtítulos ARIB en un vídeo transcodificado:
ffmpeg -sub_type bitmap -i src.m2t -filter_complex "[0:v][0:s]overlay" -vcodec h264 dest.mp4
6.3 dvbsub
6.3.1 Opciones
compute_clut
-2
Calcula el clut una vez si no hay ningún CLUT coincidente en el flujo.
-1
Calcula el clut si no hay ningún CLUT coincidente en el flujo.
0
Nunca calcula el CLUT
1
Siempre calcula el CLUT y anula el proporcionado en el flujo.
dvb_substream
Selecciona el subflujo dvb, o todos los subflujos si es -1, que es el valor predeterminado.
6.4 dvdsub
Este codec decodifica los subtítulos en bitmap usados en los DVD; los mismos subtítulos también se pueden encontrar en pares de archivos VobSub y en algunos archivos Matroska.
6.4.1 Opciones
palette
Especifica la paleta global usada por los bitmaps. Cuando se almacena en VobSub, la paleta normalmente se especifica en el archivo de índice; en Matroska, la paleta se almacena en los datos adicionales del codec con el mismo formato que en VobSub. En los DVD, la paleta se almacena en el archivo IFO y, por lo tanto, no está disponible al leer desde archivos VOB volcados.
El formato de esta opción es una cadena que contiene 16 números hexadecimales de 24 bits (sin el prefijo 0x) separados por comas, por ejemplo 0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b.
ifo_palette
Especifica el archivo IFO del que se obtiene la paleta global. (experimental)
forced_subs_only
Solo decodifica las entradas de subtítulos marcadas como forzadas. Algunos títulos tienen subtítulos forzados y no forzados en la misma pista. Establecer este flag en 1 conservará únicamente los subtítulos forzados. El valor predeterminado es 0.
6.5 libzvbi-teletext
Libzvbi permite a libavcodec decodificar páginas de teletexto DVB y subtítulos de teletexto DVB. Requiere la presencia de las cabeceras y la biblioteca de libzvbi durante la configuración. Debe configurar explícitamente la compilación con --enable-libzvbi.
6.5.1 Opciones
txt_page
Lista de números de página de teletexto a decodificar. Las páginas que no coinciden con la lista especificada se descartan. Puede usar la cadena especial * para que coincida con todas las páginas, o subtitle para que coincida con todas las páginas de subtítulos. El valor predeterminado es *.
txt_default_region
Establece el conjunto de caracteres predeterminado usado para la decodificación, un valor entre 0 y 87 (ver ETS 300 706, sección 15, tabla 32). El valor predeterminado es -1, que no anula el valor predeterminado de libzvbi. Esta opción es necesaria para algunas transmisiones heredadas de nivel 1.0 que no pueden señalar el conjunto de caracteres adecuado.
txt_chop_top
Descarta la línea superior del teletexto. El valor predeterminado es 1.
txt_format
Especifica el formato de los subtítulos decodificados.
bitmap
El formato predeterminado; debería usarlo para las páginas de teletexto, porque ciertos gráficos y colores no se pueden expresar en texto simple ni siquiera en ASS.
text
Salida de texto simple sin formato.
ass
Salida con formato ASS; las páginas de subtítulos y las páginas de teletexto se devuelven con estilos distintos, las páginas de subtítulos se reducen a texto, pero se procura conservar la alineación y el formato del texto.
txt_left
Desplazamiento X de los bitmaps generados; el valor predeterminado es 0.
txt_top
Desplazamiento Y de los bitmaps generados; el valor predeterminado es 0.
txt_chop_spaces
Recorta los espacios iniciales y finales, y elimina las líneas vacías del texto generado. Esta opción es útil para los subtítulos basados en teletexto, donde puede haber espacios vacíos al principio o al final de las líneas, o líneas vacías entre las líneas de subtítulos debido a los caracteres de teletexto de tamaño doble. El valor predeterminado es 1.
txt_duration
Establece la duración de visualización de las páginas de teletexto o subtítulos decodificados, en milisegundos. El valor predeterminado es -1, que significa infinito o hasta que llegue el siguiente evento de subtítulo.
txt_transparent
Fuerza un fondo transparente para los bitmaps de teletexto generados. El valor predeterminado es 0, que significa un fondo opaco.
txt_opacity
Establece la opacidad (0-255) del fondo del teletexto. Si txt_transparent no está activado, solo afecta a los caracteres entre un cuadro de inicio y un cuadro de fin, normalmente subtítulos. El valor predeterminado es 0 si txt_transparent está activado, y 255 en caso contrario.
7 Encoders
Los encoders son elementos configurados en FFmpeg que permiten la codificación de flujos multimedia.
Al configurar su compilación de FFmpeg, todos los encoders nativos compatibles se habilitan de forma predeterminada. Los encoders que requieren una biblioteca externa deben habilitarse manualmente mediante la opción --enable-lib correspondiente. Puede listar todos los encoders disponibles con la opción de configuración --list-encoders.
Puede deshabilitar todos los encoders con la opción de configuración --disable-encoders, y habilitar/deshabilitar encoders individuales de forma selectiva con las opciones --enable-encoder=ENCODER / --disable-encoder=ENCODER.
La opción -encoders de las herramientas ff* mostrará la lista de encoders habilitados.
8 Encoders de audio
A continuación se describe una selección de los encoders de audio actualmente disponibles.
8.1 aac
Encoder Advanced Audio Coding (AAC).
Este encoder es el encoder AAC predeterminado, implementado de forma nativa en FFmpeg.
8.1.1 Opciones
b
Establece la tasa de bits en bits/s. Al establecer este valor se activa automáticamente el modo de tasa de bits constante (CBR). Si no se especifica esta opción, se fija en 128 kbps.
q
Establece la calidad para el modo de tasa de bits variable (VBR). Esta opción solo es válida usando la herramienta de línea de comandos ffmpeg. Para quienes usan la interfaz de biblioteca, use global_quality.
cutoff
Establece la frecuencia de corte. Si no se especifica, se permite que el encoder ajuste dinámicamente el corte para mejorar la claridad con tasas de bits bajas.
aac_coder
Establece el método de codificación del encoder AAC. Valores posibles:
‘twoloop’
Método de búsqueda de doble bucle (TLS). Este es el método predeterminado.
Este método primero establece los cuantizadores en función de los umbrales de banda y luego intenta encontrar una combinación óptima sumando o restando un valor específico a todos los cuantizadores y ajustando ligeramente algún cuantizador individual. Se autoajusta en función de si aac_is, aac_ms y aac_pns están habilitados.
‘anmr’
Solución basada en trellis de relación media ruido-máscara (ANMR).
Se trata de un encoder experimental que actualmente produce una calidad inferior, es más inestable y más lento que el encoder twoloop predeterminado, pero tiene potencial. Actualmente no admite las opciones aac_is ni aac_pns. No se recomienda por el momento.
‘fast’
Método de cuantizador constante.
Usa una versión más económica del algoritmo twoloop que no intenta hacer tantos ajustes inteligentes. Peor con tasas de bits bajas (menos de 64 kbps), pero mejor y mucho más rápido con tasas de bits más altas.
aac_ms
Establece el modo de codificación mid/side. El valor predeterminado "auto" usará automáticamente M/S con las bandas que se beneficien de dicha codificación. Se puede forzar para todas las bandas con el valor "enable", útil sobre todo para depuración, o deshabilitar con "disable".
aac_is
Establece el uso de la herramienta de codificación estéreo de intensidad. Está habilitada de forma predeterminada y activará automáticamente IS para pares similares de bandas estéreo si resulta beneficioso. Se puede deshabilitar para depuración estableciendo el valor en "disable".
aac_pns
Usa sustitución de ruido perceptual para reemplazar las bandas de alta frecuencia con baja entropía por ruido blanco imperceptible durante el proceso de decodificación. Está habilitada de forma predeterminada, pero se puede deshabilitar con fines de depuración usando "disable".
aac_tns
Habilita el uso de un filtro FIR multitap que abarca las bandas de alta frecuencia para ocultar el ruido de cuantización durante el proceso de codificación, y que el decoder revierte. Además de reducir los artefactos desagradables en el rango alto, esto también reduce la entropía en las bandas altas y permite usar más bits en las bandas medias-bajas. Está habilitado de forma predeterminada, pero se puede deshabilitar para depuración estableciendo la opción en "disable".
aac_ltp
Habilita el uso de la extensión de predicción a largo plazo, que aumenta la eficiencia de codificación en situaciones de ancho de banda muy bajo, como la codificación de voz o piano solo, al extender los picos armónicos constantes en bandas a lo largo de los fotogramas. Esta opción está implícita en profile:a aac_low. Úsela junto con -ar para reducir la frecuencia de muestreo.
profile
Establece el perfil de codificación; valores posibles:
‘aac_low’
El predeterminado, perfil AAC "Low-complexity". Es el más compatible y produce una calidad decente.
‘mpeg2_aac_low’
Equivalente a -profile:a aac_low -aac_pns 0. PNS se introdujo con las especificaciones MPEG4.
‘aac_ltp’
Perfil de predicción a largo plazo; se habilita mediante la opción aac_ltp y a su vez la habilita. Introducido en MPEG4.
Si no se especifica esta opción, se establece en ‘aac_low’.
8.2 ac3 y ac3_fixed
Encoders de audio AC-3.
Estos encoders implementan parte de ATSC A/52:2010 y ETSI TS 102 366.
El encoder ac3 usa aritmética de coma flotante, mientras que el encoder ac3_fixed solo usa aritmética entera de coma fija. Esto no significa que uno sea siempre más rápido, sino que uno u otro puede ser más adecuado para un sistema en particular. El encoder ac3_fixed no es el codec predeterminado para ninguno de los formatos de salida, por lo que debe especificarse explícitamente con la opción -acodec ac3_fixed para poder usarlo.
8.2.1 Metadatos AC-3
Las opciones de metadatos AC-3 se usan para establecer parámetros que describen el audio, pero en la mayoría de los casos no afectan a la codificación de audio en sí. Algunas de las opciones sí afectan o influyen directamente en la decodificación y reproducción del bitstream resultante, mientras que otras son solo con fines informativos. Unas pocas opciones añadirán bits al flujo de salida que de otro modo podrían usarse para datos de audio, y por tanto afectarán a la calidad de la salida. Estas se indicarán en consecuencia con una nota en la lista de opciones a continuación.
Estos parámetros se describen en detalle en varios documentos disponibles públicamente.
- A/52:2010 - Digital Audio Compression (AC-3) (E-AC-3) Standard
- A/54 - Guide to the Use of the ATSC Digital Television Standard
- Dolby Metadata Guide
- Dolby Digital Professional Encoding Guidelines
8.2.1.1 Opciones de control de metadatos
-per_frame_metadata boolean
Permitir metadatos por fotograma. Especifica si el encoder debe comprobar los cambios de metadatos en cada fotograma.
0
Los valores de metadatos establecidos en la inicialización se usarán para todos los fotogramas del flujo. (predeterminado)
1
Los valores de metadatos se pueden cambiar antes de codificar cada fotograma.
8.2.1.2 Niveles de downmix
-center_mixlev level
Nivel de mezcla central. La cantidad de ganancia que el decoder debe aplicar al canal central al hacer downmix a estéreo. Este campo solo se escribirá en el bitstream si hay un canal central presente. El valor se especifica como un factor de escala. Hay 3 valores válidos:
0.707
Aplica una ganancia de -3dB
0.595
Aplica una ganancia de -4.5dB (predeterminado)
0.500
Aplica una ganancia de -6dB
-surround_mixlev level
Nivel de mezcla envolvente. La cantidad de ganancia que el decoder debe aplicar al canal o canales envolventes al hacer downmix a estéreo. Este campo solo se escribirá en el bitstream si hay uno o más canales envolventes presentes. El valor se especifica como un factor de escala. Hay 3 valores válidos:
0.707
Aplica una ganancia de -3dB
0.500
Aplica una ganancia de -6dB (predeterminado)
0.000
Silencia el canal o canales envolventes
8.2.1.3 Información de producción de audio
La información de producción de audio es información opcional que describe el entorno de mezcla. Se escriben en el bitstream ambos campos o ninguno.
-mixing_level number
Nivel de mezcla. Especifica el nivel de presión sonora (SPL) máximo en el entorno de producción durante la masterización de la mezcla. Los valores válidos van de 80 a 111, o -1 para desconocido o no indicado. El valor predeterminado es -1, pero ese valor no se puede usar si la información de producción de audio se escribe en el bitstream. Por lo tanto, si la opción room_type no tiene el valor predeterminado, la opción mixing_level no debe ser -1.
-room_type type
Tipo de sala. Describe la ecualización usada durante la sesión de mezcla final en el estudio o en el escenario de doblaje. Una sala grande es un escenario de doblaje con la ecualización de curva X estándar de la industria; una sala pequeña tiene ecualización plana. Este campo no se escribirá en el bitstream si tanto la opción mixing_level como la opción room_type tienen sus valores predeterminados.
0 notindicated
No indicado (predeterminado)
1 large
Sala grande
2 small
Sala pequeña
8.2.1.4 Otras opciones de metadatos
-copyright boolean
Indicador de copyright. Especifica si existe un copyright para este audio.
0 off
No existe copyright (predeterminado)
1 on
Existe copyright
-dialnorm value
Normalización de diálogo. Indica cuánto está el nivel medio de diálogo del programa por debajo del 100% de escala completa digital (0 dBFS). Este parámetro determina un desplazamiento de nivel durante la reproducción de audio que fija el volumen medio del diálogo en un nivel preestablecido. El objetivo es igualar el nivel de volumen entre las distintas fuentes de programa. Un valor de -31dB no producirá ningún cambio de nivel de volumen, respecto al volumen de origen, durante la reproducción de audio. Los valores válidos son números enteros en el rango de -31 a -1, siendo -31 el valor predeterminado.
-dsur_mode mode
Modo Dolby Surround. Especifica si la señal estéreo usa Dolby Surround (Pro Logic). Este campo solo se escribirá en el bitstream si el flujo de audio es estéreo. Usar esta opción NO significa que el encoder vaya a aplicar realmente el procesamiento Dolby Surround.
0 notindicated
No indicado (predeterminado)
1 off
No codificado con Dolby Surround
2 on
Codificado con Dolby Surround
-original boolean
Indicador de bitstream original. Especifica si este audio proviene de la fuente original y no es una copia.
0 off
No es la fuente original
1 on
Fuente original (predeterminado)
8.2.2 Información extendida del bitstream
Las opciones de bitstream extendido forman parte de la sintaxis de bitstream alternativa (Alternate Bit Stream Syntax) especificada en el anexo D del estándar A/52:2010. Se agrupan en 2 partes. Si se especifica cualquier parámetro de un grupo, se escribirán en el bitstream todos los valores de ese grupo. Para los que se escriben pero no se han especificado se usan los valores predeterminados. Si se escriben los niveles de mezcla, el decoder usará estos valores en lugar de los especificados en las opciones center_mixlev y surround_mixlev, siempre que admita la sintaxis de bitstream alternativa.
8.2.2.1 Información extendida del bitstream - Parte 1
-dmix_mode mode
Modo de downmix estéreo preferido. Permite seleccionar Lt/Rt (Dolby Surround) o Lo/Ro (estéreo normal) como modo de downmix estéreo preferido.
0 notindicated
No indicado (predeterminado)
1 ltrt
Downmix Lt/Rt preferido
2 loro
Downmix Lo/Ro preferido
-ltrt_cmixlev level
Nivel de mezcla central Lt/Rt. La cantidad de ganancia que el decoder debe aplicar al canal central al hacer downmix a estéreo en modo Lt/Rt.
1.414
Aplica una ganancia de +3dB
1.189
Aplica una ganancia de +1.5dB
1.000
Aplica una ganancia de 0dB
0.841
Aplica una ganancia de -1.5dB
0.707
Aplica una ganancia de -3.0dB
0.595
Aplica una ganancia de -4.5dB (predeterminado)
0.500
Aplica una ganancia de -6.0dB
0.000
Silencia el canal central
-ltrt_surmixlev level
Nivel de mezcla envolvente Lt/Rt. La cantidad de ganancia que el decoder debe aplicar al canal o canales envolventes al hacer downmix a estéreo en modo Lt/Rt.
0.841
Aplica una ganancia de -1.5dB
0.707
Aplica una ganancia de -3.0dB
0.595
Aplica una ganancia de -4.5dB
0.500
Aplica una ganancia de -6.0dB (predeterminado)
0.000
Silencia el canal o canales envolventes
-loro_cmixlev level
Nivel de mezcla central Lo/Ro. La cantidad de ganancia que el decoder debe aplicar al canal central al hacer downmix a estéreo en modo Lo/Ro.
1.414
Aplica una ganancia de +3dB
1.189
Aplica una ganancia de +1.5dB
1.000
Aplica una ganancia de 0dB
0.841
Aplica una ganancia de -1.5dB
0.707
Aplica una ganancia de -3.0dB
0.595
Aplica una ganancia de -4.5dB (predeterminado)
0.500
Aplica una ganancia de -6.0dB
0.000
Silencia el canal central
-loro_surmixlev level
Nivel de mezcla envolvente Lo/Ro. La cantidad de ganancia que el decoder debe aplicar al canal o canales envolventes al hacer downmix a estéreo en modo Lo/Ro.
0.841
Aplica una ganancia de -1.5dB
0.707
Aplica una ganancia de -3.0dB
0.595
Aplica una ganancia de -4.5dB
0.500
Aplica una ganancia de -6.0dB (predeterminado)
0.000
Silencia el canal o canales envolventes
8.2.2.2 Información extendida del bitstream - Parte 2
-dsurex_mode mode
Modo Dolby Surround EX. Indica si el flujo usa Dolby Surround EX (7.1 matrizado a 5.1). Usar esta opción NO significa que el encoder vaya a aplicar realmente el procesamiento Dolby Surround EX.
0 notindicated
No indicado (predeterminado)
1 on
Dolby Surround EX desactivado
2 off
Dolby Surround EX activado
-dheadphone_mode mode
Modo Dolby Headphone. Indica si el flujo usa codificación Dolby Headphone (multicanal matrizado a 2.0 para usar con auriculares). Usar esta opción NO significa que el encoder vaya a aplicar realmente el procesamiento Dolby Headphone.
0 notindicated
No indicado (predeterminado)
1 on
Dolby Headphone desactivado
2 off
Dolby Headphone activado
-ad_conv_type type
Tipo de convertidor A/D. Indica si el audio ha pasado por una conversión A/D HDCD.
0 standard
Convertidor A/D estándar (predeterminado)
1 hdcd
Convertidor A/D HDCD
8.2.3 Otras opciones de codificación AC-3
-stereo_rematrixing boolean
Rematrizado estéreo. Habilita/deshabilita el uso de rematrizado para la entrada estéreo. Esta es una característica opcional de AC-3 que aumenta la calidad codificando selectivamente los canales izquierdo/derecho como mid/side. Esta opción está habilitada de forma predeterminada, y se recomienda encarecidamente dejarla habilitada salvo con fines de prueba.
cutoff frequency
Establece la frecuencia de corte de paso bajo. Si no se especifica, el encoder selecciona un valor predeterminado determinado por otros parámetros de codificación.
8.2.4 Opciones de codificación AC-3 exclusivas de coma flotante
Estas opciones solo son válidas para el encoder de coma flotante y no existen para el encoder de coma fija, ya que las características correspondientes no están implementadas en coma fija.
-channel_coupling boolean
Habilita/deshabilita el uso del acoplamiento de canales, una característica opcional de AC-3 que aumenta la calidad combinando la información de alta frecuencia de varios canales en un único canal. La información de alta frecuencia por canal se envía con menor precisión, tanto en el dominio de la frecuencia como en el del tiempo. Esto permite usar más bits para las frecuencias bajas, conservando suficiente información para reconstruir las frecuencias altas. Esta opción está habilitada de forma predeterminada para el encoder de coma flotante y, en general, debería dejarse habilitada salvo con fines de prueba o para aumentar la velocidad de codificación.
-1 auto
Seleccionado por el encoder (predeterminado)
0 off
Deshabilita el acoplamiento de canales
1 on
Habilita el acoplamiento de canales
-cpl_start_band number
Banda de inicio de acoplamiento. Establece la banda de inicio del acoplamiento de canales, de 1 a 15. Si se usa un valor superior al ancho de banda, se reducirá a 1 menos que la banda de fin de acoplamiento. Si se usa auto, la banda de inicio la determinará el encoder en función de la tasa de bits, la frecuencia de muestreo y la disposición de canales. Esta opción no tiene efecto si el acoplamiento de canales está deshabilitado.
-1 auto
Seleccionado por el encoder (predeterminado)
8.3 flac
Encoder FLAC (Free Lossless Audio Codec)
8.3.1 Opciones
El encoder flac de FFmpeg admite las siguientes opciones.
compression_level
Establece el nivel de compresión, que elige los valores predeterminados de muchas otras opciones si no se establecen explícitamente. Los valores válidos van de 0 a 12; 5 es el predeterminado.
frame_size
Establece el tamaño de los fotogramas en muestras por canal.
lpc_coeff_precision
Establece la precisión del coeficiente LPC; los valores válidos van de 1 a 15, 15 es el predeterminado.
lpc_type
Establece el algoritmo LPC de primera etapa
‘none’
No se usa LPC
‘fixed’
coeficientes LPC fijos
‘levinson’ ‘cholesky’ lpc_passes
Número de pasadas a usar para la factorización de Cholesky durante el análisis LPC
min_partition_order
El orden mínimo de partición
max_partition_order
El orden máximo de partición
prediction_order_method
‘estimation’ ‘2level’ ‘4level’ ‘8level’ ‘search’
Búsqueda por fuerza bruta
‘log’ ch_mode
Modo de canal
‘auto’
El modo se elige automáticamente para cada fotograma
‘indep’
Los canales se codifican de forma independiente
‘left_side’ ‘right_side’ ‘mid_side’ exact_rice_parameters
Elige si los parámetros rice se calculan de forma exacta o aproximada. Si se establece en 1, se eligen de forma exacta, lo que ralentiza ligeramente el código y mejora ligeramente la compresión.
multi_dim_quant
Cuantización multidimensional. Si se establece en 1, se aplica un algoritmo LPC de segunda etapa después de la primera etapa para ajustar los coeficientes. Esto es bastante lento y mejora ligeramente la compresión.
8.4 opus
Encoder de Opus.
Este es un encoder nativo de FFmpeg para el formato Opus. Actualmente está en desarrollo y solo implementa la parte CELT del codec. Su calidad suele ser peor y, en el mejor de los casos, igual a la del encoder libopus.
8.4.1 Opciones
b
Establece la tasa de bits en bits/s. Si no se especifica, se usa el número de canales y la disposición de estos para hacer una estimación razonable.
opus_delay
Establece el retardo máximo en milisegundos. Retardos menores de 20ms reducirán la calidad muy rápidamente.
8.5 libfdk_aac
Wrapper del encoder libfdk-aac para AAC (Advanced Audio Coding).
La biblioteca libfdk-aac está basada en el código Fraunhofer FDK AAC del proyecto Android.
Requiere la presencia de las cabeceras y la biblioteca de libfdk-aac durante la configuración. Debe configurar explícitamente la compilación con --enable-libfdk-aac. Esta biblioteca también es incompatible con la GPL, así que si permite el uso de GPL, debe configurar con --enable-gpl --enable-nonfree --enable-libfdk-aac.
Este encoder admite los perfiles AAC-HE.
La codificación VBR, habilitada mediante las opciones vbr o flags +qscale, es experimental y solo funciona con algunas combinaciones de parámetros.
La codificación de audio 7.1 solo está disponible con libfdk-aac 0.1.3 o superior.
Para más información, consulte el proyecto fdk-aac en http://sourceforge.net/p/opencore-amr/fdk-aac/.
8.5.1 Opciones
Las siguientes opciones están mapeadas a las opciones de codec compartidas de FFmpeg.
b
Establece la tasa de bits en bits/s. Si la tasa de bits no se especifica explícitamente, se ajusta automáticamente a un valor adecuado según el perfil seleccionado.
Si el modo VBR está habilitado, esta opción se ignora.
ar
Establece la frecuencia de muestreo de audio (en Hz).
channels
Establece el número de canales de audio.
flags +qscale
Habilita la calidad fija, modo VBR (Variable Bit Rate). Tenga en cuenta que el VBR se habilita implícitamente cuando el valor de vbr es positivo.
cutoff
Establece la frecuencia de corte. Si no se especifica (o se fija explícitamente a 0), se usará un valor calculado automáticamente por la biblioteca. El valor predeterminado es 0.
profile
Establece el perfil de audio.
Se reconocen los siguientes perfiles:
‘aac_low’
AAC de baja complejidad (LC)
‘aac_he’
AAC de alta eficiencia (HE-AAC)
‘aac_he_v2’
AAC de alta eficiencia versión 2 (HE-AACv2)
‘aac_ld’
AAC de baja latencia (LD)
‘aac_eld’
AAC de baja latencia mejorado (ELD)
Si no se especifica, se fija en ‘aac_low’.
Las siguientes son opciones privadas del encoder libfdk_aac.
afterburner
Habilita la función afterburner si se fija en 1; deshabilitada si se fija en 0. Esto mejora la calidad, pero también aumenta la potencia de procesamiento necesaria.
El valor predeterminado es 1.
eld_sbr
Habilita SBR (Spectral Band Replication) para ELD si se fija en 1; deshabilitado si se fija en 0.
El valor predeterminado es 0.
eld_v2
Habilita ELDv2 (extensión LD-MPS para señales estéreo ELD) para ELDv2 si se fija en 1; deshabilitado si se fija en 0.
Tenga en cuenta que esta opción está disponible cuando la versión de fdk-aac (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) > (4.0.0).
El valor predeterminado es 0.
signaling
Establece el estilo de señalización SBR/PS.
Puede tomar uno de los siguientes valores:
‘default’
elige la señalización de forma implícita (jerárquica explícita de forma predeterminada, implícita si la cabecera global está deshabilitada)
‘implicit’
señalización implícita compatible con versiones anteriores
‘explicit_sbr’
señalización SBR explícita, señalización PS implícita
‘explicit_hierarchical’
señalización jerárquica explícita
El valor predeterminado es ‘default’.
latm
Genera datos encapsulados en LATM/LOAS si se fija en 1; deshabilitado si se fija en 0.
El valor predeterminado es 0.
header_period
Establece el periodo de repetición de StreamMuxConfig y PCE (en fotogramas) para enviar búferes de configuración en banda dentro de la capa de transporte LATM/LOAS.
Debe ser un entero no negativo de 16 bits.
El valor predeterminado es 0.
vbr
Establece el modo VBR, de 1 a 5. 1 es la calidad más baja (aunque sigue siendo bastante buena) y 5 es la calidad más alta. Un valor de 0 deshabilita el VBR y habilita el CBR (Constant Bit Rate).
Actualmente, solo el perfil ‘aac_low’ admite la codificación VBR.
Los modos VBR 1-5 corresponden aproximadamente a las siguientes tasas de bits promedio:
‘1’
32 kbps/canal
‘2’
40 kbps/canal
‘3’
48-56 kbps/canal
‘4’
64 kbps/canal
‘5’
unos 80-96 kbps/canal
El valor predeterminado es 0.
frame_length
Establece la duración del fotograma de audio en muestras. El valor predeterminado es el valor interno predeterminado de la biblioteca. Consulte la documentación de la biblioteca para más información sobre los valores admitidos.
8.5.2 Ejemplos
-
Use
ffmpegpara convertir un archivo de audio a AAC VBR en un container M4A (MP4):ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a -
Use
ffmpegpara convertir un archivo de audio a AAC CBR de 64k kbps, usando el perfil High-Efficiency AAC:ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
8.6 liblc3
Wrapper del encoder liblc3 para LC3 (Low Complexity Communication Codec).
Requiere la presencia de las cabeceras y la biblioteca de liblc3 durante la configuración. Debe configurar explícitamente la compilación con --enable-liblc3.
Este encoder admite el codec LC3 del Bluetooth SIG para el protocolo LE Audio, además de las siguientes características de LC3plus:
- Duración de fotograma de 2.5 y 5ms.
- Modo de alta resolución, frecuencias de muestreo de 48 KHz y 96 kHz.
Para más información, consulte el proyecto liblc3 en https://github.com/google/liblc3.
8.6.1 Opciones
Las siguientes opciones están mapeadas a las opciones de codec compartidas de FFmpeg.
b bitrate
Establece la tasa de bits en bits/s. Esto determinará el tamaño fijo de los fotogramas codificados para una duración de fotograma dada.
ar frequency
Establece la frecuencia de muestreo de audio (en Hz).
channels
Establece el número de canales de audio.
frame_duration
Establece la duración del fotograma de audio en milisegundos. El valor predeterminado es 10ms. Las duraciones de fotograma permitidas son 2.5ms, 5ms, 7.5ms y 10ms. LC3 (Bluetooth LE Audio) permite 7.5ms y 10ms; y LC3plus, 2.5ms, 5ms y 10ms.
La duración de fotograma de 10ms está disponible tanto en el estándar LC3 como en LC3plus. En este modo, el bitstream producido puede identificarse como LC3 o como LC3plus.
high_resolution boolean
Habilita el modo de alta resolución si se fija en 1. El modo de alta resolución está disponible con todas las duraciones de fotograma de LC3plus y para una frecuencia de muestreo de 48 KHz y 96 KHz.
El encoder desactiva automáticamente este modo a frecuencias de muestreo más bajas y lo activa a 96 KHz.
Este modo debería preferirse con tasas de bits altas. En este modo, el ancho de banda de audio llega siempre hasta la frecuencia de Nyquist, en comparación con LC3 a 48 KHz, que limita el ancho de banda a 20 KHz.
8.7 libmp3lame
Wrapper del encoder MP3 LAME (Lame Ain’t an MP3 Encoder).
Requiere la presencia de las cabeceras y la biblioteca de libmp3lame durante la configuración. Debe configurar explícitamente la compilación con --enable-libmp3lame.
Véase libshine para un encoder MP3 de punto fijo, aunque con menor calidad.
8.7.1 Opciones
El wrapper de libmp3lame admite las siguientes opciones. El equivalente en lame de cada opción se indica entre paréntesis.
b (-b)
Establece la tasa de bits expresada en bits/s para CBR o ABR. En LAME, bitrate se expresa en kilobits/s.
q (-V)
Establece el ajuste de calidad constante para VBR. Esta opción solo es válida usando la herramienta de línea de comandos ffmpeg. Para usuarios de la interfaz de biblioteca, use global_quality.
compression_level (-q)
Establece la calidad del algoritmo. Los valores válidos son enteros en el rango 0-9, donde 0 significa la máxima calidad pero la más lenta, y 9 significa la más rápida a costa de la peor calidad.
cutoff (--lowpass)
Establece la frecuencia de corte de paso bajo. Si no se especifica, el encoder ajusta dinámicamente el corte.
reservoir
Habilita el uso del depósito de bits (bit reservoir) si se fija en 1. El valor predeterminado es 1. LAME lo tiene habilitado de forma predeterminada, pero puede anularse con la opción --nores.
joint_stereo (-m j)
Permite al encoder usar (fotograma a fotograma) estéreo L/R o estéreo mid/side. El valor predeterminado es 1.
abr (--abr)
Permite al encoder usar ABR si se fija en 1. La opción --abr de lame fija la tasa de bits objetivo, mientras que esta opción solo indica a FFmpeg que use ABR; sigue dependiendo de b para fijar la tasa de bits.
copyright (-c)
Fija el flag de copyright de audio MPEG si se establece en 1. El valor predeterminado es 0 (deshabilitado).
original (-o)
Fija el flag de original de audio MPEG si se establece en 1. El valor predeterminado es 1 (habilitado).
8.8 libopencore-amrnb
Encoder OpenCORE Adaptive Multi-Rate Narrowband.
Requiere la presencia de las cabeceras y la biblioteca de libopencore-amrnb durante la configuración. Debe configurar explícitamente la compilación con --enable-libopencore-amrnb --enable-version3.
Este es un encoder solo mono. Oficialmente solo admite una frecuencia de muestreo de 8000Hz, pero puede anularse fijando strict en ‘unofficial’ o un valor inferior.
8.8.1 Opciones
b
Establece la tasa de bits en bits por segundo. Solo se admiten las siguientes tasas de bits; en caso contrario, libavcodec redondeará a la tasa de bits válida más cercana.
4750 5150 5900 6700 7400 7950 10200 12200 dtx
Permite la transmisión discontinua (genera ruido de confort) si se fija en 1. El valor predeterminado es 0 (deshabilitado).
8.9 libopus
Wrapper del encoder libopus, el codec de audio interactivo Opus (Opus Interactive Audio Codec).
Requiere la presencia de las cabeceras y la biblioteca de libopus durante la configuración. Debe configurar explícitamente la compilación con --enable-libopus.
8.9.1 Mapeo de opciones
La mayoría de las opciones de libopus están modeladas a partir de la utilidad opusenc de opus-tools. A continuación se muestra una tabla de correspondencia que describe las opciones admitidas por el wrapper de libopus y su equivalente en opusenc, entre paréntesis.
b (bitrate)
Establece la tasa de bits en bits/s. La opción b de FFmpeg se expresa en bits/s, mientras que bitrate de opusenc se expresa en kilobits/s.
vbr (vbr , hard-cbr , and cvbr)
Establece el modo VBR. La opción vbr de FFmpeg admite los siguientes argumentos válidos, con el equivalente en opusenc entre paréntesis:
‘off (hard-cbr)’
Usa codificación de tasa de bits constante.
‘on (vbr)’
Usa codificación de tasa de bits variable (el valor predeterminado).
‘constrained (cvbr)’
Usa codificación de tasa de bits variable restringida.
compression_level (comp)
Establece la complejidad del algoritmo de codificación. Los valores válidos son enteros en el rango 0-10. 0 ofrece la codificación más rápida pero de menor calidad, mientras que 10 ofrece la máxima calidad pero la codificación más lenta. El valor predeterminado es 10.
frame_duration (framesize)
Establece el tamaño máximo de fotograma, o duración de un fotograma, en milisegundos. El argumento debe ser exactamente uno de los siguientes: 2.5, 5, 10, 20, 40, 60. Los tamaños de fotograma más pequeños logran menor latencia pero menos calidad para una tasa de bits dada. Los tamaños superiores a 20ms solo resultan interesantes con tasas de bits bastante bajas. El valor predeterminado es 20ms.
packet_loss (expect-loss)
Establece el porcentaje esperado de pérdida de paquetes. El valor predeterminado es 0.
fec (n/a)
Habilita la corrección de errores hacia adelante en banda. packet_loss debe ser distinto de cero para que tenga efecto: la frecuencia del ’side-data’ de FEC es proporcional a la pérdida de paquetes esperada. Está deshabilitado de forma predeterminada.
application (N.A.)
Establece el tipo de aplicación previsto. Los valores válidos se listan a continuación:
‘voip’
Favorece una mayor inteligibilidad del habla.
‘audio’
Favorece la fidelidad a la entrada (el valor predeterminado).
‘lowdelay’
Restringe a solo los modos de menor retardo, deshabilitando los modos optimizados para voz.
cutoff (N.A.)
Establece el ancho de banda de corte en Hz. El argumento debe ser exactamente uno de los siguientes: 4000, 6000, 8000, 12000 o 20000, que corresponden respectivamente a narrowband, mediumband, wideband, super wideband y fullband. El valor predeterminado es 0 (corte deshabilitado). Tenga en cuenta que libopus fuerza un corte wideband para tasas de bits < 15 kbps, a menos que se use el modo solo CELT (application fijado en ‘lowdelay’).
mapping_family (mapping_family)
Establece la familia de mapeo de canales que usará el encoder. El valor predeterminado de -1 usa la familia de mapeo 0 para entradas mono y estéreo, y la familia de mapeo 1 en los demás casos. El valor predeterminado también deshabilita el enmascaramiento de sonido envolvente y las optimizaciones de ancho de banda LFE en libopus, y exige que la entrada contenga 8 canales o menos.
Otros valores incluyen 0 para mono y estéreo, 1 para sonido envolvente con enmascaramiento y optimizaciones de ancho de banda LFE, y 255 para flujos independientes con una disposición de canales sin especificar.
dtx (N.A.)
Permite la transmisión discontinua si se fija en 1. El valor predeterminado es 0 (deshabilitado).
apply_phase_inv (N.A.) (requires libopus >= 1.2)
Si se fija en 0, deshabilita el uso de la inversión de fase para el estéreo de intensidad, mejorando la calidad de las mezclas descendentes a mono, pero reduciendo ligeramente la calidad estéreo normal. El valor predeterminado es 1 (inversión de fase habilitada).
8.10 libshine
Wrapper del encoder Shine de punto fijo para MP3.
Shine es un encoder de MP3 de punto fijo. Su rendimiento es mucho mejor en plataformas sin FPU, por ejemplo CPUs armel, y en algunos teléfonos y tablets. Sin embargo, como está más orientado al rendimiento que a la calidad, no está a la altura de LAME y otros encoders de calidad de nivel de producción. Además, según la página del proyecto, este encoder podría no estar libre de errores, ya que el código se escribió hace mucho tiempo y el proyecto estuvo inactivo durante al menos 5 años.
Este encoder solo admite entrada estéreo y mono. También es exclusivamente CBR.
El proyecto original (actualizado por última vez a principios de 2007) está en http://sourceforge.net/projects/libshine-fxp/. Solo se admite el fork actualizado del proyecto Savonet/Liquidsoap en https://github.com/savonet/shine.
Requiere la presencia de las cabeceras y la biblioteca de libshine durante la configuración. Debe configurar explícitamente la compilación con --enable-libshine.
Véase también libmp3lame.
8.10.1 Opciones
El wrapper de libshine admite las siguientes opciones. El equivalente en shineenc de cada opción se indica entre paréntesis.
b (-b)
Establece la tasa de bits expresada en bits/s para CBR. La opción -b de shineenc se expresa en kilobits/s.
8.11 libtwolame
Wrapper del encoder TwoLAME para MP2.
Requiere la presencia de las cabeceras y la biblioteca de libtwolame durante la configuración. Debe configurar explícitamente la compilación con --enable-libtwolame.
8.11.1 Opciones
El wrapper de libtwolame admite las siguientes opciones. Los equivalentes en twolame van después de cada opción de FFmpeg y se indican entre paréntesis.
b (-b)
Establece la tasa de bits expresada en bits/s para CBR. La opción b de twolame se expresa en kilobits/s. El valor predeterminado es 128k.
q (-V)
Establece la calidad para la compatibilidad experimental con VBR. El rango máximo de valores va de -50 a 50; el rango útil va de -10 a 10. Cuanto más alto el valor, mejor la calidad. Esta opción solo es válida usando la herramienta de línea de comandos ffmpeg. Para usuarios de la interfaz de biblioteca, use global_quality.
mode (--mode)
Establece el modo del audio resultante. Valores posibles:
‘auto’
Elige el modo automáticamente según la entrada. Es el valor predeterminado.
‘stereo’
Estéreo
‘joint_stereo’
Estéreo conjunto
‘dual_channel’
Canal dual
‘mono’
Mono
psymodel (--psyc-mode)
Establece el modelo psicoacústico que se usará en la codificación. El argumento debe ser un entero entre -1 y 4, ambos inclusive. Cuanto más alto el valor, mejor la calidad. El valor predeterminado es 3.
energy_levels (--energy)
Habilita las extensiones de niveles de energía si se fija en 1. El valor predeterminado es 0 (deshabilitado).
error_protection (--protect)
Habilita la protección de errores CRC si se fija en 1. El valor predeterminado es 0 (deshabilitado).
copyright (--copyright)
Fija el flag de copyright de audio MPEG si se establece en 1. El valor predeterminado es 0 (deshabilitado).
original (--original)
Fija el flag de original de audio MPEG si se establece en 1. El valor predeterminado es 0 (deshabilitado).
8.12 libvo-amrwbenc
Encoder VisualOn Adaptive Multi-Rate Wideband.
Requiere la presencia de las cabeceras y la biblioteca de libvo-amrwbenc durante la configuración. Debe configurar explícitamente la compilación con --enable-libvo-amrwbenc --enable-version3.
Este es un encoder solo mono. Oficialmente solo admite una frecuencia de muestreo de 16000Hz, pero puede anularse fijando strict en ‘unofficial’ o un valor inferior.
8.12.1 Opciones
b
Establece la tasa de bits en bits/s. Solo se admiten las siguientes tasas de bits; en caso contrario, libavcodec redondeará a la tasa de bits válida más cercana.
‘6600’ ‘8850’ ‘12650’ ‘14250’ ‘15850’ ‘18250’ ‘19850’ ‘23050’ ‘23850’ dtx
Permite la transmisión discontinua (genera ruido de confort) si se fija en 1. El valor predeterminado es 0 (deshabilitado).
8.13 libvorbis
Wrapper del encoder libvorbis.
Requiere la presencia de las cabeceras y la biblioteca de libvorbisenc durante la configuración. Debe configurar explícitamente la compilación con --enable-libvorbis.
8.13.1 Opciones
El wrapper de libvorbis admite las siguientes opciones. El equivalente en oggenc de cada opción se indica entre paréntesis.
Para obtener documentación más precisa y extensa sobre las opciones de libvorbis, consulte la documentación de libvorbisenc y de oggenc. Véase http://xiph.org/vorbis/, http://wiki.xiph.org/Vorbis-tools y oggenc(1).
b (-b)
Establece la tasa de bits expresada en bits/s para ABR. La opción -b de oggenc se expresa en kilobits/s.
q (-q)
Establece el ajuste de calidad constante para VBR. El valor debe ser un número decimal en el rango de -1.0 a 10.0. Cuanto más alto el valor, mejor la calidad. El valor predeterminado es ‘3.0’.
Esta opción solo es válida usando la herramienta de línea de comandos ffmpeg. Para usuarios de la interfaz de biblioteca, use global_quality.
cutoff (--advanced-encode-option lowpass_frequency=N)
Establece el ancho de banda de corte en Hz; un valor de 0 deshabilita el corte. La opción correspondiente de oggenc se expresa en kHz. El valor predeterminado es ‘0’ (corte deshabilitado).
minrate (-m)
Establece la tasa de bits mínima expresada en bits/s. La opción -m de oggenc se expresa en kilobits/s.
maxrate (-M)
Establece la tasa de bits máxima expresada en bits/s. La opción -M de oggenc se expresa en kilobits/s. Esto solo tiene efecto en modo ABR.
iblock (--advanced-encode-option impulse_noisetune=N)
Establece el sesgo del suelo de ruido para los bloques de impulso. El valor es un número decimal de -15.0 a 0.0. Un sesgo negativo indica al encoder que preste especial atención a la nitidez de las transiciones en el audio codificado. La contrapartida de una mejor respuesta transitoria es una tasa de bits más alta.
8.14 mjpeg
Encoder Motion JPEG.
8.14.1 Opciones
huffman
Establece la estrategia de codificación huffman. Valores posibles:
‘default’
Usa las tablas huffman predeterminadas. Esta es la estrategia predeterminada.
‘optimal’
Calcula y usa tablas huffman óptimas.
8.15 wavpack
Encoder de audio sin pérdida WavPack.
8.15.1 Opciones
Los equivalentes en la utilidad de línea de comandos wavpack se indican entre paréntesis.
8.15.1.1 Opciones compartidas
Las siguientes opciones compartidas son válidas para este encoder. Aquí solo se documentan las notas especiales de este encoder en particular. Para el significado general de las opciones, véase el capítulo Codec Options.
frame_size (--blocksize)
Para este encoder, el rango de esta opción va de 128 a 131072. El valor predeterminado se decide automáticamente según la frecuencia de muestreo y el número de canales.
Para la fórmula completa de cálculo del valor predeterminado, véase libavcodec/wavpackenc.c.
compression_level (-f , -h , -hh , and -x)
8.15.1.2 Opciones privadas
joint_stereo (-j)
Establece si se habilita el estéreo conjunto. Los valores válidos son:
‘on (1)’
Fuerza la codificación de audio mid/side.
‘off (0)’
Fuerza la codificación de audio left/right.
‘auto’
Deja que el encoder decida automáticamente.
optimize_mono
Establece si se habilita la optimización para mono. Esta opción solo tiene efecto en flujos que no son mono. Valores disponibles:
‘on’
habilitado
‘off’
deshabilitado
9 Encoders de vídeo
A continuación se describen algunos de los encoders de vídeo disponibles actualmente.
9.1 a64_multi, a64_multi5
Encoder de charset multicolor A64 / Commodore 64. a64_multi5 está extendido con un 5.º color (colram).
9.2 Cinepak
Encoder Cinepak, también conocido como CVID. Compatible con Windows 3.1 y MacOS clásico.
9.2.1 Opciones
g integer
Intervalo de keyframes. Se inserta un keyframe al menos cada -g fotogramas, a veces antes.
q:v integer
Factor de calidad. Cuanto más bajo, mejor. Cuanto más alto, menor tasa de bits. La siguiente tabla lista las tasas de bits al codificar akiyo_cif.y4m para distintos valores de -q:v con -g 100:
-q:v 1 1918 kb/s
-q:v 2 1735 kb/s
-q:v 4 1500 kb/s
-q:v 10 1041 kb/s
-q:v 20 826 kb/s
-q:v 40 553 kb/s
-q:v 100 394 kb/s
-q:v 200 312 kb/s
-q:v 400 266 kb/s
-q:v 1000 237 kb/s
max_extra_cb_iterations integer
Máximo de pasadas adicionales de recálculo del codebook; más es mejor pero más lento.
skip_empty_cb boolean
Evita desperdiciar bytes; ignora el decoder de MacOS clásico.
max_strips integer min_strips integer
El número mínimo y máximo de franjas (strips) a usar. Un rango más amplio a veces mejora la calidad. Más franjas suele dar mejor calidad, pero cuesta más bits. Menos franjas tienden a producir más keyframes. El rango compatible con el modo clásico es 1..3.
strip_number_adaptivity integer
Cuánto puede cambiar el número de franjas entre fotogramas. Cuanto más alto, mejor, pero más lento.
9.3 ffv1
Encoder FFv1
9.3.1 Opciones
El encoder FFv1 de FFmpeg admite las siguientes opciones.
context
Establece el tamaño de contexto: 0 (predeterminado) es pequeño, 1 es grande.
coder
Establece el coder:
‘rice’
Coder Golomb-Rice
‘range_def’
Coder de rango con tabla predeterminada
‘range_tab’
Coder de rango con tabla personalizada
slicecrc
-1 (predeterminado, automático), 1 usa CRC con estado inicial y final en cero, 2 usa CRC con estado inicial y final distinto de cero
qtable
‘default’
predeterminado, automático
‘8bit’
usa el predeterminado de 8 bits
‘greater8bit’
usa el predeterminado de >8 bits
remap_optimizer
0 - 5, predeterminado 3, cuánto esfuerzo dedica el encoder a optimizar la tabla de remapeo.
9.4 GIF
Encoder de imágenes/animaciones GIF.
9.4.1 Opciones
gifflags integer
Establece los flags usados para la codificación GIF.
offsetting
Habilita el desplazamiento de la imagen.
Habilitado de forma predeterminada.
transdiff
Habilita la detección de transparencia entre fotogramas.
Habilitado de forma predeterminada.
gifimage integer
Habilita la codificación de una imagen GIF completa por fotograma, en lugar de un GIF animado.
El valor predeterminado es 0.
global_palette integer
Escribe una paleta en la cabecera GIF global cuando es posible.
Si está deshabilitado, cada fotograma tendrá siempre una paleta escrita, incluso si se ha suministrado una paleta global.
El valor predeterminado es 1.
9.5 Hap
Encoder de vídeo Vidvox Hap.
9.5.1 Opciones
format integer
Especifica el formato Hap con el que codificar.
hap hap_alpha hap_q
El valor predeterminado es hap.
chunks integer
Especifica el número de fragmentos (chunks) en los que dividir los fotogramas, entre 1 y 64. Esto permite la decodificación multihilo de fotogramas grandes, potencialmente a costa de la tasa de datos. El encoder puede modificar este valor para dividir los fotogramas de forma equitativa.
El valor predeterminado es 1.
compressor integer
Especifica el compresor de segunda etapa que se usará. Si se fija en none, los chunks se limitarán a 1, ya que los fotogramas sin comprimir divididos en chunks no ofrecen ninguna ventaja.
none snappy
El valor predeterminado es snappy.
9.6 jpeg2000
El encoder nativo de jpeg 2000 es con pérdida de forma predeterminada; la opción -q:v puede usarse para fijar la calidad de codificación. La codificación sin pérdida puede seleccionarse con -pred 1.
9.6.1 Opciones
format integer
Se puede establecer en j2k o jp2 (el valor predeterminado), lo que permite almacenar pix_fmts que no sean rgb.
tile_width integer
Establece el ancho de mosaico (tile). El rango es de 1 a 1073741824. El valor predeterminado es 256.
tile_height integer
Establece la altura de mosaico (tile). El rango es de 1 a 1073741824. El valor predeterminado es 256.
pred integer
Permite establecer el tipo de transformada wavelet discreta (DWT)
dwt97int (con pérdida) dwt53 (sin pérdida)
El valor predeterminado es dwt97int
sop boolean
Habilite esta opción para añadir un marcador SOP al inicio de cada paquete. Deshabilitado de forma predeterminada.
eph boolean
Habilite esta opción para añadir un marcador EPH al final de cada cabecera de paquete. Deshabilitado de forma predeterminada.
prog integer
Establece el orden de progresión que utilizará el encoder. Los valores posibles son:
lrcp rlcp rpcl pcrl cprl
De forma predeterminada se establece en lrcp.
layer_rates string
De forma predeterminada, cuando no se utiliza esta opción, la compresión se realiza según la métrica de calidad. Esta opción permite comprimir según la relación de compresión. Se puede especificar la relación de compresión para cada nivel. La relación de compresión de una capa l especifica qué proporción del tamaño total del archivo está contenida en las primeras l capas.
Ejemplo de uso:
ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k
Esto comprimiría la imagen para que contenga 3 capas, donde los datos de la primera capa se comprimirían 1000 veces, los de las dos primeras capas se comprimirían 100 veces, y con las 3 capas se obtendrían todos los datos.
9.7 librav1e
Wrapper del encoder AV1 rav1e.
Requiere la presencia de las cabeceras y la biblioteca de rav1e durante la configuración. Debe configurar la compilación explícitamente con --enable-librav1e.
9.7.1 Opciones
qmax
Establece el cuantizador máximo a usar en el modo de tasa de bits.
qmin
Establece el cuantizador mínimo a usar en el modo de tasa de bits.
qp
Usa el modo de cuantizador para codificar con el cuantizador indicado (0-255).
speed
Selecciona el preajuste de velocidad (0-10) con el que codificar.
tiles
Selecciona con cuántos mosaicos (tiles) codificar.
tile-rows
Selecciona con cuántas filas de mosaicos codificar.
tile-columns
Selecciona con cuántas columnas de mosaicos codificar.
rav1e-params
Establece las opciones de rav1e mediante una lista de pares clave=valor separados por ":". Consulte rav1e --help para ver la lista de opciones.
Por ejemplo, para especificar opciones de codificación de librav1e con -rav1e-params:
ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4
9.8 libaom-av1
Wrapper del encoder AV1 de libaom.
Requiere la presencia de las cabeceras y la biblioteca de libaom durante la configuración. Debe configurar la compilación explícitamente con --enable-libaom.
9.8.1 Opciones
El wrapper admite las siguientes opciones estándar de libavcodec:
b
Establece la tasa de bits objetivo en bits/segundo. De forma predeterminada se usará el modo de tasa de bits variable. Si maxrate y minrate también se establecen con el mismo valor, se usará el modo de tasa de bits constante; en caso contrario, si además se establece crf, se usará el modo de calidad restringida.
g keyint_min
Establece la ubicación de los keyframes. El tamaño de GOP fija la distancia máxima entre keyframes; si es cero, el flujo de salida será solo intra. La distancia mínima se ignora salvo que coincida con el tamaño de GOP, en cuyo caso los keyframes siempre aparecerán a un intervalo fijo. No se establece de forma predeterminada, de modo que sin esta opción la biblioteca tiene total libertad para decidir dónde colocar los keyframes.
qmin qmax
Establece los valores mínimo/máximo de cuantización. El rango válido va de 0 a 63 (advertencia: no coincide con los valores de cuantizador realmente usados por AV1; divida entre cuatro para asignar los valores de cuantizador reales a este rango). De forma predeterminada usa min/max (sin restricción).
minrate maxrate bufsize rc_init_occupancy
Establece los parámetros de almacenamiento intermedio (buffering) del control de tasa. No se usa si no se establece; de forma predeterminada es tasa de bits variable sin restricciones.
threads
Establece el número de hilos a usar durante la codificación. Puede requerir que también se establezcan las opciones tiles o row-mt para aprovechar plenamente el número de hilos especificado. De forma predeterminada usa el número de hilos de hardware que admite la máquina anfitriona.
profile
Establece el perfil de codificación. De forma predeterminada usa el perfil que coincide con la profundidad de bits y el submuestreo de croma de la entrada.
El wrapper también tiene algunas opciones específicas:
cpu-used
Establece el equilibrio entre calidad y velocidad de codificación. El rango válido va de 0 a 8; los valores más altos indican mayor velocidad y menor calidad. El valor predeterminado es 1, que será lento y de alta calidad.
auto-alt-ref
Habilita el uso de fotogramas de referencia alternativos. De forma predeterminada usa el valor interno predeterminado de la biblioteca.
arnr-max-frames (frames)
Establece el número máximo de fotogramas para la reducción de ruido con altref. El valor predeterminado es -1.
arnr-strength (strength)
Establece la intensidad del filtro de reducción de ruido con altref. El rango es de -1 a 6. El valor predeterminado es -1.
aq-mode (aq-mode)
Establece el modo de cuantización adaptativa. Valores posibles:
‘none (0)’
Deshabilitado.
‘variance (1)’
Basado en la varianza.
‘complexity (2)’
Basado en la complejidad.
‘cyclic (3)’
Actualización cíclica (cyclic refresh).
tune (tune)
Establece la métrica de distorsión con la que se ajusta el encoder. El valor predeterminado es psnr.
‘psnr (0)’ ‘ssim (1)’ lag-in-frames
Establece el número máximo de fotogramas que el encoder puede mantener en curso en un momento dado para fines de anticipación (lookahead). De forma predeterminada usa el valor interno predeterminado de la biblioteca.
error-resilience
Habilita funciones de resiliencia ante errores:
default
Mejora la resiliencia frente a la pérdida de fotogramas completos.
No habilitado de forma predeterminada.
crf
Establece el equilibrio entre calidad y tamaño para los modos de calidad constante (sin tasa de bits objetivo) y calidad restringida (con tasa de bits máxima objetivo). El rango válido va de 0 a 63; los valores más altos indican menor calidad y menor tamaño de salida. Solo se usa si se establece; de forma predeterminada solo se usa la tasa de bits objetivo.
static-thresh
Establece un umbral de cambio por debajo del cual el encoder omitirá los bloques. Se define en unidades arbitrarias como un entero no negativo, con valor cero de forma predeterminada (no se omite ningún bloque).
drop-threshold
Establece un umbral para descartar fotogramas cuando se está cerca de los límites del control de tasa. Se define como un porcentaje del búfer objetivo; cuando el búfer de control de tasa cae por debajo de este porcentaje, se descartarán fotogramas hasta que se rellene por encima del umbral. De forma predeterminada es cero (no se descarta ningún fotograma).
denoise-noise-level (level)
Cantidad de ruido a eliminar para la síntesis de grano. La síntesis de grano se deshabilita si esta opción no se establece o se establece en 0.
denoise-block-size (pixels)
Tamaño de bloque usado para la reducción de ruido en la síntesis de grano. Si no se establece, el codec AV1 usa el valor predeterminado de 32.
undershoot-pct (pct)
Establece el porcentaje de subejecución (mínimo) de la tasa de datos respecto a la tasa de bits objetivo. El rango es de -1 a 100. El valor predeterminado es -1.
overshoot-pct (pct)
Establece el porcentaje de sobreejecución (máximo) de la tasa de datos respecto a la tasa de bits objetivo. El rango es de -1 a 1000. El valor predeterminado es -1.
minsection-pct (pct)
Variación porcentual mínima de la tasa de bits del GOP respecto a la tasa de bits objetivo. Si no se establece minsection-pct, el wrapper libaomenc la calcula así: (minrate * 100 / bitrate). El rango es de -1 a 100. El valor predeterminado es -1 (sin establecer).
maxsection-pct (pct)
Variación porcentual máxima de la tasa de bits del GOP respecto a la tasa de bits objetivo. Si no se establece maxsection-pct, el wrapper libaomenc la calcula así: (maxrate * 100 / bitrate). El rango es de -1 a 5000. El valor predeterminado es -1 (sin establecer).
frame-parallel (boolean)
Habilita las funciones de decodificabilidad en paralelo de fotogramas. El valor predeterminado es true.
tiles
Establece el número de mosaicos con los que codificar el vídeo de entrada, como columnas x filas. Números mayores permiten un paralelismo más amplio tanto en la codificación como en la decodificación, pero pueden reducir la eficiencia de codificación. De forma predeterminada se usa el número mínimo de mosaicos que requiere el tamaño del vídeo de entrada (esto es 1x1, es decir, un solo mosaico, para tamaños de hasta 4K inclusive).
tile-columns tile-rows
Establece el número de mosaicos como log2 del número de filas y columnas de mosaicos. Se proporciona por compatibilidad con libvpx/VP9.
row-mt (Requiere libaom >= 1.0.0-759-g90a15f4f2)
Habilita el multihilo basado en filas. Deshabilitado de forma predeterminada.
enable-cdef (boolean)
Habilita el filtro de mejora direccional restringida (CDEF). El encoder libaom-av1 habilita CDEF de forma predeterminada.
enable-restoration (boolean)
Habilita el filtro de restauración de bucle. El valor predeterminado es true para libaom-av1.
enable-global-motion (boolean)
Habilita el uso de movimiento global para la predicción de bloques. El valor predeterminado es true.
enable-intrabc (boolean)
Habilita el modo de copia de bloques para la predicción de bloques intra. Este modo resulta útil para contenido de pantalla. El valor predeterminado es true.
enable-rect-partitions (boolean) (Requiere libaom >= v2.0.0)
Habilita las particiones rectangulares. El valor predeterminado es true.
enable-1to4-partitions (boolean) (Requiere libaom >= v2.0.0)
Habilita las particiones 1:4/4:1. El valor predeterminado es true.
enable-ab-partitions (boolean) (Requiere libaom >= v2.0.0)
Habilita las particiones con forma AB. El valor predeterminado es true.
enable-angle-delta (boolean) (Requiere libaom >= v2.0.0)
Habilita la predicción intra por delta de ángulo. El valor predeterminado es true.
enable-cfl-intra (boolean) (Requiere libaom >= v2.0.0)
Habilita la predicción intra de croma a partir de la luma (chroma from luma). El valor predeterminado es true.
enable-filter-intra (boolean) (Requiere libaom >= v2.0.0)
Habilita el predictor de filtro intra. El valor predeterminado es true.
enable-intra-edge-filter (boolean) (Requiere libaom >= v2.0.0)
Habilita el filtro de bordes intra. El valor predeterminado es true.
enable-smooth-intra (boolean) (Requiere libaom >= v2.0.0)
Habilita el modo de predicción intra suavizada. El valor predeterminado es true.
enable-paeth-intra (boolean) (Requiere libaom >= v2.0.0)
Habilita el predictor Paeth en la predicción intra. El valor predeterminado es true.
enable-palette (boolean) (Requiere libaom >= v2.0.0)
Habilita el modo de predicción por paleta. El valor predeterminado es true.
enable-flip-idtx (boolean) (Requiere libaom >= v2.0.0)
Habilita el tipo de transformada extendido, incluyendo FLIPADST_DCT, DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST, IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. El valor predeterminado es true.
enable-tx64 (boolean) (Requiere libaom >= v2.0.0)
Habilita la transformada de 64 puntos. El valor predeterminado es true.
reduced-tx-type-set (boolean) (Requiere libaom >= v2.0.0)
Usa un conjunto reducido de tipos de transformada. El valor predeterminado es false.
use-intra-dct-only (boolean) (Requiere libaom >= v2.0.0)
Usa solo DCT para los modos INTRA. El valor predeterminado es false.
use-inter-dct-only (boolean) (Requiere libaom >= v2.0.0)
Usa solo DCT para los modos INTER. El valor predeterminado es false.
use-intra-default-tx-only (boolean) (Requiere libaom >= v2.0.0)
Usa solo la transformada predeterminada para los modos INTRA. El valor predeterminado es false.
enable-ref-frame-mvs (boolean) (Requiere libaom >= v2.0.0)
Habilita la predicción temporal de vectores de movimiento. El valor predeterminado es true.
enable-reduced-reference-set (boolean) (Requiere libaom >= v2.0.0)
Usa un conjunto reducido de referencias simples y compuestas. El valor predeterminado es false.
enable-obmc (boolean) (Requiere libaom >= v2.0.0)
Habilita obmc. El valor predeterminado es true.
enable-dual-filter (boolean) (Requiere libaom >= v2.0.0)
Habilita el filtro dual. El valor predeterminado es true.
enable-diff-wtd-comp (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición ponderada por diferencia. El valor predeterminado es true.
enable-dist-wtd-comp (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición ponderada por distancia. El valor predeterminado es true.
enable-onesided-comp (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición de un solo lado. El valor predeterminado es true.
enable-interinter-wedge (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición en cuña interinter. El valor predeterminado es true.
enable-interintra-wedge (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición en cuña interintra. El valor predeterminado es true.
enable-masked-comp (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición enmascarada. El valor predeterminado es true.
enable-interintra-comp (boolean) (Requiere libaom >= v2.0.0)
Habilita la composición interintra. El valor predeterminado es true.
enable-smooth-interintra (boolean) (Requiere libaom >= v2.0.0)
Habilita el modo interintra suavizado. El valor predeterminado es true.
aom-params
Establece las opciones de libaom mediante una lista de pares clave=valor separados por ":". Para ver la lista de opciones admitidas, consulte aomenc --help en la sección "AV1 Specific Options".
Por ejemplo, para especificar opciones de codificación de libaom con -aom-params:
ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4
9.9 liboapv
Wrapper del encoder del codec Advanced Professional Video.
Este encoder requiere la presencia de las cabeceras y la biblioteca de liboapv durante la configuración. Debe configurar la compilación explícitamente con --enable-liboapv.
Muchas opciones del encoder liboapv se corresponden con opciones globales de codec de FFmpeg, mientras que las opciones exclusivas del encoder se ofrecen mediante opciones privadas.
El sitio web del proyecto apv está en https://github.com/AcademySoftwareFoundation/openapv.
9.9.1 Opciones
El wrapper liboapv admite las siguientes opciones.
Para obtener documentación más extensa de las opciones de liboapv, consulte la documentación de liboapv.
preset
Establece el equilibrio entre calidad y velocidad [fastest, fast, medium, slow, placebo, default]
qp
Establece el valor del parámetro de cuantización para el modo de control de tasa CQP.
oapv-params (parse_apv_params)
Establece las opciones de liboapvenc mediante una lista de pares clave=valor separados por ":". Consulte la guía de usuario del encoder liboapv para ver la lista de parámetros aceptados.
9.10 libsvtav1
Wrapper del encoder SVT-AV1.
Requiere la presencia de las cabeceras y la biblioteca de SVT-AV1 durante la configuración. Debe configurar la compilación explícitamente con --enable-libsvtav1.
9.10.1 Opciones
profile
Establece el perfil de codificación.
‘main’ ‘high’ ‘professional’ level
Establece el nivel del punto de operación. Por ejemplo: ’4.0’
hielevel
Establece los niveles de predicción jerárquica.
‘3level’ ‘4level’
Este es el valor predeterminado.
tier
Establece el nivel (tier) del punto de operación.
‘main’
Este es el valor predeterminado.
‘high’ qmax
Establece el cuantizador máximo a usar en un modo de tasa de bits.
qmin
Establece el cuantizador mínimo a usar en un modo de tasa de bits.
crf
Valor de factor de tasa constante usado en el modo de control de tasa crf (0-63).
qp
Establece el cuantizador usado en el modo de control de tasa cqp (0-63).
sc_detection
Habilita la detección de cambio de escena.
la_depth
Establece el número de fotogramas de anticipación (lookahead) (0-120).
preset
Establece el equilibrio entre calidad y velocidad, en el rango de 0 a 13. Los valores más altos son más rápidos pero de menor calidad.
tile_rows
Establece el log2 del número de filas de mosaicos a usar (0-6).
tile_columns
Establece el log2 del número de columnas de mosaicos a usar (0-4).
svtav1-params
Establece las opciones de SVT-AV1 mediante una lista de pares clave=valor separados por ":". Consulte la guía de usuario del encoder SVT-AV1 para ver la lista de parámetros aceptados.
9.11 libsvtjpegxs
Wrapper del encoder SVT-JPEG-XS.
Requiere la presencia de las cabeceras y la biblioteca de SVT-JPEG-XS durante la configuración. Debe configurar la compilación explícitamente con --enable-libsvtjpegxs.
9.11.1 Opciones
decomp_v
Establece el nivel de descomposición vertical
decomp_h
Establece el nivel de descomposición horizontal
quantization
Establece el algoritmo de cuantización.
‘deadzone’ ‘uniform’ coding-signs
Habilita la estrategia de manejo de signos
‘disable’ ‘fast’ ‘full’ coding-sigf
Habilita la codificación de significancia
coding-vpred
Habilita la codificación de predicción vertical
‘disable’ ‘no_residuals’ ‘no_coeffs’
9.12 libjxl
Wrapper del encoder JPEG XL de libjxl.
Requiere la presencia de las cabeceras y la biblioteca de libjxl durante la configuración. Debe configurar la compilación explícitamente con --enable-libjxl.
9.12.1 Opciones
El wrapper de libjxl admite las siguientes opciones:
distance
Establece la distancia Butteraugli objetivo. Es un ajuste de calidad: una distancia menor produce mayor calidad, y distance=1.0 equivale aproximadamente a Quality 90 de libjpeg para contenido fotográfico. Establecer distance=0.0 produce una codificación verdaderamente sin pérdida. Los valores válidos van de 0.0 a 15.0, y los valores razonables rara vez superan 5.0. Establecer distance=0.1 suele lograr transparencia para la mayoría de las entradas. El valor predeterminado es 1.0.
effort
Establece el esfuerzo de codificación usado. Valores de esfuerzo más altos producen una calidad más uniforme y suelen dar una mejor curva calidad/bpp, a costa de requerir más tiempo de CPU. Los valores válidos van de 1 a 9, y el valor predeterminado es 7.
modular
Fuerza al encoder a usar el modo Modular en lugar de elegir automáticamente. De forma predeterminada se usa VarDCT para la codificación con pérdida y Modular para la codificación sin pérdida. VarDCT es generalmente superior a Modular para la codificación con pérdida, pero no admite codificación sin pérdida.
9.13 libkvazaar
Encoder H.265/HEVC Kvazaar.
Requiere la presencia de las cabeceras y la biblioteca de libkvazaar durante la configuración. Debe configurar la compilación explícitamente con --enable-libkvazaar.
9.13.1 Opciones
b
Establece la tasa de bits de vídeo objetivo en bit/s y habilita el control de tasa.
kvazaar-params
Establece los parámetros de kvazaar como una lista de pares nombre=valor separados por comas (,). Consulte la documentación de kvazaar para ver la lista de opciones.
9.14 libopenh264
Wrapper del encoder H.264/MPEG-4 AVC libopenh264 de Cisco.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libopenh264 durante la configuración. Debe configurar la compilación explícitamente con --enable-libopenh264. La biblioteca se detecta mediante pkg-config.
Para más información sobre la biblioteca, consulte http://www.openh264.org.
9.14.1 Opciones
Las siguientes opciones globales de FFmpeg afectan a la configuración del encoder libopenh264.
b
Establece la tasa de bits (como número de bits por segundo).
g
Establece el tamaño de GOP.
maxrate
Establece la tasa de bits máxima (como número de bits por segundo).
flags +global_header
Establece la cabecera global en el bitstream.
slices
Establece el número de segmentos (slices), usado en la codificación paralelizada. El valor predeterminado es 0. Solo se usa cuando slice_mode se establece en ‘fixed’.
loopfilter
Habilita el filtro de bucle si se establece en 1 (habilitado automáticamente). Para deshabilitarlo, establezca el valor en 0.
profile
Establece las restricciones de perfil. Si se establece en el valor ‘main’, habilita CABAC (establece el flag SEncParamExt.iEntropyCodingModeFlag en 1).
max_nal_size
Establece el tamaño máximo de NAL en bytes.
allow_skip_frames
Permite omitir fotogramas para alcanzar la tasa de bits objetivo si se establece en 1.
9.15 libtheora
Wrapper del encoder Theora libtheora.
Requiere la presencia de las cabeceras y la biblioteca de libtheora durante la configuración. Debe configurar la compilación explícitamente con --enable-libtheora.
Para más información sobre el proyecto libtheora, consulte http://www.theora.org/.
9.15.1 Opciones
Las siguientes opciones globales se corresponden con opciones internas de libtheora que afectan a la calidad y a la tasa de bits del flujo codificado.
b
Establece la tasa de bits de vídeo en bit/s para el modo CBR (tasa de bits constante). Si el modo VBR (tasa de bits variable) está habilitado, esta opción se ignora.
flags
Se usa para habilitar la codificación de calidad constante (VBR) mediante el flag qscale, y para habilitar los modos pass1 y pass2.
g
Establece el tamaño de GOP.
global_quality
Establece la calidad global como un entero en unidades lambda.
Solo es relevante cuando el modo VBR está habilitado con flags +qscale. El valor se convierte a unidades QP dividiéndolo por FF_QP2LAMBDA, se recorta al rango [0 - 10] y luego se multiplica por 6.3 para obtener un valor en el rango nativo de libtheora [0-63]. Un valor más alto corresponde a una mayor calidad.
q
Habilita el modo VBR cuando se establece en un valor no negativo, y establece el valor de calidad constante como un valor de coma flotante doble en unidades QP.
El valor se recorta al rango [0-10], y luego se multiplica por 6.3 para obtener un valor en el rango nativo de libtheora [0-63].
Esta opción solo es válida usando la herramienta de línea de comandos ffmpeg. Para los usuarios de la interfaz de biblioteca, use global_quality.
9.15.2 Ejemplos
-
Establecer la máxima calidad constante (VBR) al codificar con
ffmpeg:ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg -
Usar
ffmpegpara convertir un flujo de vídeo Theora CBR de 1000 kbps:ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
9.16 libvpx
Formato VP8/VP9 admitido mediante libvpx.
Requiere la presencia de las cabeceras y la biblioteca de libvpx durante la configuración. Debe configurar la compilación explícitamente con --enable-libvpx.
9.16.1 Opciones
El wrapper de libvpx admite las siguientes opciones. Las opciones o valores equivalentes de vpxenc se indican entre paréntesis para facilitar la migración.
Para reducir la duplicación de la documentación, aquí solo se documentan las opciones privadas y algunas otras que requieren atención especial. Para la documentación de las opciones genéricas no documentadas, consulte el capítulo Codec Options.
Para obtener más documentación sobre las opciones de libvpx, invoque el comando ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 o vpxenc --help. Hay más información disponible en la documentación de la API de libvpx.
b (target-bitrate)
Establece la tasa de bits en bits/s. Tenga en cuenta que la opción b de FFmpeg se expresa en bits/s, mientras que target-bitrate de vpxenc está en kilobits/s.
g (kf-max-dist) keyint_min (kf-min-dist) qmin (min-q)
Cuantizador mínimo (mejor calidad).
qmax (max-q)
Cuantizador máximo (peor calidad). Se puede cambiar por fotograma.
bufsize (buf-sz , buf-optimal-sz)
Establece el tamaño del búfer de control de tasa (en bits). Tenga en cuenta que las opciones de vpxenc se especifican en milisegundos; el wrapper de libvpx convierte este valor de la siguiente forma: buf-sz = bufsize * 1000 / bitrate, buf-optimal-sz = bufsize * 1000 / bitrate * 5 / 6.
rc_init_occupancy (buf-initial-sz)
Establece el número de bits que deben cargarse en el búfer de control de tasa antes de que empiece la decodificación. Tenga en cuenta que la opción de vpxenc se especifica en milisegundos; el wrapper de libvpx convierte este valor de la siguiente forma: rc_init_occupancy * 1000 / bitrate.
undershoot-pct
Establece el porcentaje de subejecución (mínimo) de la tasa de datos respecto a la tasa de bits objetivo.
overshoot-pct
Establece el porcentaje de sobreejecución (máximo) de la tasa de datos respecto a la tasa de bits objetivo.
skip_threshold (drop-frame) qcomp (bias-pct) maxrate (maxsection-pct)
Establece la tasa de bits máxima de GOP en bits/s. Tenga en cuenta que la opción de vpxenc se especifica como un porcentaje de la tasa de bits objetivo; el wrapper de libvpx convierte este valor de la siguiente forma: (maxrate * 100 / bitrate).
minrate (minsection-pct)
Establece la tasa de bits mínima de GOP en bits/s. Tenga en cuenta que la opción de vpxenc se especifica como un porcentaje de la tasa de bits objetivo; el wrapper de libvpx convierte este valor de la siguiente forma: (minrate * 100 / bitrate).
minrate, maxrate, b end-usage=cbr
(minrate == maxrate == bitrate).
crf (end-usage=cq , cq-level) tune (tune)
‘psnr (psnr)’ ‘ssim (ssim)’ quality, deadline (deadline)
‘best’
Usa el límite de mejor calidad. Mal llamado y bastante lento, se debería evitar esta opción, ya que puede dar una calidad de salida peor que good.
‘good’
Usa el límite de buena calidad. Es un buen equilibrio entre velocidad y calidad cuando se usa junto con la opción cpu-used.
‘realtime’
Usa el límite de calidad en tiempo real.
speed, cpu-used (cpu-used)
Establece el modificador de la relación calidad/velocidad. Valores más altos aceleran la codificación a costa de la calidad.
nr (noise-sensitivity) static-thresh
Establece un umbral de cambio por debajo del cual el encoder omitirá los bloques.
slices (token-parts)
Tenga en cuenta que la opción slices de FFmpeg indica el número total de particiones, mientras que token-parts de vpxenc se da como log2(partitions).
max-intra-rate
Establece la tasa de bits máxima de fotogramas I como un porcentaje de la tasa de bits objetivo. Un valor de 0 significa sin límite.
force_key_frames
VPX_EFLAG_FORCE_KF
Relacionado con el fotograma de referencia alternativo
auto-alt-ref
Habilita el uso de fotogramas de referencia alternativos (solo con dos pasadas). Valores mayores que 1 habilitan fotogramas de referencia alternativos multicapa (solo VP9).
arnr-maxframes
Establece el número máximo de fotogramas para la reducción de ruido con altref.
arnr-type
Establece el tipo de filtro de reducción de ruido con altref: backward, forward, centered.
arnr-strength
Establece la intensidad del filtro de reducción de ruido con altref.
rc-lookahead, lag-in-frames (lag-in-frames)
Establece el número de fotogramas de anticipación (lookahead) para el tipo de fotograma y el control de tasa.
min-gf-interval
Establece el intervalo mínimo entre fotograma dorado/de referencia alternativo (solo VP9).
error-resilient
Habilita las funciones de resiliencia ante errores.
sharpness integer
Aumenta la nitidez a costa de un PSNR menor. El rango válido es [0, 7].
ts-parameters
Establece la configuración de escalabilidad temporal mediante una lista de pares clave=valor separados por ":". Por ejemplo, para especificar parámetros de escalabilidad temporal con ffmpeg:
ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\
ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\
ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT
A continuación se ofrece una breve explicación de cada uno de los parámetros; consulte struct vpx_codec_enc_cfg en vpx/vpx_encoder.h para más detalles.
ts_number_layers
Número de capas de codificación temporal.
ts_target_bitrate
Tasa de bits objetivo para cada capa temporal (en kbps). (la tasa de bits debe incluir la de la capa temporal inferior).
ts_rate_decimator
Factor de diezmado de la velocidad de fotogramas para cada capa temporal.
ts_periodicity
Longitud de la secuencia que define la pertenencia de los fotogramas a las capas temporales.
ts_layer_id
Plantilla que define la pertenencia de los fotogramas a las capas temporales.
ts_layering_mode
(opcional) Selecciona la estructura temporal a partir de un conjunto de modos de capas temporales predefinidos. Actualmente admite las siguientes opciones.
0
No se proporcionan flags de capas temporales internamente; se basa en flags que se pasan mediante el campo metadata en AVFrame con las siguientes claves.
vp8-flags
Establece los flags pasados al encoder para indicar el esquema de referencia del fotograma actual. Consulte la función vpx_codec_encode en vpx/vpx_encoder.h para más detalles.
temporal_id
Establece explícitamente el id temporal del fotograma actual a codificar.
2
Dos capas temporales. 0-1...
3
Tres capas temporales. 0-2-1-2...; con un único fotograma de referencia.
4
Igual que la opción "3", salvo que hay una dependencia entre los dos fotogramas de la capa temporal 2 dentro del periodo temporal.
Opciones específicas de VP8
screen-content-mode
Modo de contenido de pantalla, uno de: 0 (desactivado), 1 (pantalla), 2 (pantalla con control de tasa más agresivo).
Opciones específicas de VP9
lossless
Habilita el modo sin pérdida.
tile-columns
Establece el número de columnas de mosaicos a usar. Tenga en cuenta que se indica como log2(tile_columns). Por ejemplo, se solicitarían 8 columnas de mosaicos estableciendo la opción tile-columns en 3.
tile-rows
Establece el número de filas de mosaicos a usar. Tenga en cuenta que se indica como log2(tile_rows). Por ejemplo, se solicitarían 4 filas de mosaicos estableciendo la opción tile-rows en 2.
frame-parallel
Habilita las funciones de decodificabilidad en paralelo de fotogramas.
aq-mode
Establece el modo de cuantización adaptativa (0: desactivado (predeterminado), 1: varianza, 2: complejidad, 3: actualización cíclica, 4: equator360).
colorspace color-space
Establece el espacio de color de entrada. El bitstream VP9 admite señalizar los siguientes espacios de color:
‘rgb’ sRGB ‘bt709’ bt709 ‘unspecified’ unknown ‘bt470bg’ bt601 ‘smpte170m’ smpte170 ‘smpte240m’ smpte240 ‘bt2020_ncl’ bt2020 row-mt boolean
Habilita el multihilo basado en filas.
tune-content
Establece el tipo de contenido: default (0), screen (1), film (2).
corpus-complexity
El modo VBR de corpus es una variante del VBR estándar en la que el punto medio de la distribución de complejidad se proporciona en lugar de calcularse para un clip o fragmento específico.
El rango válido es [0, 10000]. 0 (predeterminado) usa el VBR estándar.
enable-tpl boolean
Habilita el modelo de dependencia temporal.
ref-frame-config
Mediante metadatos por fotograma, configure los miembros de la estructura vpx_svc_ref_frame_config_t en vpx/vp8cx.h para controlar con precisión los esquemas de referencia y la gestión del búfer de fotogramas.
Use una lista de pares clave=valor separados por ":". Por ejemplo,
av_dict_set(&av_frame->metadata, "ref-frame-config", \
"rfc_update_buffer_slot=7:rfc_lst_fb_idx=0:rfc_gld_fb_idx=1:rfc_alt_fb_idx=2:rfc_reference_last=0:rfc_reference_golden=0:rfc_reference_alt_ref=0");
rfc_update_buffer_slot
Indica el número de ranura de búfer que se debe actualizar
rfc_update_last
Indica si se debe actualizar el fotograma LAST
rfc_update_golden
Indica si se debe actualizar el fotograma GOLDEN
rfc_update_alt_ref
Indica si se debe actualizar el fotograma ALT_REF
rfc_lst_fb_idx
Índice de búfer del fotograma LAST
rfc_gld_fb_idx
Índice de búfer del fotograma GOLDEN
rfc_alt_fb_idx
Índice de búfer del fotograma ALT_REF
rfc_reference_last
Indica si se debe hacer referencia al fotograma LAST
rfc_reference_golden
Indica si se debe hacer referencia al fotograma GOLDEN
rfc_reference_alt_ref
Indica si se debe hacer referencia al fotograma ALT_REF
rfc_reference_duration
Indica la duración del fotograma
Para más información sobre libvpx, consulte: http://www.webmproject.org/
9.17 libvvenc
VVenC es un wrapper de encoder H.266/VVC.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libvvenc durante la configuración. Debe configurar explícitamente la compilación con --enable-libvvenc.
El sitio web del proyecto VVenC está en https://github.com/fraunhoferhhi/vvenc.
9.17.1 Supported Pixel Formats
VVenC solo admite espacios de color de 10 bits como entrada. Sin embargo, la profundidad de bits interna (codificada) se puede configurar en 8 o 10 bits en tiempo de ejecución.
9.17.2 Opciones
b
Establece la tasa de bits del vídeo de destino.
g
Establece el tamaño del GOP. Actualmente se admite g=1 (solo Intra) o el valor predeterminado.
preset
Establece el preset de VVenC.
levelidc
Establece el level idc.
tier
Establece el tier de vvc.
qp
Establece el parámetro de cuantización constante.
subopt boolean
Establece la optimización subjetiva (basada en la percepción). El valor predeterminado es 1 (activado).
bitdepth8 boolean
Establece el modo de codificación de 8 bits en lugar de 10 bits. El valor predeterminado es 0 (desactivado).
period
Establece el período de actualización (intra) en segundos.
vvenc-params
Establece las opciones de vvenc mediante una lista de pares clave=valor separados por ":". Consulte vvencapp --fullhelp o vvencFFapp --fullhelp para obtener la lista de opciones.
Por ejemplo, las opciones se pueden proporcionar de la siguiente manera:
intraperiod=64:decodingrefreshtype=idr:poc0idr=1:internalbitdepth=8
Por ejemplo, las opciones de codificación se pueden proporcionar con -vvenc-params:
ffmpeg -i input -c:v libvvenc -b 1M -vvenc-params intraperiod=64:decodingrefreshtype=idr:poc0idr=1:internalbitdepth=8 output.mp4
9.18 libwebp
libwebp, wrapper de encoder de imágenes WebP
libwebp es el encoder oficial de Google para imágenes WebP. Puede codificar en modo con pérdida o sin pérdida. Las imágenes con pérdida son esencialmente un wrapper alrededor de un fotograma VP8. Las imágenes sin pérdida son un codec independiente desarrollado por Google.
9.18.1 Pixel Format
Actualmente, libwebp solo admite YUV420 para el modo con pérdida y RGB para el modo sin pérdida, debido a limitaciones del formato y de libwebp. El canal alfa se admite en ambos modos. Debido a limitaciones de la API, si se pasa RGB al codificar con pérdida o YUV al codificar sin pérdida, el pixel format se convierte automáticamente mediante funciones de libwebp. Esto no es ideal y se hace únicamente por conveniencia.
9.18.2 Opciones
-lossless boolean
Activa o desactiva el uso del modo sin pérdida. El valor predeterminado es 0.
-compression_level integer
Para el modo con pérdida, esto es un equilibrio entre calidad y velocidad. Los valores más altos ofrecen mejor calidad para un tamaño determinado, a costa de un mayor tiempo de codificación. Para el modo sin pérdida, esto es un equilibrio entre tamaño y velocidad. Los valores más altos producen un tamaño menor, a costa de un mayor tiempo de codificación. Más concretamente, controla el número de algoritmos y herramientas de compresión adicionales utilizados, y varía la combinación de estas herramientas. Esto corresponde a la opción method de libwebp. El rango válido es de 0 a 6. El valor predeterminado es 4.
-quality float
Para la codificación con pérdida, esto controla la calidad de la imagen. Para la codificación sin pérdida, esto controla el esfuerzo y el tiempo dedicado a la compresión. El rango es de 0 a 100. El valor predeterminado es 75.
-preset type
Preset de configuración. Esto aplica algunos ajustes automáticos según el tipo general de la imagen.
none
No usar ningún preset.
default
Usar el valor predeterminado del encoder.
picture
Imagen digital, como un retrato o una toma de interior
photo
Fotografía al aire libre, con iluminación natural
drawing
Dibujo a mano o de líneas, con detalles de alto contraste
icon
Imágenes coloridas de tamaño pequeño
text
Similar a texto
9.19 libx264, libx264rgb
x264 es un wrapper de encoder H.264/MPEG-4 AVC.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libx264 durante la configuración. Debe configurar explícitamente la compilación con --enable-libx264.
libx264 admite un número impresionante de funciones, entre ellas la transformada espacial adaptativa 8x8 y 4x4, la colocación adaptativa de fotogramas B, la codificación de entropía CAVLC/CABAC, el entrelazado (MBAFF), el modo sin pérdida y las optimizaciones psicovisuales (psy) para la retención de detalles (cuantización adaptativa, psy-RD, psy-trellis).
Muchas opciones del encoder libx264 se corresponden con opciones globales de codec de FFmpeg, mientras que las opciones exclusivas del encoder se ofrecen mediante opciones privadas. Además, las opciones privadas x264opts y x264-params permiten pasar una lista de tuplas clave=valor tal como las acepta la función x264_param_parse de libx264.
El sitio web del proyecto x264 está en http://www.videolan.org/developers/x264.html.
El encoder libx264rgb es igual que libx264, salvo que acepta como entrada pixel formats RGB empaquetados en lugar de YUV.
9.19.1 Supported Pixel Formats
x264 admite espacios de color de 8 a 10 bits. La profundidad de bits exacta se controla en el momento de configurar x264.
9.19.2 Opciones
El wrapper libx264 admite las siguientes opciones. Las opciones o valores equivalentes de x264 se indican entre paréntesis para facilitar la migración.
Para reducir la duplicación de la documentación, aquí solo se documentan las opciones privadas y algunas otras que requieren especial atención. Para la documentación de las opciones genéricas no documentadas, consulte el capítulo Codec Options.
Para obtener documentación más precisa y extensa de las opciones de libx264, ejecute el comando x264 --fullhelp o consulte la documentación de libx264.
En la siguiente lista, tenga en cuenta que el nombre de la opción de x264 se muestra entre paréntesis después del nombre correspondiente de libavcodec, en caso de que exista una correspondencia directa.
b (bitrate)
Establece la tasa de bits en bits/s. Tenga en cuenta que la opción b de FFmpeg se expresa en bits/s, mientras que el bitrate de x264 está en kilobits/s.
bf (bframes)
Número de fotogramas B entre fotogramas I y P
g (keyint)
Tamaño máximo del GOP
qmin (qpmin)
Escala mínima de cuantización
qmax (qpmax)
Escala máxima de cuantización
qdiff (qpstep)
Diferencia máxima entre escalas de cuantización
qblur (qblur)
Difuminado de la curva de cuantización
qcomp (qcomp)
Factor de compresión de la curva de cuantización
refs (ref)
Número de fotogramas de referencia que puede usar cada fotograma P. El rango es de 0 a 16.
level (level)
Establece el valor de x264_param_t.i_level_idc en caso de que el valor sea positivo; en caso contrario, se ignora.
Este valor se puede establecer mediante la API de AVCodecContext (por ejemplo, definiendo directamente el valor de AVCodecContext), y se especifica como un entero que se corresponde con un nivel determinado (por ejemplo, el valor 31 se corresponde con el nivel IDC H.264 "3.1", tal como se define en la tabla x264_levels). Se ignora cuando se establece en un valor no positivo.
Como alternativa, se puede establecer como una opción privada, sobrescribiendo el valor definido en AVCodecContext; en ese caso, debe especificarse como el identificador IDC de nivel (por ejemplo, "3.1"), tal como lo define el Anexo A de H.264.
sc_threshold (scenecut)
Establece el umbral para la detección de cambio de escena.
trellis (trellis)
Realiza la cuantización Trellis para aumentar la eficiencia. Está activada de forma predeterminada.
nr (nr)
Reducción de ruido
me_range (merange)
Rango máximo de la búsqueda de movimiento, en píxeles.
me_method (me)
Establece el método de estimación de movimiento. Valores posibles en orden decreciente de velocidad:
‘dia (dia)’ ‘epzs (dia)’
Búsqueda en diamante con radio 1 (la más rápida). ‘epzs’ es un alias de ‘dia’.
‘hex (hex)’
Búsqueda hexagonal con radio 2.
‘umh (umh)’
Búsqueda multihexagonal desigual.
‘esa (esa)’
Búsqueda exhaustiva.
‘tesa (tesa)’
Búsqueda exhaustiva de Hadamard (la más lenta).
forced-idr
Normalmente, al forzar un tipo de fotograma I, el encoder puede elegir cualquier tipo de fotograma I. Esta opción lo obliga a elegir un fotograma IDR.
subq (subme)
Método de estimación de movimiento subpíxel.
b_strategy (b-adapt)
Algoritmo de decisión para la colocación adaptativa de fotogramas B. Úselo solo en la primera pasada.
keyint_min (min-keyint)
Tamaño mínimo del GOP.
coder
Establece el encoder de entropía. Valores posibles:
‘ac’
Activa CABAC.
‘vlc’
Activa CAVLC y desactiva CABAC. Genera el mismo efecto que la opción --no-cabac de x264.
cmp
Establece el algoritmo de comparación para la estimación de movimiento de píxel completo. Valores posibles:
‘chroma’
Activa la crominancia en la estimación de movimiento.
‘sad’
Ignora la crominancia en la estimación de movimiento. Genera el mismo efecto que la opción --no-chroma-me de x264.
threads (threads)
Número de hilos de codificación.
thread_type
Establece la técnica de multihilo. Valores posibles:
‘slice’
Multihilo basado en slices. Genera el mismo efecto que la opción --sliced-threads de x264.
‘frame’
Multihilo basado en fotogramas.
flags
Establece los flags de codificación. Se puede usar para desactivar el GOP cerrado y activar el GOP abierto asignándole -cgop. El resultado es similar al comportamiento de la opción --open-gop de x264.
rc_init_occupancy (vbv-init)
Ocupación inicial del búfer VBV
preset (preset)
Establece el preset de codificación.
tune (tune)
Establece el ajuste (tune) de los parámetros de codificación.
profile (profile)
Establece las restricciones de profile.
fastfirstpass
Activa ajustes rápidos al codificar la primera pasada, cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --slow-firstpass de x264.
crf (crf)
Establece la calidad para el modo de calidad constante.
crf_max (crf-max)
En el modo CRF, evita que el VBV reduzca la calidad más allá de este punto.
qp (qp)
Establece el parámetro del método de control de tasa por cuantización constante.
aq-mode (aq-mode)
Establece el método de AQ. Valores posibles:
‘none (0)’
Desactivado.
‘variance (1)’
AQ por varianza (máscara de complejidad).
‘autovariance (2)’
AQ por autovarianza (experimental).
aq-strength (aq-strength)
Establece la intensidad de AQ; reduce el bloqueo y el desenfoque en zonas planas y con textura.
psy
Usa optimizaciones psicovisuales cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --no-psy de x264.
psy-rd (psy-rd)
Establece la intensidad de la optimización psicovisual, en formato psy-rd:psy-trellis.
rc-lookahead (rc-lookahead)
Establece el número de fotogramas a anticipar para el tipo de fotograma y el control de tasa.
weightb
Activa la predicción ponderada para los fotogramas B cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --no-weightb de x264.
weightp (weightp)
Establece el método de predicción ponderada para los fotogramas P. Valores posibles:
‘none (0)’
Desactivado
‘simple (1)’
Activa solo las referencias ponderadas
‘smart (2)’
Activa tanto las referencias ponderadas como los duplicados
ssim (ssim)
Activa el cálculo e impresión de estadísticas SSIM después de la codificación.
intra-refresh (intra-refresh)
Activa el uso de Periodic Intra Refresh en lugar de fotogramas IDR cuando se establece en 1.
avcintra-class (class)
Configura el encoder para generar AVC-Intra. Los valores válidos son 50, 100 y 200
bluray-compat (bluray-compat)
Configura el encoder para que sea compatible con el estándar bluray. Es un atajo para establecer "bluray-compat=1 force-cfr=1".
b-bias (b-bias)
Establece la influencia sobre la frecuencia con la que se usan los fotogramas B.
b-pyramid (b-pyramid)
Establece el método para conservar algunos fotogramas B como referencias. Valores posibles:
‘none (none)’
Desactivado.
‘strict (strict)’
Pirámide estrictamente jerárquica.
‘normal (normal)’
No estricta (no compatible con Blu-ray).
mixed-refs
Activa el uso de una referencia por partición, en lugar de una referencia por macrobloque, cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --no-mixed-refs de x264.
8x8dct
Activa la transformada espacial adaptativa (transformada 8x8 de perfil alto) cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --no-8x8dct de x264.
fast-pskip
Activa la detección temprana de SKIP en los fotogramas P cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --no-fast-pskip de x264.
aud (aud)
Activa el uso de delimitadores de unidad de acceso cuando se establece en 1.
mbtree
Activa el control de tasa por árbol de macrobloques (macroblock tree) cuando se establece en 1. Cuando se establece en 0, tiene el mismo efecto que la opción --no-mbtree de x264.
deblock (deblock)
Establece los parámetros del filtro de bucle, en forma alpha:beta.
cplxblur (cplxblur)
Establece la reducción de fluctuaciones en el QP (antes de la compresión de la curva).
partitions (partitions)
Establece las particiones que se deben considerar, como una lista de valores separados por comas. Valores posibles en la lista:
‘p8x8’
Partición 8x8 de fotograma P.
‘p4x4’
Partición 4x4 de fotograma P.
‘b8x8’
Partición 4x4 de fotograma B.
‘i8x8’
Partición 8x8 de fotograma I.
‘i4x4’
Partición 4x4 de fotograma I. (Para activar ‘p4x4’ es necesario tener activado ‘p8x8’. Para activar ‘i8x8’ es necesario tener activada la transformada espacial adaptativa (opción 8x8dct).)
‘none (none)’
No considerar ninguna partición.
‘all (all)’
Considerar todas las particiones.
direct-pred (direct)
Establece el modo de predicción MV directa. Valores posibles:
‘none (none)’
Desactiva la predicción MV.
‘spatial (spatial)’
Activa la predicción espacial.
‘temporal (temporal)’
Activa la predicción temporal.
‘auto (auto)’
Decidido automáticamente.
slice-max-size (slice-max-size)
Establece el límite de tamaño de cada slice en bytes. Si no se especifica, pero sí se especifica el tamaño de carga útil RTP (ps), se usa ese valor.
stats (stats)
Establece el nombre de archivo para las estadísticas multipasada.
nal-hrd (nal-hrd)
Establece la señalización de información HRD (requiere que vbv-bufsize esté definido). Valores posibles:
‘none (none)’
Desactiva la señalización de información HRD.
‘vbr (vbr)’
Tasa de bits variable.
‘cbr (cbr)’
Tasa de bits constante (no permitida en el container MP4).
x264opts opts x264-params opts
Sobrescribe la configuración de x264 mediante una lista de opciones clave=valor separadas por ":".
El argumento de ambas opciones es una lista de pares clave=valor separados por ":". Con x264opts se puede omitir el valor, en cuyo caso se asume el valor 1.
Para los valores de las opciones filter y psy-rd que usan ":" como separador propio, use "," en su lugar. Lo aceptan así desde hace tiempo, pero por alguna razón se mantiene sin documentar.
Por ejemplo, las opciones se pueden proporcionar de la siguiente manera:
level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subq=6:8x8dct=0:trellis=0
Por ejemplo, para especificar opciones de codificación de libx264 con ffmpeg:
ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
Para obtener la lista completa de las opciones de libx264, ejecute el comando x264 --fullhelp o consulte la documentación de libx264.
a53cc boolean
Importa los subtítulos ocultos (closed captions, que deben estar en un formato compatible con ATSC) en la salida. Solo los decoders mpeg2 y h264 los proporcionan. El valor predeterminado es 1 (activado).
udu_sei boolean
Importa el SEI de datos de usuario no registrados, si está disponible, en la salida. El valor predeterminado es 0 (desactivado).
mb_info boolean
Establece los datos mb_info mediante AVFrameSideData; solo resulta útil cuando se usa desde la API. El valor predeterminado es 0 (desactivado).
Se proporcionan ffpresets de codificación para los usos habituales, de modo que puedan usarse con el sistema general de presets (por ejemplo, pasando la opción pre).
9.20 libx265
x265 es un wrapper de encoder H.265/HEVC.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libx265 durante la configuración. Debe configurar explícitamente la compilación con --enable-libx265.
9.20.1 Opciones
b
Establece la tasa de bits del vídeo de destino.
bf g
Establece el tamaño del GOP.
keyint_min
Tamaño mínimo del GOP.
refs
Número de fotogramas de referencia que puede usar cada fotograma P. El rango es de 1 a 16.
preset
Establece el preset de x265.
tune
Establece el parámetro tune de x265.
profile
Establece las restricciones de profile.
crf
Establece la calidad para el modo de calidad constante.
qp
Establece el parámetro del método de control de tasa por cuantización constante.
qmin
Escala mínima de cuantización.
qmax
Escala máxima de cuantización.
qdiff
Diferencia máxima entre escalas de cuantización.
qblur
Difuminado de la curva de cuantización
qcomp
Factor de compresión de la curva de cuantización
i_qfactor b_qfactor forced-idr
Normalmente, al forzar un tipo de fotograma I, el encoder puede elegir cualquier tipo de fotograma I. Esta opción lo obliga a elegir un fotograma IDR.
x265-stats
Especifica el nombre de archivo para las estadísticas de 2 pasadas. Se establece automáticamente al usar la opción -passlogfile.
udu_sei boolean
Importa el SEI de datos de usuario no registrados, si está disponible, en la salida. El valor predeterminado es 0 (desactivado).
x265-params
Establece las opciones de x265 mediante una lista de pares clave=valor separados por ":". Consulte x265 --help para obtener la lista de opciones.
Por ejemplo, para especificar opciones de codificación de libx265 con -x265-params:
ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
9.21 libxavs2
xavs2 es un wrapper de encoder AVS2-P2/IEEE1857.4.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libxavs2 durante la configuración. Debe configurar explícitamente la compilación con --enable-libxavs2.
Se usan las siguientes opciones estándar de libavcodec:
- b / bit_rate
- g / gop_size
- bf / max_b_frames
El encoder también tiene sus propias opciones específicas:
9.21.1 Opciones
lcu_row_threads
Establece el número de hilos paralelos para filas, de 1 a 8 (valor predeterminado 5).
initial_qp
Establece el parámetro de cuantización de xavs2, de 1 a 63 (valor predeterminado 34). Se usa para definir el qp inicial del primer fotograma.
qp
Establece el parámetro de cuantización de xavs2, de 1 a 63 (valor predeterminado 34). Se usa para definir el valor de qp en el modo de QP constante.
max_qp
Establece el qp máximo para el control de tasa, de 1 a 63 (valor predeterminado 55).
min_qp
Establece el qp mínimo para el control de tasa, de 1 a 63 (valor predeterminado 20).
speed_level
Establece el nivel de velocidad, de 0 a 9 (valor predeterminado 0). Un valor más alto es mejor, pero más lento.
log_level
Establece el nivel de registro (log), de -1 a 3 (valor predeterminado 0). -1: ninguno, 0: error, 1: aviso, 2: información, 3: depuración.
xavs2-params
Establece las opciones de xavs2 mediante una lista de pares clave=valor separados por ":".
Por ejemplo, para especificar opciones de codificación de libxavs2 con -xavs2-params:
ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2
9.22 libxeve
Wrapper del encoder de vídeo MPEG-5 EVC eXtra-fast Essential Video Encoder (XEVE). Las opciones o valores equivalentes de xeve se indican entre paréntesis para facilitar la migración.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libxeve durante la configuración. Debe configurar la compilación explícitamente con --enable-libxeve.
Muchas de las opciones del encoder libxeve se corresponden con las opciones globales de codec de FFmpeg, mientras que las opciones propias del encoder se ofrecen como opciones privadas. Además, la opción privada xeve-params permite pasar una lista de pares key=value tal como los acepta la función parse_xeve_params de libxeve.
El sitio web del proyecto xeve está en https://github.com/mpeg5/xeve.
9.22.1 Opciones
El wrapper de libxeve admite las siguientes opciones. Las opciones o valores equivalentes de xeve se indican entre paréntesis para facilitar la migración.
Para reducir la duplicación de documentación, aquí solo se documentan las opciones privadas y algunas otras que requieren atención especial. Para la documentación de las opciones genéricas no documentadas, consulte el capítulo Codec Options.
Para obtener una documentación más precisa y extensa de las opciones de libxeve, ejecute el comando xeve_app --help o consulte la documentación de libxeve.
b (bitrate)
Establece la tasa de bits de vídeo objetivo en bits/s. Tenga en cuenta que la opción b de FFmpeg se expresa en bits/s, mientras que bitrate de xeve se expresa en kilobits/s.
bf (bframes)
Establece el número máximo de fotogramas B (1,3,7,15).
g (keyint)
Establece el tamaño de GOP (periodo de imágenes I).
preset (preset)
Establece el preset de xeve. Establece el valor de preset del encoder para determinar la velocidad de codificación [fast, medium, slow, placebo]
tune (tune)
Establece el parámetro tune del encoder [psnr, zerolatency]
profile (profile)
Establece el perfil del encoder [0: baseline; 1: main]
crf (crf)
Establece la calidad para el modo de calidad constante. Constant rate factor <10..49> [predeterminado: 32]
qp (qp)
Establece el parámetro del método de control de tasa por cuantización constante. Parámetro de cuantización qp <0..51> [predeterminado: 32]
threads (threads)
Fuerza el uso de un número específico de hilos
9.23 libxvid
Wrapper del encoder Xvid MPEG-4 Part 2.
Este encoder requiere la presencia de las cabeceras y la biblioteca de libxvidcore durante la configuración. Debe configurar la compilación explícitamente con --enable-libxvid --enable-gpl.
El encoder nativo mpeg4 admite el formato MPEG-4 Part 2, por lo que los usuarios pueden codificar a este formato sin necesidad de esta biblioteca.
9.23.1 Opciones
El wrapper de libxvid admite las siguientes opciones. Algunas de las opciones siguientes se enumeran pero no se documentan, ya que corresponden a opciones de codec compartidas. Consulte el capítulo Codec Options para su documentación. Las demás opciones compartidas que no se enumeran no tienen efecto en el encoder libxvid.
b g qmin qmax mpeg_quant threads bf b_qfactor b_qoffset flags
Establece flags de codificación específicos. Valores posibles:
‘mv4’
Usa cuatro vectores de movimiento por macrobloque.
‘aic’
Habilita la predicción AC de alta calidad.
‘gray’
Codifica solo en escala de grises.
‘qpel’
Habilita la compensación de movimiento de cuarto de píxel.
‘cgop’
Habilita GOP cerrado.
‘global_header’
Coloca las cabeceras globales en extradata en lugar de en cada keyframe.
gmc
Habilita el uso de compensación de movimiento global (GMC). El valor predeterminado es 0 (deshabilitado).
me_quality
Establece el nivel de calidad de la estimación de movimiento. Valores posibles en orden decreciente de velocidad y creciente de calidad:
‘0’
No usa estimación de movimiento (predeterminado).
‘1, 2’
Habilita la búsqueda zonal en diamante avanzada para bloques de 16x16 y el refinamiento de medio píxel para bloques de 16x16.
‘3, 4’
Habilita todo lo descrito anteriormente, además de la búsqueda zonal en diamante avanzada para bloques de 8x8 y el refinamiento de medio píxel para bloques de 8x8, y también habilita la estimación de movimiento en los planos de crominancia para fotogramas P y B.
‘5, 6’
Habilita todo lo descrito anteriormente, además de la búsqueda extendida de bloques de 16x16 y 8x8.
mbd
Establece el algoritmo de decisión de macrobloque. Valores posibles en orden creciente de calidad:
‘simple’
Usa el algoritmo de función de comparación de macrobloques (predeterminado).
‘bits’
Habilita el refinamiento de medio píxel y cuarto de píxel basado en distorsión de tasa para bloques de 16x16.
‘rd’
Habilita todo lo descrito anteriormente, además del refinamiento de medio píxel y cuarto de píxel basado en distorsión de tasa para bloques de 8x8, y la búsqueda basada en distorsión de tasa mediante patrón cuadrado.
lumi_aq
Habilita la cuantización adaptativa por enmascaramiento de luminancia cuando se establece en 1. El valor predeterminado es 0 (deshabilitado).
variance_aq
Habilita la cuantización adaptativa por varianza cuando se establece en 1. El valor predeterminado es 0 (deshabilitado).
Cuando se combina con lumi_aq, la calidad resultante no será mejor que la de cualquiera de los dos especificados individualmente. Es decir, la calidad resultante será la peor de los dos efectos.
trellis
Establece la cuantización óptima de distorsión de tasa.
ssim
Establece el método de presentación de la similitud estructural (SSIM). Valores posibles:
‘off’
Deshabilita la presentación de información de SSIM.
‘avg’
Muestra el SSIM promedio en stdout al finalizar la codificación. El formato para mostrar el SSIM promedio es:
Average SSIM: %f
Para quienes no estén familiarizados con C, %f significa un número de coma flotante, o decimal (por ejemplo, 0.939232).
‘frame’
Muestra en stdout tanto los datos de SSIM por fotograma durante la codificación como el SSIM promedio al finalizar. El formato de la información por fotograma es:
SSIM: avg: %1.3f min: %1.3f max: %1.3f
Para quienes no estén familiarizados con C, %1.3f significa un número de coma flotante redondeado a 3 dígitos después del punto (por ejemplo, 0.932).
ssim_acc
Establece la precisión de SSIM. Los valores válidos son números enteros en el rango de 0 a 4; 0 ofrece el resultado más preciso y 4 calcula más rápido.
9.24 MediaCodec
El wrapper del encoder MediaCodec permite la codificación de vídeo con aceleración por hardware en dispositivos Android. Admite la codificación H.264, H.265 (HEVC), VP8, VP9, MPEG-4 y AV1 (que funcione o no depende del dispositivo).
Android ofrece dos conjuntos de API: Java MediaCodec y NDK MediaCodec. El wrapper del encoder MediaCodec admite ambos. Tenga en cuenta que la API NDK MediaCodec funciona sin necesitar la JVM, pero puede no funcionar fuera del entorno JVM debido a dependencias de los servicios del framework del sistema, especialmente a partir de Android 15.
ndk_codec boolean
Usa la API de MediaCodec basada en NDK en lugar de la API de Java. Está habilitada de forma predeterminada si av_jni_get_java_vm() devuelve NULL.
ndk_async boolean
Usa NDK MediaCodec en modo asíncrono. El modo asíncrono tiene menos sobrecarga que el sondeo en bucle del modo síncrono. El inconveniente del modo asíncrono es que AV_CODEC_FLAG_GLOBAL_HEADER no funciona (use el bsf extract_extradata cuando sea necesario). No funciona y se deshabilitará automáticamente en dispositivos con versiones anteriores a Android 8.0.
codec_name string
Un tipo de codec puede tener varias implementaciones en un mismo dispositivo; esta opción especifica qué backend usar (mediante la API createCodecByName de MediaCodec). Es NULL de forma predeterminada, y en ese caso el encoder se crea con createEncoderByType.
bitrate_mode integer
Valores posibles:
‘cq’
Modo de calidad constante
‘vbr’
Modo de tasa de bits variable
‘cbr’
Modo de tasa de bits constante
‘cbr_fd’
Modo de tasa de bits constante con descarte de fotogramas
pts_as_dts boolean
Usa PTS como DTS. Esto es una solución alternativa, ya que la API de MediaCodec no proporciona la marca de tiempo de decodificación. Se habilita automáticamente si el número de fotogramas B es 0.
operating_rate integer
La tasa de funcionamiento deseada a la que el codec deberá operar; cero significa no especificada. Se usa en casos como la captura de vídeo a alta velocidad/cámara lenta, donde el formato del encoder de vídeo contiene la tasa de reproducción objetivo (por ejemplo, 30fps), pero el componente debe poder gestionar la tasa de captura de funcionamiento alta (por ejemplo, 240fps). El codec usará esta tasa para la planificación de recursos y el ajuste de los puntos de funcionamiento.
qp_i_min integer
Parámetro de cuantización mínimo para el fotograma I.
qp_p_min integer
Parámetro de cuantización mínimo para el fotograma P.
qp_b_min integer
Parámetro de cuantización mínimo para el fotograma B.
qp_i_max integer
Parámetro de cuantización máximo para el fotograma I.
qp_p_max integer
Parámetro de cuantización máximo para el fotograma P.
qp_b_max integer
Parámetro de cuantización máximo para el fotograma B.
9.25 MediaFoundation
Están disponibles los siguientes wrappers para encoders del framework MediaFoundation:
- h264_mf
- hevc_mf
- av1_mf
Estos admiten tanto la codificación por software como por hardware.
Los encoders de vídeo pueden recibir la entrada en formato nv12 o yuv420p (algunos encoders admiten ambos, otros solo uno de ellos; en la práctica, nv12 es la opción más segura, especialmente entre los encoders por hardware).
La codificación con aceleración por hardware requiere D3D11, incluidas las capacidades de escalado por hardware mediante el filtro scale_d3d11.
Para listar todas las opciones disponibles de los encoders MediaFoundation, use: ffmpeg -h encoder=<encoder> por ejemplo ffmpeg -h encoder=h264_mf
9.25.1 Opciones
rate_control
Selecciona el modo de control de tasa. Modos disponibles:
‘default’
Modo predeterminado
‘cbr’
Modo CBR
‘pc_vbr’
Modo VBR con restricción de pico
‘u_vbr’
Modo VBR sin restricciones
‘quality’
Modo de calidad
‘ld_vbr’
Modo VBR de baja latencia (requiere Windows 8 o posterior)
‘g_vbr’
Modo VBR global (requiere Windows 8 o posterior)
‘gld_vbr’
Modo VBR global de baja latencia (requiere Windows 8 o posterior)
scenario
Selecciona el escenario de uso. Escenarios disponibles:
‘default’
Escenario predeterminado
‘display_remoting’
Escenario de visualización remota
‘video_conference’
Escenario de videoconferencia
‘archive’
Escenario de archivo
‘live_streaming’
Escenario de transmisión en directo
‘camera_record’
Escenario de grabación con cámara
‘display_remoting_with_feature_map’
Escenario de visualización remota con mapa de características
quality
Establece la calidad de codificación (0-100). -1 significa calidad predeterminada.
hw_encoding
Fuerza la codificación por hardware (0-1). El valor predeterminado es 0 (deshabilitado).
9.25.2 Ejemplos
Codificación por hardware:
ffmpeg -i input.mp4 -c:v h264_mf -hw_encoding 1 output.mp4
Decodificación con aceleración por hardware junto con codificación por hardware:
ffmpeg -hwaccel d3d11va -i input.mp4 -c:v h264_mf -hw_encoding 1 output.mp4
Decodificación con aceleración por hardware, escalado por hardware y codificación con ajuste de calidad:
ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -i input.mp4 -vf scale_d3d11=1920:1080 -c:v hevc_mf -hw_encoding 1 -quality 80 output.mp4
9.26 Microsoft RLE
Encoder Microsoft RLE, también conocido como MSRLE. Solo se admite el modo de paleta de 8 bits. Compatible con Windows 3.1 y Windows 95.
9.26.1 Opciones
g integer
Intervalo de keyframes. Se inserta un keyframe al menos cada -g fotogramas, y a veces antes.
9.27 mpeg2
Encoder de vídeo MPEG-2.
9.27.1 Opciones
profile
Selecciona el perfil mpeg2 con el que codificar:
‘422’ ‘high’ ‘ss’
Escalable espacialmente
‘snr’
Escalable en SNR
‘main’ ‘simple’ level
Selecciona el nivel mpeg2 con el que codificar:
‘high’ ‘high1440’ ‘main’ ‘low’ seq_disp_ext integer
Especifica si el encoder debe escribir un sequence_display_extension en la salida.
-1 auto
Decide automáticamente si escribirlo o no (esto es lo predeterminado) comprobando si los datos que se van a escribir difieren de los valores predeterminados o no especificados.
0 never
No lo escribe nunca.
1 always
Lo escribe siempre.
video_format integer
Especifica el video_format escrito en el sequence display extension, que indica el origen de las imágenes de vídeo. El valor predeterminado es ‘unspecified’; puede ser ‘component’, ‘pal’, ‘ntsc’, ‘secam’ o ‘mac’. Para la máxima compatibilidad, use ‘component’.
a53cc boolean
Importa los subtítulos ocultos (closed captions, que deben tener un formato compatible con ATSC) en la salida. El valor predeterminado es 1 (activado).
9.28 png
Encoder de imágenes PNG.
9.28.1 Opciones
compression_level
Establece el nivel de compresión, de 0 a 9 (predeterminado)
9.28.2 Private options
dpi integer
Establece la densidad física de píxeles, en puntos por pulgada; sin establecer de forma predeterminada
dpm integer
Establece la densidad física de píxeles, en puntos por metro; sin establecer de forma predeterminada
pred method
Establece el método de predicción (none, sub, up, avg, paeth, mixed); el valor predeterminado es paeth
9.29 ProRes
Encoder Apple ProRes.
FFmpeg incluye 2 encoders ProRes: prores-aw y prores-ks. El encoder que se use puede elegirse con la opción -vcodec.
9.29.1 Private Opciones for prores-ks
profile integer
Selecciona el perfil ProRes con el que codificar
‘proxy’ ‘lt’ ‘standard’ ‘hq’ ‘4444’ ‘4444xq’ quant_mat integer
Selecciona la matriz de cuantización.
‘auto’ ‘default’ ‘proxy’ ‘lt’ ‘standard’ ‘hq’
Si se establece en auto, se elegirá la matriz correspondiente al perfil. Si no se establece, se elegirá la matriz que ofrece la mayor calidad, default.
bits_per_mb integer
Cuántos bits asignar para codificar un macrobloque. Los distintos perfiles usan entre 200 y 2400 bits por macrobloque; el máximo es 8000.
mbs_per_slice integer
Número de macrobloques en cada slice (1-8); el valor predeterminado (8) debería ser adecuado en casi todas las situaciones.
vendor string
Sobrescribe el ID de proveedor de 4 bytes. Un ID de proveedor personalizado como apl0 haría constar que el flujo fue producido por el encoder de Apple.
alpha_bits integer
Especifica el número de bits para el componente alfa. Los valores posibles son 0, 8 y 16. Use 0 para deshabilitar la codificación del plano alfa.
9.29.2 Speed considerations
En el modo de funcionamiento predeterminado, el encoder debe respetar las restricciones de tamaño de fotograma (es decir, no producir fotogramas de mayor tamaño del solicitado) sin dejar de hacer que la imagen de salida sea lo mejor posible. Un fotograma con muchos detalles pequeños es más difícil de comprimir, y el encoder dedicará más tiempo a buscar los cuantizadores adecuados para cada slice.
Establecer un límite de bits_per_mb más alto mejorará la velocidad.
Para obtener la máxima velocidad de codificación, establezca el parámetro qscale (se recomienda el valor 4) y no establezca una restricción de tamaño.
9.30 QSV Encoders
La familia de encoders Intel QuickSync Video (MPEG-2, H.264, HEVC, JPEG/MJPEG, VP9, AV1)
9.30.1 Ratecontrol Method
El método de control de tasa se selecciona de la siguiente manera:
- Cuando se especifica global_quality, se usa un modo basado en calidad. En concreto, esto significa:
- - CQP - escala de cuantizador constante, cuando también se establece el flag de codec qscale (la opción -qscale de ffmpeg).
- - LA_ICQ - calidad constante inteligente con lookahead, cuando también se establece la opción look_ahead.
- - ICQ – calidad constante inteligente en caso contrario. Para los modos ICQ, el rango de global quality es de 1 a 51, siendo 1 la mejor calidad.
- En caso contrario, cuando la tasa de bits media deseada se especifica con la opción b, se usa un modo basado en tasa de bits.
- - LA - VBR con lookahead, cuando se especifica la opción look_ahead.
- - VCM - modo de videoconferencia, cuando se establece la opción vcm.
- - CBR - tasa de bits constante, cuando se especifica maxrate y es igual a la tasa de bits media.
- - VBR - tasa de bits variable, cuando se especifica maxrate, pero es mayor que la tasa de bits media.
- - AVBR - modo VBR promedio, cuando no se especifica maxrate y tanto avbr_accuracy como avbr_convergence se establecen en valores distintos de cero. Este modo está disponible para H264 y HEVC en Windows.
- En caso contrario, se usa el método de control de tasa predeterminado, CQP.
Tenga en cuenta que, según su sistema, el encoder puede seleccionar un modo distinto del que especificó. Establezca el nivel de detalle en verbose o superior para ver los ajustes reales usados por el runtime de QSV.
9.30.2 Opciones globales -> Opciones de MSDK
Las opciones globales adicionales de libavcodec se corresponden con opciones de MSDK de la siguiente manera:
- g/gop_size -> GopPicSize
- bf/max_b_frames+1 -> GopRefDist
- rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB
- slices -> NumSlice
- refs -> NumRefFrame
- b_strategy/b_frame_strategy -> BRefType
- cgop/CLOSED_GOP flag de codec -> GopOptFlag
- Para el modo CQP, i_qfactor/i_qoffset y b_qfactor/b_qoffset establecen la diferencia entre QPP y QPI, y entre QPP y QPB respectivamente.
- Establecer la opción coder en el valor vlc hará que el encoder H.264 use CAVLC en lugar de CABAC.
9.30.3 Opciones comunes
Las siguientes opciones son usadas por todos los encoders qsv.
async_depth
Especifica cuántas operaciones asíncronas realiza una aplicación antes de sincronizar explícitamente el resultado. Si es cero, el valor no está especificado.
preset
Esta opción enumera un rango de opciones desde veryfast (mayor velocidad) hasta veryslow (mayor calidad).
‘veryfast’ ‘faster’ ‘fast’ ‘medium’ ‘slow’ ‘slower’ ‘veryslow’ forced_idr
Fuerza los fotogramas I como fotogramas IDR.
low_power
Para los encoders, establezca este flag en ON para reducir el consumo de energía y el uso de la GPU.
9.30.4 Opciones en tiempo de ejecución
Las siguientes opciones pueden usarse durante la codificación qsv.
global_quality i_quant_factor i_quant_offset b_quant_factor b_quant_offset
Compatible con h264_qsv y hevc_qsv. Cambie estos valores para restablecer la configuración de qp del codec qsv.
max_frame_size
Compatible con h264_qsv y hevc_qsv. Cambie este valor para restablecer la configuración de MaxFrameSize del codec qsv.
gop_size
Cambie este valor para restablecer la configuración de gop del codec qsv.
int_ref_type int_ref_cycle_size int_ref_qp_delta int_ref_cycle_dist
Compatible con h264_qsv y hevc_qsv. Cambie estos valores para restablecer la configuración de Intra Refresh del codec qsv.
qmax qmin max_qp_i min_qp_i max_qp_p min_qp_p max_qp_b min_qp_b
Compatible con h264_qsv. Cambie estos valores para restablecer la configuración de qp máximo/mínimo del codec qsv.
low_delay_brc
Compatible con h264_qsv, hevc_qsv y av1_qsv. Cambie este valor para restablecer la configuración de low_delay_brc del codec qsv.
framerate
Cambie este valor para restablecer la configuración de framerate del codec qsv.
bit_rate rc_buffer_size rc_initial_buffer_occupancy rc_max_rate
Cambie estos valores para restablecer la configuración de control de tasa de bits del codec qsv.
pic_timing_sei
Compatible con h264_qsv y hevc_qsv. Cambie este valor para restablecer la configuración de pic_timing_sei del codec qsv.
qsv_params
Establece los parámetros del encoder QSV como una lista de pares clave-valor separados por dos puntos.
qsv_params debe tener el formato key1=value1:key2=value2:....
Estos parámetros se pasan directamente al encoder Intel Quick Sync Video (QSV) subyacente mediante la función MFXSetParameter.
Ejemplo:
ffmpeg -i input.mp4 -c:v h264_qsv -qsv_params "CodingOption1=1:CodingOption2=2" output.mp4
Esta opción permite un control detallado sobre varios ajustes específicos del encoder proporcionados por el encoder QSV.
9.30.5 H264 options
Estas opciones son usadas por h264_qsv
extbrc
Control de tasa de bits extendido.
recovery_point_sei
Establezca este flag para insertar el mensaje SEI de recovery point al principio de cada ciclo de intra refresh.
rdo
Habilita la optimización de distorsión de tasa.
max_frame_size
Tamaño máximo del fotograma codificado en bytes.
max_frame_size_i
Tamaño máximo del fotograma codificado para fotogramas I, en bytes. Si este valor se establece mayor que cero, para los fotogramas I se ignora el valor establecido por max_frame_size.
max_frame_size_p
Tamaño máximo del fotograma codificado para fotogramas P, en bytes. Si este valor se establece mayor que cero, para los fotogramas P se ignora el valor establecido por max_frame_size.
max_slice_size
Tamaño máximo del slice codificado en bytes.
bitrate_limit
Activa o desactiva las limitaciones de tasa de bits. Modifica la tasa de bits para que quede dentro del rango impuesto por el encoder QSV. Desactivar este flag puede provocar el incumplimiento de la conformidad HRD. Tenga en cuenta que especificar una tasa de bits por debajo del rango del encoder QSV puede afectar significativamente a la calidad. Si está activado, esta opción tiene efecto en los modos que no son CQP: si la tasa de bits no está en el rango impuesto por el encoder QSV, se modificará para que quede dentro de ese rango.
mbbrc
Establecer este flag habilita el control de tasa de bits a nivel de macrobloque, lo que generalmente mejora la calidad visual subjetiva. Habilitar este flag puede afectar negativamente al rendimiento y a la métrica objetiva de calidad visual.
low_delay_brc
Establecer este flag activa o desactiva la función LowDelayBRC del plugin qsv, que ofrece un control de tasa de bits más preciso para minimizar la variación del tamaño del bitstream fotograma a fotograma. Valor: -1-predeterminado 0-desactivado 1-activado
adaptive_i
Este flag controla la inserción de fotogramas I por parte del encoder QSV. Active este flag para permitir el cambio de tipo de fotograma de P y B a I.
adaptive_b
Este flag controla el cambio de tipo de fotograma de B a P.
p_strategy
Habilita la pirámide P: 0-predeterminado 1-simple 2-pyramid (bf debe establecerse en 0).
b_strategy
Esta opción controla el uso de fotogramas B como referencia.
dblk_idc
Esta opción deshabilita el deblocking. Su valor está en el rango 0~2.
cavlc
Si se establece, se usa CAVLC; si no, se usa CABAC para la codificación.
vcm
Modo de videoconferencia; consulte el método ratecontrol.
idr_interval
Distancia (en fotogramas I) entre fotogramas IDR.
pic_timing_sei
Inserta el SEI de picture timing con el elemento pic_struct_syntax.
single_sei_nal_unit
Coloca todos los mensajes SEI en un único NALU.
max_dec_frame_buffering
Número máximo de fotogramas almacenados en el búfer del DPB.
look_ahead
Usa el algoritmo VBR con look ahead.
look_ahead_depth
Profundidad del look ahead en número de fotogramas.
look_ahead_downsampling
Factor de reducción de escala para los fotogramas guardados para el análisis de lookahead.
‘unknown’ ‘auto’ ‘off’ ‘2x’ ‘4x’ int_ref_type
Especifica el tipo de intra refresh. El objetivo principal de intra refresh es mejorar la resiliencia frente a errores sin un impacto significativo en el tamaño del bitstream codificado causado por los fotogramas I. El encoder del SDK logra esto codificando parte de cada fotograma del ciclo de refresh mediante MB intra. none significa sin refresh. vertical significa refresh vertical, por columna de MB. horizontal significa refresh horizontal, por filas de MB. slice significa refresh horizontal por slices sin solapamiento. En el caso de slice, se ignora in_ref_cycle_size. Para habilitar intra refresh, el fotograma B debe establecerse en 0.
int_ref_cycle_size
Especifica el número de imágenes dentro del ciclo de refresh, a partir de 2. 0 y 1 son valores no válidos.
int_ref_qp_delta
Especifica la diferencia de QP para los MB intra insertados. Es un valor con signo en el rango [-51, 51] si la profundidad de bits de codificación objetivo para las muestras de luma es 8, y este rango es [-63, 63] para 10 bits de profundidad o [-75, 75] para 12 bits de profundidad, respectivamente.
int_ref_cycle_dist
Distancia entre los inicios de los ciclos de intra-refresh, en fotogramas.
profile
‘unknown’ ‘baseline’ ‘main’ ‘high’ a53cc
Usa subtítulos ocultos A53 (Closed Captions), si están disponibles.
aud
Inserta el NAL de Access Unit Delimiter.
mfmode
Modo multifotograma.
‘off’ ‘auto’ repeat_pps
Repite pps en cada fotograma.
max_qp_i
Escala máxima de cuantización de vídeo para el fotograma I.
min_qp_i
Escala mínima de cuantización de vídeo para el fotograma I.
max_qp_p
Escala máxima de cuantización de vídeo para el fotograma P.
min_qp_p
Escala mínima de cuantización de vídeo para el fotograma P.
max_qp_b
Escala máxima de cuantización de vídeo para el fotograma B.
min_qp_b
Escala mínima de cuantización de vídeo para el fotograma B.
scenario
Proporciona al encoder una indicación sobre el escenario de la sesión de codificación.
‘unknown’ ‘displayremoting’ ‘videoconference’ ‘archive’ ‘livestreaming’ ‘cameracapture’ ‘videosurveillance’ ‘gamestreaming’ ‘remotegaming’ avbr_accuracy
Precisión del control de tasa AVBR (unidad de décima de porcentaje).
avbr_convergence
Convergencia del control de tasa AVBR (unidad de 100 fotogramas)
Los parámetros avbr_accuracy y avbr_convergence son para el algoritmo de control de tasa de bits variable promedio (AVBR). El algoritmo se centra en la calidad de codificación general, cumpliendo al mismo tiempo la tasa de bits especificada, target_bitrate, dentro del rango de precisión avbr_accuracy, tras un periodo avbr_Convergence. Este método no sigue HRD y la tasa de bits instantánea no se limita ni se rellena.
skip_frame
Usa los metadatos por fotograma "qsv_skip_frame" para omitir fotogramas al codificar. Esta opción define el uso de estos metadatos.
‘no_skip’
El descarte de fotogramas está deshabilitado.
‘insert_dummy’
El encoder inserta en el bitstream un fotograma en el que todos los macrobloques se codifican como omitidos.
‘insert_nothing’
Similar a insert_dummy, pero el encoder no inserta nada en el bitstream. Los fotogramas omitidos se siguen usando en brc. Por ejemplo, el gop sigue incluyendo los fotogramas omitidos, y los fotogramas posteriores a los omitidos tendrán un tamaño mayor.
‘brc_only’
Los metadatos de skip_frame indican el número de fotogramas perdidos antes del fotograma actual.
9.30.6 Opciones de HEVC
Estas opciones las utiliza hevc_qsv
extbrc
Control extendido de la tasa de bits.
recovery_point_sei
Active este flag para insertar el mensaje SEI de punto de recuperación al principio de cada ciclo de intra refresh.
rdo
Habilita la optimización de tasa-distorsión.
max_frame_size
Tamaño máximo del fotograma codificado, en bytes.
max_frame_size_i
Tamaño máximo del fotograma codificado para fotogramas I, en bytes. Si este valor se establece mayor que cero, para los fotogramas I se ignora el valor definido por max_frame_size.
max_frame_size_p
Tamaño máximo del fotograma codificado para fotogramas P, en bytes. Si este valor se establece mayor que cero, para los fotogramas P se ignora el valor definido por max_frame_size.
max_slice_size
Tamaño máximo de un slice codificado, en bytes.
mbbrc
Al activar este flag se habilita el control de tasa de bits a nivel de macrobloque, lo que en general mejora la calidad visual subjetiva. Activarlo puede tener un impacto negativo en el rendimiento y en la métrica objetiva de calidad visual.
low_delay_brc
Este flag activa o desactiva la función LowDelayBRC del plugin qsv, que ofrece un control de tasa de bits más preciso para minimizar la variación del tamaño del bitstream fotograma a fotograma. Valor: -1=predeterminado 0=desactivado 1=activado
adaptive_i
Este flag controla la inserción de fotogramas I por parte del encoder QSV. Actívelo para permitir que el tipo de fotograma cambie de P y B a I.
adaptive_b
Este flag controla el cambio de tipo de fotograma de B a P.
p_strategy
Habilita P-pyramid: 0-default 1-simple 2-pyramid (bf debe establecerse en 0).
b_strategy
Esta opción controla el uso de fotogramas B como referencia.
dblk_idc
Esta opción deshabilita el filtro de desbloqueo (deblocking). Tiene un valor en el rango 0~2.
idr_interval
Distancia (en fotogramas I) entre fotogramas IDR.
‘begin_only’
Emite un fotograma IDR solo al principio del flujo.
load_plugin
Un plugin de usuario para cargar en una sesión interna.
‘none’ ‘hevc_sw’ ‘hevc_hw’ load_plugins
Una lista de UID hexadecimales de plugins, separados por ':', para cargar en una sesión interna.
look_ahead_depth
Profundidad de anticipación (look ahead), en número de fotogramas; disponible cuando la opción extbrc está habilitada.
profile
Establece el perfil de codificación (scc requiere libmfx >= 1.32).
‘unknown’ ‘main’ ‘main10’ ‘mainsp’ ‘rext’ ‘scc’ tier
Establece el tier de codificación (solo el nivel >= 4 puede admitir el tier alto). Esta opción solo tiene efecto cuando se especifica la opción level.
‘main’ ‘high’ gpb
1: GPB (fotograma P/B generalizado)
0: fotograma P normal.
tile_cols
Número de columnas para la codificación en mosaico.
tile_rows
Número de filas para la codificación en mosaico.
aud
Inserta el NAL de delimitador de unidad de acceso.
pic_timing_sei
Inserta el SEI de picture timing con el elemento pic_struct_syntax.
transform_skip
Active esta opción para habilitar transformskip. Se admite en plataformas iguales o posteriores a ICL.
int_ref_type
Especifica el tipo de intra refresh. El objetivo principal del intra refresh es mejorar la resiliencia a errores sin afectar de forma significativa al tamaño del bitstream codificado que provocan los fotogramas I. El encoder del SDK logra esto codificando parte de cada fotograma del ciclo de refresco mediante MB intra. none significa sin refresco. vertical significa refresco vertical, por columnas de MB. horizontal significa refresco horizontal, por filas de MB. slice significa refresco horizontal mediante slices sin solapamiento. En el caso de slice, se ignora in_ref_cycle_size. Para habilitar intra refresh, el número de fotogramas B (bf) debe establecerse en 0.
int_ref_cycle_size
Especifica el número de imágenes dentro del ciclo de refresco, a partir de 2. 0 y 1 no son valores válidos.
int_ref_qp_delta
Especifica la diferencia de QP para los MB intra insertados. Es un valor con signo en el rango [-51, 51] si la profundidad de bits de codificación de destino para las muestras de luma es 8, y este rango es [-63, 63] para una profundidad de 10 bits o [-75, 75] para 12 bits, respectivamente.
int_ref_cycle_dist
Distancia entre los inicios de los ciclos de intra refresh, en fotogramas.
max_qp_i
Escala máxima del cuantizador de vídeo para el fotograma I.
min_qp_i
Escala mínima del cuantizador de vídeo para el fotograma I.
max_qp_p
Escala máxima del cuantizador de vídeo para el fotograma P.
min_qp_p
Escala mínima del cuantizador de vídeo para el fotograma P.
max_qp_b
Escala máxima del cuantizador de vídeo para el fotograma B.
min_qp_b
Escala mínima del cuantizador de vídeo para el fotograma B.
scenario
Proporciona al encoder una indicación sobre el escenario de la sesión de codificación.
‘unknown’ ‘displayremoting’ ‘videoconference’ ‘archive’ ‘livestreaming’ ‘cameracapture’ ‘videosurveillance’ ‘gamestreaming’ ‘remotegaming’ avbr_accuracy
Precisión del control de tasa AVBR (unidad de décima de porcentaje).
avbr_convergence
Convergencia del control de tasa AVBR (unidad de 100 fotogramas)
Los parámetros avbr_accuracy y avbr_convergence son para el algoritmo de control de tasa de bits variable promedio (AVBR). El algoritmo se centra en la calidad de codificación general al tiempo que cumple con la tasa de bits especificada, target_bitrate, dentro del rango de precisión avbr_accuracy, tras un período avbr_Convergence. Este método no sigue HRD y la tasa de bits instantánea no se limita ni se rellena.
skip_frame
Utiliza los metadatos por fotograma "qsv_skip_frame" para omitir un fotograma durante la codificación. Esta opción define el uso de estos metadatos.
‘no_skip’
La omisión de fotogramas está deshabilitada.
‘insert_dummy’
El encoder inserta en el bitstream un fotograma en el que todos los macrobloques se codifican como omitidos.
‘insert_nothing’
Similar a insert_dummy, pero el encoder no inserta nada en el bitstream. Los fotogramas omitidos se siguen utilizando en el brc. Por ejemplo, el gop sigue incluyendo los fotogramas omitidos, y los fotogramas posteriores a los omitidos tendrán un tamaño mayor.
‘brc_only’
Los metadatos skip_frame indican el número de fotogramas perdidos antes del fotograma actual.
9.30.7 Opciones de MPEG2
Estas opciones las utiliza mpeg2_qsv
profile
‘unknown’ ‘simple’ ‘main’ ‘high’
9.30.8 Opciones de VP9
Estas opciones las utiliza vp9_qsv
profile
‘unknown’ ‘profile0’ ‘profile1’ ‘profile2’ ‘profile3’ tile_cols
Número de columnas para la codificación en mosaico (requiere libmfx >= 1.29).
tile_rows
Número de filas para la codificación en mosaico (requiere libmfx >= 1.29).
9.30.9 Opciones de AV1
Estas opciones las utiliza av1_qsv (requiere libvpl).
profile
‘unknown’ ‘main’ tile_cols
Número de columnas para la codificación en mosaico.
tile_rows
Número de filas para la codificación en mosaico.
adaptive_i
Este flag controla la inserción de fotogramas I por parte del encoder QSV. Actívelo para permitir que el tipo de fotograma cambie de P y B a I.
adaptive_b
Este flag controla el cambio de tipo de fotograma de B a P.
b_strategy
Esta opción controla el uso de fotogramas B como referencia.
extbrc
Control extendido de la tasa de bits.
look_ahead_depth
Profundidad de anticipación (look ahead), en número de fotogramas; disponible cuando la opción extbrc está habilitada.
low_delay_brc
Este flag activa o desactiva la función LowDelayBRC del plugin qsv, que ofrece un control de tasa de bits más preciso para minimizar la variación del tamaño del bitstream fotograma a fotograma. Valor: -1=predeterminado 0=desactivado 1=activado
max_frame_size
Establece el tamaño máximo permitido, en bytes, para cada fotograma. Si el tamaño del fotograma supera el límite, el encoder ajustará el valor de QP para controlar el tamaño del fotograma. No es válido en el modo de control de tasa CQP.
max_frame_size_i
Tamaño máximo del fotograma codificado para fotogramas I, en bytes. Si este valor se establece mayor que cero, para los fotogramas I se ignora el valor definido por max_frame_size.
max_frame_size_p
Tamaño máximo del fotograma codificado para fotogramas P, en bytes. Si este valor se establece mayor que cero, para los fotogramas P se ignora el valor definido por max_frame_size.
9.31 snow
9.31.1 Opciones
iterative_dia_size
Tamaño dia para la estimación de movimiento iterativa
9.32 VAAPI encoders
Wrappers para encoders de hardware accesibles mediante VAAPI.
Estos encoders solo aceptan entradas en superficies de hardware VAAPI. Si su entrada está en fotogramas por software, use el filtro hwupload para subirlos a la GPU.
Se utilizan las siguientes opciones estándar de libavcodec:
- g / gop_size
- bf / max_b_frames
- profile
Si no se establece, esto se determinará automáticamente a partir del formato de los fotogramas de entrada y de los perfiles admitidos por el controlador.
- level
- b / bit_rate
- maxrate / rc_max_rate
- bufsize / rc_buffer_size
- rc_init_occupancy / rc_initial_buffer_occupancy
- compression_level
Compromiso entre velocidad y calidad: los valores más altos son más rápidos y de peor calidad.
- q / global_quality
Compromiso entre tamaño y calidad: los valores más altos dan un tamaño menor y peor calidad.
- qmin
- qmax
- i_qfactor / i_quant_factor
- i_qoffset / i_quant_offset
- b_qfactor / b_quant_factor
- b_qoffset / b_quant_offset
- slices
Todos los encoders admiten las siguientes opciones:
low_power
Algunos controladores/plataformas ofrecen, para determinados codecs, un segundo encoder pensado para consumir menos energía que el encoder predeterminado; al establecer esta opción se intentará usar ese encoder. Tenga en cuenta que puede admitir un conjunto reducido de funciones, por lo que en este modo algunas otras opciones podrían no estar disponibles.
idr_interval
Establece el número de fotogramas intra normales entre fotogramas de actualización completa (IDR) en el modo open-GOP. Estos fotogramas intra siguen siendo IRAP, pero no incluirán cabeceras globales y pueden tener imágenes iniciales no decodificables.
b_depth
Establece la profundidad de referencia de los fotogramas B. Con el valor uno (el predeterminado), todos los fotogramas B harán referencia únicamente a fotogramas P o I. Con valores mayores habrá varias capas de fotogramas B, y los fotogramas de cada capa solo harán referencia a fotogramas de capas superiores.
async_depth
Paralelismo máximo del procesamiento. Auméntelo para mejorar el rendimiento de un único canal. Esta opción no funciona si el controlador no implementa la función vaSyncBuffer. Asegúrese de tener suficientes hw_frames asignados si se usa un valor grande de async_depth.
max_frame_size
Establece el tamaño máximo permitido, en bytes, para cada fotograma. Si el tamaño del fotograma supera el límite, el encoder ajustará el valor de QP para controlar el tamaño del fotograma. No es válido en el modo de control de tasa CQP.
rc_mode
Establece el modo de control de tasa que se va a usar. Es posible que un controlador determinado solo admita un subconjunto de los modos.
Modos posibles:
auto
Elige el modo automáticamente en función de la compatibilidad del controlador y de las demás opciones. Este es el valor predeterminado.
CQP
Calidad constante.
CBR
Tasa de bits constante.
VBR
Tasa de bits variable.
ICQ
Calidad constante inteligente.
QVBR
Tasa de bits variable definida por calidad.
AVBR
Tasa de bits variable promedio.
blbrc
Habilita el control de tasa a nivel de bloque, que asigna una tasa de bits distinta bloque a bloque. No es válido en el modo CQP.
Cada encoder también tiene sus propias opciones específicas:
av1_vaapi
profile establece el valor de seq_profile. tier establece el valor de seq_tier. level establece el valor de seq_level_idx.
tiles
Establece el número de mosaicos (tiles) con el que codificar el vídeo de entrada, como columnas x filas (el valor predeterminado es auto, que significa usar el número mínimo de columnas/filas de mosaico).
tile_groups
Establece el número de grupos de mosaicos. Todos los mosaicos se repartirán lo más uniformemente posible entre los grupos de mosaicos (el valor predeterminado es 1).
h264_vaapi
profile establece el valor de profile_idc y de los constraint_set*_flag. level establece el valor de level_idc.
coder
Establece el encoder de entropía (el valor predeterminado es cabac). Valores posibles:
‘ac’ ‘cabac’
Usa CABAC.
‘vlc’ ‘cavlc’
Usa CAVLC.
aud
Incluye delimitadores de unidad de acceso en el flujo (no se incluyen de forma predeterminada).
sei
Establece los tipos de mensaje SEI que se incluirán. Alguna combinación de los siguientes valores:
‘identifier’
Incluye un mensaje user_data_unregistered con información sobre el encoder.
‘timing’
Incluye los parámetros de picture timing (mensajes buffering_period y pic_timing).
‘recovery_point’
Incluye puntos de recuperación cuando corresponda (mensajes recovery_point).
hevc_vaapi
profile y level establecen los valores de general_profile_idc y general_level_idc, respectivamente.
aud
Incluye delimitadores de unidad de acceso en el flujo (no se incluyen de forma predeterminada).
tier
Establece general_tier_flag. Esto puede afectar al nivel elegido para el flujo si no se especifica explícitamente.
sei
Establece los tipos de mensaje SEI que se incluirán. Alguna combinación de los siguientes valores:
‘hdr’
Incluye los metadatos HDR si los fotogramas de entrada los tienen (mensajes mastering_display_colour_volume y content_light_level).
tiles
Establece el número de mosaicos con el que codificar el vídeo de entrada, como columnas x filas. Valores más grandes permiten un mayor paralelismo tanto en la codificación como en la decodificación, pero pueden reducir la eficiencia de codificación.
mjpeg_vaapi
Solo se admite la codificación DCT baseline. El encoder siempre usa las tablas estándar de cuantización y de Huffman; global_quality escala la tabla de cuantización estándar (rango 1-100).
Para YUV se admiten los modos de submuestreo 4:2:0, 4:2:2 y 4:4:4. También se admite RGB, y se creará un JPEG RGB.
jfif
Incluye la cabecera JFIF en cada fotograma (no se incluye de forma predeterminada).
huffman
Incluye las tablas estándar de Huffman (activado de forma predeterminada). Desactivarlo ahorrará unos pocos cientos de bytes en cada fotograma de salida, pero puede perder compatibilidad con algunos decoders de JPEG que no gestionan MJPEG por completo.
mpeg2_vaapi
profile y level establecen el valor de profile_and_level_indication.
vp8_vaapi
No se admiten los fotogramas B.
global_quality establece el q_idx usado para los fotogramas que no son keyframes (rango 0-127).
loop_filter_level loop_filter_sharpness
Establece manualmente los parámetros del filtro de bucle.
vp9_vaapi
global_quality establece el q_idx usado para los fotogramas P (rango 0-255).
loop_filter_level loop_filter_sharpness
Establece manualmente los parámetros del filtro de bucle.
Se admiten los fotogramas B, pero el flujo de salida siempre está en el orden de codificación en lugar del orden de presentación. Si los fotogramas B están habilitados, puede ser necesario usar el filtro de bitstream vp9_raw_reorder para modificar el flujo de salida y mostrar los fotogramas en el orden correcto.
Solo se producen fotogramas normales; puede ser necesario el filtro de bitstream vp9_superframe para generar un flujo utilizable con todos los decoders.
9.33 vbn
Encoder de Vizrt Binary Image.
Este formato lo utiliza el proveedor de equipos de radiodifusión Vizrt para streaming rápido de texturas. No se admiten funciones avanzadas del formato como la compresión LZW de los datos de textura o la generación de mipmaps.
9.33.1 Opciones
format string
Establece la compresión de textura que usa el archivo VBN. Puede ser dxt1, dxt5 o raw. El valor predeterminado es dxt5.
9.34 vc2
SMPTE VC-2 (anteriormente BBC Dirac Pro). Este codec estaba dirigido principalmente a la radiodifusión profesional, pero como admite yuv420, yuv422 y yuv444 a 8 (rango limitado o rango completo), 10 o 12 bits, resulta adecuado también para otras tareas que requieren poca sobrecarga y baja compresión (como la grabación de pantalla).
9.34.1 Opciones
b
Establece la tasa de bits de vídeo de destino. Normalmente ronda 1:6 de la tasa de bits del vídeo sin comprimir (por ejemplo, para 1920x1080 a 50 fps yuv422p10 son unos 400 Mbps). Valores más altos (cercanos a la tasa de bits sin comprimir) activan el modo de compresión sin pérdida.
field_order
Habilita la codificación por campos cuando se establece (por ejemplo, en tt: campo superior primero) para entradas entrelazadas. Debería aumentar la compresión con contenido entrelazado, ya que divide los campos y codifica cada uno por separado.
wavelet_depth
Establece la cantidad total de transformadas wavelet que se van a aplicar, entre 1 y 5 (valor predeterminado). Valores más bajos reducen la compresión y la calidad. Los decoders menos capaces pueden no ser capaces de manejar valores de wavelet_depth superiores a 3.
wavelet_type
Establece el tipo de transformada. Actualmente solo están implementadas 5_3 (LeGall) y 9_7 (Deslauriers-Dubuc), siendo 9_7 la que ofrece mejor compresión y, por ello, el valor predeterminado.
slice_width slice_height
Establece el tamaño de slice para cada slice. Valores más grandes dan como resultado una mejor compresión. Para compatibilidad con otros decoders más limitados, use slice_width de 32 y slice_height de 8.
tolerance
Establece la tolerancia de undershoot del sistema de control de tasa, en porcentaje. Esto sirve para evitar que se ejecute una búsqueda costosa.
qm
Establece el preset de matriz de cuantización que se usará de forma predeterminada o cuando wavelet_depth se establece en 5
- - default Usa la matriz de cuantización predeterminada de las especificaciones, ampliada con valores para el quinto nivel. Ofrece un buen equilibrio entre conservar el detalle y evitar artefactos.
- - flat Usa una matriz de cuantización completamente puesta a cero. Esto aumenta el PSNR, pero puede reducir la percepción. Se usa en benchmarks ficticios.
- - color Reduce el detalle, pero intenta preservar el color en tasas de bits extremadamente bajas.
10 Subtitles Encoders
10.1 dvbsub
Este codec codifica el formato de subtítulos en mapa de bits que se usa en las emisiones y grabaciones DVB. Los mapas de bits normalmente se incrustan en un container como MPEG-TS, como un flujo independiente.
10.1.1 Opciones
min_bpp integer (2, 4, or 8)
Establece un valor mínimo de bits por píxel para las tablas de búsqueda de color de los subtítulos.
DVB admite tablas de búsqueda de color de 2, 4 y 8 bits por píxel. Esta opción permite forzar un valor concreto de bits por píxel, independientemente del número de colores. Dado que no todos los reproductores admiten, o admiten correctamente, 2 bits por píxel, este valor es 4 de forma predeterminada.
10.2 dvdsub
Este codec codifica el formato de subtítulos en mapa de bits que se usa en los DVD. Normalmente se almacenan en pares de archivos VOBSUB (.idx + .sub), y también se pueden usar en archivos Matroska.
10.2.1 Opciones
palette
Especifica la paleta global que usan los mapas de bits.
El formato de esta opción es una cadena que contiene 16 números hexadecimales de 24 bits (sin el prefijo 0x) separados por comas, por ejemplo 0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b.
even_rows_fix
Cuando se establece en 1, habilita una solución alternativa que hace que el número de filas de píxeles sea par en todos los subtítulos. Esto corrige un problema de algunos reproductores que recortan la fila inferior si el número es impar. La solución alternativa simplemente añade una fila totalmente transparente si es necesario. La sobrecarga es baja, típicamente un byte por subtítulo de media.
De forma predeterminada, esta solución alternativa está deshabilitada.
10.3 lrc
Este codec codifica el formato de letras LRC.
10.3.1 Opciones
precision
Especifica la precisión de la parte fraccionaria de la marca de tiempo. La base de tiempo se determina en función de este valor.
El valor predeterminado es 2, para centisegundos.
11 Véase también
ffmpeg, ffplay, ffprobe, libavcodec
12 Authors
Los desarrolladores de FFmpeg.
Para más detalles sobre la autoría, consulte el historial de Git del proyecto (https://git.ffmpeg.org/ffmpeg), por ejemplo escribiendo el comando git log en el directorio fuente de FFmpeg, o navegando por el repositorio en línea en https://git.ffmpeg.org/ffmpeg.
Los mantenedores de los componentes específicos figuran en el archivo MAINTAINERS del árbol de código fuente.
Alojamiento proporcionado por telepoint.bg