Documentación de filtros de FFmpeg
1 Descripción
Este documento describe los filtros, las fuentes y los sumideros que proporciona la biblioteca libavfilter.
2 Introducción al filtrado
El filtrado en FFmpeg se habilita a través de la biblioteca libavfilter.
En libavfilter, un filtro puede tener varias entradas y varias salidas. Para ilustrar el tipo de cosas que son posibles, consideremos el siguiente filtergraph.
[main]
input --> split ---------------------> overlay --> output
| ^
|[tmp] [flip]|
+-----> crop --> vflip -------+
Este filtergraph divide el flujo de entrada en dos flujos, envía uno de ellos a través del filtro crop y el filtro vflip, y después lo combina de nuevo con el otro flujo superponiéndolo encima. Puede usarse el siguiente comando para lograrlo:
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
El resultado será que la mitad superior del vídeo se refleja en la mitad inferior del vídeo de salida.
Los filtros de una misma cadena lineal se separan con comas, y las distintas cadenas lineales de filtros se separan con puntos y coma. En nuestro ejemplo, crop,vflip forman una cadena lineal, mientras que split y overlay están cada uno en otra distinta. Los puntos donde se unen las cadenas lineales se etiquetan con nombres encerrados entre corchetes. En el ejemplo, el filtro split genera dos salidas asociadas a las etiquetas [main] y [tmp].
El flujo enviado a la segunda salida de split, etiquetada como [tmp], se procesa con el filtro crop, que recorta la mitad inferior del vídeo, y a continuación se invierte verticalmente. El filtro overlay toma como entrada la primera salida sin modificar del filtro split (la etiquetada como [main]) y superpone en su mitad inferior la salida generada por la cadena de filtros crop,vflip.
Algunos filtros toman como entrada una lista de parámetros: se especifican después del nombre del filtro y un signo igual, y se separan entre sí con dos puntos.
Existen los llamados filtros fuente, que no tienen entrada de audio/vídeo, y los filtros sumidero, que no tendrán salida de audio/vídeo.
3 graph2dot
El programa graph2dot, incluido en el directorio tools de FFmpeg, puede usarse para analizar la descripción de un filtergraph y generar la representación textual correspondiente en el lenguaje dot.
Invoque el siguiente comando:
graph2dot -h
para ver cómo se usa graph2dot.
A continuación, puede pasar la descripción dot al programa dot (del conjunto de programas graphviz) y obtener una representación gráfica del filtergraph.
Por ejemplo, la siguiente secuencia de comandos:
echo GRAPH_DESCRIPTION | \
tools/graph2dot -o graph.tmp && \
dot -Tpng graph.tmp -o graph.png && \
display graph.png
puede usarse para crear y mostrar una imagen que representa el grafo descrito por la cadena GRAPH_DESCRIPTION. Tenga en cuenta que esta cadena debe ser un grafo completo y autocontenido, con sus entradas y salidas definidas explícitamente. Por ejemplo, si su línea de comandos tiene la forma:
ffmpeg -i infile -vf scale=640:360 outfile
su cadena GRAPH_DESCRIPTION deberá tener la forma:
nullsrc,scale=640:360,nullsink
también puede que necesite establecer los parámetros de nullsrc y añadir un filtro format para simular un archivo de entrada concreto.
4 Descripción de un filtergraph
Un filtergraph es un grafo dirigido de filtros conectados. Puede contener ciclos, y puede haber varios enlaces entre un mismo par de filtros. Cada enlace tiene, en un extremo, un pad de entrada que lo conecta con el filtro del que toma su entrada, y en el otro extremo, un pad de salida que lo conecta con el filtro que acepta su salida.
Cada filtro de un filtergraph es una instancia de una clase de filtro registrada en la aplicación, que define las características y el número de pads de entrada y salida del filtro.
Un filtro sin pads de entrada se denomina "fuente", y un filtro sin pads de salida se denomina "sumidero".
4.1 Sintaxis de un filtergraph
Un filtergraph tiene una representación textual, que reconocen las opciones -filter/-vf/-af y -filter_complex de ffmpeg y -vf/-af de ffplay, así como la función avfilter_graph_parse_ptr() definida en libavfilter/avfilter.h.
Una cadena de filtros consiste en una secuencia de filtros conectados, cada uno conectado al anterior de la secuencia. Una cadena de filtros se representa mediante una lista de descripciones de filtro separadas por ",".
Un filtergraph consiste en una secuencia de cadenas de filtros. Una secuencia de cadenas de filtros se representa mediante una lista de descripciones de cadena de filtros separadas por ";".
Un filtro se representa mediante una cadena con la forma: [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
filter_name es el nombre de la clase de filtro de la que el filtro descrito es una instancia, y debe ser el nombre de una de las clases de filtro registradas en el programa, opcionalmente seguido de "@id". El nombre de la clase de filtro puede ir opcionalmente seguido de una cadena "=arguments".
arguments es una cadena que contiene los parámetros usados para inicializar la instancia del filtro. Puede tener una de estas dos formas:
- Una lista de pares key=value separados por ’:’.
- Una lista de valores separados por ’:’. En este caso, se asume que las claves son los nombres de las opciones en el orden en que se declaran. Por ejemplo, el filtro
fadedeclara tres opciones en este orden: type, start_frame y nb_frames. Entonces, la lista de parámetros in:0:30 significa que el valor in se asigna a la opción type, 0 a start_frame y 30 a nb_frames. - Una lista mixta, separada por ’:’, de valores directos y pares key=value largos. El valor directo debe preceder a los pares key=value, y seguir las mismas restricciones de orden del punto anterior. Los pares key=value siguientes pueden establecerse en cualquier orden que se prefiera.
Si el propio valor de la opción es una lista de elementos (por ejemplo, el filtro format toma una lista de pixel formats), los elementos de la lista suelen separarse con ‘|’.
La lista de argumentos puede entrecomillarse usando el carácter ‘'’ como marca inicial y final, y el carácter ‘\’ para escapar los caracteres dentro del texto entrecomillado; en caso contrario, la cadena de argumentos se considera terminada al encontrar el siguiente carácter especial (perteneciente al conjunto ‘[]=;,’).
Una sintaxis especial implementada en la herramienta CLI ffmpeg permite cargar valores de opción desde archivos. Esto se hace anteponiendo una barra ’/’ al nombre de la opción; el valor proporcionado se interpreta entonces como una ruta desde la que se carga el valor real. Por ejemplo,
ffmpeg -i <INPUT> -vf drawtext=/text=/tmp/some_text <OUTPUT>
cargará el texto que se va a dibujar desde /tmp/some_text. Los usuarios de la API que deseen implementar una funcionalidad similar deben usar las funciones avfilter_graph_segment_*() junto con código de E/S personalizado.
El nombre y los argumentos del filtro pueden ir opcionalmente precedidos y seguidos de una lista de etiquetas de enlace. Una etiqueta de enlace permite dar nombre a un enlace y asociarlo a un pad de salida o de entrada de un filtro. Las etiquetas precedentes in_link_1 ... in_link_N se asocian a los pads de entrada del filtro, y las etiquetas siguientes out_link_1 ... out_link_M se asocian a los pads de salida.
Cuando se encuentran dos etiquetas de enlace con el mismo nombre en el filtergraph, se crea un enlace entre el pad de entrada y el de salida correspondientes.
Si un pad de salida no está etiquetado, se enlaza de forma predeterminada con el primer pad de entrada sin etiquetar del siguiente filtro de la cadena de filtros. Por ejemplo, en la cadena de filtros
nullsrc, split[L1], [L2]overlay, nullsink
la instancia del filtro split tiene dos pads de salida, y la instancia del filtro overlay, dos pads de entrada. El primer pad de salida de split se etiqueta como "L1", el primer pad de entrada de overlay se etiqueta como "L2", y el segundo pad de salida de split se enlaza con el segundo pad de entrada de overlay, ambos sin etiquetar.
En una descripción de filtro, si no se especifica la etiqueta de entrada del primer filtro, se asume "in"; si no se especifica la etiqueta de salida del último filtro, se asume "out".
En una cadena de filtros completa, todos los pads de entrada y salida de filtro sin etiquetar deben estar conectados. Un filtergraph se considera válido si están conectados todos los pads de entrada y salida de filtro de todas las cadenas de filtros.
Los espacios en blanco iniciales y finales (espacios, tabulaciones o saltos de línea) que separan los tokens en la especificación del filtergraph se ignoran. Esto significa que el filtergraph puede expresarse usando líneas vacías y espacios para mejorar la legibilidad.
Por ejemplo, el filtergraph:
testsrc,split[L1],hflip[L2];[L1][L2] hstack
puede representarse como:
testsrc,
split [L1], hflip [L2];
[L1][L2] hstack
Libavfilter insertará automáticamente filtros scale donde se requiera conversión de formato. Es posible especificar flags de swscale para esos escaladores insertados automáticamente anteponiendo sws_flags=flags; a la descripción del filtergraph.
A continuación se muestra una descripción BNF de la sintaxis de un filtergraph:
NAME ::= sequence of alphanumeric characters and '_'
FILTER_NAME ::= NAME["@"NAME]
LINKLABEL ::= "[" NAME "]"
LINKLABELS ::= LINKLABEL [LINKLABELS]
FILTER_ARGUMENTS ::= sequence of chars (possibly quoted)
FILTER ::= [LINKLABELS] FILTER_NAME ["=" FILTER_ARGUMENTS] [LINKLABELS]
FILTERCHAIN ::= FILTER [,FILTERCHAIN]
FILTERGRAPH ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]
4.2 Notas sobre el escapado en un filtergraph
La composición de la descripción de un filtergraph implica varios niveles de escapado. Consulte (ffmpeg-utils)la sección "Comillado y escape" del manual ffmpeg-utils(1) para más información sobre el procedimiento de escapado empleado.
Un primer nivel de escapado afecta al contenido de cada valor de opción de filtro, que puede contener el carácter especial : usado para separar valores, o uno de los caracteres de escape \'.
Un segundo nivel de escapado afecta a toda la descripción del filtro, que puede contener los caracteres de escape \' o los caracteres especiales [],; usados por la descripción del filtergraph.
Por último, al especificar un filtergraph en una línea de comandos de shell, es necesario realizar un tercer nivel de escapado para los caracteres especiales de shell que contenga.
Por ejemplo, considere la siguiente cadena que se va a incrustar en el valor de text de la descripción del filtro drawtext:
this is a 'string': may contain one, or more, special characters
Esta cadena contiene el carácter especial de escape ' y el carácter especial :, por lo que debe escaparse de esta forma:
text=this is a \'string\'\: may contain one, or more, special characters
Se requiere un segundo nivel de escapado al incrustar la descripción del filtro en una descripción de filtergraph, con el fin de escapar todos los caracteres especiales del filtergraph. Así, el ejemplo anterior queda:
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
(tenga en cuenta que, además de los caracteres especiales de escape \', también hay que escapar ,).
Por último, se necesita un nivel adicional de escapado al escribir la descripción del filtergraph en un comando de shell, lo cual depende de las reglas de escapado del shell utilizado. Por ejemplo, suponiendo que \ es especial y debe escaparse con otro \, la cadena anterior resulta finalmente en:
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
Para evitar un escapado engorroso al usar una herramienta de línea de comandos que acepte como entrada una especificación de filtro, es aconsejable evitar la inclusión directa de la especificación del filtro o de las opciones en el shell.
Por ejemplo, en el caso del filtro drawtext, quizá prefiera usar la opción textfile en lugar de text para especificar el texto que se va a renderizar.
5 Edición de línea de tiempo
Algunos filtros admiten una opción genérica enable. En los filtros que admiten edición de línea de tiempo, esta opción puede establecerse con una expresión que se evalúa antes de enviar un fotograma al filtro. Si la evaluación es distinta de cero, el filtro se activa; en caso contrario, el fotograma se envía sin modificar al siguiente filtro del filtergraph.
La expresión acepta los siguientes valores:
‘t’
marca de tiempo expresada en segundos; NAN si la marca de tiempo de entrada es desconocida
‘n’
número secuencial del fotograma de entrada, empezando en 0
‘pos’
la posición en el archivo del fotograma de entrada; NAN si se desconoce; obsoleto, no usar
‘w’ ‘h’
ancho y alto del fotograma de entrada, si es vídeo
Además, estos filtros admiten un comando enable que puede usarse para redefinir la expresión.
Al igual que cualquier otra opción de filtrado, la opción enable sigue las mismas reglas.
Por ejemplo, para activar un filtro de desenfoque (smartblur) de los 10 segundos a los 3 minutos, y un filtro curves a partir de los 3 segundos:
smartblur = enable='between(t,10,3*60)',
curves = enable='gte(t,3)' : preset=cross_process
Consulte ffmpeg -filters para ver qué filtros admiten edición de línea de tiempo.
6 Cambio de opciones en tiempo de ejecución mediante un comando
Algunas opciones pueden cambiarse durante el funcionamiento del filtro mediante un comando. Estas opciones se marcan con ’T’ en la salida de ffmpeg -h filter=
7 Opciones para filtros con varias entradas (framesync)
Algunos filtros con varias entradas admiten un conjunto común de opciones. Estas opciones solo pueden establecerse por nombre, no con la notación corta.
eof_action
La acción que se debe tomar cuando se encuentra EOF en la entrada secundaria; acepta uno de los siguientes valores:
repeat
Repite el último fotograma (opción predeterminada).
endall
Finaliza ambos flujos.
pass
Deja pasar la entrada principal sin modificar.
shortest
Si se establece en 1, fuerza a que la salida finalice cuando termine la entrada más corta. El valor predeterminado es 0.
repeatlast
Si se establece en 1, fuerza al filtro a extender el último fotograma de los flujos secundarios hasta el final del flujo principal. Un valor de 0 desactiva este comportamiento. El valor predeterminado es 1.
ts_sync_mode
Con qué rigor sincronizar los flujos en función de las marcas de tiempo de la entrada secundaria; acepta uno de los siguientes valores:
default
Fotograma de la entrada secundaria con la marca de tiempo inferior o igual más cercana al fotograma de la entrada principal.
nearest
Fotograma de la entrada secundaria con la marca de tiempo más cercana en valor absoluto al fotograma de la entrada principal.
8 Filtros de audio
Al configurar su compilación de FFmpeg, puede desactivar cualquiera de los filtros existentes mediante --disable-filters. La salida de configure mostrará los filtros de audio incluidos en su compilación.
A continuación se describen los filtros de audio actualmente disponibles.
8.1 aap
Aplica el algoritmo Affine Projection al primer flujo de audio usando el segundo flujo de audio.
Este filtro adaptativo se usa para estimar audio desconocido a partir de varias muestras de audio de entrada. El algoritmo affine projection puede equilibrar la complejidad de cálculo con la velocidad de convergencia.
A continuación se describen las opciones aceptadas.
order
Establece el orden del filtro.
projection
Establece el orden de la proyección.
mu
Establece el mu del filtro.
delta
Establece el coeficiente para inicializar la matriz de covarianza interna.
out_mode
Establece las muestras de salida del filtro. Acepta los siguientes valores:
i
Deja pasar la 1.ª entrada.
d
Deja pasar la 2.ª entrada.
o
Deja pasar la diferencia entre la señal deseada (2.ª entrada) y la estimación de la señal de error.
n
Deja pasar la diferencia entre la entrada (1.ª entrada) y la estimación de la señal de error.
e
Deja pasar las muestras estimadas de la señal de error.
El valor predeterminado es o.
precision
Establece qué precisión usar al procesar las muestras.
auto
Elige automáticamente el sample format interno en función de otros filtros.
float
Usa siempre un sample format de precisión de coma flotante simple.
double
Usa siempre un sample format de precisión de coma flotante doble.
8.2 acompressor
Un compresor se usa principalmente para reducir el rango dinámico de una señal. La música moderna, en particular, suele comprimirse con una relación alta para mejorar la sonoridad general. Esto se hace para captar al máximo la atención del oyente, "engordar" el sonido y aportar más "potencia" a la pista. Si una señal se comprime demasiado, después puede sonar apagada o "muerta", o puede empezar a "bombear" (lo cual puede ser un efecto potente, pero también puede arruinar por completo una pista). La compresión adecuada es la clave para lograr un sonido profesional y es el arte más refinado de la mezcla y la masterización. Debido a lo complejo de sus ajustes, puede llevar bastante tiempo encontrar la sensación adecuada para este tipo de efecto.
La compresión se realiza detectando el volumen que supera un nivel threshold elegido y dividiéndolo por el factor establecido con ratio. Así, si establece threshold en -12dB y su señal alcanza los -6dB, una ratio de 2:1 dará como resultado una señal de -9dB. Como una manipulación exacta de la señal provocaría distorsión de la forma de onda, la reducción puede suavizarse a lo largo del tiempo. Esto se hace estableciendo "Attack" y "Release". attack determina cuánto tiempo debe permanecer la señal por encima del threshold antes de que se produzca cualquier reducción, y release establece el tiempo que la señal debe permanecer por debajo del threshold para que la reducción vuelva a disminuir. Las señales más cortas que el tiempo de attack elegido se dejarán intactas. La reducción global de la señal puede compensarse después con el ajuste makeup. Así, comprimir los picos de una señal unos 6dB y elevar el makeup a ese nivel da como resultado una señal el doble de alta que la fuente. Para conseguir una entrada más suave en la compresión, knee suaviza el borde brusco en el threshold dentro del rango de decibelios elegido.
El filtro acepta las siguientes opciones:
level_in
Establece la ganancia de entrada. El valor predeterminado es 1. El rango va de 0.015625 a 64.
mode
Establece el modo de funcionamiento del compresor. Puede ser upward o downward. El valor predeterminado es downward.
threshold
Si la señal del flujo supera este nivel, afectará a la reducción de ganancia. El valor predeterminado es 0.125. El rango va de 0.00097563 a 1.
ratio
Establece la ratio con la que se reduce la señal. 1:2 significa que si el nivel sube 4dB por encima del threshold, tras la reducción quedará solo 2dB por encima. El valor predeterminado es 2. El rango va de 1 a 20.
attack
Cantidad de milisegundos que la señal debe permanecer por encima del threshold antes de que empiece la reducción de ganancia. El valor predeterminado es 20. El rango va de 0.01 a 2000.
release
Cantidad de milisegundos que la señal debe permanecer por debajo del threshold antes de que la reducción vuelva a disminuir. El valor predeterminado es 250. El rango va de 0.01 a 9000.
makeup
Establece la cantidad en la que se amplificará la señal después del procesamiento. El valor predeterminado es 1. El rango va de 1 a 64.
knee
Suaviza el knee brusco alrededor del threshold para entrar en la reducción de ganancia de forma más gradual. El valor predeterminado es 2.82843. El rango va de 1 a 8.
link
Elige si la reducción se ve afectada por el nivel average entre todos los canales del flujo de entrada, o por el canal más alto (maximum) del flujo de entrada. El valor predeterminado es average.
detection
Determina si se toma la señal exacta en el caso de peak, o una señal RMS en el caso de rms. El valor predeterminado es rms, que suele ser más suave.
mix
Cuánta señal comprimida usar en la salida. El valor predeterminado es 1. El rango va de 0 a 1.
8.2.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.3 acontrast
Filtro sencillo de compresión/expansión del rango dinámico de audio.
El filtro acepta las siguientes opciones:
contrast
Establece el contraste. El valor predeterminado es 33. El rango permitido va de 0 a 100.
8.4 acopy
Copia la fuente de audio de entrada sin modificar a la salida. Es útil principalmente para pruebas.
8.5 acrossfade
Aplica un fundido cruzado de un flujo de audio de entrada a otro flujo de audio de entrada. El fundido cruzado se aplica durante la duración especificada cerca del final del primer flujo.
El filtro acepta las siguientes opciones:
inputs, n
Especifica el número de entradas para el fundido cruzado. Al aplicar el fundido cruzado a varias entradas, cada entrada se concatena y se funde en secuencia, de forma similar al filtro concat. El valor predeterminado es 2.
nb_samples, ns
Especifica el número de muestras que debe durar el efecto de fundido cruzado. Al final del efecto de fundido cruzado, el primer audio de entrada quedará completamente en silencio. El valor predeterminado es 44100.
duration, d
Especifica la duración del efecto de fundido cruzado. Consulte (ffmpeg-utils)la sección Time duration del manual ffmpeg-utils(1) para conocer la sintaxis aceptada. De forma predeterminada, la duración la determina nb_samples. Si se establece, esta opción se usa en lugar de nb_samples.
overlap, o
Determina si el final del primer flujo se solapa con el inicio del segundo flujo. El valor predeterminado es que está activado.
curve1
Establece la curva de transición del fundido cruzado para el primer flujo.
curve2
Establece la curva de transición del fundido cruzado para el segundo flujo.
Para la descripción de los tipos de curva disponibles, consulte la descripción del filtro afade.
8.5.1 Ejemplos
-
Fundido cruzado de una entrada a otra:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac -
Fundido cruzado de una entrada a otra, pero sin solapamiento:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
Concatena varias entradas con fundido cruzado entre cada una:
ffmpeg -i first.flac -i second.flac -i third.flac -filter_complex acrossfade=n=3 output.flac
8.6 acrossover
Divide el flujo de audio en varias bandas.
Este filtro divide el flujo de audio en dos o más rangos de frecuencia. Sumar de nuevo todos los flujos da como resultado una salida plana.
El filtro acepta las siguientes opciones:
split
Establece las frecuencias de división. Deben ser positivas y crecientes.
order
Establece el orden del filtro para cada división de banda. Esto controla el roll-off del filtro, es decir, la pendiente de la función de transferencia del filtro. Los valores disponibles son:
‘2nd’
12 dB por octava.
‘4th’
24 dB por octava.
‘6th’
36 dB por octava.
‘8th’
48 dB por octava.
‘10th’
60 dB por octava.
‘12th’
72 dB por octava.
‘14th’
84 dB por octava.
‘16th’
96 dB por octava.
‘18th’
108 dB por octava.
‘20th’
120 dB por octava.
El valor predeterminado es 4th.
level
Establece el nivel de ganancia de entrada. El rango permitido va de 0 a 1. El valor predeterminado es 1.
gains
Establece la ganancia de salida para cada banda. El valor predeterminado es 1 para todas las bandas.
precision
Establece qué precisión usar al procesar las muestras.
auto
Elige automáticamente el sample format interno en función de otros filtros.
float
Usa siempre un sample format de precisión de coma flotante simple.
double
Usa siempre un sample format de precisión de coma flotante doble.
El valor predeterminado es auto.
8.6.1 Ejemplos
-
Divide el flujo de audio de entrada en dos bandas (baja y alta) con una frecuencia de división de 1500 Hz; cada banda estará en un flujo independiente:
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav -
Igual que el anterior, pero con un orden de filtro más alto:
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav -
Igual que el anterior, pero con una banda media adicional (frecuencias entre 1500 y 8000):
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
8.7 acrusher
Reduce la resolución de bits del audio.
Este filtro es un bit crusher con funcionalidad ampliada. Un bit crusher se usa para reducir de forma audible el número de bits con los que se muestrea una señal de audio. Esto no cambia en absoluto la profundidad de bits, solo produce el efecto. El material con la profundidad de bits reducida suena más áspero y "digital". Este filtro incluso puede redondear a valores continuos en lugar de a profundidades de bits discretas. Además, tiene un offset de DC que hace que la mitad inferior y la superior de la señal se recorten de forma distinta. Un ajuste de antialiasing puede producir sonidos de crushing más "suaves".
Otra característica de este filtro es el modo logarítmico. Este ajuste cambia las distancias lineales entre bits por distancias logarítmicas. El resultado es un crusher de sonido mucho más "natural", que por ejemplo no corta las señales bajas. El oído humano tiene una percepción logarítmica, por lo que este tipo de crushing resulta mucho más agradable. El crushing logarítmico también puede aplicarse con antialiasing.
El filtro acepta las siguientes opciones:
level_in
Establece el nivel de entrada.
level_out
Establece el nivel de salida.
bits
Establece la reducción de bits.
mix
Establece la cantidad de mezcla.
mode
Puede ser lineal: lin, o logarítmico: log.
dc
Establece el DC.
aa
Establece el antialiasing.
samples
Establece la reducción de muestras.
lfo
Activa el LFO. Desactivado de forma predeterminada.
lforange
Establece el rango del LFO.
lforate
Establece la frecuencia del LFO.
8.7.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.8 acue
Retrasa el filtrado de audio hasta una marca de tiempo de reloj de pared determinada. Consulte el filtro cue.
8.9 adeclick
Elimina el ruido impulsivo del audio de entrada.
Las muestras detectadas como ruido impulsivo se sustituyen por muestras interpoladas mediante modelado autorregresivo.
window, w
Establece el tamaño de la ventana, en milisegundos. El rango permitido va de 10 a 100. El valor predeterminado es 55 milisegundos. Esto establece el tamaño de la ventana que se procesará de una vez.
overlap, o
Establece el solapamiento de ventana, como porcentaje del tamaño de la ventana. El rango permitido va de 50 a 95. El valor predeterminado es 75 por ciento. Establecer un valor muy alto aumenta la eliminación de ruido impulsivo, pero hace que todo el proceso sea mucho más lento.
arorder, a
Establece el orden de autorregresión, como porcentaje del tamaño de la ventana. El rango permitido va de 0 a 25. El valor predeterminado es 2 por ciento. Esta opción también controla la calidad de las muestras interpoladas usando las buenas muestras vecinas.
threshold, t
Establece el valor de threshold. El rango permitido va de 1 a 100. El valor predeterminado es 2. Esto controla la intensidad del ruido impulsivo que se va a eliminar. Cuanto más bajo sea el valor, más muestras se detectarán como ruido impulsivo.
burst, b
Establece la fusión de ráfagas, como porcentaje del tamaño de la ventana. El rango permitido es de 0 a 10. El valor predeterminado es 2. Si dos muestras detectadas como ruido están separadas por una distancia menor que este valor, cualquier muestra entre esas dos muestras también se detectará como ruido.
method, m
Establece el método de solapamiento.
Acepta los siguientes valores:
add, a
Selecciona el método overlap-add. Con este método, incluso las muestras no interpoladas se modifican ligeramente.
save, s
Selecciona el método overlap-save. Las muestras no interpoladas permanecen sin cambios.
El valor predeterminado es a.
8.10 adeclip
Elimina las muestras recortadas (clipping) del audio de entrada.
Las muestras detectadas como recortadas se sustituyen por muestras interpoladas mediante modelado autorregresivo.
window, w
Establece el tamaño de la ventana, en milisegundos. El rango permitido va de 10 a 100. El valor predeterminado es 55 milisegundos. Esto establece el tamaño de la ventana que se procesará de una vez.
overlap, o
Establece el solapamiento de ventana, como porcentaje del tamaño de la ventana. El rango permitido va de 50 a 95. El valor predeterminado es 75 por ciento.
arorder, a
Establece el orden de autorregresión, como porcentaje del tamaño de la ventana. El rango permitido va de 0 a 25. El valor predeterminado es 8 por ciento. Esta opción también controla la calidad de las muestras interpoladas usando las buenas muestras vecinas.
threshold, t
Establece el valor de threshold. El rango permitido va de 1 a 100. El valor predeterminado es 10. Los valores más altos hacen que la detección de recortes sea menos agresiva.
hsize, n
Establece el tamaño del histograma usado para detectar recortes. El rango permitido va de 100 a 9999. El valor predeterminado es 1000. Los valores más altos hacen que la detección de recortes sea menos agresiva.
method, m
Establece el método de solapamiento.
Acepta los siguientes valores:
add, a
Selecciona el método overlap-add. Con este método, incluso las muestras no interpoladas se modifican ligeramente.
save, s
Selecciona el método overlap-save. Las muestras no interpoladas permanecen sin cambios.
El valor predeterminado es a.
8.11 adecorrelate
Aplica decorrelación al flujo de audio de entrada.
El filtro acepta las siguientes opciones:
stages
Establece las etapas de decorrelación del filtrado. El rango permitido va de 1 a 16. El valor predeterminado es 6.
seed
Establece la semilla aleatoria usada para fijar el retardo en muestras entre canales.
8.12 adelay
Retrasa uno o más canales de audio.
Las muestras del canal retrasado se rellenan con silencio.
El filtro acepta la siguiente opción:
delays
Establece la lista de retardos en milisegundos para cada canal, separados por ’|’. Los retardos no usados se ignorarán silenciosamente. Si el número de retardos dados es menor que el número de canales, los canales restantes no se retrasarán. Si desea retrasar un número exacto de muestras, añada ’S’ al número. Si en cambio desea retrasar en segundos, añada ’s’ al número.
all
Usa el último retardo establecido para todos los canales restantes. Está desactivada de forma predeterminada. Si esta opción está activada, cambia el modo en que se interpreta la opción delays.
8.12.1 Ejemplos
-
Retrasa el primer canal 1.5 segundos, el tercer canal 0.5 segundos, y deja sin cambios el segundo canal (y cualquier otro canal que pueda estar presente).
adelay=1500|0|500 -
Retrasa el segundo canal 500 muestras, el tercer canal 700 muestras, y deja sin cambios el primer canal (y cualquier otro canal que pueda estar presente).
adelay=0|500S|700S -
Retrasa todos los canales el mismo número de muestras:
adelay=delays=64S:all=1
8.13 adenorm
Corrige los denormals en el audio añadiendo ruido de nivel extremadamente bajo.
Este filtro debe colocarse antes de cualquier filtro que pueda producir denormals.
A continuación se describen los parámetros aceptados.
level
Establece el nivel del ruido añadido, en dB. El valor predeterminado es -351. El rango permitido va de -451 a -90.
type
Establece el tipo de ruido añadido.
dc
Añade señal de DC.
ac
Añade señal de AC.
square
Añade señal cuadrada.
pulse
Añade señal de pulso.
El valor predeterminado es dc.
8.13.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.14 aderivative, aintegral
Calcula la derivada/integral del flujo de audio.
Al aplicar ambos filtros uno tras otro se obtiene el audio original.
8.15 adrc
Aplica un filtro de control dinámico de rango espectral al flujo de audio de entrada.
A continuación se describen las opciones aceptadas.
transfer
Establece la expresión de transferencia.
La expresión puede contener las siguientes constantes:
ch
número del canal actual
sn
número de la muestra actual
nb_channels
número de canales
t
marca de tiempo expresada en segundos
sr
frecuencia de muestreo
p
valor actual de potencia de la frecuencia, en dB
f
frecuencia actual en Hz
El valor predeterminado es p.
attack
Establece el ataque en milisegundos. El valor predeterminado es 50 milisegundos. El rango permitido va de 1 a 1000 milisegundos.
release
Establece la relajación en milisegundos. El valor predeterminado es 100 milisegundos. El rango permitido va de 5 a 2000 milisegundos.
channels
Establece qué canales se van a filtrar; de forma predeterminada se filtran todos los canales (all) del flujo de audio.
8.15.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.15.2 Ejemplos
-
Aplica compresión espectral a todas las frecuencias con un umbral de -50 dB y una relación 1:6:
adrc=transfer='if(gt(p,-50),-50+(p-(-50))/6,p)':attack=50:release=100 -
Similar a lo anterior, pero con una relación 1:2 y filtrando solo el canal central frontal:
adrc=transfer='if(gt(p,-50),-50+(p-(-50))/2,p)':attack=50:release=100:channels=FC -
Aplica una puerta de ruido espectral a todas las frecuencias con un umbral de -85 dB y con tiempos de ataque y de relajación cortos:
adrc=transfer='if(lte(p,-85),p-800,p)':attack=1:release=5 -
Aplica expansión espectral a todas las frecuencias con un umbral de -10 dB y una relación 1:2:
adrc=transfer='if(lt(p,-10),-10+(p-(-10))*2,p)':attack=50:release=100 -
Aplica un limitador a un máximo de -60 dB en todas las frecuencias, con un ataque de 2 ms y una relajación de 10 ms:
adrc=transfer='min(p,-60)':attack=2:release=10
8.16 adynamicequalizer
Aplica ecualización dinámica al flujo de audio de entrada.
A continuación se describen las opciones aceptadas.
threshold
Establece el umbral de detección que activa la ecualización. La detección del umbral utiliza un filtro de detección. El valor predeterminado es 0. El rango permitido va de 0 a 100.
dfrequency
Establece la frecuencia de detección en Hz que usa el filtro de detección para activar la ecualización. El valor predeterminado es 1000 Hz. El rango permitido va de 2 a 1000000 Hz.
dqfactor
Establece el factor de resonancia de detección del filtro de detección que activa la ecualización. El valor predeterminado es 1. El rango permitido va de 0.001 a 1000.
tfrequency
Establece la frecuencia objetivo del filtro de ecualización. El valor predeterminado es 1000 Hz. El rango permitido va de 2 a 1000000 Hz.
tqfactor
Establece el factor de resonancia objetivo del filtro de ecualización. El valor predeterminado es 1. El rango permitido va de 0.001 a 1000.
attack
Establece la cantidad de milisegundos que la señal de detección debe permanecer por encima del umbral de detección antes de que comience la ecualización. El valor predeterminado es 20. El rango permitido va de 1 a 2000.
release
Establece la cantidad de milisegundos que la señal de detección debe permanecer por debajo del umbral de detección antes de que termine la ecualización. El valor predeterminado es 200. El rango permitido va de 1 a 2000.
ratio
Establece la relación con la que se incrementa la ganancia de ecualización. El valor predeterminado es 1. El rango permitido va de 0 a 30.
makeup
Establece el desplazamiento de compensación (makeup) con el que se incrementa la ganancia de ecualización. El valor predeterminado es 0. El rango permitido va de 0 a 100.
range
Establece la cantidad máxima permitida de corte/aumento. El valor predeterminado es 50. El rango permitido va de 1 a 200.
mode
Establece el modo de funcionamiento del filtro; puede ser uno de los siguientes:
‘listen’
Emite únicamente la señal de detección aislada.
‘cutbelow’
Corta las frecuencias por debajo del umbral de detección.
‘cutabove’
Corta las frecuencias por encima del umbral de detección.
‘boostbelow’
Aumenta las frecuencias por debajo del umbral de detección.
‘boostabove’
Aumenta las frecuencias por encima del umbral de detección.
El modo predeterminado es ‘cutbelow’.
dftype
Establece el tipo de filtro de detección; puede ser uno de los siguientes:
‘bandpass’ ‘lowpass’ ‘highpass’ ‘peak’
El tipo predeterminado es ‘bandpass’.
tftype
Establece el tipo de filtro objetivo; puede ser uno de los siguientes:
‘bell’ ‘lowshelf’ ‘highshelf’
El tipo predeterminado es ‘bell’.
auto
Recopila automáticamente el umbral a partir del filtro de detección. De forma predeterminada está en ‘disabled’. Esta opción es útil para detectar el umbral en un intervalo de tiempo determinado del flujo de audio de entrada; en ese caso, el valor de la opción se cambia en tiempo de ejecución.
Los valores disponibles son:
‘disabled’
Desactiva el uso del valor de umbral obtenido automáticamente.
‘off’
Deja de recopilar el valor del umbral.
‘on’
Empieza a recopilar el valor del umbral.
‘adaptive’
Recopila el valor del umbral de forma adaptativa, calculando la entropía de la ventana deslizante.
precision
Establece qué precisión usar al procesar las muestras.
auto
Selecciona automáticamente el sample format interno en función de otros filtros.
float
Usa siempre el sample format de precisión simple (coma flotante).
double
Usa siempre el sample format de precisión doble (coma flotante).
8.16.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.17 adynamicsmooth
Aplica suavizado dinámico al flujo de audio de entrada.
A continuación se describen las opciones aceptadas.
sensitivity
Establece la sensibilidad a las fluctuaciones de frecuencia. El valor predeterminado es 2. El rango permitido va de 0 a 1e+06.
basefreq
Establece una frecuencia base para el suavizado. El valor predeterminado es 22050. El rango permitido va de 2 a 1e+06.
8.17.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.18 aecho
Aplica eco al audio de entrada.
Los ecos son sonidos reflejados y pueden producirse de forma natural entre montañas (y a veces en edificios grandes) al hablar o gritar; los efectos de eco digital emulan este comportamiento y suelen usarse para dar más cuerpo al sonido de un solo instrumento o una voz. La diferencia de tiempo entre la señal original y el reflejo es el delay, y la intensidad de la señal reflejada es el decay. Varios ecos pueden tener distintos delays y decays.
A continuación se describen los parámetros aceptados.
in_gain
Establece la ganancia de entrada de la señal reflejada. El valor predeterminado es 0.6.
out_gain
Establece la ganancia de salida de la señal reflejada. El valor predeterminado es 0.3.
delays
Establece la lista de intervalos de tiempo en milisegundos entre la señal original y los reflejos, separados por ’|’. El rango permitido para cada delay es (0 - 90000.0]. El valor predeterminado es 1000.
decays
Establece la lista de intensidades de las señales reflejadas, separadas por ’|’. El rango permitido para cada decay es (0 - 1.0]. El valor predeterminado es 0.5.
8.18.1 Ejemplos
-
Hace que suene como si hubiera el doble de instrumentos de los que realmente están sonando:
aecho=0.8:0.88:60:0.4 -
Si el delay es muy corto, suena como un robot (metálico) tocando música:
aecho=0.8:0.88:6:0.4 -
Un delay más largo sonará como un concierto al aire libre en las montañas:
aecho=0.8:0.9:1000:0.3 -
Igual que lo anterior, pero con una montaña más:
aecho=0.8:0.9:1000|1800:0.3|0.25
8.19 aemphasis
El filtro de énfasis de audio crea o restaura material tomado directamente de discos de vinilo o CD con énfasis, aplicando distintas curvas de filtro. Por ejemplo, para grabar música en vinilo, primero hay que alterar la señal con un filtro para compensar los inconvenientes de este soporte de grabación. Una vez reproducido el material, hay que aplicar el filtro inverso para restaurar la distorsión de la respuesta en frecuencia.
El filtro acepta las siguientes opciones:
level_in
Establece la ganancia de entrada.
level_out
Establece la ganancia de salida.
mode
Establece el modo del filtro. Para restaurar material, use el modo reproduction; en caso contrario, use el modo production. El valor predeterminado es el modo reproduction.
type
Establece el tipo de filtro. Selecciona el soporte. Puede ser uno de los siguientes:
col
selecciona Columbia.
emi
selecciona EMI.
bsi
selecciona BSI (78RPM).
riaa
selecciona RIAA.
cd
selecciona Compact Disc (CD).
50fm
selecciona 50µs (FM).
75fm
selecciona 75µs (FM).
50kf
selecciona 50µs (FM-KF).
75kf
selecciona 75µs (FM-KF).
8.19.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.20 aeval
Modifica una señal de audio según las expresiones especificadas.
Este filtro acepta una o más expresiones (una por cada canal), que se evalúan y se usan para modificar la señal de audio correspondiente.
Acepta los siguientes parámetros:
exprs
Establece la lista de expresiones separadas por ’|’ para cada canal independiente. Si el número de canales de entrada es mayor que el número de expresiones, la última expresión especificada se usa para los canales de salida restantes.
channel_layout, c
Establece la disposición de los canales de salida. Si no se especifica, la disposición de canales viene determinada por el número de expresiones. Si se establece en ‘same’, se usará de forma predeterminada la misma disposición de canales de entrada.
Cada expresión de exprs puede contener las siguientes constantes y funciones:
ch
número de canal de la expresión actual
n
número de la muestra evaluada, empezando en 0
s
frecuencia de muestreo
t
tiempo de la muestra evaluada, expresado en segundos
nb_in_channels nb_out_channels
número de canales de entrada y de salida
val(CH)
el valor del canal de entrada número CH
Nota: este filtro es lento. Para un procesamiento más rápido, use un filtro dedicado.
8.20.1 Ejemplos
-
Mitad de volumen:
aeval=val(ch)/2:c=same -
Invierte la fase del segundo canal:
aeval=val(0)|-val(1)
8.21 aexciter
Un excitador se usa para producir sonido agudo que no está presente en la señal original. Esto se consigue creando distorsiones armónicas de la señal, restringidas en rango, que se añaden a la señal original. Un excitador eleva el extremo superior de una señal de audio sin simplemente realzar las frecuencias más altas como haría un ecualizador, para crear un sonido más "nítido" o "brillante".
El filtro acepta las siguientes opciones:
level_in
Establece el nivel de entrada antes de procesar la señal. El rango permitido va de 0 a 64. El valor predeterminado es 1.
level_out
Establece el nivel de salida después de procesar la señal. El rango permitido va de 0 a 64. El valor predeterminado es 1.
amount
Establece la cantidad de armónicos añadidos a la señal original. El rango permitido va de 0 a 64. El valor predeterminado es 1.
drive
Establece la cantidad de armónicos de nueva creación. El rango permitido va de 0.1 a 10. El valor predeterminado es 8.5.
blend
Establece la octava de los armónicos de nueva creación. El rango permitido va de -10 a 10. El valor predeterminado es 0.
freq
Establece el límite inferior de frecuencia para producir armónicos, en Hz. El rango permitido va de 2000 a 12000 Hz. El valor predeterminado es 7500 Hz.
ceil
Establece el límite superior de frecuencia para producir armónicos. El rango permitido va de 9999 a 20000 Hz. Si el valor es inferior a 10000 Hz, no se aplica ningún límite.
listen
Silencia la señal original y emite únicamente los armónicos añadidos. Está desactivado de forma predeterminada.
8.21.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.22 afade
Aplica un efecto de fundido de entrada/salida al audio de entrada.
A continuación se describen los parámetros aceptados.
type, t
Especifica el tipo de efecto; puede ser in para fundido de entrada, u out para un efecto de fundido de salida. El valor predeterminado es in.
start_sample, ss
Especifica el número de la muestra inicial a partir de la cual se empieza a aplicar el efecto de fundido. El valor predeterminado es 0.
nb_samples, ns
Especifica el número de muestras durante las que debe durar el efecto de fundido. Al final del efecto de fundido de entrada, el audio de salida tendrá el mismo volumen que el audio de entrada; al final de la transición de fundido de salida, el audio de salida será silencio. El valor predeterminado es 44100.
start_time, st
Especifica el momento de inicio del efecto de fundido. El valor predeterminado es 0. El valor debe especificarse como una duración de tiempo; consulte (ffmpeg-utils)the Time duration section in the ffmpeg-utils(1) manual para conocer la sintaxis aceptada. Si se establece, esta opción se usa en lugar de start_sample.
duration, d
Especifica la duración del efecto de fundido. Consulte (ffmpeg-utils)the Time duration section in the ffmpeg-utils(1) manual para conocer la sintaxis aceptada. Al final del efecto de fundido de entrada, el audio de salida tendrá el mismo volumen que el audio de entrada; al final de la transición de fundido de salida, el audio de salida será silencio. De forma predeterminada, la duración viene determinada por nb_samples. Si se establece, esta opción se usa en lugar de nb_samples.
curve
Establece la curva para la transición de fundido.
Acepta los siguientes valores:
tri
selecciona pendiente triangular y lineal (predeterminado)
qsin
selecciona un cuarto de onda senoidal
hsin
selecciona media onda senoidal
esin
selecciona onda senoidal exponencial
log
selecciona logarítmica
ipar
selecciona parábola invertida
qua
selecciona cuadrática
cub
selecciona cúbica
squ
selecciona raíz cuadrada
cbr
selecciona raíz cúbica
par
selecciona parábola
exp
selecciona exponencial
iqsin
selecciona un cuarto de onda senoidal invertida
ihsin
selecciona media onda senoidal invertida
dese
selecciona asiento doble-exponencial
desi
selecciona sigmoide doble-exponencial
losi
selecciona sigmoide logística
sinc
selecciona función seno cardinal
isinc
selecciona función seno cardinal invertida
quat
selecciona cuártica
quatr
selecciona raíz cuártica
qsin2
selecciona un cuarto de onda senoidal al cuadrado
hsin2
selecciona media onda senoidal al cuadrado
nofade
sin fundido aplicado
silence
Establece la ganancia inicial para el fundido de entrada o la ganancia final para el fundido de salida. El valor predeterminado es 0.0.
unity
Establece la ganancia inicial para el fundido de salida o la ganancia final para el fundido de entrada. El valor predeterminado es 1.0.
8.22.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.22.2 Ejemplos
-
Fundido de entrada en los primeros 15 segundos de audio:
afade=t=in:ss=0:d=15 -
Fundido de salida en los últimos 25 segundos de un audio de 900 segundos:
afade=t=out:st=875:d=25
8.23 afftdn
Elimina el ruido de las muestras de audio mediante FFT.
A continuación se describen los parámetros aceptados.
noise_reduction, nr
Establece la reducción de ruido en dB; el rango permitido es de 0.01 a 97. El valor predeterminado es 12 dB.
noise_floor, nf
Establece el suelo de ruido en dB; el rango permitido es de -80 a -20. El valor predeterminado es -50 dB.
noise_type, nt
Establece el tipo de ruido.
Acepta los siguientes valores:
white, w
Selecciona ruido blanco.
vinyl, v
Selecciona ruido de vinilo.
shellac, s
Selecciona ruido de goma laca.
custom, c
Selecciona ruido personalizado, definido en la opción bn.
El valor predeterminado es ruido blanco.
band_noise, bn
Establece el perfil de ruido de banda personalizado para cada una de las 15 bandas. Las bandas se separan por ’ ’ o ’|’.
residual_floor, rf
Establece el suelo residual en dB; el rango permitido es de -80 a -20. El valor predeterminado es -38 dB.
track_noise, tn
Activa el seguimiento del suelo de ruido. Está desactivado de forma predeterminada. Con esto activado, el suelo de ruido se ajusta automáticamente.
track_residual, tr
Activa el seguimiento residual. Está desactivado de forma predeterminada.
output_mode, om
Establece el modo de salida.
Acepta los siguientes valores:
input, i
Deja pasar la entrada sin cambios.
output, o
Deja pasar el audio con el ruido filtrado.
noise, n
Deja pasar únicamente el ruido.
El valor predeterminado es output.
adaptivity, ad
Establece el factor de adaptabilidad, que determina la rapidez con la que se adaptan los ajustes de ganancia en cada bin de frecuencia. El valor 0 activa la adaptación instantánea, mientras que los valores más altos reaccionan mucho más lento. El rango permitido va de 0 a 1. El valor predeterminado es 0.5.
floor_offset, fo
Establece el factor de desplazamiento del suelo de ruido. Esta opción se usa para ajustar el desplazamiento aplicado al suelo de ruido medido. Solo tiene efecto cuando el seguimiento del suelo de ruido está activado. El rango permitido va de -2.0 a 2.0. El valor predeterminado es 1.0.
noise_link, nl
Establece el enlace de ruido usado para audio multicanal.
Acepta los siguientes valores:
none
Usa el suelo de ruido del canal sin modificar.
min
Usa el suelo de ruido mínimo medido de todos los canales.
max
Usa el suelo de ruido máximo medido de todos los canales.
average
Usa el suelo de ruido medio medido de todos los canales.
El valor predeterminado es min.
band_multiplier, bm
Establece el factor multiplicador de bandas, que determina cuánto se distribuyen las bandas entre los bins de frecuencia. El rango permitido va de 0.2 a 5. El valor predeterminado es 1.25.
sample_noise, sn
Activa o desactiva la captura y medición del perfil de ruido a partir del audio de entrada.
Acepta los siguientes valores:
start, begin
Inicia la captura de la muestra de ruido.
stop, end
Detiene la captura de la muestra de ruido y mide un nuevo perfil de banda de ruido.
El valor predeterminado es none.
gain_smooth, gs
Establece el radio espacial de suavizado de ganancia, usado para suavizar las ganancias aplicadas a cada bin de frecuencia. Útil para reducir artefactos aleatorios de ruido musical. Los valores más altos aumentan el suavizado de las ganancias. El rango permitido va de 0 a 50. El valor predeterminado es 0.
8.23.1 Comandos
Este filtro admite algunas de las opciones mencionadas anteriormente como comandos.
8.23.2 Ejemplos
-
Reduce el ruido blanco en 10dB y usa el suelo de ruido medido previamente de -40dB:
afftdn=nr=10:nf=-40 -
Reduce el ruido blanco en 10dB, además establece el suelo de ruido inicial en -80dB y activa el seguimiento automático del suelo de ruido para que este cambie gradualmente durante el procesamiento:
afftdn=nr=10:nf=-80:tn=1 -
Reduce el ruido en 20dB, usando un suelo de ruido de -40dB y usando comandos para tomar el perfil de ruido de los primeros 0.4 segundos del audio de entrada:
asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
8.24 afftfilt
Aplica expresiones arbitrarias a las muestras en el dominio de la frecuencia.
real
Establece la expresión real en el dominio de la frecuencia para cada canal por separado, separadas por ’|’. El valor predeterminado es "re". Si el número de canales de entrada es mayor que el número de expresiones, la última expresión especificada se usa para los canales de salida restantes.
imag
Establece la expresión imaginaria en el dominio de la frecuencia para cada canal por separado, separadas por ’|’. El valor predeterminado es "im".
Cada expresión de real e imag puede contener las siguientes constantes y funciones:
sr
frecuencia de muestreo
b
número de bin de frecuencia actual
nb
número de bins disponibles
ch
número de canal de la expresión actual
chs
número de canales
pts
pts del fotograma actual
re
parte real actual del bin de frecuencia del canal actual
im
parte imaginaria actual del bin de frecuencia del canal actual
real(b, ch)
Devuelve el valor de la parte real del bin de frecuencia en la posición (bin,channel)
imag(b, ch)
Devuelve el valor de la parte imaginaria del bin de frecuencia en la posición (bin,channel)
win_size
Establece el tamaño de la ventana. El rango permitido va de 16 a 131072. El valor predeterminado es 4096
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hann, hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hann.
overlap
Establece el solapamiento de la ventana. Si se define en 1, se elige el solapamiento recomendado para la función de ventana seleccionada. El valor predeterminado es 0.75.
8.24.1 Ejemplos
-
Deja en el audio casi únicamente las frecuencias bajas:
afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'" -
Aplica un efecto de robotización:
afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75" -
Aplica un efecto de susurro:
afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8" -
Aplica un desplazamiento de fase:
afftfilt="real=re*cos(1)-im*sin(1):imag=re*sin(1)+im*cos(1)"
8.25 afir
Aplica un filtro de respuesta finita al impulso (FIR) arbitrario.
Este filtro está diseñado para aplicar filtros FIR largos, de hasta 60 segundos de duración.
Puede usarse como componente en filtros de cruce digital (crossover), ecualización de salas, cancelación de diafonía, síntesis de campo de ondas, auralización, ambiofonía, ambisonics y espacialización.
Este filtro usa los flujos posteriores al primero como coeficientes FIR. Si un flujo que no es el primero contiene un único canal, se usará para todos los canales de entrada del primer flujo; en caso contrario, el número de canales del flujo que no es el primero debe coincidir con el número de canales del primer flujo.
Acepta los siguientes parámetros:
dry
Establece la ganancia seca (dry gain). Esto define la ganancia de entrada.
wet
Establece la ganancia húmeda (wet gain). Esto define la ganancia final de salida.
length
Establece la duración del filtro de respuesta al impulso (IR). El valor predeterminado es 1, lo que significa que se procesa toda la IR.
gtype
Esta opción está obsoleta y no hace nada.
irnorm
Establece la norma que se aplica a los coeficientes de la IR antes del filtrado. El rango permitido va de -1 a 2. Los coeficientes de la IR se normalizan con la norma vectorial calculada que define esta opción. Para valores negativos no se calcula ninguna norma y los coeficientes de la IR no se modifican en absoluto. El valor predeterminado es 1.
irlink
Para una IR multicanal, si esta opción está activada (true), todos los canales de la IR se normalizan con la ganancia máxima medida de los coeficientes de todos los canales de la IR, según lo definido por la opción irnorm. Cuando está desactivada, los coeficientes de la IR de cada canal se normalizan de forma independiente. El valor predeterminado es true.
irgain
Establece la ganancia que se aplica a los coeficientes de la IR antes del filtrado. El rango permitido es de 0 a 1. Esta ganancia se aplica después de cualquier ganancia aplicada mediante la opción irnorm.
irfmt
Establece el formato del flujo de la IR. Puede ser mono o input. El valor predeterminado es input.
maxir
Establece la duración máxima permitida del filtro de respuesta al impulso (IR), en segundos. El valor predeterminado es 30 segundos. El rango permitido es de 0.1 a 60 segundos.
response
Esta opción está obsoleta y no hace nada.
channel
Esta opción está obsoleta y no hace nada.
size
Esta opción está obsoleta y no hace nada.
rate
Esta opción está obsoleta y no hace nada.
minp
Establece el tamaño mínimo de partición usado para la convolución. El valor predeterminado es 8192. El rango permitido va de 1 a 65536. Los valores más bajos reducen la latencia a costa de un mayor uso de CPU.
maxp
Establece el tamaño máximo de partición usado para la convolución. El valor predeterminado es 8192. El rango permitido va de 8 a 65536. Los valores más bajos pueden aumentar el uso de CPU.
nbirs
Establece el número de flujos de respuesta al impulso de entrada que podrán conmutarse en tiempo de ejecución. El rango permitido va de 1 a 32. El valor predeterminado es 1.
ir
Establece el flujo de IR que se usará para la convolución, empezando desde 0; debe ser siempre menor que el valor indicado por la opción nbirs. El valor predeterminado es 0. Esta opción puede cambiarse en tiempo de ejecución mediante comandos.
precision
Establece la precisión que se usa al procesar las muestras.
auto
Elige automáticamente el formato interno de muestra según otros filtros.
float
Usa siempre el sample format en coma flotante de precisión simple.
double
Usa siempre el sample format en coma flotante de precisión doble.
El valor predeterminado es auto.
irload
Establece cuándo se carga el flujo de la IR. Puede ser init o access. La primera opción carga y prepara todas las IR durante la inicialización; la segunda lo hace una sola vez, en el primer acceso a la IR concreta. El valor predeterminado es init.
8.25.1 Ejemplos
-
Aplica reverberación al flujo usando un archivo de IR mono como segunda entrada; comando completo usando ffmpeg:
ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav -
Aplica un procesamiento estéreo real a un flujo de entrada estéreo, con dos respuestas al impulso estéreo para los canales izquierdo y derecho; los archivos de respuesta al impulso se llaman l_ir.wav y r_ir.wav, y se define el valor de la opción irnorm:
"pan=4C|c0=FL|c1=FL|c2=FR|c3=FR[a];amovie=l_ir.wav[LIR];amovie=r_ir.wav[RIR];[LIR][RIR]amerge[ir];[a][ir]afir=irfmt=input:irnorm=1.2,pan=stereo|FL<c0+c2|FR<c1+c3" -
Similar al ejemplo anterior, pero con
irgaindefinido explícitamente en el valor estimado y conirnormdesactivado:"pan=4C|c0=FL|c1=FL|c2=FR|c3=FR[a];amovie=l_ir.wav[LIR];amovie=r_ir.wav[RIR];[LIR][RIR]amerge[ir];[a][ir]afir=irfmt=input:irgain=-5dB:irnom=-1,pan=stereo|FL<c0+c2|FR<c1+c3"
8.26 aformat
Establece las restricciones de formato de salida para el audio de entrada. El framework negociará el formato más adecuado para minimizar las conversiones.
Acepta los siguientes parámetros:
sample_fmts, f
Una lista de sample formats solicitados, separados por ’|’.
sample_rates, r
Una lista de frecuencias de muestreo solicitadas, separadas por ’|’.
channel_layouts, cl
Una lista de disposiciones de canales solicitadas, separadas por ’|’.
Consulte (ffmpeg-utils) la sección Disposición de canales del manual ffmpeg-utils(1) para conocer la sintaxis necesaria.
Si se omite un parámetro, se permiten todos los valores.
Fuerza la salida a estéreo de 8 bits sin signo o de 16 bits con signo
aformat=sample_fmts=u8|s16:channel_layouts=stereo
8.27 afreqshift
Aplica un desplazamiento de frecuencia a las muestras de audio de entrada.
El filtro acepta las siguientes opciones:
shift
Especifica el desplazamiento de frecuencia. El rango permitido va de -INT_MAX a INT_MAX. El valor predeterminado es 0.0.
level
Establece la ganancia de salida aplicada a la salida final. El rango permitido va de 0.0 a 1.0. El valor predeterminado es 1.0.
order
Establece el orden del filtro usado para el filtrado. El rango permitido va de 1 a 16. El valor predeterminado es 8.
8.27.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.28 afwtdn
Reduce el ruido de banda ancha de las muestras de entrada mediante wavelets.
A continuación se describen las opciones aceptadas.
sigma
Establece el sigma de ruido; el rango permitido va de 0 a 1. El valor predeterminado es 0. Esta opción controla la intensidad de la reducción de ruido aplicada a las muestras de entrada. La forma más práctica de definir esta opción es en decibelios, p. ej. -45dB.
levels
Establece el número de niveles de descomposición wavelet. El rango permitido va de 1 a 12. El valor predeterminado es 10. Un valor demasiado bajo hace que el rendimiento de la reducción de ruido sea muy pobre.
wavet
Establece el tipo de wavelet para la descomposición del fotograma de entrada. Están ordenadas por número de coeficientes, de menor a mayor. Más coeficientes implican una velocidad de filtrado peor, pero en general mejor calidad. Las wavelets disponibles son:
‘sym2’ ‘sym4’ ‘rbior68’ ‘deb10’ ‘sym10’ ‘coif5’ ‘bl3’ percent
Establece el porcentaje de reducción de ruido completa. El rango permitido va del 0 al 100 por ciento. El valor predeterminado es 85 por ciento, lo que corresponde a una reducción de ruido parcial.
profile
Si está activada, el primer fotograma de entrada se usa como perfil de ruido. Si las muestras del primer fotograma contienen algo que no sea ruido, el rendimiento será muy pobre.
adaptive
Si está activada, los fotogramas de entrada se analizan para detectar la presencia de ruido. Si se detecta ruido con alta probabilidad, el perfil del fotograma de entrada se usa para procesar los fotogramas siguientes, hasta que se detecta un nuevo fotograma de ruido.
samples
Establece el tamaño de un único fotograma en número de muestras. El rango permitido va de 512 a 65536. El tamaño de fotograma predeterminado es 8192 muestras.
softness
Establece la suavidad aplicada dentro de la función de umbralización. El rango permitido va de 0 a 10. La suavidad predeterminada es 1.
8.28.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.29 agate
Una puerta de ruido (gate) sirve principalmente para atenuar las partes de nivel más bajo de una señal. Este tipo de procesamiento de señal reduce el ruido molesto entre señales útiles.
El gating se realiza detectando el volumen por debajo de un umbral de nivel elegido y dividiéndolo por el factor definido con ratio. El suelo de ruido se establece mediante range. Dado que una manipulación exacta de la señal causaría distorsión en la forma de onda, la reducción puede suavizarse a lo largo del tiempo. Esto se logra definiendo attack y release.
attack determina cuánto tiempo debe permanecer la señal por debajo del umbral antes de que se produzca alguna reducción, y release establece el tiempo que la señal debe permanecer por encima del umbral para que la reducción vuelva a disminuir. Las señales más cortas que el tiempo de attack elegido se dejarán sin modificar.
level_in
Establece el nivel de entrada antes del filtrado. El valor predeterminado es 1. El rango permitido va de 0.015625 a 64.
mode
Establece el modo de funcionamiento. Puede ser upward o downward. El valor predeterminado es downward. Si se define en modo upward, las partes más altas de la señal se amplifican, expandiendo el rango dinámico hacia arriba. En caso contrario, con downward se reducen las partes más bajas de la señal.
range
Establece el nivel de reducción de ganancia cuando la señal está por debajo del umbral. El valor predeterminado es 0.06125. El rango permitido va de 0 a 1. Si se define en 0 se desactiva la reducción y el filtro se comporta como un expansor.
threshold
Si una señal supera este nivel, se libera la reducción de ganancia. El valor predeterminado es 0.125. El rango permitido va de 0 a 1.
ratio
Establece la proporción con la que se reduce la señal. El valor predeterminado es 2. El rango permitido va de 1 a 9000.
attack
Cantidad de milisegundos que la señal debe permanecer por encima del umbral antes de que se detenga la reducción de ganancia. El valor predeterminado es 20 milisegundos. El rango permitido va de 0.01 a 9000.
release
Cantidad de milisegundos que la señal debe permanecer por debajo del umbral antes de que la reducción vuelva a aumentar. El valor predeterminado es 250 milisegundos. El rango permitido va de 0.01 a 9000.
makeup
Establece la cantidad de amplificación de la señal tras el procesamiento. El valor predeterminado es 1. El rango permitido va de 1 a 64.
knee
Suaviza el codo (knee) pronunciado alrededor del umbral para entrar en la reducción de ganancia de forma más gradual. El valor predeterminado es 2.828427125. El rango permitido va de 1 a 8.
detection
Elige si se debe usar la señal exacta para la detección o una de tipo RMS. El valor predeterminado es rms. Puede ser peak o rms.
link
Elige si la reducción se ve afectada por el nivel promedio entre todos los canales o por el canal más alto. El valor predeterminado es average. Puede ser average o maximum.
8.29.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.30 aiir
Aplica un filtro de respuesta infinita al impulso (IIR) arbitrario.
Acepta los siguientes parámetros:
zeros, z
Establece los coeficientes B/numerador/ceros/reflexión.
poles, p
Establece los coeficientes A/denominador/polos/ladder.
gains, k
Establece las ganancias de los canales.
dry_gain
Establece la ganancia de entrada.
wet_gain
Establece la ganancia de salida.
format, f
Establece el formato de los coeficientes.
‘ll’
función lattice-ladder
‘sf’
función de transferencia analógica
‘tf’
función de transferencia digital
‘zp’
ceros/polos en el plano Z, cartesianos (predeterminado)
‘pr’
ceros/polos en el plano Z, polares en radianes
‘pd’
ceros/polos en el plano Z, polares en grados
‘sp’
ceros/polos en el plano S
process, r
Establece el tipo de procesamiento.
‘d’
procesamiento directo
‘s’
procesamiento en serie
‘p’
procesamiento en paralelo
precision, e
Establece la precisión del filtrado.
‘dbl’
coma flotante de precisión doble (predeterminado)
‘flt’
coma flotante de precisión simple
‘i32’
enteros de 32 bits
‘i16’
enteros de 16 bits
normalize, n
Normaliza los coeficientes del filtro; está activada de forma predeterminada. Al activarla, se normaliza la respuesta de magnitud en DC a 0dB.
mix
Cuánto se usa la señal filtrada en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
response
Muestra la respuesta en frecuencia de la IR (magnitud en magenta, fase en verde y retardo de grupo en amarillo) en un flujo de vídeo adicional. Está desactivada de forma predeterminada.
channel
Establece para qué canal de la IR se muestra la respuesta en frecuencia. De forma predeterminada se muestra el primer canal. Esta opción solo se usa cuando response está activada.
size
Establece el tamaño del flujo de vídeo. Esta opción solo se usa cuando response está activada.
Los coeficientes en formato tf y sf se separan con espacios y van en orden ascendente.
Los coeficientes en formato zp se separan con espacios y el orden de los coeficientes no importa. Los coeficientes en formato zp son números complejos con la unidad imaginaria i.
Se pueden indicar coeficientes y ganancias distintos para cada canal; en ese caso, use ’|’ para separar los coeficientes o las ganancias. Los últimos coeficientes indicados se usarán para todos los canales restantes.
8.30.1 Ejemplos
-
Aplica un rechazo (notch) elíptico de 2 polos en torno a 5000Hz para una frecuencia de muestreo de 48000 Hz:
aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d -
Igual que el anterior pero en formato
zp:aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s -
Aplica un filtro paso bajo Butterworth analógico normalizado de 3er orden, usando el formato de función de transferencia analógica:
aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
8.31 alimiter
El limitador impide que una señal de entrada supere un umbral deseado. Este limitador usa tecnología lookahead para evitar que la señal se distorsione. Esto implica un pequeño retardo tras procesar la señal. Tenga en cuenta que el retardo producido corresponde al tiempo de attack que defina.
El filtro acepta las siguientes opciones:
level_in
Establece la ganancia de entrada. El valor predeterminado es 1.
level_out
Establece la ganancia de salida. El valor predeterminado es 1.
limit
No permite que las señales por encima de este nivel atraviesen el limitador. El valor predeterminado es 1.
attack
El limitador alcanza su nivel de atenuación en esta cantidad de tiempo, en milisegundos. El valor predeterminado es 5 milisegundos.
release
Vuelve de la limitación a una atenuación de 1.0 en esta cantidad de milisegundos. El valor predeterminado es 50 milisegundos.
asc
Cuando siempre se necesita reducción de ganancia, ASC se encarga de liberar hacia un nivel de reducción promedio en lugar de llegar a una reducción de 0 en el tiempo de release.
asc_level
Selecciona cuánto afecta ASC al tiempo de release: 0 significa que casi no hay cambios en el tiempo de release, mientras que 1 produce tiempos de release más altos.
level
Nivela automáticamente la señal de salida. Está activada de forma predeterminada. Si está activada, normaliza el audio de nuevo a 0dB.
latency
Compensa el retardo introducido por el uso del búfer lookahead definido con el parámetro attack. También vacía los datos de audio válidos del búfer lookahead cuando el flujo llega a EOF.
Según la configuración elegida, se recomienda sobremuestrear (upsample) la entrada 2x o 4x con aresample antes de aplicar este filtro.
8.32 allpass
Aplica un filtro todo paso (all-pass) de dos polos con la frecuencia central frequency (en Hz) y el ancho de filtro width. Un filtro todo paso cambia la relación entre frecuencia y fase del audio sin cambiar su relación entre frecuencia y amplitud.
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia en Hz.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Especifica el ancho de banda de un filtro en unidades de width_type.
mix, m
Cuánto se usa la señal filtrada en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; está desactivada de forma predeterminada. Al activarla, se normaliza la respuesta de magnitud en DC a 0dB.
order, o
Establece el orden del filtro; puede ser 1 o 2. El valor predeterminado es 2.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros surround.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
8.32.1 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de allpass. La sintaxis del comando es: "frequency"
width_type, t
Cambia width_type de allpass. La sintaxis del comando es: "width_type"
width, w
Cambia width de allpass. La sintaxis del comando es: "width"
mix, m
Cambia mix de allpass. La sintaxis del comando es: "mix"
8.33 aloop
Repite en bucle las muestras de audio.
El filtro acepta las siguientes opciones:
loop
Establece el número de repeticiones del bucle. Si se define este valor en -1, se producen bucles infinitos. El valor predeterminado es 0.
size
Establece el número máximo de muestras. El valor predeterminado es 0.
start
Establece la primera muestra del bucle. El valor predeterminado es 0.
time
Establece el instante de inicio del bucle, en segundos. Solo se usa si la opción start se define en -1.
8.34 amerge
Combina dos o más flujos de audio en un único flujo multicanal.
Todas las entradas deben tener la misma frecuencia de muestreo y el mismo formato.
Si las entradas no tienen la misma duración, la salida se detiene con la más corta.
El filtro acepta las siguientes opciones:
inputs
Establece el número de entradas. El valor predeterminado es 2.
layout_mode
Esta opción controla cómo se determina la disposición de canales de salida y si los canales de audio se reordenan durante la fusión.
legacy
Este es el modo en que el filtro se comportaba históricamente, por lo que es el predeterminado.
Si las disposiciones de canales de las entradas son conocidas y disjuntas, y por tanto compatibles, la disposición de canales de la salida se establece en consecuencia y los canales se reordenan según sea necesario. Si las disposiciones de canales de las entradas no son disjuntas, alguna de ellas es desconocida, o usan disposiciones de canales especiales, como ambisonics, la salida tendrá todos los canales de la primera entrada y luego todos los canales de la segunda entrada, en ese orden, y la disposición de canales de la salida será el valor predeterminado correspondiente al número total de canales.
Por ejemplo, si la primera entrada está en 2.1 (FL+FR+LF) y la segunda entrada es FC+BL+BR, la salida estará en 5.1, con los canales en el siguiente orden: a1, a2, b1, a3, b2, b3 (a1 es el primer canal de la primera entrada, b1 es el primer canal de la segunda entrada).
Por otro lado, si ambas entradas están en estéreo, los canales de salida seguirán el orden predeterminado: a1, a2, b1, b2, y la disposición de canales se establecerá arbitrariamente en 4.0, lo que puede o no ser el valor esperado.
reset
Este modo ignora las disposiciones de canales de las entradas y no reordena los canales. La salida tendrá todos los canales de la primera entrada, luego todos los de la segunda entrada, en ese orden, y así sucesivamente.
La disposición de canales de la salida solo especificará el número total de canales.
normal
Este modo conserva el nombre y la información de designación de los canales de entrada y no reordena los canales. La salida tendrá todos los canales de la primera entrada, luego todos los de la segunda entrada, en ese orden, y así sucesivamente.
8.34.1 Ejemplos
-
Combina dos archivos mono en un flujo estéreo:
amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge -
Varias fusiones suponiendo 1 flujo de vídeo y 6 flujos de audio en input.mkv:
ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
8.35 amix
Mezcla varias entradas de audio en una única salida.
Tenga en cuenta que este filtro solo admite muestras en coma flotante (los filtros de audio amerge y pan admiten muchos formatos). Si la entrada de amix tiene muestras enteras, aresample se insertará automáticamente para realizar la conversión a muestras en coma flotante.
Acepta los siguientes parámetros:
inputs
El número de entradas. Si no se especifica, el valor predeterminado es 2.
duration
Cómo determinar el fin de flujo.
longest
La duración de la entrada más larga. (predeterminado)
shortest
La duración de la entrada más corta.
first
La duración de la primera entrada.
dropout_transition
El tiempo de transición, en segundos, para la renormalización de volumen cuando termina un flujo de entrada. El valor predeterminado es 2 segundos.
weights
Especifica el peso de cada flujo de audio de entrada como una secuencia de números separados por un espacio. Si se especifican menos pesos que entradas, el último peso se asigna a las entradas restantes. El peso predeterminado de cada entrada es 1.
normalize
Escala siempre las entradas en lugar de limitarse a sumar las muestras. Tenga cuidado con el recorte (clipping) intenso si las entradas no se normalizan antes o después del filtrado por este filtro cuando esta opción está desactivada. Está activada de forma predeterminada.
8.35.1 Ejemplos
-
Esto mezcla 3 flujos de audio de entrada en una única salida con la misma duración que la primera entrada y un tiempo de transición de desvanecimiento de 3 segundos:
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT -
Esto mezcla un flujo de audio vocal y otro musical en una única salida con la misma duración que la entrada más larga. La música tendrá un cuarto del peso de la voz, y las entradas no se normalizan:
ffmpeg -i VOCALS -i MUSIC -filter_complex amix=inputs=2:duration=longest:dropout_transition=0:weights="1 0.25":normalize=0 OUTPUT
8.35.2 Comandos
Este filtro admite los siguientes comandos:
weights normalize
La sintaxis es la misma que la de la opción del mismo nombre.
8.36 amultiply
Multiplica el primer flujo de audio por el segundo flujo de audio y almacena el resultado en el flujo de audio de salida. La multiplicación se realiza multiplicando cada muestra del primer flujo por la muestra situada en la misma posición del segundo flujo.
Con esta multiplicación elemento a elemento es posible crear fundidos de amplitud y modulaciones de amplitud.
8.37 anequalizer
Ecualizador multibanda paramétrico de orden alto para cada canal.
Acepta los siguientes parámetros:
params
Esta cadena de opción tiene el formato: "cchn f=cf w=w g=g t=f | ..." Cada banda del ecualizador se separa mediante ’|’.
chn
Establece el número de canal al que se aplicará la ecualización. Si la entrada no tiene ese canal, esta especificación se ignora.
f
Establece la frecuencia central de la banda. Si la entrada no tiene esa frecuencia, esta especificación se ignora.
w
Establece el ancho de banda en hercios.
g
Establece la ganancia de la banda en dB.
t
Establece el tipo de filtro de la banda; es opcional y puede ser:
‘0’
Butterworth; es el valor predeterminado.
‘1’
Chebyshev tipo 1.
‘2’
Chebyshev tipo 2.
curves
Con esta opción activada, la respuesta en frecuencia de anequalizer se muestra en el flujo de vídeo.
size
Establece el tamaño del flujo de vídeo. Solo resulta útil si la opción curves está activada.
mgain
Establece la ganancia máxima que se mostrará. Solo resulta útil si la opción curves está activada. Ajustar esto a un valor razonable permite mostrar la ganancia derivada de bandas vecinas demasiado próximas entre sí, que por ello producen una ganancia mayor cuando ambas están activadas.
fscale
Establece la escala de frecuencia usada para dibujar la respuesta en frecuencia en la salida de vídeo. Puede ser linear o logarithmic. El valor predeterminado es logarithmic.
colors
Establece el color de la curva de cada canal que se mostrará en el flujo de vídeo. Es una lista de nombres de color separados por espacios o por ’|’. Los colores no reconocidos o ausentes se sustituirán por el color blanco.
8.37.1 Ejemplos
- Reduce en 10 la ganancia de la frecuencia central de 200Hz y ancho de 100Hz para los primeros 2 canales usando un filtro Chebyshev tipo 1:
anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
8.37.2 Comandos
Este filtro admite los siguientes comandos:
change
Modifica los parámetros de un filtro existente. La sintaxis de los comandos es: "fN|f=freq|w=width|g=gain"
fN es el número del filtro existente, empezando desde 0; si no existe tal filtro se devuelve un error. freq establece el nuevo parámetro de frecuencia. width establece el nuevo parámetro de ancho en hercios. gain establece el nuevo parámetro de ganancia en dB.
Una invocación completa del filtro con asendcmd podría ser así: asendcmd=c=’4.0 anequalizer change 0|f=200|w=50|g=1’,anequalizer=...
8.38 anlmdn
Reduce el ruido de banda ancha en las muestras de audio mediante el algoritmo Non-Local Means.
Cada muestra se ajusta buscando otras muestras con contextos similares. Esta similitud de contexto se define comparando los parches circundantes de tamaño p. Los parches se buscan en un área de radio r alrededor de la muestra.
El filtro acepta las siguientes opciones:
strength, s
Establece la intensidad de reducción de ruido. El rango permitido va de 0.00001 a 10000. El valor predeterminado es 0.00001.
patch, p
Establece la duración del radio del parche. El rango permitido va de 1 a 100 milisegundos. El valor predeterminado es 2 milisegundos.
research, r
Establece la duración del radio de búsqueda. El rango permitido va de 2 a 300 milisegundos. El valor predeterminado es 6 milisegundos.
output, o
Establece el modo de salida.
Acepta los siguientes valores:
i
Deja pasar la entrada sin modificar.
o
Deja pasar la señal con el ruido eliminado.
n
Deja pasar solo el ruido.
El valor predeterminado es o.
smooth, m
Establece el factor de suavizado. El valor predeterminado es 11. El rango permitido va de 1 a 1000.
8.38.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.39 anlmf, anlms
Aplica el algoritmo Normalized Least-Mean-(Squares|Fourth) al primer flujo de audio usando el segundo flujo de audio.
Este filtro adaptativo se usa para imitar un filtro deseado, hallando los coeficientes del filtro que producen el mínimo error cuadrático medio de la señal de error (la diferencia entre la señal deseada, el 2.º flujo de audio de entrada, y la señal real, el 1.er flujo de audio de entrada).
A continuación se describen las opciones aceptadas.
order
Establece el orden del filtro.
mu
Establece el parámetro mu del filtro.
eps
Establece el parámetro eps del filtro.
leakage
Establece la fuga (leakage) del filtro.
out_mode
Acepta los siguientes valores:
i
Deja pasar la 1.ª entrada.
d
Deja pasar la 2.ª entrada.
o
Deja pasar la diferencia entre la entrada deseada (2.ª entrada) y la estimación de la señal de error.
n
Deja pasar la diferencia entre la entrada (1.ª entrada) y la estimación de la señal de error.
e
Deja pasar las muestras estimadas de la señal de error.
El valor predeterminado es o.
precision
Establece qué precisión usar al procesar las muestras.
auto
Elige automáticamente el sample format interno según otros filtros.
float
Usa siempre el sample format de precisión simple en coma flotante.
double
Usa siempre el sample format de precisión doble en coma flotante.
8.39.1 Ejemplos
- Uno de los muchos usos de este filtro es la reducción de ruido: el audio de entrada se filtra con las mismas muestras retardadas una cantidad fija; un ejemplo de esto para audio estéreo es:
asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
8.39.2 Comandos
Este filtro admite los mismos comandos que opciones, excluyendo la opción order.
8.40 anull
Pasa la fuente de audio sin modificar a la salida.
8.41 apad
Rellena el final de un flujo de audio con silencio.
Esto puede usarse junto con ffmpeg -shortest para extender los flujos de audio hasta la misma duración que el flujo de vídeo.
A continuación se describen las opciones aceptadas.
packet_size
Establece el tamaño del paquete de silencio. El valor predeterminado es 4096.
pad_len
Establece el número de muestras de silencio que se añadirán al final. Una vez alcanzado ese valor, el flujo termina. Esta opción es mutuamente excluyente con whole_len.
whole_len
Establece el número mínimo total de muestras en el flujo de audio de salida. Si el valor es mayor que la duración del audio de entrada, se añade silencio al final hasta alcanzarlo. Esta opción es mutuamente excluyente con pad_len.
pad_dur
Especifica la duración de las muestras de silencio que se añadirán. Consulte (ffmpeg-utils)la sección Duración de tiempo del manual ffmpeg-utils(1) para conocer la sintaxis aceptada. Solo se usa si se establece a un valor no negativo.
whole_dur
Especifica la duración total mínima del flujo de audio de salida. Consulte (ffmpeg-utils)la sección Duración de tiempo del manual ffmpeg-utils(1) para conocer la sintaxis aceptada. Solo se usa si se establece a un valor no negativo. Si el valor es mayor que la duración del audio de entrada, se añade silencio al final hasta alcanzarlo. Esta opción es mutuamente excluyente con pad_dur
Si no se establece ninguna de las opciones pad_len, whole_len, pad_dur ni whole_dur, el filtro añadirá silencio al final del flujo de entrada indefinidamente.
Tenga en cuenta que, en ffmpeg 4.4 y versiones anteriores, un valor de pad_dur o whole_dur igual a cero también hacía que el filtro añadiera silencio indefinidamente.
8.41.1 Ejemplos
-
Añade 1024 muestras de silencio al final de la entrada:
apad=pad_len=1024 -
Asegúrese de que la salida de audio contenga al menos 10000 muestras, rellenando la entrada con silencio si es necesario:
apad=whole_len=10000 -
Use
ffmpegpara rellenar la entrada de audio con silencio, de modo que el flujo de vídeo resulte siempre el más corto y se convierta hasta el final en el archivo de salida al usar la opción shortest:ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
8.42 aphaser
Añade un efecto de phaser al audio de entrada.
Un filtro de phaser crea una serie de picos y valles en el espectro de frecuencias. La posición de los picos y valles se modula para que varíe con el tiempo, creando un efecto de barrido.
A continuación se describen los parámetros aceptados.
in_gain
Establece la ganancia de entrada. El valor predeterminado es 0.4.
out_gain
Establece la ganancia de salida. El valor predeterminado es 0.74
delay
Establece el retardo en milisegundos. El valor predeterminado es 3.0.
decay
Establece la caída (decay). El valor predeterminado es 0.4.
speed
Establece la velocidad de modulación en Hz. El valor predeterminado es 0.5.
type
Establece el tipo de modulación. El valor predeterminado es triangular.
Acepta los siguientes valores:
‘triangular, t’ ‘sinusoidal, s’
8.43 aphaseshift
Aplica un desplazamiento de fase a las muestras de audio de entrada.
El filtro acepta las siguientes opciones:
shift
Especifica el desplazamiento de fase. El rango permitido va de -1.0 a 1.0. El valor predeterminado es 0.0.
level
Establece la ganancia de salida aplicada a la salida final. El rango permitido va de 0.0 a 1.0. El valor predeterminado es 1.0.
order
Establece el orden del filtro usado para filtrar. El rango permitido va de 1 a 16. El valor predeterminado es 8.
8.43.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.44 apsnr
Mide la relación señal/ruido de pico del audio (Audio Peak Signal-to-Noise Ratio).
Este filtro toma dos flujos de audio como entrada y genera como salida el primer flujo de audio. Los resultados se expresan en dB por canal al final de cualquiera de las entradas.
8.45 apsyclip
Aplica un recorte psicoacústico (Psychoacoustic clipper) al flujo de audio de entrada.
El filtro acepta las siguientes opciones:
level_in
Establece la ganancia de entrada. De forma predeterminada es 1. Rango: [0.015625 - 64].
level_out
Establece la ganancia de salida. De forma predeterminada es 1. Rango: [0.015625 - 64].
clip
Establece el valor de inicio del recorte. El valor predeterminado es 0dBFS o 1.
diff
Genera solo las muestras de diferencia, útil para escuchar las distorsiones introducidas. De forma predeterminada está desactivado.
adaptive
Establece la intensidad de la distorsión adaptativa aplicada. El valor predeterminado es 0.5. El rango permitido va de 0 a 1.
iterations
Establece el número de iteraciones del recorte psicoacústico. El rango permitido va de 1 a 20. El valor predeterminado es 10.
level
Nivela automáticamente la señal de salida. De forma predeterminada está desactivado. Si se activa, normaliza el audio de nuevo a 0dBFS.
8.45.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.46 apulsator
El pulsador de audio (audio pulsator) es algo a medio camino entre un autopanner y un trémolo, aunque también puede producir efectos estéreo curiosos. Pulsator varía el volumen de los canales izquierdo y derecho a partir de un LFO (oscilador de baja frecuencia, low frequency oscillator) con distintas formas de onda y fases desplazadas. Este filtro permite definir un desfase entre el canal izquierdo y el derecho. Un desfase de 0 significa que ambas formas del LFO coinciden entre sí: los canales izquierdo y derecho se alteran por igual, como en un trémolo convencional. Un desfase del 50% significa que la forma del canal derecho está exactamente desplazada en fase (o retrasada en torno a la mitad de la frecuencia), de modo que pulsator actúa como un autopanner. En 1 ambas curvas vuelven a coincidir. Cada ajuste intermedio desplaza la fase de forma continua entre todas las etapas y produce algunos sonidos "bypassing" con formas de onda sinusoidal y triangular. Cuanto más se aproxime el desfase a 1 (a partir de 0.5), más rápido pasará la señal del altavoz izquierdo al derecho.
El filtro acepta las siguientes opciones:
level_in
Establece la ganancia de entrada. De forma predeterminada es 1. Rango: [0.015625 - 64].
level_out
Establece la ganancia de salida. De forma predeterminada es 1. Rango: [0.015625 - 64].
mode
Establece la forma de onda que usará el LFO. Puede ser una de: sine, triangle, square, sawup o sawdown. El valor predeterminado es sine.
amount
Establece la modulación. Define cuánta parte de la señal original se ve afectada por el LFO.
offset_l
Establece el desfase del canal izquierdo. El valor predeterminado es 0. El rango permitido es [0 - 1].
offset_r
Establece el desfase del canal derecho. El valor predeterminado es 0.5. El rango permitido es [0 - 1].
width
Establece el ancho del pulso. El valor predeterminado es 1. El rango permitido es [0 - 2].
timing
Establece el modo de temporización posible. Puede ser uno de: bpm, ms o hz. El valor predeterminado es hz.
bpm
Establece el bpm. El valor predeterminado es 120. El rango permitido es [30 - 300]. Solo se usa si timing está establecido en bpm.
ms
Establece el ms. El valor predeterminado es 500. El rango permitido es [10 - 2000]. Solo se usa si timing está establecido en ms.
hz
Establece la frecuencia en Hz. El valor predeterminado es 2. El rango permitido es [0.01 - 100]. Solo se usa si timing está establecido en hz.
8.47 aresample
Remuestrea el audio de entrada según los parámetros especificados, usando la biblioteca libswresample. Si no se especifica ninguno, el filtro convertirá automáticamente entre su entrada y su salida.
Este filtro también es capaz de estirar/comprimir los datos de audio para ajustarlos a las marcas de tiempo, o de inyectar silencio / recortar audio para ajustarlos a las marcas de tiempo, o hacer una combinación de ambas cosas, o ninguna.
El filtro acepta la sintaxis [sample_rate:]resampler_options, donde sample_rate expresa una frecuencia de muestreo y resampler_options es una lista de pares clave=valor separados por ":". Consulte la sección (ffmpeg-resampler)"Opciones del remuestreador" del manual ffmpeg-resampler(1) para conocer la lista completa de opciones admitidas.
8.47.1 Ejemplos
-
Remuestrea el audio de entrada a 44100Hz:
aresample=44100 -
Estira/comprime las muestras hasta las marcas de tiempo dadas, con una compensación máxima de 1000 muestras por segundo:
aresample=async=1000
8.48 areverse
Invierte un fragmento de audio.
Advertencia: este filtro necesita memoria para almacenar en búfer todo el fragmento, por lo que se recomienda recortarlo previamente.
8.48.1 Ejemplos
- Toma los primeros 5 segundos de un fragmento y los invierte.
atrim=end=5,areverse
8.49 arls
Aplica el algoritmo Recursive Least Squares al primer flujo de audio usando el segundo flujo de audio.
Este filtro adaptativo se usa para imitar un filtro deseado, hallando de forma recursiva los coeficientes del filtro que producen la función de coste mínima de mínimos cuadrados lineales ponderados de la señal de error (la diferencia entre la señal deseada, el 2.º flujo de audio de entrada, y la señal real, el 1.er flujo de audio de entrada).
A continuación se describen las opciones aceptadas.
order
Establece el orden del filtro.
lambda
Establece el factor de olvido.
delta
Establece el coeficiente para inicializar la matriz de covarianza interna.
out_mode
Establece las muestras de salida del filtro. Acepta los siguientes valores:
i
Deja pasar la 1.ª entrada.
d
Deja pasar la 2.ª entrada.
o
Deja pasar la diferencia entre la entrada deseada (2.ª entrada) y la estimación de la señal de error.
n
Deja pasar la diferencia entre la entrada (1.ª entrada) y la estimación de la señal de error.
e
Deja pasar las muestras estimadas de la señal de error.
El valor predeterminado es o.
precision
Establece qué precisión usar al procesar las muestras.
auto
Elige automáticamente el sample format interno según otros filtros.
float
Usa siempre el sample format de precisión simple en coma flotante.
double
Usa siempre el sample format de precisión doble en coma flotante.
8.50 arnndn
Reduce el ruido del habla usando redes neuronales recurrentes (Recurrent Neural Networks).
Este filtro acepta las siguientes opciones:
model, m
Establece el archivo del modelo entrenado que se cargará. Esta opción siempre es obligatoria.
mix
Establece cuánto se mezclan las muestras filtradas en la salida final. El rango permitido va de -1 a 1. El valor predeterminado es 1. Los valores negativos son especiales: determinan cuánto ruido filtrado se conserva en la salida final del filtro. Establezca esta opción en -1 para escuchar el ruido real eliminado de la señal de entrada.
8.50.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.51 asdr
Mide la relación señal/distorsión de audio (Audio Signal-to-Distortion Ratio).
Este filtro toma dos flujos de audio como entrada y genera como salida el primer flujo de audio. Los resultados se expresan en dB por canal al final de cualquiera de las entradas.
8.52 asetnsamples
Establece el número de muestras por cada fotograma de audio de salida.
El último paquete de salida puede contener un número distinto de muestras, ya que el filtro vuelca todas las muestras restantes cuando el audio de entrada señala su fin.
El filtro acepta las siguientes opciones:
nb_out_samples, n
Establece el número de fotogramas por cada fotograma de audio de salida. El número se entiende como la cantidad de muestras por canal. El valor predeterminado es 1024.
pad, p
Si se establece en 1, el filtro rellena con ceros el último fotograma de audio, de modo que dicho fotograma contenga el mismo número de muestras que los anteriores. El valor predeterminado es 1.
Por ejemplo, para establecer el número de muestras por fotograma en 1234 y desactivar el relleno del último fotograma, use:
asetnsamples=n=1234:p=0
8.53 asetrate
Establece la frecuencia de muestreo sin modificar los datos PCM. Esto provocará un cambio de velocidad y tono.
El filtro acepta las siguientes opciones:
sample_rate, r
Establece la frecuencia de muestreo de salida. El valor predeterminado es 44100 Hz.
8.54 ashowinfo
Muestra una línea con diversa información de cada fotograma de audio de entrada. El audio de entrada no se modifica.
La línea mostrada contiene una secuencia de pares clave/valor con el formato clave:valor.
En la salida se muestran los siguientes valores:
n
El número (secuencial) del fotograma de entrada, empezando desde 0.
pts
La marca de tiempo de presentación del fotograma de entrada, en unidades de base de tiempo; la base de tiempo depende del pad de entrada del filtro, y suele ser 1/sample_rate.
pts_time
La marca de tiempo de presentación del fotograma de entrada, en segundos.
fmt
El sample format.
chlayout
La disposición de canales.
rate
La frecuencia de muestreo del fotograma de audio.
nb_samples
El número de muestras (por canal) del fotograma.
checksum
La suma de comprobación Adler-32 (impresa en hexadecimal) de los datos de audio. Para audio planar, los datos se tratan como si todos los planos estuvieran concatenados.
plane_checksums
Una lista de sumas de comprobación Adler-32 para cada plano de datos.
8.55 asisdr
Mide la relación señal/distorsión de audio invariante a escala (Audio Scaled-Invariant Signal-to-Distortion Ratio).
Este filtro toma dos flujos de audio como entrada y genera como salida el primer flujo de audio. Los resultados se expresan en dB por canal al final de cualquiera de las entradas.
8.56 asoftclip
Aplica un recorte suave (soft clipping) al audio.
El recorte suave es un tipo de efecto de distorsión en el que la amplitud de una señal se satura siguiendo una curva suave, en lugar de la forma abrupta del recorte duro (hard-clipping).
Este filtro acepta las siguientes opciones:
type
Establece el tipo de recorte suave.
Acepta los siguientes valores:
hard tanh atan cubic exp alg quintic sin erf threshold
Establece el umbral a partir del cual empieza el recorte. El valor predeterminado es 0dB o 1.
output
Establece la ganancia aplicada a la salida. El valor predeterminado es 0dB o 1.
param
Establece el parámetro adicional que controla la función sigmoide.
oversample
Establece el factor de sobremuestreo.
8.56.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.57 aspectralstats
Muestra información estadística del dominio de la frecuencia sobre los canales de audio. Las estadísticas se calculan y se almacenan como metadatos para cada canal de audio y para cada fotograma de audio.
Acepta la siguiente opción:
win_size
Establece la longitud de la ventana en muestras. El valor predeterminado es 2048. El rango permitido va de 32 a 65536.
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hann, hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hann.
overlap
Establece el solapamiento de la ventana. El rango permitido va de 0 a 1. El valor predeterminado es 0.5.
measure
Selecciona los parámetros que se miden. Las claves de metadatos pueden usarse como flags; el valor predeterminado es all, que mide todo. none desactiva toda medición.
A continuación se muestra la lista de cada clave de metadatos:
mean variance centroid spread skewness kurtosis entropy flatness crest flux slope decrease rolloff
8.58 asr
Reconocimiento automático del habla (Automatic Speech Recognition)
Este filtro usa PocketSphinx para el reconocimiento de voz. Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-pocketsphinx.
Acepta las siguientes opciones:
rate
Establece la frecuencia de muestreo del audio de entrada. El valor predeterminado es 16000. Debe coincidir con los modelos de voz, o de lo contrario se obtendrán resultados deficientes.
hmm
Establece el directorio que contiene los archivos del modelo acústico.
dict
Establece el diccionario de pronunciación.
lm
Establece el archivo del modelo de lenguaje.
lmctl
Establece el conjunto de modelos de lenguaje.
lmname
Establece qué modelo de lenguaje se usará.
logfn
Establece la salida para los mensajes de registro.
El filtro exporta el habla reconocida como metadato de fotograma lavfi.asr.text.
8.59 astats
Muestra información estadística en el dominio temporal sobre los canales de audio. Las estadísticas se calculan y se muestran para cada canal de audio y, cuando corresponde, también se ofrece una cifra global.
Acepta la siguiente opción:
length
Duración de la ventana corta en segundos, usada para la medición de pico y valle en RMS. El valor predeterminado es 0.05 (50 milisegundos). El rango permitido es [0 - 10].
metadata
Establece la inyección de metadatos. Todas las claves de metadatos llevan el prefijo lavfi.astats.X, donde X es el número de canal a partir de 1, o la cadena Overall. De forma predeterminada está deshabilitado.
Las claves disponibles para cada canal son: Bit_depth Crest_factor DC_offset Dynamic_range Entropy Flat_factor Max_difference Max_level Mean_difference Min_difference Min_level Noise_floor Noise_floor_count Number_of_Infs Number_of_NaNs Number_of_denormals Peak_count Abs_Peak_count Peak_level RMS_difference RMS_peak RMS_trough Zero_crossings Zero_crossings_rate
y para Overall: Bit_depth DC_offset Entropy Flat_factor Max_difference Max_level Mean_difference Min_difference Min_level Noise_floor Noise_floor_count Number_of_Infs Number_of_NaNs Number_of_denormals Number_of_samples Peak_count Abs_Peak_count Peak_level RMS_difference RMS_level RMS_peak RMS_trough
Por ejemplo, una clave completa tiene el aspecto lavfi.astats.1.DC_offset o lavfi.astats.Overall.Peak_count.
Consulte a continuación la descripción de las claves.
reset
Establece el número de fotogramas sobre los que se calculan las estadísticas acumuladas antes de reiniciarse. De forma predeterminada está deshabilitado.
measure_perchannel
Selecciona los parámetros que se miden por canal. Las claves de metadatos pueden usarse como flags; el valor predeterminado es all, que mide todo. none desactiva toda medición por canal.
measure_overall
Selecciona los parámetros que se miden de forma global. Las claves de metadatos pueden usarse como flags; el valor predeterminado es all, que mide todo. none desactiva toda medición global.
A continuación, una descripción de las claves de medida:
none
sin medidas
all
todas las medidas
Bit_depth
profundidad de bits global del audio, es decir, el número de bits usados para cada muestra
Crest_factor
relación estándar entre el nivel de pico y el nivel RMS (nota: no en dB)
DC_offset
desplazamiento medio de amplitud respecto de cero
Dynamic_range
rango dinámico medido del audio en dB
Entropy
entropía medida a lo largo de todo el audio; un valor de entropía cercano a 1.0 suele medirse en el ruido blanco
Flat_factor
planitud (es decir, muestras consecutivas con el mismo valor) de la señal en sus niveles de pico (es decir, Min_level o Max_level)
Max_difference
diferencia máxima entre dos muestras consecutivas
Max_level
nivel máximo de muestra
Mean_difference
diferencia media entre dos muestras consecutivas, es decir, el promedio de cada diferencia entre dos muestras consecutivas
Min_difference
diferencia mínima entre dos muestras consecutivas
Min_level
nivel mínimo de muestra
Noise_floor
pico local mínimo medido en dBFS a lo largo de una ventana corta
Noise_floor_count
número de ocasiones (no el número de muestras) en que la señal alcanzó el Noise floor
Number_of_Infs
número de muestras con un valor infinito
Number_of_NaNs
número de muestras con un valor NaN (no numérico)
Number_of_denormals
número de muestras con un valor subnormal
Number_of_samples
número de muestras
Peak_count
número de ocasiones (no el número de muestras) en que la señal alcanzó Min_level o Max_level
Abs_Peak_count
número de ocasiones en que las muestras absolutas tomadas de la señal alcanzaron el valor absoluto máximo de Min_level y Max_level
Peak_level
nivel de pico estándar medido en dBFS
RMS_difference
diferencia cuadrática media (RMS) entre dos muestras consecutivas
RMS_level
nivel RMS estándar medido en dBFS
RMS_peak RMS_trough
valores de pico y valle para el nivel RMS medidos a lo largo de una ventana corta, en dBFS.
Zero crossings
número de puntos donde la forma de onda cruza el eje de nivel cero
Zero crossings rate
tasa de Zero crossings respecto al número de muestras de audio
8.60 asubboost
Aumenta las frecuencias del subwoofer.
El filtro acepta las siguientes opciones:
dry
Establece la ganancia dry (seca), es decir, cuánto se conserva de la señal original. El rango permitido va de 0 a 1. El valor predeterminado es 1.0.
wet
Establece la ganancia wet (húmeda), es decir, cuánto se conserva de la señal filtrada. El rango permitido va de 0 a 1. El valor predeterminado es 1.0.
boost
Establece el factor máximo de aumento. El rango permitido va de 1 a 12. El valor predeterminado es 2.
decay
Establece el valor de decaimiento de la línea de retardo. El rango permitido va de 0 a 1. El valor predeterminado es 0.0.
feedback
Establece el valor de realimentación de la línea de retardo. El rango permitido va de 0 a 1. El valor predeterminado es 0.9.
cutoff
Establece la frecuencia de corte en hercios. El rango permitido va de 50 a 900. El valor predeterminado es 100.
slope
Establece la pendiente para la frecuencia de corte. El rango permitido va de 0.0001 a 1. El valor predeterminado es 0.5.
delay
Establece el retardo. El rango permitido va de 1 a 100. El valor predeterminado es 20.
channels
Establece los canales que se van a procesar. El valor predeterminado es todos los disponibles.
8.60.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.61 asubcut
Recorta las frecuencias del subwoofer.
Este filtro permite establecer una caída más pronunciada y personalizada que la de un filtro paso alto, y así puede atenuar más el contenido de frecuencia en la banda de corte.
El filtro acepta las siguientes opciones:
cutoff
Establece la frecuencia de corte en hercios. El rango permitido va de 2 a 200. El valor predeterminado es 20.
order
Establece el orden del filtro. Los valores disponibles van de 3 a 20. El valor predeterminado es 10.
level
Establece el nivel de ganancia de entrada. El rango permitido va de 0 a 1. El valor predeterminado es 1.
8.61.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.62 asupercut
Recorta las frecuencias superagudas.
El filtro acepta las siguientes opciones:
cutoff
Establece la frecuencia de corte en hercios. El rango permitido va de 20000 a 192000. El valor predeterminado es 20000.
order
Establece el orden del filtro. Los valores disponibles van de 3 a 20. El valor predeterminado es 10.
level
Establece el nivel de ganancia de entrada. El rango permitido va de 0 a 1. El valor predeterminado es 1.
8.62.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.63 asuperpass
Aplica un filtro Butterworth paso banda de orden alto.
El filtro acepta las siguientes opciones:
centerf
Establece la frecuencia central en hercios. El rango permitido va de 2 a 999999. El valor predeterminado es 1000.
order
Establece el orden del filtro. Los valores disponibles van de 4 a 20. El valor predeterminado es 4.
qfactor
Establece el factor Q. El rango permitido va de 0.01 a 100. El valor predeterminado es 1.
level
Establece el nivel de ganancia de entrada. El rango permitido va de 0 a 2. El valor predeterminado es 1.
8.63.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.64 asuperstop
Aplica un filtro Butterworth de rechazo de banda de orden alto.
El filtro acepta las siguientes opciones:
centerf
Establece la frecuencia central en hercios. El rango permitido va de 2 a 999999. El valor predeterminado es 1000.
order
Establece el orden del filtro. Los valores disponibles van de 4 a 20. El valor predeterminado es 4.
qfactor
Establece el factor Q. El rango permitido va de 0.01 a 100. El valor predeterminado es 1.
level
Establece el nivel de ganancia de entrada. El rango permitido va de 0 a 2. El valor predeterminado es 1.
8.64.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.65 atempo
Ajusta el tempo del audio.
El filtro acepta exactamente un parámetro, el tempo del audio. Si no se especifica, el filtro asume un tempo nominal de 1.0. El tempo debe estar en el rango [0.5, 100.0].
Tenga en cuenta que un tempo mayor que 2 hará que se omitan algunas muestras en lugar de mezclarlas. Si por cualquier motivo esto supone un problema, siempre es posible encadenar varias instancias de atempo para lograr el tempo resultante deseado.
8.65.1 Ejemplos
-
Reducir el tempo del audio al 80%:
atempo=0.8 -
Aumentar el tempo del audio al 300%:
atempo=3 -
Aumentar el tempo del audio al 300% encadenando dos instancias de atempo:
atempo=sqrt(3),atempo=sqrt(3)
8.65.2 Comandos
Este filtro admite los siguientes comandos:
tempo
Cambia el factor de escala del tempo del filtro. La sintaxis del comando es: "tempo"
8.66 atilt
Aplica un filtro de inclinación espectral al flujo de audio.
Este filtro aplica cualquier pendiente de caída espectral sobre cualquier banda de frecuencia especificada.
El filtro acepta las siguientes opciones:
freq
Establece la frecuencia central de la inclinación en Hz. El valor predeterminado es 10000 Hz.
slope
Establece la dirección de la pendiente de la inclinación. El valor predeterminado es 0. El rango permitido va de -1 a 1.
width
Establece el ancho de la inclinación. El valor predeterminado es 1000. El rango permitido va de 100 a 10000.
order
Establece el orden del filtro de inclinación.
level
Establece el nivel de volumen de entrada. El rango permitido va de 0 a 4. El valor predeterminado es 1.
8.66.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.67 atrim
Recorta la entrada de modo que la salida contenga una única subparte continua de la entrada.
Acepta los siguientes parámetros:
start
Marca de tiempo (en segundos) del inicio de la sección que se debe conservar. Es decir, la muestra de audio con la marca de tiempo start será la primera muestra de la salida.
end
Especifica el instante de la primera muestra de audio que se descartará, es decir, la muestra de audio inmediatamente anterior a la que tiene la marca de tiempo end será la última muestra de la salida.
start_pts
Igual que start, salvo que esta opción establece la marca de tiempo de inicio en muestras en lugar de segundos.
end_pts
Igual que end, salvo que esta opción establece la marca de tiempo de fin en muestras en lugar de segundos.
duration
La duración máxima de la salida en segundos.
start_sample
El número de la primera muestra que debe emitirse.
end_sample
El número de la primera muestra que debe descartarse.
start, end y duration se expresan como especificaciones de duración de tiempo; véase (ffmpeg-utils)la sección Time duration del manual ffmpeg-utils(1).
Tenga en cuenta que los dos primeros conjuntos de opciones start/end y la opción duration se basan en la marca de tiempo del fotograma, mientras que las opciones _sample simplemente cuentan las muestras que pasan por el filtro. Por eso start/end_pts y start/end_sample darán resultados distintos cuando las marcas de tiempo sean incorrectas, inexactas o no empiecen en cero. Tenga en cuenta también que este filtro no modifica las marcas de tiempo. Si desea que las marcas de tiempo de salida empiecen en cero, inserte el filtro asetpts después del filtro atrim.
Si se establecen varias opciones start o end, este filtro intenta ser permisivo y conservar todas las muestras que coincidan con al menos una de las restricciones especificadas. Para conservar solo la parte que cumple todas las restricciones a la vez, encadene varios filtros atrim.
Los valores predeterminados son tales que se conserva toda la entrada. Por eso es posible establecer, por ejemplo, solo los valores de end para conservar todo lo anterior al instante especificado.
Ejemplos:
-
Descartar todo excepto el segundo minuto de la entrada:
ffmpeg -i INPUT -af atrim=60:120 -
Conservar solo las primeras 1000 muestras:
ffmpeg -i INPUT -af atrim=end_sample=1000
8.68 axcorrelate
Calcula la correlación cruzada normalizada por ventana entre dos flujos de audio de entrada.
Las muestras resultantes siempre están entre -1 y 1 inclusive. Si el resultado es 1, significa que las dos muestras de entrada están altamente correlacionadas en ese segmento seleccionado. Un resultado de 0 significa que no están correlacionadas en absoluto. Si el resultado es -1, significa que las dos muestras de entrada están en fase opuesta, lo que implica que se cancelan mutuamente.
El filtro acepta las siguientes opciones:
size
Establece el tamaño del segmento sobre el que se calcula la correlación cruzada. El valor predeterminado es 256. El rango permitido va de 2 a 131072.
algo
Establece el algoritmo para la correlación cruzada. Puede ser slow, fast o best. El valor predeterminado es best. El algoritmo fast asume que los valores medios sobre cualquier segmento dado son siempre cero y, por tanto, necesita muchos menos cálculos. Esto en general no es cierto, pero es válido para flujos de audio típicos.
8.68.1 Ejemplos
- Calcular la correlación entre canales en un flujo de audio estéreo:
ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
8.69 bandpass
Aplica un filtro Butterworth paso banda de dos polos con frecuencia central frequency y ancho de banda width (punto de 3dB). La opción csg selecciona una ganancia de falda constante (ganancia de pico = Q) en lugar de la opción predeterminada: ganancia de pico constante de 0dB. El filtro tiene una caída de 6dB por octava (20dB por década).
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia central del filtro. El valor predeterminado es 3000.
csg
Ganancia de falda constante si se fija en 1. El valor predeterminado es 0.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Especifica el ancho de banda de un filtro en las unidades de width_type.
mix, m
Cuánto de la señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; de forma predeterminada está deshabilitado. Al habilitarla, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros envolventes.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado se volverá de fase lineal; en caso contrario, si no es lo bastante grande, simplemente producirá artefactos desagradables.
Tenga en cuenta que el retardo del filtro será exactamente esta cantidad de muestras cuando se fije un valor distinto de cero.
8.69.1 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de bandpass. La sintaxis del comando es: "frequency"
width_type, t
Cambia el width_type de bandpass. La sintaxis del comando es: "width_type"
width, w
Cambia el width de bandpass. La sintaxis del comando es: "width"
mix, m
Cambia el mix de bandpass. La sintaxis del comando es: "mix"
8.70 bandreject
Aplica un filtro Butterworth de rechazo de banda de dos polos con frecuencia central frequency y ancho de banda width (punto de 3dB). El filtro tiene una caída de 6dB por octava (20dB por década).
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia central del filtro. El valor predeterminado es 3000.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Especifica el ancho de banda de un filtro en las unidades de width_type.
mix, m
Cuánto de la señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; de forma predeterminada está deshabilitado. Al habilitarla, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros envolventes.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado se volverá de fase lineal; en caso contrario, si no es lo bastante grande, simplemente producirá artefactos desagradables.
Tenga en cuenta que el retardo del filtro será exactamente esta cantidad de muestras cuando se fije un valor distinto de cero.
8.70.1 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de bandreject. La sintaxis del comando es: "frequency"
width_type, t
Cambia el width_type de bandreject. La sintaxis del comando es: "width_type"
width, w
Cambia el width de bandreject. La sintaxis del comando es: "width"
mix, m
Cambia el mix de bandreject. La sintaxis del comando es: "mix"
8.71 bass, lowshelf
Aumenta o recorta las frecuencias graves (bajas) del audio mediante un filtro shelving de dos polos con una respuesta similar a la de los controles de tono de un equipo de alta fidelidad estándar. Esto también se conoce como ecualización shelving (EQ).
El filtro acepta las siguientes opciones:
gain, g
Especifica la ganancia en 0 Hz. Su rango útil va de aproximadamente -20 (para un gran recorte) a +20 (para un gran aumento). Tenga cuidado con el recorte (clipping) al usar una ganancia positiva.
frequency, f
Establece la frecuencia central del filtro, que puede usarse para ampliar o reducir el rango de frecuencias que se va a aumentar o recortar. El valor predeterminado es 100 Hz.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Determina la pendiente de la transición shelf del filtro.
poles, p
Establece el número de polos. El valor predeterminado es 2.
mix, m
Cuánto de la señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; de forma predeterminada está deshabilitado. Al habilitarla, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros envolventes.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado se volverá de fase lineal; en caso contrario, si no es lo bastante grande, simplemente producirá artefactos desagradables.
Tenga en cuenta que el retardo del filtro será exactamente esta cantidad de muestras cuando se fije un valor distinto de cero.
8.71.1 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de bass. La sintaxis del comando es: "frequency"
width_type, t
Cambia el width_type de bass. La sintaxis del comando es: "width_type"
width, w
Cambia el ancho de bass. La sintaxis del comando es: "width"
gain, g
Cambia la ganancia de bass. La sintaxis del comando es: "gain"
mix, m
Cambia la mezcla de bass. La sintaxis del comando es: "mix"
8.72 biquad
Aplica un filtro IIR biquad con los coeficientes indicados, donde b0, b1, b2 y a0, a1, a2 son los coeficientes del numerador y del denominador respectivamente, y channels, c especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
8.72.1 Comandos
Este filtro admite los siguientes comandos:
a0 a1 a2 b0 b1 b2
Cambia un parámetro de biquad. La sintaxis del comando es: "value"
mix, m
Cuánta señal filtrada se usa en la salida. El valor predeterminado es 1. El rango va de 0 a 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes de biquad. Está deshabilitado de forma predeterminada. Al habilitarlo, normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformación del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format en función de los filtros surround.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre 32 bits en coma flotante.
f64
Usa siempre 64 bits en coma flotante.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado pasará a ser de fase lineal; en caso contrario, si no es lo bastante grande, solo producirá artefactos molestos.
Tenga en cuenta que, al fijar un valor distinto de cero, el retardo del filtro será exactamente ese número de muestras.
8.73 bs2b
Transformación de estéreo a binaural de Bauer, que mejora la escucha de grabaciones de audio estéreo con auriculares.
Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-libbs2b.
Acepta los siguientes parámetros:
profile
Nivel de crossfeed predefinido.
default
Nivel predeterminado (fcut=700, feed=50).
cmoy
Circuito Chu Moy (fcut=700, feed=60).
jmeier
Circuito Jan Meier (fcut=650, feed=95).
fcut
Frecuencia de corte (en Hz).
feed
Nivel de feed (en Hz).
8.74 channelmap
Reasigna los canales de entrada a nuevas ubicaciones.
Acepta los siguientes parámetros:
map
Mapea los canales de la entrada a la salida. El argumento es una lista de asignaciones separadas por ’|’, cada una con la forma in_channel-out_channel o in_channel. in_channel puede ser el nombre del canal de entrada (por ejemplo, FL para canal frontal izquierdo) o su índice en la disposición de canales de entrada. out_channel es el nombre del canal de salida o su índice en la disposición de canales de salida. Si no se indica out_channel, se toma implícitamente como un índice que empieza en cero y aumenta en uno por cada asignación. No se permite mezclar distintos tipos de asignaciones; hacerlo producirá un error de análisis.
channel_layout
Disposición de canales del flujo de salida. Si no se especifica, el filtro la deducirá a partir de los nombres de out_channel o del número de asignaciones. Las disposiciones deducidas no contendrán necesariamente los canales en el orden de las asignaciones.
Si no hay ninguna asignación, el filtro mapeará implícitamente los canales de entrada a los de salida, conservando los índices.
8.74.1 Ejemplos
- Por ejemplo, suponiendo un archivo MOV de entrada 5.1+downmix,
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
creará un archivo WAV de salida etiquetado como estéreo a partir de los canales downmix de la entrada.
- Para corregir un WAV 5.1 codificado incorrectamente en el orden de canales nativo de AAC
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
8.75 channelsplit
Divide cada canal de un flujo de audio de entrada en un flujo de salida independiente.
Acepta los siguientes parámetros:
channel_layout
Disposición de canales del flujo de entrada. El valor predeterminado es "stereo".
channels
Disposición de canales que describe los canales que se extraerán como flujos de salida independientes, o "all" para extraer cada canal de entrada como un flujo independiente. El valor predeterminado es "all".
Elegir canales que no están presentes en la disposición de canales de la entrada producirá un error.
8.75.1 Ejemplos
- Por ejemplo, suponiendo un archivo MP3 de entrada estéreo,
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
creará un archivo Matroska de salida con dos flujos de audio: uno con solo el canal izquierdo y el otro con el canal derecho.
-
Divide un archivo WAV 5.1 en archivos por canal:
ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]' -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]' front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]' side_right.wav -
Extrae solo el LFE de un archivo WAV 5.1:
ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]' -map '[LFE]' lfe.wav
8.76 chorus
Añade un efecto de chorus al audio.
Puede hacer que una única voz suene como un chorus, pero también puede aplicarse a instrumentos.
El chorus se asemeja a un efecto de eco con un retardo corto, pero, mientras que en el eco el retardo es constante, en el chorus se varía mediante modulación sinusoidal o triangular. La profundidad de modulación define el rango en el que el retardo modulado se reproduce antes o después del retardo base. Por ello, el sonido retardado sonará más lento o más rápido, es decir, el sonido retardado oscila en torno al original, como en un coro donde algunas voces desafinan ligeramente.
Acepta los siguientes parámetros:
in_gain
Establece la ganancia de entrada. El valor predeterminado es 0.4.
out_gain
Establece la ganancia de salida. El valor predeterminado es 0.4.
delays
Establece los retardos. Un retardo típico ronda entre 40ms y 60ms.
decays
Establece los decaimientos.
speeds
Establece las velocidades.
depths
Establece las profundidades.
8.76.1 Ejemplos
-
Un único retardo:
chorus=0.7:0.9:55:0.4:0.25:2 -
Dos retardos:
chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3 -
Chorus de sonido más pleno con tres retardos:
chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
8.77 compand
Comprime o expande el rango dinámico del audio.
Acepta los siguientes parámetros:
attacks decays
Una lista de tiempos en segundos, para cada canal, durante los cuales se promedia el nivel instantáneo de la señal de entrada para determinar su volumen. attacks se refiere al aumento de volumen y decays al descenso de volumen. En la mayoría de los casos, el tiempo de ataque (la respuesta a que el audio se vuelva más fuerte) debería ser más corto que el tiempo de caída, porque el oído humano es más sensible a un sonido fuerte repentino que a uno suave repentino. Un valor típico de ataque es 0.3 segundos y un valor típico de caída es 0.8 segundos. Si el número especificado de attacks y decays es menor que el número de canales, el último ataque/caída establecido se usará para todos los canales restantes.
points
Una lista de puntos para la función de transferencia, especificados en dB con respecto a la amplitud máxima posible de la señal. Cada lista de puntos clave debe definirse con la siguiente sintaxis: x0/y0|x1/y1|x2/y2|.... o x0/y0 x1/y1 x2/y2 ....
Los valores de entrada deben estar en orden estrictamente creciente, pero la función de transferencia no tiene por qué ser monótonamente creciente. Se asume el punto 0/0, aunque puede sobrescribirse (mediante 0/out-dBn). Los valores típicos de la función de transferencia son -70/-70|-60/-20|1/0.
soft-knee
Establece el radio de la curva en dB para todas las uniones. El valor predeterminado es 0.01.
gain
Establece la ganancia adicional en dB que se aplicará en todos los puntos de la función de transferencia. Esto permite ajustar fácilmente la ganancia global. El valor predeterminado es 0.
volume
Establece un volumen inicial, en dB, que se asumirá para cada canal cuando comience el filtrado. Esto permite al usuario indicar un nivel nominal inicial, de modo que, por ejemplo, no se aplique una ganancia muy alta a los niveles de señal iniciales antes de que el companding empiece a operar. Un valor típico para audio inicialmente silencioso es -90 dB. El valor predeterminado es 0.
delay
Establece un retardo, en segundos. El audio de entrada se analiza de inmediato, pero el audio se retarda antes de pasar al ajustador de volumen. Especificar un retardo aproximadamente igual a los tiempos de ataque/caída permite que el filtro funcione de forma efectivamente predictiva en lugar de reactiva. El valor predeterminado es 0.
8.77.1 Ejemplos
- Crear música con pasajes tanto suaves como fuertes, apta para escuchar en un entorno ruidoso:
compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
Otro ejemplo para audio con partes susurradas y partes con explosiones:
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
-
Una puerta de ruido (noise gate) para cuando el ruido está a un nivel más bajo que la señal:
compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1 -
Aquí hay otra puerta de ruido, esta vez para cuando el ruido está a un nivel más alto que la señal (lo que la hace, en cierto modo, similar a un squelch):
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1 -
Compresión 2:1 a partir de -6dB:
compand=points=-80/-80|-6/-6|0/-3.8|20/3.5 -
Compresión 2:1 a partir de -9dB:
compand=points=-80/-80|-9/-9|0/-5.3|20/2.9 -
Compresión 2:1 a partir de -12dB:
compand=points=-80/-80|-12/-12|0/-6.8|20/1.9 -
Compresión 2:1 a partir de -18dB:
compand=points=-80/-80|-18/-18|0/-9.8|20/0.7 -
Compresión 3:1 a partir de -15dB:
compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2 -
Compresor/puerta:
compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6 -
Expansor:
compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3 -
Limitador duro a -6dB:
compand=attacks=0:points=-80/-80|-6/-6|20/-6 -
Limitador duro a -12dB:
compand=attacks=0:points=-80/-80|-12/-12|20/-12 -
Puerta de ruido dura a -35 dB:
compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20 -
Limitador suave:
compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
8.78 compensationdelay
Compensation Delay Line es un retardo basado en unidades métricas para compensar las distintas posiciones de micrófonos o altavoces.
Por ejemplo, supongamos que ha grabado una guitarra con dos micrófonos colocados en lugares distintos. Dado que el frente de la onda sonora tiene una velocidad fija en condiciones normales, la fase de los micrófonos puede variar en función de su ubicación y de su disposición relativa. La mejor mezcla de sonido se consigue cuando estos micrófonos están en fase (sincronizados). Tenga en cuenta que una distancia de ~30 cm entre micrófonos hace que un micrófono capte la señal en antifase respecto al otro. Esto hace que la mezcla final suene turbia. Este filtro ayuda a resolver los problemas de fase añadiendo distintos retardos a la pista de cada micrófono y sincronizándolas.
El mejor resultado se obtiene cuando se toma una pista como base y se sincronizan con ella las demás pistas, una por una. Recuerde que la tolerancia de sincronización/retardo también depende de la frecuencia de muestreo. Las frecuencias de muestreo más altas ofrecen más tolerancia.
El filtro acepta los siguientes parámetros:
mm
Establece la distancia en milímetros. Es la distancia de compensación para el ajuste fino. El valor predeterminado es 0.
cm
Establece la distancia en centímetros. Es la distancia de compensación para afinar la configuración de distancia. El valor predeterminado es 0.
m
Establece la distancia en metros. Es la distancia de compensación para una configuración de distancia gruesa. El valor predeterminado es 0.
dry
Establece la cantidad de dry. Cantidad de señal sin procesar (dry). El valor predeterminado es 0.
wet
Establece la cantidad de wet. Cantidad de señal procesada (wet). El valor predeterminado es 1.
temp
Establece la temperatura en grados Celsius. Es la temperatura del entorno. El valor predeterminado es 20.
8.78.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.79 crossfeed
Aplica un filtro de crossfeed para auriculares.
El crossfeed es el proceso de mezclar los canales izquierdo y derecho de una grabación de audio estéreo. Se usa principalmente para reducir la separación estéreo extrema de las frecuencias bajas.
El objetivo es producir para el oyente un sonido más parecido al de unos altavoces.
El filtro acepta las siguientes opciones:
strength
Establece la intensidad del crossfeed. El valor predeterminado es 0.2. El rango permitido va de 0 a 1. Esto establece la ganancia del filtro low shelf para la parte lateral de la imagen estéreo. El valor predeterminado es -6dB. El máximo permitido es -30db cuando strength se fija en 1.
range
Establece la amplitud del escenario sonoro (soundstage). El valor predeterminado es 0.5. El rango permitido va de 0 a 1. Esto establece la frecuencia de corte del filtro low shelf. De forma predeterminada, el corte está cerca de 1550 Hz. Con range fijado en 1, la frecuencia de corte se fija en 2100 Hz.
slope
Establece la pendiente de la curva del filtro low shelf. El valor predeterminado es 0.5. El rango permitido va de 0.01 a 1.
level_in
Establece la ganancia de entrada. El valor predeterminado es 0.9.
level_out
Establece la ganancia de salida. El valor predeterminado es 1.
block_size
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado pasará a ser de fase lineal; en caso contrario, si no es lo bastante grande, solo producirá artefactos molestos.
Tenga en cuenta que, al fijar un valor distinto de cero, el retardo del filtro será exactamente ese número de muestras.
8.79.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.80 crystalizer
Algoritmo simple para el realce del audio mediante ruido (noise sharpening).
Este filtro incrementa linealmente las diferencias entre cada muestra de audio.
El filtro acepta las siguientes opciones:
i
Establece la intensidad del efecto (valor predeterminado: 2.0). Debe estar en el rango de -10.0 a 0 (sonido sin cambios) hasta 10.0 (efecto máximo). Para invertir el filtrado, use un valor negativo.
c
Habilita el recorte (clipping). Está habilitado de forma predeterminada.
8.80.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.81 dcshift
Aplica un desplazamiento de DC (DC shift) al audio.
Esto puede ser útil para eliminar del audio un offset de DC (causado quizá por un problema de hardware en la cadena de grabación). El efecto de un offset de DC es una reducción del headroom y, por tanto, del volumen. El filtro astats puede usarse para determinar si una señal tiene un offset de DC.
shift
Establece el desplazamiento de DC; el rango permitido es [-1, 1]. Indica la magnitud del desplazamiento aplicado al audio.
limitergain
Opcional. Debe tener un valor mucho menor que 1 (por ejemplo, 0.05 o 0.02) y se usa para evitar el recorte (clipping).
8.82 deesser
Aplica de-essing a las muestras de audio.
i
Establece la intensidad que activa el de-essing. El rango permitido va de 0 a 1. El valor predeterminado es 0.
m
Establece la cantidad de ducking en la parte aguda del sonido. El rango permitido va de 0 a 1. El valor predeterminado es 0.5.
f
Cuánto contenido de frecuencia original se conserva al aplicar el de-essing. El rango permitido va de 0 a 1. El valor predeterminado es 0.5.
s
Establece el modo de salida.
Acepta los siguientes valores:
i
Deja pasar la entrada sin cambios.
o
Deja pasar la señal con el ess eliminado.
e
Deja pasar solo el ess.
El valor predeterminado es o.
8.83 dialoguenhance
Realza el diálogo en audio estéreo.
Este filtro acepta una entrada estéreo y produce una salida de canales surround (3.0). El canal frontal central recién generado contiene el diálogo hablado realzado, originalmente presente en ambos canales estéreo. Este filtro emite los canales frontal izquierdo y frontal derecho tal como están presentes en la entrada estéreo.
El filtro acepta las siguientes opciones:
original
Establece el factor del centro original que se conserva en la salida del canal frontal central. El rango permitido va de 0 a 1. El valor predeterminado es 1.
enhance
Establece el factor de realce del diálogo aplicado en la salida del canal frontal central. El rango permitido va de 0 a 3. El valor predeterminado es 1.
voice
Establece el factor de detección de voz. El rango permitido va de 2 a 32. El valor predeterminado es 2.
8.83.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.84 drmeter
Mide el rango dinámico del audio.
Valores de DR de 14 o superiores se encuentran en material muy dinámico. Un DR de 8 a 13 se encuentra en material de transición. Y cualquier valor inferior a 8 indica una dinámica muy pobre y una compresión muy fuerte.
El filtro acepta las siguientes opciones:
length
Establece, en segundos, la longitud de ventana usada para dividir el audio en segmentos de igual longitud. El valor predeterminado es 3 segundos.
8.85 dynaudnorm
Normalizador de audio dinámico.
Este filtro aplica una cierta cantidad de ganancia al audio de entrada para llevar su magnitud de pico a un nivel objetivo (por ejemplo, 0 dBFS). Sin embargo, a diferencia de los algoritmos de normalización más "simples", el Dynamic Audio Normalizer reajusta dinámicamente el factor de ganancia según el audio de entrada. Esto permite aplicar ganancia adicional a las secciones "silenciosas" del audio evitando distorsiones o recortes en las secciones "fuertes". Dicho de otro modo: el Dynamic Audio Normalizer "iguala" el volumen de las secciones silenciosas y fuertes, en el sentido de que el volumen de cada sección se lleva al mismo nivel objetivo. Tenga en cuenta, sin embargo, que el Dynamic Audio Normalizer logra este objetivo sin aplicar "compresión de rango dinámico". Conservará el 100% del rango dinámico dentro de cada sección del archivo de audio.
framelen, f
Establece la longitud de fotograma en milisegundos. El rango va de 10 a 8000 milisegundos. El valor predeterminado es 500 milisegundos. El Dynamic Audio Normalizer procesa el audio de entrada en pequeños fragmentos, denominados fotogramas. Esto es necesario porque una magnitud de pico no tiene sentido para un único valor de muestra. En su lugar, es necesario determinar la magnitud de pico para una secuencia contigua de valores de muestra. Mientras que un normalizador "estándar" simplemente usaría la magnitud de pico de todo el archivo, el Dynamic Audio Normalizer determina la magnitud de pico individualmente para cada fotograma. La longitud de un fotograma se especifica en milisegundos. De forma predeterminada, el Dynamic Audio Normalizer usa una longitud de fotograma de 500 milisegundos, que se ha comprobado que da buenos resultados con la mayoría de los archivos. Tenga en cuenta que la longitud exacta del fotograma, en número de muestras, se determinará automáticamente en función de la frecuencia de muestreo de cada archivo de audio de entrada.
gausssize, g
Establece el tamaño de la ventana del filtro gaussiano. El rango va de 3 a 301 y debe ser un número impar. El valor predeterminado es 31. Probablemente el parámetro más importante del Dynamic Audio Normalizer sea el window size (tamaño de ventana) del filtro de suavizado gaussiano. El tamaño de ventana del filtro se especifica en fotogramas, centrados en torno al fotograma actual. Por simplicidad, debe ser un número impar. En consecuencia, el valor predeterminado de 31 tiene en cuenta el fotograma actual, así como los 15 fotogramas anteriores y los 15 fotogramas siguientes. Usar una ventana mayor produce un efecto de suavizado más fuerte y, por tanto, menos variación de ganancia, es decir, una adaptación de ganancia más lenta. A la inversa, usar una ventana menor produce un efecto de suavizado más débil y, por tanto, más variación de ganancia, es decir, una adaptación de ganancia más rápida. Dicho de otro modo, cuanto más se aumenta este valor, más se comporta el Dynamic Audio Normalizer como un filtro de normalización "tradicional". Por el contrario, cuanto más se reduce este valor, más se comporta el Dynamic Audio Normalizer como un compresor de rango dinámico.
peak, p
Establece el valor de pico objetivo. Especifica el nivel de magnitud más alto permitido para el audio de entrada normalizado. Este filtro intentará acercarse lo más posible a la magnitud de pico objetivo, pero al mismo tiempo también se asegura de que la señal normalizada nunca supere la magnitud de pico. El factor de ganancia local máximo de un fotograma viene impuesto directamente por la magnitud de pico objetivo. El valor predeterminado es 0.95 y, por tanto, deja un headroom del 5%*. No se recomienda superar este valor.
maxgain, m
Establece el factor de ganancia máximo. El rango va de 1.0 a 100.0. El valor predeterminado es 10.0. El Dynamic Audio Normalizer determina el máximo factor de ganancia (local) posible para cada fotograma de entrada, es decir, el máximo factor de ganancia que no produce recorte ni distorsión. El factor de ganancia máximo viene determinado por la muestra de mayor magnitud del fotograma. Sin embargo, el Dynamic Audio Normalizer además acota el factor de ganancia máximo del fotograma mediante un factor de ganancia máximo predeterminado (global). Esto se hace para evitar factores de ganancia excesivos en fotogramas "silenciosos" o casi silenciosos. De forma predeterminada, el factor de ganancia máximo es 10.0. Para la mayoría de las entradas, el valor predeterminado debería ser suficiente, y por lo general no se recomienda aumentarlo. Sin embargo, para una entrada con un nivel de volumen general extremadamente bajo, puede ser necesario permitir factores de ganancia incluso más altos. Tenga en cuenta, sin embargo, que el Dynamic Audio Normalizer no aplica simplemente un umbral "duro" (es decir, que recorta los valores por encima del umbral). En su lugar, se aplica una función de umbral "sigmoide". De este modo, los factores de ganancia se acercan suavemente al valor del umbral, pero nunca lo superan.
targetrms, r
Establece el RMS objetivo. El rango va de 0.0 a 1.0. El valor predeterminado es 0.0 (desactivado). De forma predeterminada, el Dynamic Audio Normalizer realiza una normalización de "pico". Esto significa que el factor de ganancia local máximo de cada fotograma viene definido (únicamente) por la muestra de mayor magnitud del fotograma. De este modo, las muestras pueden amplificarse tanto como sea posible sin superar el nivel máximo de la señal, es decir, sin recorte. Sin embargo, opcionalmente, el Dynamic Audio Normalizer también puede tener en cuenta el valor cuadrático medio del fotograma, abreviado RMS. En ingeniería eléctrica, el RMS se usa habitualmente para determinar la potencia de una señal variable en el tiempo. Por ello, se considera que el RMS es una mejor aproximación de la "sonoridad percibida" que limitarse a observar la magnitud de pico de la señal. En consecuencia, al ajustar todos los fotogramas a un valor de RMS constante, puede establecerse una "sonoridad percibida" uniforme. Si se ha especificado un valor de RMS objetivo, el factor de ganancia local de un fotograma se define como el factor que daría exactamente ese valor de RMS. Tenga en cuenta, sin embargo, que el factor de ganancia local máximo sigue estando restringido por la muestra de mayor magnitud del fotograma, para evitar el recorte.
coupling, n
Habilita el acoplamiento de canales. Está habilitado de forma predeterminada. De forma predeterminada, el Dynamic Audio Normalizer amplifica todos los canales en la misma cantidad. Esto significa que se aplicará el mismo factor de ganancia a todos los canales, es decir, el máximo factor de ganancia posible viene determinado por el canal "más fuerte". Sin embargo, en algunas grabaciones puede ocurrir que el volumen de los distintos canales sea desigual, por ejemplo, que un canal sea "más silencioso" que los demás. En ese caso, esta opción puede usarse para deshabilitar el acoplamiento de canales. De este modo, el factor de ganancia se determinará de forma independiente para cada canal, dependiendo únicamente de la muestra de mayor magnitud de ese canal. Esto permite armonizar el volumen de los distintos canales.
correctdc, c
Habilita la corrección de offset de DC. Está deshabilitado de forma predeterminada. Una señal de audio (en el dominio del tiempo) es una secuencia de valores de muestra. En el Dynamic Audio Normalizer, estos valores de muestra se representan en el rango de -1.0 a 1.0, con independencia del formato de entrada original. Normalmente, la señal de audio, o "forma de onda", debería estar centrada en torno al punto cero. Esto significa que, si calculamos el valor medio de todas las muestras de un archivo, o de un único fotograma, el resultado debería ser 0.0 o al menos muy cercano a ese valor. Sin embargo, si hay una desviación significativa del valor medio respecto a 0.0, ya sea en dirección positiva o negativa, esto se denomina offset de DC o desplazamiento de DC. Dado que un offset de DC es claramente indeseable, el Dynamic Audio Normalizer ofrece una corrección de offset de DC opcional. Con la corrección de offset de DC habilitada, el Dynamic Audio Normalizer determinará el valor medio, o desplazamiento de "corrección de DC", de cada fotograma de entrada, y restará ese valor de todos los valores de muestra del fotograma, lo que garantiza que esas muestras vuelvan a estar centradas en torno a 0.0. Además, para evitar "huecos" en los límites de los fotogramas, los valores de desplazamiento de corrección de DC se interpolarán suavemente entre fotogramas vecinos.
altboundary, b
Habilita el modo de límite alternativo. Está deshabilitado de forma predeterminada. El Dynamic Audio Normalizer tiene en cuenta cierto entorno alrededor de cada fotograma. Esto incluye tanto los fotogramas anteriores como los posteriores. Sin embargo, para los fotogramas "límite", situados justo al principio y al final del archivo de audio, no están disponibles todos los fotogramas vecinos. En concreto, para los primeros fotogramas del archivo de audio no se conocen los fotogramas anteriores. Y, de igual manera, para los últimos fotogramas del archivo de audio no se conocen los fotogramas posteriores. Por tanto, surge la pregunta de qué factores de ganancia deberían asumirse para los fotogramas que faltan en la región "límite". El Dynamic Audio Normalizer implementa dos modos para tratar esta situación. El modo de límite predeterminado asume un factor de ganancia de exactamente 1.0 para los fotogramas que faltan, lo que produce un "fade in" y un "fade out" suaves al principio y al final de la entrada, respectivamente.
compress, s
Establece el factor de compresión. El rango va de 0.0 a 30.0. El valor predeterminado es 0.0. De forma predeterminada, el Dynamic Audio Normalizer no aplica una compresión "tradicional". Esto significa que los picos de la señal no se recortarán y, por tanto, se conservará el rango dinámico completo dentro de cada entorno local. Sin embargo, en algunos casos puede ser conveniente combinar el algoritmo de normalización del Dynamic Audio Normalizer con una compresión más "tradicional". Con este fin, el Dynamic Audio Normalizer ofrece una función opcional de compresión (aplicación de umbral). Si (y solo si) la función de compresión está habilitada, todos los fotogramas de entrada se procesarán mediante una función de umbral con soft knee antes del proceso de normalización propiamente dicho. Dicho de forma sencilla, la función de umbral recorta todas las muestras cuya magnitud supera un determinado valor de umbral. Sin embargo, el Dynamic Audio Normalizer no aplica simplemente un valor de umbral fijo. En su lugar, el valor de umbral se ajustará para cada fotograma individual. En general, unos parámetros más pequeños producen una compresión más fuerte, y viceversa. No se recomiendan valores inferiores a 3.0, porque puede aparecer distorsión audible.
threshold, t
Establece el valor de umbral objetivo. Especifica el nivel de magnitud más bajo permitido para que el audio de entrada se normalice. Si el volumen del fotograma de entrada está por encima de este valor, el fotograma se normalizará. En caso contrario, es posible que el fotograma no se normalice en absoluto. El valor predeterminado se fija en 0, lo que significa que se normalizarán todos los fotogramas de entrada. Esta opción resulta útil sobre todo cuando no se desea amplificar el ruido digital.
channels, h
Especifica qué canales filtrar; de forma predeterminada se filtran todos los canales disponibles.
overlap, o
Especifica el solapamiento de los fotogramas. Si se fija en 0 (valor predeterminado), no se realiza ningún solapamiento de fotogramas. Usar valores >0 y <1 produce ajustes de ganancia menos conservadores, como cuando la opción framelen se fija en un valor menor; si el valor de la opción framelen se compensa por el solapamiento distinto de cero, los ajustes de ganancia serán más suaves en el tiempo en comparación con el caso sin solapamiento.
curve, v
Especifica la expresión de la curva de mapeo de picos que se usará al calcular la ganancia aplicada a los fotogramas. La ganancia máxima de salida por fotograma seguirá estando limitada por las demás opciones mencionadas anteriormente para este filtro.
La expresión puede contener las siguientes constantes:
ch
número de canal actual
sn
número de muestra actual
nb_channels
número de canales
t
marca de tiempo expresada en segundos
sr
frecuencia de muestreo
p
valor de pico del fotograma actual
8.85.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.86 earwax
Hace que el audio sea más fácil de escuchar con auriculares.
Este filtro añade ‘cues’ al audio estéreo de 44.1kHz (es decir, en formato de CD de audio) para que, al escucharlo con auriculares, la imagen estéreo se desplace desde dentro de la cabeza (habitual con auriculares) hacia fuera y delante del oyente (habitual con altavoces).
Portado de SoX.
8.87 equalizer
Aplica un filtro de ecualización (EQ) de pico de dos polos. Con este filtro, el nivel de señal en una frecuencia seleccionada y en su entorno puede aumentarse o reducirse, mientras que (a diferencia de los filtros bandpass y bandreject) el de todas las demás frecuencias permanece inalterado.
Para producir curvas de ecualización complejas, este filtro puede indicarse varias veces, cada una con una frecuencia central distinta.
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia central del filtro en Hz.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Especifica el ancho de banda del filtro en unidades de width_type.
gain, g
Establece la ganancia o atenuación requerida, en dB. Tenga cuidado con el recorte al usar una ganancia positiva.
mix, m
Cuánta señal filtrada se usa en la salida. El valor predeterminado es 1. El rango va de 0 a 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes de biquad. Está deshabilitado de forma predeterminada. Al habilitarlo, normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformación del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format en función de los filtros surround.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre 32 bits en coma flotante.
f64
Usa siempre 64 bits en coma flotante.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado pasará a ser de fase lineal; en caso contrario, si no es lo bastante grande, solo producirá artefactos molestos.
Tenga en cuenta que, al fijar un valor distinto de cero, el retardo del filtro será exactamente ese número de muestras.
8.87.1 Ejemplos
-
Atenuar 10 dB en 1000 Hz, con un ancho de banda de 200 Hz:
equalizer=f=1000:t=h:width=200:g=-10 -
Aplicar una ganancia de 2 dB en 1000 Hz con Q 1 y atenuar 5 dB en 100 Hz con Q 2:
equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
8.87.2 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de equalizer. La sintaxis del comando es: "frequency"
width_type, t
Cambia el width_type de equalizer. La sintaxis del comando es: "width_type"
width, w
Cambia el ancho de equalizer. La sintaxis del comando es: "width"
gain, g
Cambia la ganancia de equalizer. La sintaxis del comando es: "gain"
mix, m
Cambia la mezcla de equalizer. La sintaxis del comando es: "mix"
8.88 extrastereo
Aumenta linealmente la diferencia entre los canales izquierdo y derecho, lo que añade una especie de efecto "en vivo" a la reproducción.
El filtro acepta las siguientes opciones:
m
Establece el coeficiente de diferencia (valor predeterminado: 2.5). 0.0 significa sonido mono (promedio de ambos canales); con 1.0 el sonido no cambia; con -1.0 los canales izquierdo y derecho se intercambian.
c
Habilita el recorte (clipping). Está habilitado de forma predeterminada.
8.88.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.89 firequalizer
Aplica ecualización FIR utilizando una respuesta en frecuencia arbitraria.
El filtro acepta la siguiente opción:
gain
Establece la ecuación de la curva de ganancia (en dB). La expresión puede contener las siguientes variables:
f
la frecuencia evaluada
sr
frecuencia de muestreo
ch
número de canal, se establece en 0 cuando la evaluación multicanal está deshabilitada
chid
identificador de canal; véase libavutil/channel_layout.h. Se establece en el primer identificador de canal cuando la evaluación multicanal está deshabilitada
chs
número de canales
chlayout
channel_layout; véase libavutil/channel_layout.h
y las siguientes funciones:
gain_interpolate(f)
interpola la ganancia en la frecuencia f a partir de gain_entry
cubic_interpolate(f)
igual que gain_interpolate, pero más suave
Esta opción también está disponible como comando. El valor predeterminado es gain_interpolate(f).
gain_entry
Establece la entrada de ganancia para la función gain_interpolate. La expresión puede contener las siguientes funciones:
entry(f, g)
almacena una entrada de ganancia en la frecuencia f con el valor g
Esta opción también está disponible como comando.
delay
Establece el retardo del filtro en segundos. Cuanto mayor sea el valor, mayor será la precisión. El valor predeterminado es 0.01.
accuracy
Establece la precisión del filtro en Hz. Cuanto menor sea el valor, mayor será la precisión. El valor predeterminado es 5.
wfunc
Establece la función de ventana. Los valores aceptados son:
rectangular
ventana rectangular, útil cuando la curva de ganancia ya es suave
hann
ventana de Hann (predeterminada)
hamming
ventana de Hamming
blackman
ventana de Blackman
nuttall3
ventana de Nuttall de 3 términos, continua en su primera derivada
mnuttall3
ventana de Nuttall mínima de 3 términos, discontinua
nuttall
ventana de Nuttall de 4 términos, continua en su primera derivada
bnuttall
ventana de Nuttall mínima de 4 términos, discontinua (Blackman-Nuttall)
bharris
ventana de Blackman-Harris
tukey
ventana de Tukey
fixed
Si está habilitada, usa un número fijo de muestras de audio. Esto mejora la velocidad al filtrar con un retardo grande. Está deshabilitada de forma predeterminada.
multi
Habilita la evaluación multicanal sobre la ganancia. Está deshabilitada de forma predeterminada.
zero_phase
Habilita el modo de fase cero restando la marca de tiempo para compensar el retardo. Está deshabilitado de forma predeterminada.
scale
Establece la escala usada por la ganancia. Los valores aceptados son:
linlin
frecuencia lineal, ganancia lineal
linlog
frecuencia lineal, ganancia logarítmica (en dB) (predeterminado)
loglin
frecuencia logarítmica (en escala de octavas donde 20 Hz es 0), ganancia lineal
loglog
frecuencia logarítmica, ganancia logarítmica
dumpfile
Establece el archivo de volcado, adecuado para gnuplot.
dumpscale
Establece la escala para dumpfile. Los valores aceptados son los mismos que los de la opción scale. El valor predeterminado es linlog.
fft2
Habilita la convolución de 2 canales mediante FFT compleja. Esto mejora considerablemente la velocidad. Está deshabilitada de forma predeterminada.
min_phase
Habilita la respuesta al impulso de fase mínima. Está deshabilitada de forma predeterminada.
8.89.1 Ejemplos
-
paso bajo a 1000 Hz:
firequalizer=gain='if(lt(f,1000), 0, -INF)' -
paso bajo a 1000 Hz con gain_entry:
firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)' -
ecualización personalizada:
firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)' -
mayor retardo con fase cero para compensar el retardo:
firequalizer=delay=0.1:fixed=on:zero_phase=on -
paso bajo en el canal izquierdo, paso alto en el canal derecho:
firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))' :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
8.90 flanger
Aplica un efecto de flanger al audio.
El filtro acepta las siguientes opciones:
delay
Establece el retardo base en milisegundos. El rango va de 0 a 30. El valor predeterminado es 0.
depth
Establece el retardo de barrido añadido en milisegundos. El rango va de 0 a 10. El valor predeterminado es 2.
regen
Establece el porcentaje de regeneración (realimentación de la señal retardada). El rango va de -95 a 95. El valor predeterminado es 0.
width
Establece el porcentaje de señal retardada mezclada con la original. El rango va de 0 a 100. El valor predeterminado es 71.
speed
Establece los barridos por segundo (Hz). El rango va de 0.1 a 10. El valor predeterminado es 0.5.
shape
Establece la forma de la onda de barrido; puede ser triangular o sinusoidal. El valor predeterminado es sinusoidal.
phase
Establece el porcentaje de desplazamiento de fase de la onda de barrido para varios canales. El rango va de 0 a 100. El valor predeterminado es 25.
interp
Establece la interpolación de la línea de retardo: linear o quadratic. El valor predeterminado es linear.
8.91 haas
Aplica el efecto Haas al audio.
Tenga en cuenta que este filtro tiene más sentido aplicado a señales mono. Al aplicarse a señales mono, aporta cierta direccionalidad y amplía su imagen estéreo.
El filtro acepta las siguientes opciones:
level_in
Establece el nivel de entrada. El valor predeterminado es 1, es decir, 0dB
level_out
Establece el nivel de salida. El valor predeterminado es 1, es decir, 0dB.
side_gain
Establece la ganancia aplicada a la parte lateral de la señal. El valor predeterminado es 1.
middle_source
Establece el tipo de fuente central. Puede ser una de las siguientes:
‘left’
Selecciona el canal izquierdo.
‘right’
Selecciona el canal derecho.
‘mid’
Selecciona la señal de la parte central de la imagen estéreo.
‘side’
Selecciona la señal de la parte lateral de la imagen estéreo.
middle_phase
Invierte la fase central. Está deshabilitado de forma predeterminada.
left_delay
Establece el retardo del canal izquierdo. El valor predeterminado es 2.05 milisegundos.
left_balance
Establece el balance del canal izquierdo. El valor predeterminado es -1.
left_gain
Establece la ganancia del canal izquierdo. El valor predeterminado es 1.
left_phase
Invierte la fase izquierda. Está deshabilitado de forma predeterminada.
right_delay
Establece el retardo del canal derecho. El valor predeterminado es 2.12 milisegundos.
right_balance
Establece el balance del canal derecho. El valor predeterminado es 1.
right_gain
Establece la ganancia del canal derecho. El valor predeterminado es 1.
right_phase
Invierte la fase derecha. Está habilitado de forma predeterminada.
8.92 hdcd
Decodifica datos High Definition Compatible Digital (HDCD). Un flujo PCM de 16 bits con códigos HDCD incrustados se expande a un flujo PCM de 20 bits.
El filtro admite las funciones Peak Extend y Low-level Gain Adjustment de HDCD, y detecta el flag Transient Filter.
ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
Al usar el filtro con wav, tenga en cuenta que la codificación predeterminada de wav es de 16 bits, por lo que el flujo de 20 bits resultante se truncará de nuevo a 16 bits. Use algo como -acodec pcm_s24le después del filtro para obtener una salida PCM de 24 bits.
ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
El filtro acepta las siguientes opciones:
disable_autoconvert
Deshabilita cualquier conversión automática de formato o remuestreo en el filtergraph.
process_stereo
Procesa juntos los canales estéreo. Si target_gain no coincide entre canales, se considera inválido y se usa el último target_gain válido.
cdt_ms
Establece el periodo del temporizador de detección de código en ms.
force_pe
Extiende siempre los picos por encima de -3dBFS incluso si no se señaliza PE.
analyze_mode
Sustituye el audio por un tono sólido y ajusta la amplitud para indicar algún aspecto específico del proceso de decodificación. El archivo de salida puede cargarse en un editor de audio junto al original para facilitar el análisis.
analyze_mode=pe:force_pe=true puede usarse para ver todas las muestras por encima del nivel PE.
Los modos son:
‘0, off’
Deshabilitado
‘1, lle’
nivel de ajuste de ganancia en cada muestra
‘2, pe’
muestras en las que se produce peak extend
‘3, cdt’
muestras en las que el temporizador de detección de código está activo
‘4, tgm’
muestras en las que target gain no coincide entre canales
8.93 headphone
Aplica funciones de transferencia relacionadas con la cabeza (HRTF) para crear altavoces virtuales alrededor del usuario, orientados a la escucha binaural mediante auriculares. Los HRIR se proporcionan mediante flujos adicionales; se necesita un flujo de entrada estéreo por cada canal.
El filtro acepta las siguientes opciones:
map
Establece la asignación de los flujos de entrada para la convolución. El argumento es una lista de nombres de canal separados por ’|’, en el mismo orden en que se dan como entradas de flujo adicionales del filtro. Esto también especifica el número de flujos de entrada, que no debe ser menor que el número de canales del primer flujo más uno.
gain
Establece la ganancia aplicada al audio. El valor está en dB. El valor predeterminado es 0.
type
Establece el tipo de procesamiento. Puede ser time o freq. time procesa el audio en el dominio del tiempo, lo cual es lento. freq lo procesa en el dominio de la frecuencia, lo cual es rápido. El valor predeterminado es freq.
lfe
Establece una ganancia personalizada para los canales LFE. El valor está en dB. El valor predeterminado es 0.
size
Establece el tamaño del fotograma, en número de muestras, que se procesará a la vez. El valor predeterminado es 1024. El rango permitido va de 1024 a 96000.
hrir
Establece el formato del flujo hrir. El valor predeterminado es stereo. El valor alternativo es multich. Si se establece en stereo, el número de flujos adicionales debe ser mayor o igual que el número de canales de entrada del primer flujo de entrada, y además cada flujo adicional debe tener un número estéreo de canales. Si se establece en multich, el número de flujos adicionales debe ser exactamente uno, y el número de canales de entrada de ese flujo adicional debe ser igual o mayor que el doble del número de canales del primer flujo de entrada.
8.93.1 Ejemplos
-
Ejemplo completo que usa archivos wav como coeficientes con filtros amovie para un downmix 7.1; cada filtro amovie usa como entrada un archivo estéreo con los coeficientes de IR. Los archivos aportan los coeficientes para cada posición del altavoz virtual:
ffmpeg -i input.wav -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR" output.wav -
Ejemplo completo que usa archivos wav como coeficientes con filtros amovie para un downmix 7.1, pero ahora con el formato hrir multich.
ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich" output.wav
8.94 highpass
Aplica un filtro de paso alto con una frecuencia de corte de 3dB. El filtro puede ser de un polo o de dos polos (el valor predeterminado). La atenuación es de 6dB por polo y por octava (20dB por polo y por década).
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia en Hz. El valor predeterminado es 3000.
poles, p
Establece el número de polos. El valor predeterminado es 2.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
factor Q
o
octava
s
pendiente
k
kHz
width, w
Especifica el ancho de banda del filtro en las unidades de width_type. Solo se aplica al filtro de dos polos. El valor predeterminado es 0.707q y proporciona una respuesta Butterworth.
mix, m
Cuánta señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; está deshabilitado de forma predeterminada. Al habilitarlo, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros envolventes (surround).
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se ajusta lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a cero), el filtrado pasará a ser de fase lineal; en caso contrario, si no es lo bastante grande, producirá artefactos desagradables.
Tenga en cuenta que, si se establece un valor distinto de cero, el retardo del filtro será exactamente ese número de muestras.
8.94.1 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de highpass. La sintaxis del comando es: "frequency"
width_type, t
Cambia width_type de highpass. La sintaxis del comando es: "width_type"
width, w
Cambia width de highpass. La sintaxis del comando es: "width"
mix, m
Cambia mix de highpass. La sintaxis del comando es: "mix"
8.95 join
Une varios flujos de entrada en un único flujo multicanal.
Acepta los siguientes parámetros:
inputs
El número de flujos de entrada. El valor predeterminado es 2.
channel_layout
La disposición de canales de salida deseada. El valor predeterminado es stereo.
map
Asigna los canales de las entradas a la salida. El argumento es una lista de asignaciones separadas por ’|’, cada una con la forma input_idx.in_channel-out_channel. input_idx es el índice, basado en 0, del flujo de entrada. in_channel puede ser el nombre del canal de entrada (por ejemplo, FL para frontal izquierdo) o su índice dentro del flujo de entrada indicado. out_channel es el nombre del canal de salida.
El filtro intentará deducir las asignaciones cuando no se especifiquen explícitamente. Para ello, primero intenta encontrar un canal de entrada coincidente sin usar y, si no lo consigue, elige el primer canal de entrada sin usar.
Une 3 entradas (con las disposiciones de canales configuradas correctamente):
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
Construye una salida 5.1 a partir de 6 flujos monocanal:
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
out
8.96 ladspa
Carga un complemento LADSPA (Linux Audio Developer’s Simple Plugin API).
Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-ladspa.
file, f
Especifica el nombre de la biblioteca de complementos LADSPA que se va a cargar. Si la variable de entorno LADSPA_PATH está definida, el complemento LADSPA se busca en cada uno de los directorios indicados en la lista separada por dos puntos de LADSPA_PATH; en caso contrario, se busca en las rutas estándar de LADSPA, en este orden: HOME/.ladspa/lib/, /usr/local/lib/ladspa/, /usr/lib/ladspa/.
plugin, p
Especifica el complemento dentro de la biblioteca. Algunas bibliotecas contienen un único complemento, pero otras contienen muchos. Si no se establece, el filtro listará todos los complementos disponibles en la biblioteca indicada.
controls, c
Establece la lista de controles separados por ’|’, que son cero o más valores en coma flotante que determinan el comportamiento del complemento cargado (por ejemplo, retardo, umbral o ganancia). Los controles deben definirse con la siguiente sintaxis: c0=value0|c1=value1|c2=value2|..., donde valuei es el valor asignado al control i-ésimo. También pueden definirse con la siguiente sintaxis alternativa: value0|value1|value2|..., donde valuei es el valor asignado al control i-ésimo. Si controls se establece en help, se muestran todos los controles disponibles y sus rangos válidos.
sample_rate, s
Especifica la frecuencia de muestreo; el valor predeterminado es 44100. Solo se usa si el complemento no tiene entradas.
nb_samples, n
Establece el número de muestras por canal en cada fotograma de salida; el valor predeterminado es 1024. Solo se usa si el complemento no tiene entradas.
duration, d
Establece la duración mínima del audio de origen. Consulte (ffmpeg-utils)la sección Time duration del manual ffmpeg-utils(1) para conocer la sintaxis aceptada. Tenga en cuenta que la duración resultante puede ser mayor que la especificada, ya que el audio generado siempre se corta al final de un fotograma completo. Si no se especifica, o si la duración expresada es negativa, se asume que el audio se genera indefinidamente. Solo se usa si el complemento no tiene entradas.
latency, l
Habilita la compensación de latencia; está deshabilitada de forma predeterminada. Solo se usa si el complemento tiene entradas.
8.96.1 Ejemplos
-
Lista todos los complementos disponibles en la biblioteca amp (complemento de ejemplo de LADSPA):
ladspa=file=amp -
Lista todos los controles disponibles y sus rangos válidos para el complemento
vcf_notchde la bibliotecaVCF:ladspa=f=vcf:p=vcf_notch:c=help -
Simula equipo de audio de baja calidad usando la biblioteca de complementos
Computer Music Toolkit(CMT):ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12 -
Añade reverberación al audio usando TAP-plugins (Tom’s Audio Processing plugins):
ladspa=file=tap_reverb:tap_reverb -
Genera ruido blanco con una amplitud de 0.2:
ladspa=file=cmt:noise_source_white:c=c0=.2 -
Genera clics a 20 bpm usando el complemento
C* Click - Metronomede la bibliotecaC* Audio Plugin Suite(CAPS):ladspa=file=caps:Click:c=c1=20' -
Aplica el efecto
C* Eq10X2 - Stereo 10-band equaliser:ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2 -
Aumenta el volumen en 20dB usando el fast lookahead limiter de la colección
SWH Pluginsde Steve Harris:ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2 -
Atenúa las frecuencias bajas usando el Multiband EQ de la colección
SWH Pluginsde Steve Harris:ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0 -
Reduce la imagen estéreo usando
Narrowerde la bibliotecaC* Audio Plugin Suite(CAPS):ladspa=caps:Narrower -
Otro ruido blanco, esta vez usando la biblioteca
C* Audio Plugin Suite(CAPS):ladspa=caps:White:.2 -
Ruido fractal, usando la biblioteca
C* Audio Plugin Suite(CAPS):ladspa=caps:Fractal:c=c1=1 -
Normalización dinámica de volumen usando el complemento
VLevel:ladspa=vlevel-ladspa:vlevel_mono
8.96.2 Comandos
Este filtro admite los siguientes comandos:
cN
Modifica el valor del control N-ésimo.
Si el valor especificado no es válido, se ignora y se conserva el anterior.
8.97 loudnorm
Normalización de sonoridad EBU R128. Incluye tanto el modo de normalización dinámica como el lineal. Admite tanto el modo de una sola pasada (retransmisiones en directo, archivos) como el de doble pasada (archivos). Este algoritmo puede fijar como objetivo el IL, el LRA y el pico verdadero máximo. En el modo dinámico, para detectar con precisión los picos verdaderos, el flujo de audio se sobremuestreará a 192 kHz. Use la opción -ar o el filtro aresample para establecer explícitamente una frecuencia de muestreo de salida.
El filtro acepta las siguientes opciones:
I, i
Establece el objetivo de sonoridad integrada. El rango es -70.0 - -5.0. El valor predeterminado es -24.0.
LRA, lra
Establece el objetivo de rango de sonoridad. El rango es 1.0 - 50.0. El valor predeterminado es 7.0.
TP, tp
Establece el pico verdadero máximo. El rango es -9.0 - +0.0. El valor predeterminado es -2.0.
measured_I, measured_i
IL medido del archivo de entrada. El rango es -99.0 - +0.0.
measured_LRA, measured_lra
LRA medido del archivo de entrada. El rango es 0.0 - 99.0.
measured_TP, measured_tp
Pico verdadero medido del archivo de entrada. El rango es -99.0 - +99.0.
measured_thresh
Umbral medido del archivo de entrada. El rango es -99.0 - +0.0.
offset
Establece la ganancia de desplazamiento. La ganancia se aplica antes del limitador de pico verdadero. El rango es -99.0 - +99.0. El valor predeterminado es +0.0.
linear
Normaliza escalando linealmente el audio de origen. Deben especificarse measured_I, measured_LRA, measured_TP y measured_thresh. El LRA objetivo no debería ser menor que el LRA de origen, y el cambio en la sonoridad integrada no debería dar lugar a un pico verdadero que supere el TP objetivo. Si no se cumple alguna de estas condiciones, el modo de normalización volverá a dinámico. Los valores posibles son true o false. El valor predeterminado es true.
dual_mono
Trata los archivos de entrada mono como "dual-mono". Si un archivo mono está destinado a reproducirse en un sistema estéreo, su medición EBU R128 será perceptualmente incorrecta. Si se establece en true, esta opción compensa ese efecto. Los archivos de entrada multicanal no se ven afectados por esta opción. Los valores posibles son true o false. El valor predeterminado es false.
print_format
Establece el formato de impresión de las estadísticas. Los valores posibles son summary, json o none. El valor predeterminado es none.
stats_file
Escribe las estadísticas en el archivo indicado. El formato se controla mediante print_format, que debe estar establecido. Especifique - para escribir en la salida estándar. De forma predeterminada no está definido.
8.98 lowpass
Aplica un filtro de paso bajo con una frecuencia de corte de 3dB. El filtro puede ser de un polo o de dos polos (el valor predeterminado). La atenuación es de 6dB por polo y por octava (20dB por polo y por década).
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia en Hz. El valor predeterminado es 500.
poles, p
Establece el número de polos. El valor predeterminado es 2.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
factor Q
o
octava
s
pendiente
k
kHz
width, w
Especifica el ancho de banda del filtro en las unidades de width_type. Solo se aplica al filtro de dos polos. El valor predeterminado es 0.707q y proporciona una respuesta Butterworth.
mix, m
Cuánta señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; está deshabilitado de forma predeterminada. Al habilitarlo, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros envolventes (surround).
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se ajusta lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a cero), el filtrado pasará a ser de fase lineal; en caso contrario, si no es lo bastante grande, producirá artefactos desagradables.
Tenga en cuenta que, si se establece un valor distinto de cero, el retardo del filtro será exactamente ese número de muestras.
8.98.1 Ejemplos
- Aplica el paso bajo solo al canal LFE; si no hay LFE, no hace nada:
lowpass=c=LFE
8.98.2 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia del paso bajo. La sintaxis del comando es: "frequency"
width_type, t
Cambia el width_type del paso bajo. La sintaxis del comando es: "width_type"
width, w
Cambia el width del paso bajo. La sintaxis del comando es: "width"
mix, m
Cambia el mix del paso bajo. La sintaxis del comando es: "mix"
8.99 lv2
Carga un plugin LV2 (LADSPA Version 2).
Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-lv2.
plugin, p
Especifica el URI del plugin. Puede ser necesario escapar ’:’.
controls, c
Establece la lista de controls separados por ’|’, que son cero o más valores en coma flotante que determinan el comportamiento del plugin cargado (por ejemplo, delay, threshold o gain). Si controls se establece en help, se imprimen todos los controls disponibles junto con sus rangos válidos.
sample_rate, s
Especifica la frecuencia de muestreo. El valor predeterminado es 44100. Solo se usa si el plugin no tiene entradas.
nb_samples, n
Establece el número de muestras por canal en cada fotograma de salida; el valor predeterminado es 1024. Solo se usa si el plugin no tiene entradas.
duration, d
Establece la duración mínima del audio fuente. Consulte (ffmpeg-utils) la sección Duración de tiempo del manual ffmpeg-utils(1) para conocer la sintaxis aceptada. Tenga en cuenta que la duración resultante puede ser mayor que la especificada, ya que el audio generado siempre se recorta al final de un fotograma completo. Si no se especifica, o si la duración expresada es negativa, se asume que el audio se genera indefinidamente. Solo se usa si el plugin no tiene entradas.
8.99.1 Ejemplos
-
Aplica el plugin bass enhancer de Calf:
lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2 -
Aplica el plugin vinyl de Calf:
lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5 -
Aplica el plugin bit crusher de ArtyFX:
lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
8.99.2 Comandos
Este filtro admite todas las opciones que el plugin exporta como comandos.
8.100 mcompand
Comprime o expande en múltiples bandas el rango dinámico del audio.
El audio de entrada se divide en bandas mediante filtros IIR Linkwitz-Riley de 4.º orden. Esto es similar al crossover de un altavoz y produce una respuesta en frecuencia plana cuando no actúa el compander.
Acepta los siguientes parámetros:
args
La sintaxis de esta opción es: attack,decay,[attack,decay..] soft-knee points crossover_frequency [delay [initial_volume [gain]]] | attack,decay ... Para obtener una explicación de cada elemento, consulte la documentación del filtro compand.
8.101 pan
Mezcla canales con niveles de ganancia específicos. El filtro acepta la disposición de canales de salida seguida de un conjunto de definiciones de canales.
Este filtro también está diseñado para remapear de forma eficiente los canales de un flujo de audio.
El filtro acepta parámetros con la forma: "l|outdef|outdef|..."
l
disposición de canales de salida o número de canales
outdef
especificación del canal de salida, con la forma: "out_name=[gain]in_name[(+-)[gain]in_name...]"
out_name
canal de salida que se va a definir, ya sea un nombre de canal (FL, FR, etc.) o un número de canal (c0, c1, etc.)
gain
coeficiente multiplicativo del canal; 1 deja el volumen sin cambios
in_name
canal de entrada que se va a usar; consulte out_name para más detalles. No es posible mezclar canales de entrada con nombre y numerados
Si el ’=’ de una especificación de canal se sustituye por ’<’, las ganancias de esa especificación se renormalizan para que la suma sea 1, evitando así el ruido de clipping.
8.101.1 Ejemplos de mezcla
Por ejemplo, si quiere reducir de estéreo a mono (down-mix), pero con un factor mayor para el canal izquierdo:
pan=1c|c0=0.9*c0+0.1*c1
Una reducción a estéreo personalizada que funciona automáticamente para sonido envolvente de 3, 4, 5 y 7 canales:
pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
Tenga en cuenta que ffmpeg integra un sistema predeterminado de down-mix (y up-mix) que debería preferirse (consulte la opción "-ac") salvo que tenga necesidades muy específicas.
8.101.2 Ejemplos de remapeo
El remapeo de canales será efectivo si, y solo si:
- los coeficientes de ganancia son ceros o unos,
- hay una sola entrada por canal de salida,
Si se cumplen todas estas condiciones, el filtro lo notificará al usuario ("Pure channel mapping detected") y usará un método optimizado y sin pérdida para realizar el remapeo.
Por ejemplo, si tiene una fuente 5.1 y quiere un flujo de audio estéreo descartando los canales adicionales:
pan="stereo| c0=FL | c1=FR"
Con la misma fuente, también puede intercambiar los canales frontal izquierdo y frontal derecho manteniendo la disposición de canales de entrada:
pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
Si la entrada es un flujo de audio estéreo, puede silenciar el canal frontal izquierdo (conservando la disposición de canales estéreo) con:
pan="stereo|c1=c1"
Siguiendo con una entrada de audio estéreo, puede copiar el canal derecho tanto al frontal izquierdo como al derecho:
pan="stereo| c0=FR | c1=FR"
8.102 replaygain
Filtro escáner de ReplayGain. Este filtro toma un flujo de audio como entrada y lo entrega sin cambios. Al final del filtrado, muestra track_gain y track_peak.
El filtro acepta las siguientes opciones exportadas de solo lectura:
track_gain
Ganancia de la pista exportada, en dB, al final del flujo.
track_peak
Pico de la pista exportado al final del flujo.
8.103 resample
Convierte el sample format, la frecuencia de muestreo y la disposición de canales del audio. No está pensado para usarse directamente.
8.104 rubberband
Aplica time-stretching y pitch-shifting con librubberband.
Para habilitar la compilación de este filtro, es necesario configurar FFmpeg con --enable-librubberband.
El filtro acepta las siguientes opciones:
tempo
Establece el factor de escala del tempo.
pitch
Establece el factor de escala del pitch.
transients
Establece el detector de transientes. Los valores posibles son:
crisp mixed smooth detector
Establece el detector. Los valores posibles son:
compound percussive soft phase
Establece la fase. Los valores posibles son:
laminar independent window
Establece el tamaño de la ventana de procesamiento. Los valores posibles son:
standard short long smoothing
Establece el suavizado. Los valores posibles son:
off on formant
Habilita la preservación del formante al desplazar el pitch (pitch shifting). Los valores posibles son:
shifted preserved pitchq
Establece la calidad del pitch. Los valores posibles son:
quality speed consistency channels
Establece los canales. Los valores posibles son:
apart together
8.104.1 Comandos
Este filtro admite los siguientes comandos:
tempo
Cambia el factor de escala de tempo del filtro. La sintaxis del comando es: "tempo"
pitch
Cambia el factor de escala de pitch del filtro. La sintaxis del comando es: "pitch"
8.105 sidechaincompress
Este filtro actúa como un compresor normal, pero tiene la capacidad de comprimir la señal detectada usando una segunda señal de entrada. Necesita dos flujos de entrada y devuelve un flujo de salida. El primer flujo de entrada se procesa en función de la señal del segundo flujo. La señal filtrada resultante puede filtrarse a su vez con otros filtros en etapas posteriores del procesamiento. Consulte los filtros pan y amerge.
El filtro acepta las siguientes opciones:
level_in
Establece la ganancia de entrada. El valor predeterminado es 1. El rango va de 0.015625 a 64.
mode
Establece el modo de funcionamiento del compresor. Puede ser upward o downward. El valor predeterminado es downward.
threshold
Si la señal del segundo flujo supera este nivel, afectará a la reducción de ganancia del primer flujo. El valor predeterminado es 0.125. El rango va de 0.00097563 a 1.
ratio
Establece la relación (ratio) con la que se reduce la señal. 1:2 significa que si el nivel sube 4dB por encima del umbral, tras la reducción quedará solo 2dB por encima. El valor predeterminado es 2. El rango va de 1 a 20.
attack
Cantidad de milisegundos que la señal debe permanecer por encima del umbral antes de que empiece la reducción de ganancia. El valor predeterminado es 20. El rango va de 0.01 a 2000.
release
Cantidad de milisegundos que la señal debe permanecer por debajo del umbral antes de que la reducción vuelva a disminuir. El valor predeterminado es 250. El rango va de 0.01 a 9000.
makeup
Establece cuánto se amplificará la señal después del procesamiento. El valor predeterminado es 1. El rango va de 1 a 64.
knee
Suaviza el codo (knee) pronunciado en torno al umbral para entrar en la reducción de ganancia de forma más gradual. El valor predeterminado es 2.82843. El rango va de 1 a 8.
link
Elige si la reducción se ve afectada por el nivel average (promedio) entre todos los canales del flujo de sidechain o por el canal más alto (maximum) de ese flujo. El valor predeterminado es average.
detection
Determina si se toma la señal exacta en el caso de peak o una señal RMS en el caso de rms. El valor predeterminado es rms, que en general resulta más suave.
level_sc
Establece la ganancia del sidechain. El valor predeterminado es 1. El rango va de 0.015625 a 64.
mix
Cuánta señal comprimida se usa en la salida. El valor predeterminado es 1. El rango va de 0 a 1.
8.105.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.105.2 Ejemplos
- Ejemplo completo con ffmpeg que toma 2 entradas de audio: la 1.ª entrada se comprime en función de la señal de la 2.ª, y la señal comprimida resultante se combina después con la 2.ª entrada:
ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
8.106 sidechaingate
Un sidechain gate actúa como una puerta de ruido (gate) normal de banda ancha, pero tiene la capacidad de filtrar la señal detectada antes de enviarla a la etapa de reducción de ganancia. Normalmente, un gate usa la señal de rango completo para detectar un nivel por encima del umbral. Por ejemplo: si elimina todas las frecuencias graves de su señal de sidechain, el gate reducirá el volumen de su pista solo si no aparecen suficientes agudos. Con esta técnica puede reducir la resonancia de una batería acústica o eliminar el "retumbe" de los golpes silenciados de una guitarra muy distorsionada. Necesita dos flujos de entrada y devuelve un flujo de salida. El primer flujo de entrada se procesa en función de la señal del segundo flujo.
El filtro acepta las siguientes opciones:
level_in
Establece el nivel de entrada antes del filtrado. El valor predeterminado es 1. El rango permitido va de 0.015625 a 64.
mode
Establece el modo de funcionamiento. Puede ser upward o downward. El valor predeterminado es downward. Si se establece en modo upward, las partes más altas de la señal se amplificarán, expandiendo el rango dinámico hacia arriba. En caso contrario, con downward, las partes más bajas de la señal se reducirán.
range
Establece el nivel de reducción de ganancia cuando la señal está por debajo del umbral. El valor predeterminado es 0.06125. El rango permitido va de 0 a 1. Si se establece en 0, se desactiva la reducción y el filtro se comporta como un expansor.
threshold
Si una señal supera este nivel, se libera la reducción de ganancia. El valor predeterminado es 0.125. El rango permitido va de 0 a 1.
ratio
Establece la relación con la que se reduce la señal. El valor predeterminado es 2. El rango permitido va de 1 a 9000.
attack
Cantidad de milisegundos que la señal debe permanecer por encima del umbral antes de que se detenga la reducción de ganancia. El valor predeterminado es 20 milisegundos. El rango permitido va de 0.01 a 9000.
release
Cantidad de milisegundos que la señal debe permanecer por debajo del umbral antes de que la reducción vuelva a aumentar. El valor predeterminado es 250 milisegundos. El rango permitido va de 0.01 a 9000.
makeup
Establece la cantidad de amplificación de la señal después del procesamiento. El valor predeterminado es 1. El rango permitido va de 1 a 64.
knee
Suaviza el codo pronunciado en torno al umbral para entrar en la reducción de ganancia de forma más gradual. El valor predeterminado es 2.828427125. El rango permitido va de 1 a 8.
detection
Elige si para la detección se toma la señal exacta o una de tipo RMS. El valor predeterminado es rms. Puede ser peak o rms.
link
Elige si la reducción se ve afectada por el nivel medio entre todos los canales o por el canal más alto. El valor predeterminado es average. Puede ser average o maximum.
level_sc
Establece la ganancia del sidechain. El valor predeterminado es 1. El rango va de 0.015625 a 64.
8.106.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.107 silencedetect
Detecta silencio en un flujo de audio.
Este filtro registra un mensaje cuando detecta que el volumen del audio de entrada es menor o igual que un valor de tolerancia de ruido durante una duración mayor o igual a la duración mínima de ruido detectado.
Los tiempos y la duración impresos se expresan en segundos. La clave de metadatos lavfi.silence_start o lavfi.silence_start.X se establece en el primer fotograma cuya marca de tiempo alcance o supere la duración de detección, y contiene la marca de tiempo del primer fotograma del silencio.
Las claves de metadatos lavfi.silence_duration o lavfi.silence_duration.X y lavfi.silence_end o lavfi.silence_end.X se establecen en el primer fotograma posterior al silencio. Si mono está habilitado y cada canal se evalúa por separado, se usan las claves con el sufijo .X, donde X corresponde al número de canal.
El filtro acepta las siguientes opciones:
noise, n
Establece la tolerancia de ruido. Puede especificarse en dB (si se añade "dB" al valor especificado) o como relación de amplitud. El valor predeterminado es -60dB, o 0.001.
duration, d
Establece la duración de silencio hasta la notificación (el valor predeterminado es 2 segundos). Consulte (ffmpeg-utils) la sección Duración de tiempo del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
mono, m
Procesa cada canal por separado, en lugar de combinados. Está deshabilitado de forma predeterminada.
8.107.1 Ejemplos
-
Detecta 5 segundos de silencio con una tolerancia de ruido de -50dB:
silencedetect=n=-50dB:d=5 -
Ejemplo completo con
ffmpegpara detectar silencio con una tolerancia de ruido de 0.0001 en silence.mp3:ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
8.108 silenceremove
Elimina el silencio del principio, la mitad o el final del audio.
El filtro acepta las siguientes opciones:
start_periods
Este valor se usa para indicar si debe recortarse el audio al principio. Un valor de cero indica que no debe recortarse silencio del principio. Al especificar un valor distinto de cero, se recorta el audio hasta encontrar algo que no sea silencio. Normalmente, al recortar el silencio del principio del audio, start_periods será 1, pero puede aumentarse a valores más altos para recortar todo el audio hasta un número determinado de periodos sin silencio. El valor predeterminado es 0.
start_duration
Especifica el tiempo que debe detectarse algo que no sea silencio antes de dejar de recortar el audio. Al aumentar la duración, ráfagas de ruido pueden tratarse como silencio y recortarse. El valor predeterminado es 0.
start_threshold
Esto indica qué valor de muestra debe tratarse como silencio. Para audio digital, un valor de 0 puede ser suficiente, pero para audio grabado desde una fuente analógica, quizá convenga aumentar el valor para tener en cuenta el ruido de fondo. Puede especificarse en dB (si se añade "dB" al valor especificado) o como relación de amplitud. El valor predeterminado es 0.
start_silence
Especifica la duración máxima de silencio al principio que se conservará después del recorte. El valor predeterminado es 0, lo que equivale a recortar todas las muestras detectadas como silencio.
start_mode
Especifica el modo de detección del fin del silencio al principio de un audio multicanal. Puede ser any o all. El valor predeterminado es any. Con any, cualquier muestra de cualquier canal detectada como no silencio activará el fin del recorte de silencio al principio del flujo de audio. Con all, el fin del recorte de silencio al principio del flujo de audio solo se activará si todas las muestras de todos los canales se detectan como no silencio; es de uso limitado.
stop_periods
Establece el número de periodos de silencio que se recortan del final del audio. Al especificar un valor positivo, se recorta el audio después de encontrar el periodo de silencio indicado. Para eliminar silencio de la mitad de un archivo, especifique un stop_periods negativo. Este valor se trata entonces como positivo y se usa para indicar que el efecto debe reiniciar el procesamiento tantas veces como indique stop_periods, lo que resulta útil para eliminar periodos de silencio en la mitad del audio. El valor predeterminado es 0.
stop_duration
Especifica una duración de silencio que debe existir antes de que el audio deje de copiarse. Al especificar una duración mayor, se puede dejar en el audio el silencio que se desee conservar. El valor predeterminado es 0.
stop_threshold
Es igual que start_threshold, pero para recortar el silencio del final del audio. Puede especificarse en dB (si se añade "dB" al valor especificado) o como relación de amplitud. El valor predeterminado es 0.
stop_silence
Especifica la duración máxima de silencio al final que se conservará después del recorte. El valor predeterminado es 0, lo que equivale a recortar todas las muestras detectadas como silencio.
stop_mode
Especifica el modo de detección del inicio del silencio tras el comienzo de un audio multicanal. Puede ser any o all. El valor predeterminado es all. Con any, cualquier muestra de cualquier canal detectada como silencio activará el inicio del recorte de silencio tras el comienzo del flujo de audio; es de uso limitado. Con all, el inicio del recorte de silencio tras el comienzo del flujo de audio solo se activará si todas las muestras de todos los canales se detectan como silencio.
detection
Establece cómo se detecta el silencio.
avg
Media de los valores absolutos de las muestras en una ventana móvil.
rms
Raíz cuadrada de la media de los valores absolutos de las muestras en una ventana móvil.
peak
Máximo de los valores absolutos de las muestras en una ventana móvil.
median
Mediana de los valores absolutos de las muestras en una ventana móvil.
ptp
Valor absoluto de la diferencia entre el pico máximo y el pico mínimo de las muestras en una ventana móvil.
dev
Desviación estándar de los valores de las muestras en una ventana móvil.
El valor predeterminado es rms.
window
Establece la duración, en número de segundos, usada para calcular el tamaño de la ventana en número de muestras para detectar el silencio. Usar 0 desactiva de hecho cualquier ventaneo y usa una única muestra por canal para la detección de silencio. En ese caso, puede que también sea necesario establecer start_silence y/o stop_silence en valores distintos de cero, junto con start_duration y/o stop_duration también distintos de cero. El valor predeterminado es 0.02. El rango permitido va de 0 a 10.
timestamp
Establece el modo de procesamiento de la marca de tiempo de salida de cada fotograma de audio.
write
Reescribe por completo las marcas de tiempo, conservando solo el tiempo de inicio para el primer fotograma de salida.
copy
Los fotogramas no descartados conservan la misma marca de tiempo que el fotograma de audio de entrada.
El valor predeterminado es write.
8.108.1 Ejemplos
-
El siguiente ejemplo muestra cómo se puede usar este filtro para iniciar una grabación que no contenga el retardo inicial que suele producirse entre pulsar el botón de grabar y el comienzo de la interpretación:
silenceremove=start_periods=1:start_duration=5:start_threshold=0.02 -
Recorta todo el silencio encontrado de principio a fin allí donde haya más de 1 segundo de silencio en el audio:
silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB -
Recorta todas las muestras de silencio digital, usando detección de pico, de principio a fin allí donde haya más de 0 muestras de silencio digital en el audio y se detecte silencio digital en todos los canales en las mismas posiciones del flujo:
silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0 -
Recorta cada 2.º periodo de silencio encontrado, de principio a fin, allí donde haya más de 1 segundo de silencio por periodo de silencio en el audio:
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB -
Similar al caso anterior, pero conservando un máximo de 0.5 segundos de silencio de cada periodo recortado:
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5 -
Similar al caso anterior, pero conservando un máximo de 1.5 segundos de silencio al principio del audio:
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5:start_periods=1:start_duration=1:start_silence=1.5:stop_threshold=-90dB
8.108.2 Comandos
Este filtro admite algunas de las opciones anteriores como comandos.
8.109 sofalizer
SOFAlizer usa funciones de transferencia relacionadas con la cabeza (HRTF) para crear altavoces virtuales alrededor del usuario para una escucha binaural a través de auriculares (se admiten formatos de audio de hasta 9 canales). Las HRTF se almacenan en archivos SOFA (véase http://www.sofacoustics.org/ para una base de datos). SOFAlizer se desarrolla en el Acoustics Research Institute (ARI) de la Austrian Academy of Sciences.
Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-libmysofa.
El filtro acepta las siguientes opciones:
sofa
Establece el archivo SOFA usado para el renderizado.
gain
Establece la ganancia aplicada al audio. El valor está en dB. El valor predeterminado es 0.
rotation
Establece la rotación de los altavoces virtuales en grados. El valor predeterminado es 0.
elevation
Establece la elevación de los altavoces virtuales en grados. El valor predeterminado es 0.
radius
Establece la distancia en metros entre los altavoces y el oyente con HRTF de campo cercano. El valor predeterminado es 1.
type
Establece el tipo de procesamiento. Puede ser time o freq. time procesa el audio en el dominio del tiempo, lo cual es lento. freq procesa el audio en el dominio de la frecuencia, lo cual es rápido. El valor predeterminado es freq.
speakers
Establece posiciones personalizadas de los altavoces virtuales. La sintaxis de esta opción es:
lfegain
Establece una ganancia personalizada para los canales LFE. El valor está en dB. El valor predeterminado es 0.
framesize
Establece un tamaño de fotograma personalizado en número de muestras. El valor predeterminado es 1024. El rango permitido va de 1024 a 96000. Solo se usa si la opción ‘type’ está establecida en freq.
normalize
Indica si todas las IR deben normalizarse al importar el archivo SOFA. Está habilitado de forma predeterminada.
interpolate
Indica si las IR más cercanas deben interpolarse con las IR vecinas cuando la posición exacta no coincide. Está deshabilitado de forma predeterminada.
minphase
Aplica fase mínima a todas las IR al cargar el archivo SOFA. Está deshabilitado de forma predeterminada.
anglestep
Establece el paso angular de búsqueda de vecinos. Solo se usa si la opción interpolate está habilitada.
radstep
Establece el paso radial de búsqueda de vecinos. Solo se usa si la opción interpolate está habilitada.
8.109.1 Ejemplos
-
Usando el archivo sofa ClubFritz6:
sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1 -
Usando el archivo sofa ClubFritz12 con mayor radio y una pequeña rotación:
sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5 -
Similar al caso anterior, pero con posiciones de altavoz personalizadas para frontal izquierdo, frontal derecho, trasero izquierdo y trasero derecho, y también con ganancia personalizada:
"sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
8.110 speechnorm
Normalizador de voz.
Este filtro expande o comprime cada semiciclo de muestras de audio (un conjunto local de muestras todas por encima o todas por debajo de cero, situado entre los dos cruces por cero más próximos) en función del valor de threshold, de modo que el audio alcance el valor de pico objetivo bajo las condiciones controladas por las siguientes opciones.
El filtro acepta las siguientes opciones:
peak, p
Establece el valor de pico objetivo para la expansión. Especifica el nivel de amplitud absoluta más alto permitido para el audio de entrada normalizado. El valor predeterminado es 0.95. El rango permitido va de 0.0 a 1.0.
expansion, e
Establece el factor de expansión máximo. El rango permitido va de 1.0 a 50.0. El valor predeterminado es 2.0. Esta opción controla la expansión máxima de un semiciclo local de muestras. La expansión máxima sería tal que el valor de pico local alcance el valor de pico objetivo, pero sin llegar a superarlo, y que la relación entre el valor de pico nuevo y el anterior no supere el valor de esta opción.
compression, c
Establece el factor de compresión máximo. El rango permitido va de 1.0 a 50.0. El valor predeterminado es 2.0. Esta opción controla la compresión máxima de un semiciclo local de muestras. Esta opción solo se usa si la opción threshold se establece en un valor mayor que 0.0; en ese caso, cuando el pico local sea menor o igual que el valor establecido por threshold, todas las muestras pertenecientes al semiciclo de ese pico se comprimirán con el factor de compresión actual.
threshold, t
Establece el valor de threshold. El valor predeterminado es 0.0. El rango permitido va de 0.0 a 1.0. Esta opción especifica qué semiciclos de muestras se comprimirán y cuáles se expandirán. Cualquier semiciclo de muestras cuyo valor de pico local sea menor o igual que el valor de esta opción se comprimirá con el factor de compresión actual; en caso contrario, si es mayor que el valor de threshold, se expandirá con el factor de expansión de modo que pueda alcanzar el valor de pico objetivo, pero sin llegar a superarlo.
raise, r
Establece la cantidad de incremento del factor de expansión por cada semiciclo de muestras. El valor predeterminado es 0.001. El rango permitido va de 0.0 a 1.0. Esto controla la rapidez con la que aumenta el factor de expansión en cada nuevo semiciclo hasta alcanzar el valor de expansion. Establecer esta opción demasiado alta puede provocar distorsiones.
fall, f
Establece la cantidad de incremento del factor de compresión por cada semiciclo de muestras. El valor predeterminado es 0.001. El rango permitido va de 0.0 a 1.0. Esto controla la rapidez con la que aumenta el factor de compresión en cada nuevo semiciclo hasta alcanzar el valor de compression.
channels, h
Especifica qué canales filtrar; de forma predeterminada se filtran todos los canales disponibles.
invert, i
Habilita el filtrado invertido; está deshabilitado de forma predeterminada. Esto invierte la interpretación de la opción threshold. Cuando está habilitado, cualquier semiciclo de muestras cuyo valor de pico local sea menor o igual que la opción threshold se expandirá; en caso contrario, se comprimirá.
link, l
Enlaza los canales al calcular la ganancia aplicada a cada muestra de canal filtrado; está deshabilitado de forma predeterminada. Cuando está deshabilitado, el cálculo de ganancia de cada canal filtrado es independiente; en cambio, cuando esta opción está habilitada, se usa el mínimo de todas las ganancias posibles para cada canal filtrado.
rms, m
Establece el valor RMS objetivo para la expansión. Especifica el nivel RMS más alto permitido para el audio de entrada normalizado. El valor predeterminado es 0.0, por lo que está deshabilitado. El rango permitido va de 0.0 a 1.0.
8.110.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.110.2 Ejemplos
-
Amplificación débil y lenta:
speechnorm=e=3:r=0.00001:l=1 -
Amplificación moderada y lenta:
speechnorm=e=6.25:r=0.00001:l=1 -
Amplificación fuerte y rápida:
speechnorm=e=12.5:r=0.0001:l=1 -
Amplificación muy fuerte y rápida:
speechnorm=e=25:r=0.0001:l=1 -
Amplificación extrema y rápida:
speechnorm=e=50:r=0.0001:l=1
8.111 stereotools
Este filtro ofrece algunas utilidades prácticas para gestionar señales estéreo, tanto para convertir grabaciones estéreo M/S a señal L/R con control sobre los parámetros, como para ampliar la imagen estéreo de la pista maestra.
El filtro acepta las siguientes opciones:
level_in
Establece el nivel de entrada antes del filtrado para ambos canales. El valor predeterminado es 1. El rango permitido va de 0.015625 a 64.
level_out
Establece el nivel de salida después del filtrado para ambos canales. El valor predeterminado es 1. El rango permitido va de 0.015625 a 64.
balance_in
Establece el balance de entrada entre ambos canales. El valor predeterminado es 0. El rango permitido va de -1 a 1.
balance_out
Establece el balance de salida entre ambos canales. El valor predeterminado es 0. El rango permitido va de -1 a 1.
softclip
Habilita el softclipping. Produce una distorsión de tipo analógico en lugar de un clipping digital brusco a 0 dB. Deshabilitado de forma predeterminada.
mutel
Silencia el canal izquierdo. Deshabilitado de forma predeterminada.
muter
Silencia el canal derecho. Deshabilitado de forma predeterminada.
phasel
Cambia la fase del canal izquierdo. Deshabilitado de forma predeterminada.
phaser
Cambia la fase del canal derecho. Deshabilitado de forma predeterminada.
mode
Establece el modo estéreo. Los valores disponibles son:
‘lr>lr’
De Left/Right a Left/Right; este es el valor predeterminado.
‘lr>ms’
De Left/Right a Mid/Side.
‘ms>lr’
De Mid/Side a Left/Right.
‘lr>ll’
De Left/Right a Left/Left.
‘lr>rr’
De Left/Right a Right/Right.
‘lr>l+r’
De Left/Right a Left + Right.
‘lr>rl’
De Left/Right a Right/Left.
‘ms>ll’
De Mid/Side a Left/Left.
‘ms>rr’
De Mid/Side a Right/Right.
‘ms>rl’
De Mid/Side a Right/Left.
‘lr>l-r’
De Left/Right a Left - Right.
slev
Establece el nivel de la señal lateral (side). El valor predeterminado es 1. El rango permitido va de 0.015625 a 64.
sbal
Establece el balance de la señal lateral (side). El valor predeterminado es 0. El rango permitido va de -1 a 1.
mlev
Establece el nivel de la señal central (mid). El valor predeterminado es 1. El rango permitido va de 0.015625 a 64.
mpan
Establece el pan de la señal central. El valor predeterminado es 0. El rango permitido va de -1 a 1.
base
Establece la base estéreo entre canales mono e invertidos. El valor predeterminado es 0. El rango permitido va de -1 a 1.
delay
Establece, en milisegundos, cuánto retrasar el canal izquierdo respecto al derecho y viceversa. El valor predeterminado es 0. El rango permitido va de -20 a 20.
sclevel
Establece el nivel S/C. El valor predeterminado es 1. El rango permitido va de 1 a 100.
phase
Establece la fase estéreo en grados. El valor predeterminado es 0. El rango permitido va de 0 a 360.
bmode_in, bmode_out
Establece el modo de balance para la opción balance_in/balance_out.
Puede ser uno de los siguientes:
‘balance’
Modo de balance clásico. Atenúa un canal a la vez. La ganancia se eleva hasta 1.
‘amplitude’
Similar al modo clásico anterior, pero la ganancia se eleva hasta 2.
‘power’
Distribución de potencia equitativa (equal power), en el rango de -6dB a +6dB.
8.111.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
8.111.2 Ejemplos
-
Aplica un efecto similar al karaoke:
stereotools=mlev=0.015625 -
Convierte una señal M/S a L/R:
"stereotools=mode=ms>lr"
8.112 stereowiden
Este filtro mejora el efecto estéreo suprimiendo la señal común a ambos canales y retardando la señal del canal izquierdo hacia el derecho y viceversa, con lo que amplía el efecto estéreo.
El filtro acepta las siguientes opciones:
delay
Tiempo en milisegundos del retardo de la señal izquierda hacia la derecha y viceversa. El valor predeterminado es 20 milisegundos.
feedback
Cantidad de ganancia de la señal retardada hacia la derecha y viceversa. Produce un efecto de retardo de la señal izquierda en la salida derecha y viceversa, lo que genera el efecto de ampliación. El valor predeterminado es 0.3.
crossfeed
Mezcla cruzada de la señal izquierda hacia la derecha con la fase invertida. Esto ayuda a suprimir el mono. Si el valor es 1, cancelará toda la señal común a ambos canales. El valor predeterminado es 0.3.
drymix
Establece el nivel de la señal de entrada del canal original. El valor predeterminado es 0.8.
8.112.1 Comandos
Este filtro admite todas las opciones anteriores excepto delay como comandos.
8.113 superequalizer
Aplica un ecualizador de 18 bandas.
El filtro acepta las siguientes opciones:
1b
Establece la ganancia de banda de 65Hz.
2b
Establece la ganancia de banda de 92Hz.
3b
Establece la ganancia de banda de 131Hz.
4b
Establece la ganancia de banda de 185Hz.
5b
Establece la ganancia de banda de 262Hz.
6b
Establece la ganancia de banda de 370Hz.
7b
Establece la ganancia de banda de 523Hz.
8b
Establece la ganancia de banda de 740Hz.
9b
Establece la ganancia de banda de 1047Hz.
10b
Establece la ganancia de banda de 1480Hz.
11b
Establece la ganancia de banda de 2093Hz.
12b
Establece la ganancia de banda de 2960Hz.
13b
Establece la ganancia de banda de 4186Hz.
14b
Establece la ganancia de banda de 5920Hz.
15b
Establece la ganancia de banda de 8372Hz.
16b
Establece la ganancia de banda de 11840Hz.
17b
Establece la ganancia de banda de 16744Hz.
18b
Establece la ganancia de banda de 20000Hz.
8.114 surround
Aplica un filtro de upmix de audio surround.
Este filtro permite producir una salida multicanal a partir de un flujo de audio.
El filtro acepta las siguientes opciones:
chl_out
Establece la disposición de canales de salida. De forma predeterminada, es 5.1.
Consulte (ffmpeg-utils) la sección Disposición de canales del manual ffmpeg-utils(1) para conocer la sintaxis necesaria.
chl_in
Establece la disposición de canales de entrada. De forma predeterminada, es estéreo.
Consulte (ffmpeg-utils) la sección Disposición de canales del manual ffmpeg-utils(1) para conocer la sintaxis necesaria.
level_in
Establece el nivel de volumen de entrada. De forma predeterminada, es 1.
level_out
Establece el nivel de volumen de salida. De forma predeterminada, es 1.
lfe
Activa la salida del canal LFE si la disposición de canales de salida lo incluye. De forma predeterminada, está activada.
lfe_low
Establece la frecuencia de corte inferior del LFE. De forma predeterminada, es 128 Hz.
lfe_high
Establece la frecuencia de corte superior del LFE. De forma predeterminada, es 256 Hz.
lfe_mode
Establece el modo del LFE; puede ser add o sub. El valor predeterminado es add. En el modo add, el canal LFE se crea a partir del audio de entrada y se añade a la salida. En el modo sub, el canal LFE se crea a partir del audio de entrada y se añade a la salida, pero además todos los canales de salida que no son LFE se restan con el canal LFE de salida.
smooth
Establece la intensidad de suavizado temporal, usada para cambiar gradualmente los factores al transformar el sonido estéreo en el tiempo. El rango permitido va de 0.0 a 1.0. Útil para mejorar la calidad de salida con valores de la opción focus mayores que 0.0. El valor predeterminado es 0.0. Solo son efectivos los valores dentro de este rango y sin los extremos.
angle
Establece el ángulo de la transformación surround estéreo. El rango permitido va de 0 a 360. El valor predeterminado es 90.
focus
Establece el enfoque (focus) de la transformación surround estéreo. El rango permitido va de -1 a 1. El valor predeterminado es 0.
fc_in
Establece el volumen de entrada del canal central frontal. De forma predeterminada, es 1.
fc_out
Establece el volumen de salida del canal central frontal. De forma predeterminada, es 1.
fl_in
Establece el volumen de entrada del canal frontal izquierdo. De forma predeterminada, es 1.
fl_out
Establece el volumen de salida del canal frontal izquierdo. De forma predeterminada, es 1.
fr_in
Establece el volumen de entrada del canal frontal derecho. De forma predeterminada, es 1.
fr_out
Establece el volumen de salida del canal frontal derecho. De forma predeterminada, es 1.
sl_in
Establece el volumen de entrada del canal lateral izquierdo. De forma predeterminada, es 1.
sl_out
Establece el volumen de salida del canal lateral izquierdo. De forma predeterminada, es 1.
sr_in
Establece el volumen de entrada del canal lateral derecho. De forma predeterminada, es 1.
sr_out
Establece el volumen de salida del canal lateral derecho. De forma predeterminada, es 1.
bl_in
Establece el volumen de entrada del canal trasero izquierdo. De forma predeterminada, es 1.
bl_out
Establece el volumen de salida del canal trasero izquierdo. De forma predeterminada, es 1.
br_in
Establece el volumen de entrada del canal trasero derecho. De forma predeterminada, es 1.
br_out
Establece el volumen de salida del canal trasero derecho. De forma predeterminada, es 1.
bc_in
Establece el volumen de entrada del canal central trasero. De forma predeterminada, es 1.
bc_out
Establece el volumen de salida del canal central trasero. De forma predeterminada, es 1.
lfe_in
Establece el volumen de entrada del LFE. De forma predeterminada, es 1.
lfe_out
Establece el volumen de salida del LFE. De forma predeterminada, es 1.
allx
Establece la dispersión de la imagen estéreo en el eje X para todos los canales. El rango permitido va de -1 a 15. De forma predeterminada, este valor es -1 (negativo), por lo que no se utiliza.
ally
Establece la dispersión de la imagen estéreo en el eje Y para todos los canales. El rango permitido va de -1 a 15. De forma predeterminada, este valor es -1 (negativo), por lo que no se utiliza.
fcx, flx, frx, blx, brx, slx, srx, bcx
Establece la dispersión de la imagen estéreo en el eje X para cada canal. El rango permitido va de 0.06 a 15. El valor predeterminado es 0.5.
fcy, fly, fry, bly, bry, sly, sry, bcy
Establece la dispersión de la imagen estéreo en el eje Y para cada canal. El rango permitido va de 0.06 a 15. El valor predeterminado es 0.5.
win_size
Establece el tamaño de la ventana. El rango permitido va de 1024 a 65536. El tamaño predeterminado es 4096.
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hann, hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hann.
overlap
Establece el solapamiento de ventana. Si se fija en 1, se elegirá el solapamiento recomendado para la función de ventana seleccionada. El valor predeterminado es 0.5.
8.115 tiltshelf
Aumenta o recorta las frecuencias bajas y recorta o aumenta las frecuencias altas del audio mediante un filtro shelving de dos polos con una respuesta similar a la de los controles de tono de un equipo de alta fidelidad estándar. Esto también se conoce como ecualización shelving (EQ).
El filtro acepta las siguientes opciones:
gain, g
Especifica la ganancia en 0 Hz. Su rango útil va de aproximadamente -20 (para un gran recorte) a +20 (para un gran aumento). Tenga cuidado con el recorte (clipping) al usar una ganancia positiva.
frequency, f
Establece la frecuencia central del filtro, que puede usarse para ampliar o reducir el rango de frecuencias que se va a aumentar o recortar. El valor predeterminado es 3000 Hz.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Determina la pendiente de la transición shelf del filtro.
poles, p
Establece el número de polos. El valor predeterminado es 2.
mix, m
Cuánto de la señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; desactivada de forma predeterminada. Al habilitarla, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros surround.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado se volverá de fase lineal; en caso contrario, si no es lo bastante grande, simplemente producirá artefactos desagradables.
Tenga en cuenta que el retardo del filtro será exactamente esta cantidad de muestras cuando se fije un valor distinto de cero.
8.115.1 Comandos
Este filtro admite algunas opciones como comandos.
8.116 treble, highshelf
Aumenta o recorta las frecuencias agudas (altas) del audio mediante un filtro shelving de dos polos con una respuesta similar a la de los controles de tono de un equipo de alta fidelidad estándar. Esto también se conoce como ecualización shelving (EQ).
El filtro acepta las siguientes opciones:
gain, g
Especifica la ganancia en el valor que sea menor entre ~22 kHz y la frecuencia de Nyquist. Su rango útil va de aproximadamente -20 (para un gran recorte) a +20 (para un gran aumento). Tenga cuidado con el recorte (clipping) al usar una ganancia positiva.
frequency, f
Establece la frecuencia central del filtro, que puede usarse para ampliar o reducir el rango de frecuencias que se va a aumentar o recortar. El valor predeterminado es 3000 Hz.
width_type, t
Establece el método para especificar el ancho de banda del filtro.
h
Hz
q
Factor Q
o
octava
s
pendiente
k
kHz
width, w
Determina la pendiente de la transición shelf del filtro.
poles, p
Establece el número de polos. El valor predeterminado es 2.
mix, m
Cuánto de la señal filtrada se usa en la salida. El valor predeterminado es 1. El rango está entre 0 y 1.
channels, c
Especifica qué canales filtrar; de forma predeterminada se filtran todos los disponibles.
normalize, n
Normaliza los coeficientes biquad; desactivada de forma predeterminada. Al habilitarla, se normaliza la respuesta de magnitud en DC a 0dB.
transform, a
Establece el tipo de transformada del filtro IIR.
di dii tdi tdii latt svf zdf precision, r
Establece la precisión del filtrado.
auto
Elige automáticamente el sample format según los filtros surround.
s16
Usa siempre 16 bits con signo.
s32
Usa siempre 32 bits con signo.
f32
Usa siempre coma flotante de 32 bits.
f64
Usa siempre coma flotante de 64 bits.
block_size, b
Establece el tamaño de bloque usado para el procesamiento IIR inverso. Si este valor se fija lo bastante alto (mayor que la longitud de la respuesta al impulso truncada cuando se acerca a valores cercanos a cero), el filtrado se volverá de fase lineal; en caso contrario, si no es lo bastante grande, simplemente producirá artefactos desagradables.
Tenga en cuenta que el retardo del filtro será exactamente esta cantidad de muestras cuando se fije un valor distinto de cero.
8.116.1 Comandos
Este filtro admite los siguientes comandos:
frequency, f
Cambia la frecuencia de treble. La sintaxis del comando es: "frequency"
width_type, t
Cambia el width_type de treble. La sintaxis del comando es: "width_type"
width, w
Cambia el ancho de treble. La sintaxis del comando es: "width"
gain, g
Cambia la ganancia de treble. La sintaxis del comando es: "gain"
mix, m
Cambia la mezcla de treble. La sintaxis del comando es: "mix"
8.117 tremolo
Modulación sinusoidal de amplitud.
El filtro acepta las siguientes opciones:
f
Frecuencia de modulación en hercios. Las frecuencias de modulación en el rango subarmónico (20 Hz o menos) producirán un efecto de trémolo. Este filtro también puede usarse como modulador en anillo especificando una frecuencia de modulación superior a 20 Hz. El rango es 0.1 - 20000.0. El valor predeterminado es 5.0 Hz.
d
Profundidad de la modulación como porcentaje. El rango es 0.0 - 1.0. El valor predeterminado es 0.5.
8.118 vibrato
Modulación sinusoidal de fase.
El filtro acepta las siguientes opciones:
f
Frecuencia de modulación en hercios. El rango es 0.1 - 20000.0. El valor predeterminado es 5.0 Hz.
d
Profundidad de la modulación como porcentaje. El rango es 0.0 - 1.0. El valor predeterminado es 0.5.
8.119 virtualbass
Aplica el filtro de graves virtuales (Virtual Bass) al audio.
Este filtro acepta una entrada estéreo y produce una salida estéreo con canal LFE (2.1). El nuevo canal LFE generado tiene los graves virtuales mejorados, obtenidos originalmente a partir de ambos canales estéreo. Este filtro deja sin cambios los canales frontal izquierdo y frontal derecho, tal como están disponibles en la entrada estéreo.
El filtro acepta las siguientes opciones:
cutoff
Establece la frecuencia de corte de los graves virtuales. El valor predeterminado es 250 Hz. El rango permitido va de 100 a 500 Hz.
strength
Establece la intensidad de los graves virtuales. El rango permitido va de 0.5 a 3. El valor predeterminado es 3.
8.120 volume
Ajusta el volumen del audio de entrada.
Acepta los siguientes parámetros:
volume
Establece la expresión de volumen del audio.
Los valores de salida se recortan al valor máximo.
El volumen de salida del audio viene dado por la siguiente relación:
output_volume = volume * input_volume
El valor predeterminado de volume es "1.0".
precision
Este parámetro representa la precisión matemática.
Determina qué sample formats de entrada se permitirán, lo que afecta a la precisión del escalado de volumen.
fixed
Coma fija de 8 bits; esto limita el sample format de entrada a U8, S16 y S32.
float
Coma flotante de 32 bits; esto limita el sample format de entrada a FLT. (predeterminado)
double
Coma flotante de 64 bits; esto limita el sample format de entrada a DBL.
replaygain
Elige el comportamiento al encontrar datos laterales de ReplayGain en los fotogramas de entrada.
drop
Elimina los datos laterales de ReplayGain, ignorando su contenido (opción predeterminada).
ignore
Ignora los datos laterales de ReplayGain, pero los conserva en el fotograma.
track
Prefiere la ganancia de pista, si está presente.
album
Prefiere la ganancia de álbum, si está presente.
replaygain_preamp
Ganancia de preamplificación en dB que se aplica a la ganancia de replaygain seleccionada.
El valor predeterminado de replaygain_preamp es 0.0.
replaygain_noclip
Evita el recorte limitando la ganancia aplicada.
El valor predeterminado de replaygain_noclip es 1.
eval
Establece cuándo se evalúa la expresión de volumen.
Acepta los siguientes valores:
‘once’
solo evalúa la expresión una vez durante la inicialización del filtro, o cuando se envía el comando ‘volume’
‘frame’
evalúa la expresión para cada fotograma entrante
El valor predeterminado es ‘once’.
La expresión de volumen puede contener los siguientes parámetros.
n
número de fotograma (empezando en cero)
nb_channels
número de canales
nb_consumed_samples
número de muestras consumidas por el filtro
nb_samples
número de muestras del fotograma actual
pos
posición original del fotograma en el archivo; obsoleto, no lo use
pts
PTS del fotograma
sample_rate
frecuencia de muestreo
startpts
PTS al inicio del flujo
startt
tiempo al inicio del flujo
t
tiempo del fotograma
tb
base de tiempo de la marca de tiempo
volume
último valor de volumen establecido
Tenga en cuenta que cuando eval se fija en ‘once’, solo están disponibles las variables sample_rate y tb; el resto de las variables se evaluará como NAN.
8.120.1 Comandos
Este filtro admite los siguientes comandos:
volume
Modifica la expresión de volumen. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene su valor actual.
8.120.2 Ejemplos
- Reduce el volumen del audio de entrada a la mitad:
volume=volume=0.5 volume=volume=1/2 volume=volume=-6.0206dB
En todos los ejemplos anteriores se puede omitir la clave con nombre para volume, como por ejemplo en:
volume=0.5
-
Aumenta la potencia del audio de entrada en 6 decibelios usando precisión de coma fija:
volume=volume=6dB:precision=fixed -
Atenúa el volumen a partir del instante 10 con un periodo de extinción de 5 segundos:
volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
8.121 volumedetect
Detecta el volumen del vídeo de entrada.
El filtro no tiene parámetros. Solo admite muestras enteras con signo de 16 bits, por lo que la entrada se convertirá cuando sea necesario. Las estadísticas del volumen se mostrarán en el registro cuando se alcance el final del flujo de entrada.
En concreto, mostrará el volumen medio (media cuadrática o RMS), el volumen máximo (por muestra) y el inicio de un histograma de los valores de volumen registrados (desde el valor máximo hasta un 1/1000 acumulado de las muestras).
Todos los volúmenes se expresan en decibelios respecto al valor PCM máximo.
8.121.1 Ejemplos
A continuación se muestra un extracto de la salida:
[Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
[Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
[Parsed_volumedetect_0 0xa23120] histogram_4db: 6
[Parsed_volumedetect_0 0xa23120] histogram_5db: 62
[Parsed_volumedetect_0 0xa23120] histogram_6db: 286
[Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
[Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
[Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
[Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
Esto significa que:
- La energía cuadrática media es de aproximadamente -27 dB, o 10^-2.7.
- La muestra más grande está en -4 dB, o más exactamente entre -4 dB y -5 dB.
- Hay 6 muestras en -4 dB, 62 en -5 dB, 286 en -6 dB, etc.
En otras palabras, subir el volumen +4 dB no provoca ningún recorte, mientras que subirlo +5 dB provoca recorte en 6 muestras, etc.
8.122 whisper
Ejecuta reconocimiento automático de voz utilizando el modelo Whisper de OpenAI.
Requiere la biblioteca whisper.cpp (https://github.com/ggml-org/whisper.cpp) como requisito previo. Una vez instalada la biblioteca, puede habilitarse mediante: ./configure --enable-whisper.
El filtro admite las siguientes opciones:
model
Ruta del archivo del modelo whisper.cpp descargado (obligatorio).
language
El idioma que se debe usar para la transcripción (’auto’ para detección automática). Valor predeterminado: "auto"
translate
Si está habilitada, traduce la transcripción del idioma de origen al inglés. Se requiere un modelo multilingüe para habilitar esta opción. Valor predeterminado: "false"
queue
Tamaño máximo que se pondrá en cola en el filtro antes de procesar el audio con whisper. Con un valor pequeño, el flujo de audio se procesará con más frecuencia, pero la calidad de la transcripción será menor y se requerirá más potencia de procesamiento. Con un valor grande (por ejemplo, 10-20s) se obtienen resultados más precisos usando menos CPU (como al usar la herramienta whisper-cli), pero la latencia de la transcripción será mayor, por lo que no resulta útil para procesar flujos en tiempo real. Considere usar la opción vad_model junto con un valor de queue elevado. Valor predeterminado: "3"
use_gpu
Indica si se debe habilitar la compatibilidad con GPU. Valor predeterminado: "true"
gpu_device
Índice del dispositivo GPU que se debe usar. Valor predeterminado: "0"
destination
Si se establece, la salida de la transcripción se enviará al archivo o URL especificado (use uno de los protocolos AVIO de FFmpeg); en caso contrario, la salida se registrará como mensajes info. La salida también se establecerá en los metadatos de fotograma "lavfi.whisper.text". Si el destino es un archivo y ya existe, se sobrescribirá.
format
La cadena que define el formato del destino; puede ser "text" (solo se enviará al destino el texto transcrito), "srt" (formato de subtítulos) o "json". Valor predeterminado: "text"
max_len
Longitud máxima del segmento en caracteres. Si se establece un valor mayor que 0, los segmentos de la transcripción se dividirán por palabras para no superar esta longitud. Esto resulta útil para generar subtítulos con líneas más cortas. Valor predeterminado: "0"
vad_model
Ruta al archivo del modelo VAD. Si se establece, el filtro cargará un módulo adicional de detección de actividad de voz (voice activity detection, https://github.com/snakers4/silero-vad) que se usará para fragmentar la cola de audio; para usar esta opción, indique una ruta válida obtenida del repositorio whisper.cpp (por ejemplo, "../whisper.cpp/models/ggml-silero-v5.1.2.bin") y aumente el parámetro queue a un valor mayor (por ejemplo, 20).
vad_threshold
Umbral de VAD que se debe usar. Valor predeterminado: "0.5"
vad_min_speech_duration
Duración mínima de habla para el VAD. Valor predeterminado: "0.1"
vad_min_silence_duration
Duración mínima de silencio para el VAD. Valor predeterminado: "0.5"
8.122.1 Ejemplos
-
Ejecutar una transcripción generando un archivo srt:
ffmpeg -i input.mp4 -vn -af "whisper=model=../whisper.cpp/models/ggml-base.en.bin\ :language=en\ :queue=3\ :destination=output.srt\ :format=srt" -f null - -
Ejecutar una transcripción y enviar la salida en formato JSON a un servicio HTTP:
ffmpeg -i input.mp4 -vn -af "whisper=model=../whisper.cpp/models/ggml-base.en.bin\ :language=en\ :queue=3\ :destination=http\\://localhost\\:3000\ :format=json' -f null - -
Transcribir la entrada del micrófono usando la opción VAD:
ffmpeg -loglevel warning -f pulse -i default \ -af 'highpass=f=200,lowpass=f=3000,whisper=model=../whisper.cpp/models/ggml-medium.bin\ :language=en\ :queue=10\ :destination=-\ :format=json\ :vad_model=../whisper.cpp/models/ggml-silero-v5.1.2.bin' -f null -
9 Fuentes de audio
A continuación se describen las fuentes de audio actualmente disponibles.
9.1 abuffer
Almacena en búfer los fotogramas de audio y los pone a disposición de la cadena de filtros.
Esta fuente está pensada principalmente para uso programático, en particular a través de la interfaz definida en libavfilter/buffersrc.h.
Acepta los siguientes parámetros:
time_base
Base de tiempo que se usará para las marcas de tiempo de los fotogramas enviados. Debe ser un número en coma flotante o tener la forma numerador/denominador.
sample_rate
Frecuencia de muestreo de los búferes de audio entrantes.
sample_fmt
Sample format de los búferes de audio entrantes. Puede ser un nombre de sample format o su representación entera correspondiente en el enum AVSampleFormat de libavutil/samplefmt.h
channel_layout
Disposición de canales de los búferes de audio entrantes. Puede ser un nombre de disposición de canales de channel_layout_map en libavutil/channel_layout.c o su representación entera correspondiente en las macros AV_CH_LAYOUT_* de libavutil/channel_layout.h
channels
El número de canales de los búferes de audio entrantes. Si se especifican tanto channels como channel_layout, deben ser coherentes.
9.1.1 Ejemplos
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
esto instruye a la fuente para que acepte estéreo con signo de 16 bits planar a 44100Hz. Dado que el sample format con nombre "s16p" corresponde al número 6 y la disposición de canales "stereo" corresponde al valor 0x3, esto es equivalente a:
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
9.2 aevalsrc
Genera una señal de audio especificada mediante una expresión.
Esta fuente acepta como entrada una o más expresiones (una por cada canal), que se evalúan y se usan para generar la señal de audio correspondiente.
Esta fuente acepta las siguientes opciones:
exprs
Establece la lista de expresiones separadas por ’|’ para cada canal por separado. Si no se especifica la opción channel_layout, la disposición de canales seleccionada depende del número de expresiones proporcionadas. En caso contrario, la última expresión especificada se aplica a los canales de salida restantes.
channel_layout, c
Establece la disposición de canales. El número de canales de la disposición especificada debe ser igual al número de expresiones especificadas.
duration, d
Establece la duración mínima del audio de origen. Consulte (ffmpeg-utils)la sección Time duration del manual ffmpeg-utils(1) para conocer la sintaxis aceptada. Tenga en cuenta que la duración resultante puede ser mayor que la especificada, ya que el audio generado siempre se recorta al final de un fotograma completo.
Si no se especifica, o si la duración expresada es negativa, se entiende que el audio se genera indefinidamente.
nb_samples, n
Establece el número de muestras por canal en cada fotograma de salida; el valor predeterminado es 1024.
sample_rate, s
Especifica la frecuencia de muestreo; el valor predeterminado es 44100.
Cada expresión de exprs puede contener las siguientes constantes:
n
número de la muestra evaluada, empezando desde 0
t
instante de la muestra evaluada, expresado en segundos y empezando desde 0
s
frecuencia de muestreo
9.2.1 Ejemplos
-
Genera silencio:
aevalsrc=0 -
Genera una señal sinusoidal con una frecuencia de 440 Hz y establece la frecuencia de muestreo en 8000 Hz:
aevalsrc="sin(440*2*PI*t):s=8000" -
Genera una señal de dos canales, especificando explícitamente la disposición de canales (Front Center + Back Center):
aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC" -
Genera ruido blanco:
aevalsrc="-2+random(0)" -
Genera una señal modulada en amplitud:
aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)" -
Genera pulsaciones binaurales de 2.5 Hz sobre una portadora de 360 Hz:
aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
9.3 afdelaysrc
Genera coeficientes FIR de retardo fraccionario.
El flujo resultante puede usarse con el filtro afir para filtrar la señal de audio.
El filtro acepta las siguientes opciones:
delay, d
Establece el retardo fraccionario. El valor predeterminado es 0.
sample_rate, r
Establece la frecuencia de muestreo; el valor predeterminado es 44100.
nb_samples, n
Establece el número de muestras por cada fotograma. El valor predeterminado es 1024.
taps, t
Establece el número de coeficientes del filtro en el flujo de audio de salida. El valor predeterminado es 0.
channel_layout, c
Especifica la disposición de canales, y puede ser una cadena que represente una disposición de canales. El valor predeterminado de channel_layout es "stereo".
9.4 afireqsrc
Genera coeficientes de ecualizador FIR.
El flujo resultante puede usarse con el filtro afir para filtrar la señal de audio.
El filtro acepta las siguientes opciones:
preset, p
Establece el preset del ecualizador. El preset predeterminado es flat.
Los presets disponibles son:
‘custom’ ‘flat’ ‘acoustic’ ‘bass’ ‘beats’ ‘classic’ ‘clear’ ‘deep bass’ ‘dubstep’ ‘electronic’ ‘hard-style’ ‘hip-hop’ ‘jazz’ ‘metal’ ‘movie’ ‘pop’ ‘r&b’ ‘rock’ ‘vocal booster’ gains, g
Establece las ganancias personalizadas para cada banda. Solo se usa si la opción preset está establecida en custom. Las ganancias se separan con espacios en blanco y cada una se expresa en dBFS. El valor predeterminado es 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.
bands, b
Establece las bandas personalizadas a partir de las cuales se fijan las ganancias del ecualizador. Deben estar en orden estrictamente creciente. Solo se usa si la opción preset está establecida en custom. Las bandas se separan con espacios en blanco y cada una representa una frecuencia en Hz. El valor predeterminado es 25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000.
taps, t
Establece el número de coeficientes del filtro en el flujo de audio de salida. El valor predeterminado es 4096.
sample_rate, r
Establece la frecuencia de muestreo del flujo de audio de salida; el valor predeterminado es 44100.
nb_samples, n
Establece el número de muestras por cada fotograma en el flujo de audio de salida. El valor predeterminado es 1024.
interp, i
Establece el método de interpolación para los coeficientes del ecualizador FIR. Puede ser linear o cubic.
phase, h
Establece el tipo de fase del filtro FIR. Puede ser linear o min (fase mínima). El valor predeterminado es el filtro de fase mínima.
9.5 afirsrc
Genera coeficientes FIR mediante el método de muestreo en frecuencia.
El flujo resultante puede usarse con el filtro afir para filtrar la señal de audio.
El filtro acepta las siguientes opciones:
taps, t
Establece el número de coeficientes del filtro en el flujo de audio de salida. El valor predeterminado es 1025.
frequency, f
Establece los puntos de frecuencia a partir de los cuales se fijan la magnitud y la fase. Deben estar en orden no decreciente; el primer elemento debe ser 0 y el último debe ser 1. Los elementos se separan con espacios en blanco.
magnitude, m
Establece el valor de magnitud para cada punto de frecuencia definido por frequency. El número de valores debe coincidir con el número de puntos de frecuencia. Los valores se separan con espacios en blanco.
phase, p
Establece el valor de fase para cada punto de frecuencia definido por frequency. El número de valores debe coincidir con el número de puntos de frecuencia. Los valores se separan con espacios en blanco.
sample_rate, r
Establece la frecuencia de muestreo; el valor predeterminado es 44100.
nb_samples, n
Establece el número de muestras por cada fotograma. El valor predeterminado es 1024.
win_func, w
Establece la función de ventana. El valor predeterminado es blackman.
9.6 anullsrc
La fuente de audio nula devuelve fotogramas de audio sin procesar. Resulta útil principalmente como plantilla y para su uso en herramientas de análisis o depuración, o como fuente para filtros que ignoran los datos de entrada (por ejemplo, el filtro sox synth).
Esta fuente acepta las siguientes opciones:
channel_layout, cl
Especifica la disposición de canales, y puede ser un entero o una cadena que represente una disposición de canales. El valor predeterminado de channel_layout es "stereo".
Consulte la definición de channel_layout_map en libavutil/channel_layout.c para conocer la correspondencia entre cadenas y valores de disposición de canales.
sample_rate, r
Especifica la frecuencia de muestreo; el valor predeterminado es 44100.
nb_samples, n
Establece el número de muestras por fotograma solicitado.
duration, d
Establece la duración del audio de origen. Consulte (ffmpeg-utils)la sección Time duration del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
Si no se especifica, o si la duración expresada es negativa, se entiende que el audio se genera indefinidamente.
9.6.1 Ejemplos
-
Establece la frecuencia de muestreo en 48000 Hz y la disposición de canales en AV_CH_LAYOUT_MONO.
anullsrc=r=48000:cl=4 -
Realiza la misma operación con una sintaxis más evidente:
anullsrc=r=48000:cl=mono
Todos los parámetros deben definirse de forma explícita.
9.7 flite
Sintetiza una locución de voz usando la biblioteca libflite.
Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-libflite.
Tenga en cuenta que las versiones de la biblioteca flite anteriores a la 2.0 no son thread-safe.
El filtro acepta las siguientes opciones:
list_voices
Si se establece en 1, muestra los nombres de las voces disponibles y termina inmediatamente. El valor predeterminado es 0.
nb_samples, n
Establece el número máximo de muestras por fotograma. El valor predeterminado es 512.
textfile
Establece el nombre del archivo que contiene el texto que se debe pronunciar.
text
Establece el texto que se debe pronunciar.
voice, v
Establece la voz que se debe usar para la síntesis de voz. El valor predeterminado es kal. Consulte también la opción list_voices.
9.7.1 Ejemplos
-
Lee del archivo speech.txt y sintetiza el texto usando la voz estándar de flite:
flite=textfile=speech.txt -
Lee el texto especificado seleccionando la voz
slt:flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt -
Introduce texto en ffmpeg:
ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt -
Hace que ffplay pronuncie el texto especificado, usando
flitey el dispositivolavfi:ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
Para más información sobre libflite, consulte: http://www.festvox.org/flite/
9.8 anoisesrc
Genera una señal de audio de ruido.
El filtro acepta las siguientes opciones:
sample_rate, r
Especifica la frecuencia de muestreo. El valor predeterminado es 48000 Hz.
amplitude, a
Especifica la amplitud (0.0 - 1.0) del flujo de audio generado. El valor predeterminado es 1.0.
duration, d
Especifica la duración del flujo de audio generado. Si no se especifica esta opción, se obtiene ruido de duración infinita.
color, colour, c
Especifica el color del ruido. Los colores de ruido disponibles son white, pink, brown, blue, violet y velvet. El color predeterminado es white.
seed, s
Especifica un valor que se usa para inicializar (seed) el PRNG.
nb_samples, n
Establece el número de muestras por cada fotograma de salida; el valor predeterminado es 1024.
density
Establece la densidad (0.0 - 1.0) del generador de ruido velvet; el valor predeterminado es 0.05.
9.8.1 Ejemplos
- Genera 60 segundos de ruido pink, con una frecuencia de muestreo de 44.1 kHz y una amplitud de 0.5:
anoisesrc=d=60:c=pink:r=44100:a=0.5
9.9 hilbert
Genera coeficientes FIR de transformada de Hilbert con un número impar de taps.
El flujo resultante puede usarse con el filtro afir para desfasar la señal 90 grados.
Esto se usa en muchos esquemas de codificación matricial y para la generación de señales analíticas. El proceso suele expresarse como una multiplicación por i (o j), la unidad imaginaria.
El filtro acepta las siguientes opciones:
sample_rate, s
Establece la frecuencia de muestreo; el valor predeterminado es 44100.
taps, t
Establece la longitud del filtro FIR; el valor predeterminado es 22051.
nb_samples, n
Establece el número de muestras por cada fotograma.
win_func, w
Establece la función de ventana que se debe usar al generar los coeficientes FIR.
9.10 sinc
Genera coeficientes FIR sinc con ventana de Kaiser de tipo paso bajo, paso alto, paso banda o rechazo de banda.
El flujo resultante puede usarse con el filtro afir para filtrar la señal de audio.
El filtro acepta las siguientes opciones:
sample_rate, r
Establece la frecuencia de muestreo; el valor predeterminado es 44100.
nb_samples, n
Establece el número de muestras por cada fotograma. El valor predeterminado es 1024.
hp
Establece la frecuencia de paso alto. El valor predeterminado es 0.
lp
Establece la frecuencia de paso bajo. El valor predeterminado es 0. Si la frecuencia de paso alto es menor que la frecuencia de paso bajo y esta última es mayor que 0, el filtro generará coeficientes de filtro paso banda; en caso contrario, generará coeficientes de filtro de rechazo de banda.
phase
Establece la respuesta de fase del filtro. El valor predeterminado es 50. El rango permitido va de 0 a 100.
beta
Establece el parámetro beta de la ventana de Kaiser.
att
Establece la atenuación de la banda de rechazo. El valor predeterminado es 120dB; el rango permitido va de 40 a 180 dB.
round
Habilita el redondeo; está deshabilitado de forma predeterminada.
hptaps
Establece el número de taps para el filtro de paso alto.
lptaps
Establece el número de taps para el filtro de paso bajo.
9.11 sine
Genera una señal de audio formada por una onda sinusoidal de amplitud 1/8.
La señal de audio es exacta a nivel de bit (bit-exact).
El filtro acepta las siguientes opciones:
frequency, f
Establece la frecuencia portadora. El valor predeterminado es 440 Hz.
beep_factor, b
Habilita un pitido periódico cada segundo con una frecuencia beep_factor veces mayor que la frecuencia portadora. El valor predeterminado es 0, lo que significa que el pitido está deshabilitado.
sample_rate, r
Especifica la frecuencia de muestreo; el valor predeterminado es 44100.
duration, d
Especifica la duración del flujo de audio generado.
samples_per_frame
Establece el número de muestras por fotograma de salida.
La expresión puede contener las siguientes constantes:
n
Número (secuencial) del fotograma de audio de salida, empezando desde 0.
pts
El PTS (Presentation TimeStamp) del fotograma de audio de salida, expresado en unidades TB.
t
El PTS del fotograma de audio de salida, expresado en segundos.
TB
La base de tiempo de los fotogramas de audio de salida.
El valor predeterminado es 1024.
9.11.1 Ejemplos
-
Genera una onda sinusoidal simple de 440 Hz:
sine -
Genera una onda sinusoidal de 220 Hz con un pitido de 880 Hz cada segundo, durante 5 segundos:
sine=220:4:d=5 sine=f=220:b=4:d=5 sine=frequency=220:beep_factor=4:duration=5 -
Genera una onda sinusoidal de 1 kHz que sigue el patrón NTSC
1602,1601,1602,1601,1602:sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
10 Destinos de audio
A continuación se describen los destinos de audio actualmente disponibles.
10.1 abuffersink
Almacena en búfer los fotogramas de audio y los pone a disposición del final de la cadena de filtros.
Este destino está pensado principalmente para uso programático, en particular a través de la interfaz definida en libavfilter/buffersink.h o del sistema de opciones.
Acepta un puntero a una estructura AVABufferSinkContext, que define los formatos de los búferes entrantes, para pasarlo como parámetro opaque a avfilter_init_filter en la inicialización.
10.2 anullsink
Destino de audio nulo; no hace absolutamente nada con el audio de entrada. Resulta útil principalmente como plantilla y para su uso en herramientas de análisis o depuración.
11 Filtros de vídeo
Al configurar su compilación de FFmpeg, puede deshabilitar cualquiera de los filtros existentes mediante --disable-filters. La salida de configure mostrará los filtros de vídeo incluidos en su compilación.
A continuación se describen los filtros de vídeo actualmente disponibles.
11.1 addroi
Marca una región de interés en un fotograma de vídeo.
Los datos del fotograma se transmiten sin cambios, pero se adjuntan al fotograma metadatos que indican las regiones de interés, lo cual puede afectar al comportamiento de la codificación posterior. Se pueden marcar varias regiones aplicando el filtro varias veces.
x
Distancia de la región, en píxeles, desde el borde izquierdo del fotograma.
y
Distancia de la región, en píxeles, desde el borde superior del fotograma.
w
Anchura de la región en píxeles.
h
Altura de la región en píxeles.
Los parámetros x, y, w y h son expresiones y pueden contener las siguientes variables:
iw
Anchura del fotograma de entrada.
ih
Altura del fotograma de entrada.
qoffset
Desplazamiento de cuantización que se debe aplicar dentro de la región.
Debe ser un valor real en el rango de -1 a +1. Un valor de cero indica que no hay cambio de calidad. Un valor negativo solicita mayor calidad (menos cuantización), mientras que un valor positivo solicita menor calidad (mayor cuantización).
El rango está calibrado de manera que los valores extremos indican el mayor desplazamiento posible; si el resto del fotograma se codifica con la peor calidad posible, un desplazamiento de -1 indica que esta región debe codificarse igualmente con la mejor calidad posible. Los valores intermedios se interpolan de una forma que depende del codec.
Por ejemplo, en H.264 de 10 bits, el parámetro de cuantización varía entre -12 y 51. Por lo tanto, un valor típico de qoffset de -1/10 indica que esta región debe codificarse con un QP aproximadamente una décima parte del rango completo mejor que el resto del fotograma. Así, si la mayor parte del fotograma se codificara con un QP de alrededor de 30, esta región obtendría un QP de alrededor de 24 (un desplazamiento de aproximadamente -1/10 * (51 - -12) = -6.3). Un valor extremo de -1 indicaría que esta región debe codificarse con la mejor calidad posible independientemente del tratamiento del resto del fotograma, es decir, con un QP de -12.
clear
Si se establece en true, elimina cualquier región de interés existente marcada en el fotograma antes de añadir la nueva.
11.1.1 Ejemplos
-
Marca el cuarto central del fotograma como interesante.
addroi=iw/4:ih/4:iw/2:ih/2:-1/10 -
Marca la región de 100 píxeles de ancho en el borde izquierdo del fotograma como muy poco interesante (para codificarla con una calidad mucho menor que el resto del fotograma).
addroi=0:0:100:ih:+1/5
11.2 alphaextract
Extrae el componente alfa de la entrada como un vídeo en escala de grises. Esto resulta especialmente útil junto con el filtro alphamerge.
11.3 alphamerge
Añade o reemplaza el componente alfa de la entrada principal con el valor en escala de grises de una segunda entrada. Está pensado para usarse junto con alphaextract, de modo que se puedan transmitir o almacenar secuencias de fotogramas con alfa en un formato que no admite canal alfa.
Por ejemplo, para reconstruir fotogramas completos a partir de un vídeo codificado en YUV normal y un vídeo independiente creado con alphaextract, puede usar:
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
11.4 amplify
Amplifica las diferencias entre el píxel actual y los píxeles de la misma posición en fotogramas adyacentes.
Este filtro acepta las siguientes opciones:
radius
Establece el radio de fotogramas. El valor predeterminado es 2. El rango permitido va de 1 a 63. Por ejemplo, un radio de 3 hará que el filtro calcule el promedio de 7 fotogramas.
factor
Establece el factor con el que se amplifica la diferencia. El valor predeterminado es 2. El rango permitido va de 0 a 65535.
threshold
Establece el umbral para la amplificación de la diferencia. Cualquier diferencia mayor o igual que este valor no alterará el píxel de origen. El valor predeterminado es 10. El rango permitido va de 0 a 65535.
tolerance
Establece la tolerancia para la amplificación de la diferencia. Cualquier diferencia inferior a este valor no alterará el píxel de origen. El valor predeterminado es 0. El rango permitido va de 0 a 65535.
low
Establece el límite inferior para modificar el píxel de origen. El valor predeterminado es 65535. El rango permitido va de 0 a 65535. Esta opción controla el valor máximo posible con el que se puede reducir el valor del píxel de origen.
high
Establece el límite superior para modificar el píxel de origen. El valor predeterminado es 65535. El rango permitido va de 0 a 65535. Esta opción controla el valor máximo posible con el que se puede aumentar el valor del píxel de origen.
planes
Establece qué planos se deben filtrar. El valor predeterminado es all. El rango permitido va de 0 a 15.
11.4.1 Comandos
Este filtro admite los siguientes comandos, que corresponden a la opción del mismo nombre:
factor threshold tolerance low high planes
11.5 ass
Es igual que el filtro subtitles, salvo que no necesita libavcodec ni libavformat para funcionar. En cambio, se limita a archivos de subtítulos ASS (Advanced Substation Alpha).
Este filtro acepta filename/f, original_size, fontsdir y alpha del filtro subtitles, además de la siguiente opción:
shaping
Establece el motor de shaping.
Los valores disponibles son:
‘auto’
El motor de shaping predeterminado de libass, que es el mejor disponible.
‘simple’
Shaper rápido e independiente de la fuente que solo puede realizar sustituciones.
‘complex’
Shaper más lento que usa OpenType para las sustituciones y el posicionamiento. Necesario para representar correctamente escrituras complejas como el árabe, el hebreo, el devanagari y el tailandés. Requiere que libass esté compilado con HarfBuzz.
El valor predeterminado es auto.
11.6 atadenoise
Aplica al vídeo de entrada un eliminador de ruido temporal adaptativo (Adaptive Temporal Averaging Denoiser).
El filtro acepta las siguientes opciones:
0a
Define el umbral A para el primer plano. El valor predeterminado es 0.02. El rango válido es de 0 a 0.3.
0b
Define el umbral B para el primer plano. El valor predeterminado es 0.04. El rango válido es de 0 a 5.
1a
Define el umbral A para el segundo plano. El valor predeterminado es 0.02. El rango válido es de 0 a 0.3.
1b
Define el umbral B para el segundo plano. El valor predeterminado es 0.04. El rango válido es de 0 a 5.
2a
Define el umbral A para el tercer plano. El valor predeterminado es 0.02. El rango válido es de 0 a 0.3.
2b
Define el umbral B para el tercer plano. El valor predeterminado es 0.04. El rango válido es de 0 a 5.
El umbral A está pensado para reaccionar ante cambios abruptos en la señal de entrada, mientras que el umbral B está pensado para reaccionar ante cambios continuos en la señal de entrada.
s
Define el número de fotogramas que el filtro usará para el promediado. El valor predeterminado es 9. Debe ser un número impar dentro del rango [5, 129].
p
Define qué planos del fotograma usará el filtro para el promediado. El valor predeterminado es todos.
a
Define qué variante del algoritmo usará el filtro para el promediado. El valor predeterminado es p (paralelo). Alternativamente puede establecerse en s (serie).
El modo paralelo puede ser más rápido que el serie, aunque lo contrario nunca ocurre. El modo paralelo interrumpe el proceso en cuanto el primer cambio supera los umbrales, mientras que el serie continúa procesando el resto del fotograma si los valores son iguales o inferiores a los umbrales.
0s 1s 2s
Define sigma para el primer, segundo o tercer plano. El valor predeterminado es 32767. El rango válido va de 0 a 32767. Esta opción controla el peso de cada píxel dentro del radio definido por size. El valor predeterminado hace que todos los píxeles tengan el mismo peso. Establecer esta opción en 0 desactiva en la práctica el filtrado.
11.6.1 Comandos
Este filtro admite los mismos comandos que las opciones, excepto la opción s. El comando acepta la misma sintaxis que la opción correspondiente.
11.7 avgblur
Aplica un filtro de desenfoque por promedio.
El filtro acepta las siguientes opciones:
sizeX
Define el tamaño del radio horizontal.
planes
Define qué planos se filtran. De forma predeterminada se filtran todos los planos.
sizeY
Define el tamaño del radio vertical; si es cero, será igual a sizeX. El valor predeterminado es 0.
11.7.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.8 backgroundkey
Convierte un fondo estático en transparencia.
El filtro acepta la siguiente opción:
threshold
Umbral para la detección de cambio de escena.
similarity
Porcentaje de similitud con el fondo.
blend
Define la cantidad de mezcla para los píxeles que no son similares.
11.8.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.9 bbox
Calcula el cuadro delimitador (bounding box) de los píxeles no negros en el plano de luminancia del fotograma de entrada.
Este filtro calcula el cuadro delimitador que contiene todos los píxeles con un valor de luminancia mayor que el valor mínimo permitido. Los parámetros que describen el cuadro delimitador se imprimen en el registro del filtro.
El filtro acepta la siguiente opción:
min_val
Define el valor mínimo de luminancia. El valor predeterminado es 16.
11.9.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.10 bilateral
Aplica un filtro bilateral: suavizado espacial que preserva los bordes.
El filtro acepta las siguientes opciones:
sigmaS
Define sigma de la función gaussiana usada para calcular el peso espacial. El rango permitido es de 0 a 512. El valor predeterminado es 0.1.
sigmaR
Define sigma de la función gaussiana usada para calcular el peso de rango. El rango permitido es de 0 a 1. El valor predeterminado es 0.1.
planes
Define los planos que se filtrarán. El valor predeterminado es solo el primero.
11.10.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.11 bitplanenoise
Muestra y mide el ruido del plano de bits.
El filtro acepta las siguientes opciones:
bitplane
Define qué plano analizar. El valor predeterminado es 1.
filter
Filtra los píxeles ruidosos del plano definido en bitplane. El valor predeterminado es desactivado.
11.12 blackdetect, blackdetect_vulkan
Detecta intervalos de vídeo que son (casi) completamente negros. Puede ser útil para detectar transiciones de capítulo, anuncios o grabaciones inválidas.
El filtro vuelca su análisis de detección tanto en el registro como en los metadatos del fotograma. Si se encuentra un segmento negro de al menos la duración mínima especificada, se imprime en el registro, con nivel info, una línea con las marcas de tiempo de inicio y fin junto con la duración. Además, se imprime por cada fotograma una línea de registro con nivel debug que muestra la cantidad de negro detectada en ese fotograma.
El filtro también adjunta metadatos al primer fotograma de un segmento negro con la clave lavfi.black_start, y al primer fotograma tras el final del segmento negro con la clave lavfi.black_end. El valor es la marca de tiempo del fotograma. Estos metadatos se añaden independientemente de la duración mínima especificada.
El filtro acepta las siguientes opciones:
black_min_duration, d
Define la duración mínima de negro detectada, expresada en segundos. Debe ser un número en coma flotante no negativo.
El valor predeterminado es 2.0.
picture_black_ratio_th, pic_th
Define el umbral para considerar que una imagen es "negra". Expresa el valor mínimo de la razón:
nb_black_pixels / nb_pixels
para la cual se considera que una imagen es negra. El valor predeterminado es 0.98.
pixel_black_th, pix_th
Define el umbral para considerar que un píxel es "negro".
El umbral expresa el valor máximo de luminancia de un píxel para el cual se considera que ese píxel es "negro". El valor proporcionado se escala según la siguiente ecuación:
absolute_threshold = luma_minimum_value + pixel_black_th * luma_range_size
luma_range_size y luma_minimum_value dependen del formato de vídeo de entrada: el rango es [0-255] para formatos YUV de rango completo y [16-235] para formatos YUV de rango no completo.
El valor predeterminado es 0.10.
alpha
Si es verdadero (true), comprueba el canal alfa en lugar del canal de luminancia. Detecta fotogramas que son (casi) transparentes, en lugar de fotogramas que son casi negros.
El valor predeterminado es desactivado.
El siguiente ejemplo establece el umbral máximo de píxel en el valor mínimo y detecta solo intervalos negros de 2 segundos o más:
blackdetect=d=2:pix_th=0.00
11.13 blackframe
Detecta fotogramas que son (casi) completamente negros. Puede ser útil para detectar transiciones de capítulo o anuncios. Las líneas de salida constan del número del fotograma detectado, el porcentaje de negrura, la posición en el archivo si se conoce (o -1) y la marca de tiempo en segundos.
Para mostrar las líneas de salida es necesario establecer el loglevel al menos en el valor AV_LOG_INFO.
Este filtro exporta el metadato de fotograma lavfi.blackframe.pblack. El valor representa el porcentaje de píxeles de la imagen que están por debajo del valor de umbral.
Acepta los siguientes parámetros:
amount
El porcentaje de píxeles que deben estar por debajo del umbral; el valor predeterminado es 98.
threshold, thresh
El umbral por debajo del cual el valor de un píxel se considera negro; el valor predeterminado es 32.
11.14 blend
Combina dos fotogramas de vídeo entre sí.
El filtro blend toma dos flujos de entrada y produce un único flujo de salida; la primera entrada es la capa "superior" (top) y la segunda es la capa "inferior" (bottom). De forma predeterminada, la salida termina cuando finaliza la entrada más larga.
El filtro tblend (mezcla temporal) toma dos fotogramas consecutivos de un único flujo y produce el resultado de combinar el fotograma nuevo sobre el fotograma antiguo.
A continuación se describen las opciones aceptadas.
c0_mode c1_mode c2_mode c3_mode all_mode
Define el modo de mezcla para un componente de píxel específico, o para todos los componentes en el caso de all_mode. El valor predeterminado es normal.
Los valores disponibles para los modos de componente son:
‘addition’ ‘and’ ‘average’ ‘bleach’ ‘burn’ ‘darken’ ‘difference’ ‘divide’ ‘dodge’ ‘exclusion’ ‘extremity’ ‘freeze’ ‘geometric’ ‘glow’ ‘grainextract’ ‘grainmerge’ ‘hardlight’ ‘hardmix’ ‘hardoverlay’ ‘harmonic’ ‘heat’ ‘interpolate’ ‘lighten’ ‘linearlight’ ‘multiply’ ‘multiply128’ ‘negation’ ‘normal’ ‘or’ ‘overlay’ ‘phoenix’ ‘pinlight’ ‘reflect’ ‘screen’ ‘softdifference’ ‘softlight’ ‘stain’ ‘subtract’ ‘vividlight’ ‘xor’ c0_opacity c1_opacity c2_opacity c3_opacity all_opacity
Define la opacidad de mezcla para un componente de píxel específico, o para todos los componentes en el caso de all_opacity. Solo se usa en combinación con los modos de mezcla por componente de píxel.
c0_expr c1_expr c2_expr c3_expr all_expr
Define la expresión de mezcla para un componente de píxel específico, o para todos los componentes en el caso de all_expr. Tenga en cuenta que las opciones de modo relacionadas se ignorarán si estas están definidas.
Las expresiones pueden usar las siguientes variables:
N
El número secuencial del fotograma filtrado, comenzando desde 0.
X Y
las coordenadas de la muestra actual
W H
el ancho y el alto del plano que se está filtrando actualmente
SW SH
Escala de ancho y alto para el plano que se está filtrando. Es la razón entre las dimensiones del plano actual y las del plano de luminancia; por ejemplo, para un fotograma yuv420p, los valores son 1,1 para el plano de luminancia y 0.5,0.5 para los planos de crominancia.
T
Tiempo del fotograma actual, expresado en segundos.
TOP, A
Valor del componente de píxel en la posición actual para el primer fotograma de vídeo (capa superior).
BOTTOM, B
Valor del componente de píxel en la posición actual para el segundo fotograma de vídeo (capa inferior).
El filtro blend también admite las opciones de framesync.
11.14.1 Ejemplos
-
Aplicar una transición de la capa inferior a la capa superior en los primeros 10 segundos:
blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))' -
Aplicar una transición horizontal lineal de la capa superior a la capa inferior:
blend=all_expr='A*(X/W)+B*(1-X/W)' -
Aplicar un efecto de tablero de ajedrez 1x1:
blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)' -
Aplicar un efecto de descubrir hacia la izquierda:
blend=all_expr='if(gte(N*SW+X,W),A,B)' -
Aplicar un efecto de descubrir hacia abajo:
blend=all_expr='if(gte(Y-N*SH,0),A,B)' -
Aplicar un efecto de descubrir hacia la parte superior izquierda:
blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)' -
Dividir el vídeo en diagonal y mostrar la capa superior e inferior en cada lado:
blend=all_expr='if(gt(X,Y*(W/H)),A,B)' -
Mostrar las diferencias entre el fotograma actual y el anterior:
tblend=all_mode=grainextract
11.14.2 Comandos
Este filtro admite los mismos comandos que las opciones.
11.15 blockdetect
Determina el nivel de artefactos de bloque (blockiness) de los fotogramas sin alterar los fotogramas de entrada.
Basado en Remco Muijs e Ihor Kirenko: "A no-reference blocking artifact measure for adaptive video processing". 2005 13th European Signal Processing Conference.
El filtro acepta las siguientes opciones:
period_min period_max
Define los valores mínimo y máximo para determinar las cuadrículas de píxeles (periodos). Los valores predeterminados son [3,24].
planes
Define los planos que se filtrarán. El valor predeterminado es solo el primero.
11.15.1 Ejemplos
- Determinar el nivel de bloque para el primer plano y buscar periodos dentro de [8,32]:
blockdetect=period_min=8:period_max=32:planes=1
11.16 blurdetect
Determina el nivel de desenfoque de los fotogramas sin alterar los fotogramas de entrada.
Basado en Marziliano, Pina, et al.: "A no-reference perceptual blur metric". Permite una variante basada en bloques.
El filtro acepta las siguientes opciones:
low high
Define los valores de umbral bajo y alto usados por el algoritmo de umbralización de Canny.
El umbral alto selecciona los píxeles de borde "fuertes", que después se conectan mediante conectividad-8 con los píxeles de borde "débiles" seleccionados por el umbral bajo.
Los valores de umbral low y high deben elegirse dentro del rango [0,1], y low debe ser menor o igual que high.
El valor predeterminado de low es 20/255, y el valor predeterminado de high es 50/255.
radius
Define el radio de búsqueda alrededor de un píxel de borde para los máximos locales.
block_pct
Determina el desenfoque solo para los bloques más significativos, expresado en porcentaje.
block_width
Determina el desenfoque para bloques de ancho block_width. Si se establece en cualquier valor menor que 1, no se usan bloques y toda la imagen se procesa como una sola, independientemente de block_height.
block_height
Determina el desenfoque para bloques de alto block_height. Si se establece en cualquier valor menor que 1, no se usan bloques y toda la imagen se procesa como una sola, independientemente de block_width.
planes
Define los planos que se filtrarán. El valor predeterminado es solo el primero.
11.16.1 Ejemplos
- Determinar el desenfoque para el 80% de los bloques 32x32 más significativos:
blurdetect=block_width=32:block_height=32:block_pct=80
11.17 bm3d
Elimina el ruido de los fotogramas mediante el algoritmo Block-Matching 3D.
El filtro acepta las siguientes opciones.
sigma
Define la intensidad de reducción de ruido. El valor predeterminado es 1. El rango permitido es de 0 a 999.9. El algoritmo de reducción de ruido es muy sensible a sigma, por lo que debe ajustarse según la fuente.
block
Define el tamaño del parche local. Esto establece las dimensiones en 2D.
bstep
Define el paso de desplazamiento para procesar los bloques. El valor predeterminado es 4. El rango permitido es de 1 a 64. Los valores menores permiten procesar más bloques de referencia y son más lentos.
group
Define el número máximo de bloques similares para la 3.ª dimensión. El valor predeterminado es 1. Cuando se establece en 1, no se realiza emparejamiento de bloques. Los valores mayores permiten más bloques en un mismo grupo. El rango permitido es de 1 a 256.
range
Define el radio de búsqueda para el emparejamiento de bloques. El valor predeterminado es 9. El rango permitido es de 1 a INT32_MAX.
mstep
Define el paso entre dos posiciones de búsqueda para el emparejamiento de bloques. El valor predeterminado es 1. El rango permitido es de 1 a 64. Cuanto menor, más lento.
thmse
Define el umbral del error cuadrático medio para el emparejamiento de bloques. El rango válido es de 0 a INT32_MAX.
hdthr
Define el parámetro de umbralización para la umbralización dura en el dominio transformado 3D. Los valores mayores producen un filtrado de umbralización dura más fuerte en el dominio de la frecuencia.
estim
Define el modo de estimación de filtrado. Puede ser basic o final. El valor predeterminado es basic.
ref
Si se activa, el filtro usará el segundo flujo para el emparejamiento de bloques. El valor predeterminado es desactivado cuando la opción estim vale basic, y siempre está activado si el valor de estim es final.
planes
Define los planos que se filtrarán. El valor predeterminado es todos los disponibles excepto alfa.
11.17.1 Ejemplos
-
Filtrado básico con bm3d:
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic -
Igual que el anterior, pero filtrando solo la luminancia:
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1 -
Igual que el anterior, pero con ambos modos de estimación:
split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1 -
Igual que el anterior, pero prefiltrando con el filtro nlmeans en su lugar:
split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
11.18 boxblur
Aplica un algoritmo de desenfoque de caja (boxblur) al vídeo de entrada.
Acepta los siguientes parámetros:
luma_radius, lr luma_power, lp chroma_radius, cr chroma_power, cp alpha_radius, ar alpha_power, ap
A continuación se describen las opciones aceptadas.
luma_radius, lr chroma_radius, cr alpha_radius, ar
Define una expresión para el radio de la caja, en píxeles, usada para desenfocar el plano de entrada correspondiente.
El valor del radio debe ser un número no negativo y no debe ser mayor que el valor de la expresión min(w,h)/2 para los planos de luminancia y alfa, ni que min(cw,ch)/2 para los planos de crominancia.
El valor predeterminado de luma_radius es "2". Si no se especifican, chroma_radius y alpha_radius toman el valor correspondiente definido para luma_radius.
Las expresiones pueden contener las siguientes constantes:
w h
El ancho y el alto de la entrada, en píxeles.
cw ch
El ancho y el alto de la imagen de crominancia de entrada, en píxeles.
hsub vsub
Los valores de submuestreo de crominancia horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
luma_power, lp chroma_power, cp alpha_power, ap
Especifica cuántas veces se aplica el filtro boxblur al plano correspondiente.
El valor predeterminado de luma_power es 2. Si no se especifican, chroma_power y alpha_power toman el valor correspondiente definido para luma_power.
Un valor de 0 desactiva el efecto.
11.18.1 Ejemplos
-
Aplicar un filtro boxblur con los radios de luminancia, crominancia y alfa establecidos en 2:
boxblur=luma_radius=2:luma_power=1 boxblur=2:1 -
Establecer el radio de luminancia en 2, y el radio de alfa y crominancia en 0:
boxblur=2:1:cr=0:ar=0 -
Establecer los radios de luminancia y crominancia como una fracción de la dimensión del vídeo:
boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
11.19 bwdif
Desentrelaza el vídeo de entrada ("bwdif" significa "Bob Weaver Deinterlacing Filter").
Desentrelazado adaptativo al movimiento basado en yadif, con el uso de los algoritmos w3fdif e interpolación cúbica. Acepta los siguientes parámetros:
mode
El modo de entrelazado que se adoptará. Acepta uno de los siguientes valores:
0, send_frame
Genera un fotograma de salida por cada fotograma.
1, send_field
Genera un fotograma de salida por cada campo.
El valor predeterminado es send_field.
parity
La paridad de campo de imagen asumida para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
0, tff
Asume que el campo superior es el primero.
1, bff
Asume que el campo inferior es el primero.
-1, auto
Activa la detección automática de la paridad de campo.
El valor predeterminado es auto. Si se desconoce el entrelazado o el decoder no exporta esta información, se asumirá que el campo superior es el primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
0, all
Desentrelaza todos los fotogramas.
1, interlaced
Desentrelaza únicamente los fotogramas marcados como entrelazados.
El valor predeterminado es all.
11.20 ccrepack
Reempaqueta los datos laterales de subtitulado oculto CEA-708
Este filtro corrige varios problemas observados en encoders comerciales relacionados con payloads CEA-708 mal formados en origen, concretamente un número incorrecto de tuplas (cc_count erróneo para los FPS de destino) y un orden incorrecto de las tuplas (es decir, las tuplas CEA-608 no ocupan las primeras entradas del payload).
11.21 cas
Aplica el filtro de nitidez adaptativa por contraste (Contrast Adaptive Sharpen) al flujo de vídeo.
El filtro acepta las siguientes opciones:
strength
Define la intensidad de la nitidez. El valor predeterminado es 0.
planes
Define los planos que se filtrarán. El valor predeterminado es filtrar todos los planos excepto el plano alfa.
11.21.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.22 chromahold
Elimina toda la información de color excepto la de un color determinado.
El filtro acepta las siguientes opciones:
color
El color que no se sustituirá por crominancia neutra.
similarity
Porcentaje de similitud con el color anterior. 0.01 coincide únicamente con el color clave exacto, mientras que 1.0 coincide con todo.
blend
Porcentaje de mezcla. 0.0 hace que los píxeles queden totalmente grises o nada grises. Los valores más altos preservan más el color.
yuv
Indica que el color pasado ya está en YUV en lugar de en RGB.
Los colores literales como "green" o "red" dejan de tener sentido cuando esto está activado. Esto puede usarse para pasar valores YUV exactos como números hexadecimales.
11.22.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.23 chromakey
Recorte de color/croma (chroma keying) en el espacio de color YUV.
El filtro acepta las siguientes opciones:
color
El color que se sustituirá por transparencia.
similarity
Porcentaje de similitud con el color clave.
0.01 coincide únicamente con el color clave exacto, mientras que 1.0 coincide con todo.
blend
Porcentaje de mezcla.
0.0 hace que los píxeles queden totalmente transparentes o nada transparentes.
Los valores más altos producen píxeles semitransparentes, con mayor transparencia cuanto más se parezca el color del píxel al color clave.
yuv
Indica que el color pasado ya está en YUV en lugar de en RGB.
Los colores literales como "green" o "red" dejan de tener sentido cuando esto está activado. Esto puede usarse para pasar valores YUV exactos como números hexadecimales.
11.23.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.23.2 Ejemplos
-
Hacer transparente cada píxel verde de la imagen de entrada:
ffmpeg -i input.png -vf chromakey=green out.png -
Superponer un vídeo con pantalla verde (greenscreen) sobre un fondo negro estático.
ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
11.24 chromanr
Reduce el ruido de crominancia.
El filtro acepta las siguientes opciones:
thres
Define el umbral para promediar los valores de crominancia. La suma de la diferencia absoluta de los componentes Y, U y V del píxel actual y los píxeles vecinos, cuando sea menor que este umbral, se usará en el promediado. El componente de luminancia se deja sin cambios y se copia a la salida. El valor predeterminado es 30. El rango permitido es de 1 a 200.
sizew
Define el radio horizontal del rectángulo usado para el promediado. El rango permitido es de 1 a 100. El valor predeterminado es 5.
sizeh
Define el radio vertical del rectángulo usado para el promediado. El rango permitido es de 1 a 100. El valor predeterminado es 5.
stepw
Define el paso horizontal al promediar. El valor predeterminado es 1. El rango permitido es de 1 a 50. Resulta útil sobre todo para acelerar el filtrado.
steph
Define el paso vertical al promediar. El valor predeterminado es 1. El rango permitido es de 1 a 50. Resulta útil sobre todo para acelerar el filtrado.
threy
Define el umbral Y para promediar los valores de crominancia. Ofrece un control más fino de la diferencia máxima permitida entre los componentes Y del píxel actual y los píxeles vecinos. El valor predeterminado es 200. El rango permitido es de 1 a 200.
threu
Define el umbral U para promediar los valores de crominancia. Ofrece un control más fino de la diferencia máxima permitida entre los componentes U del píxel actual y los píxeles vecinos. El valor predeterminado es 200. El rango permitido es de 1 a 200.
threv
Define el umbral V para promediar los valores de crominancia. Ofrece un control más fino de la diferencia máxima permitida entre los componentes V del píxel actual y los píxeles vecinos. El valor predeterminado es 200. El rango permitido es de 1 a 200.
distance
Define el tipo de distancia usado en los cálculos.
‘manhattan’
Diferencia absoluta.
‘euclidean’
Diferencia al cuadrado.
El tipo de distancia predeterminado es manhattan.
11.24.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
11.25 chromashift
Desplaza los píxeles de crominancia horizontal y/o verticalmente.
El filtro acepta las siguientes opciones:
cbh
Establece la magnitud del desplazamiento horizontal de la crominancia azul.
cbv
Establece la magnitud del desplazamiento vertical de la crominancia azul.
crh
Establece la magnitud del desplazamiento horizontal de la crominancia roja.
crv
Establece la magnitud del desplazamiento vertical de la crominancia roja.
edge
Establece el modo de borde. Puede ser smear, default o warp.
11.25.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.26 ciescope
Muestra el diagrama de color CIE con los píxeles superpuestos sobre él.
El filtro acepta las siguientes opciones:
system
Establece el sistema de color.
‘ntsc, 470m’ ‘ebu, 470bg’ ‘smpte’ ‘240m’ ‘apple’ ‘widergb’ ‘cie1931’ ‘rec709, hdtv’ ‘uhdtv, rec2020’ ‘dcip3’ cie
Establece el sistema CIE.
‘xyy’ ‘ucs’ ‘luv’ gamuts
Establece los gamuts de color que se van a dibujar.
Consulte la opción system para conocer los valores disponibles.
size, s
Establece el tamaño de ciescope. El valor predeterminado es 512.
intensity, i
Establece la intensidad usada para asignar los valores de los píxeles de entrada al diagrama CIE.
contrast
Establece el contraste usado para dibujar los colores de la lengua que quedan fuera del gamut del sistema de color activo.
corrgamma
Corrige la gamma mostrada en el scope. Está habilitado de forma predeterminada.
showwhite
Muestra el punto blanco en el diagrama CIE. Está deshabilitado de forma predeterminada.
gamma
Establece la gamma de entrada. Solo se usa con el espacio de color de entrada XYZ.
fill
Rellena con los colores CIE. Está habilitado de forma predeterminada.
11.27 codecview
Visualiza la información exportada por algunos codecs.
Algunos codecs pueden exportar información a través de los fotogramas mediante side-data u otros medios. Por ejemplo, algunos codecs basados en MPEG exportan los vectores de movimiento mediante el flag export_mvs de la opción flags2 del codec.
El filtro acepta la siguiente opción:
block
Muestra la estructura de partición de bloques usando el plano de luminancia.
mv
Establece los vectores de movimiento que se van a visualizar.
Los flags disponibles para mv son:
‘pf’
MV de predicción hacia adelante de los fotogramas P
‘bf’
MV de predicción hacia adelante de los fotogramas B
‘bb’
MV de predicción hacia atrás de los fotogramas B
qp
Muestra los parámetros de cuantización usando los planos de crominancia.
mv_type, mvt
Establece el tipo de vectores de movimiento que se van a visualizar. Incluye los MV de todos los fotogramas, salvo que se especifique lo contrario mediante la opción frame_type.
Los flags disponibles para mv_type son:
‘fp’
MV de predicción hacia adelante
‘bp’
MV de predicción hacia atrás
frame_type, ft
Establece el tipo de fotograma cuyos vectores de movimiento se van a visualizar.
Los flags disponibles para frame_type son:
‘if’
fotogramas codificados en intra (fotogramas I)
‘pf’
fotogramas predichos (fotogramas P)
‘bf’
fotogramas predichos bidireccionalmente (fotogramas B)
11.27.1 Ejemplos
-
Visualiza los MV de predicción hacia adelante de todos los fotogramas usando
ffplay:ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp -
Visualiza los MV multidireccionales de los fotogramas P y B usando
ffplay:ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
11.28 colorbalance
Modifica la intensidad de los colores primarios (rojo, verde y azul) de los fotogramas de entrada.
Este filtro permite ajustar un fotograma de entrada en las regiones de sombras, medios tonos o altas luces para el equilibrio rojo-cian, verde-magenta o azul-amarillo.
Un valor de ajuste positivo desplaza el equilibrio hacia el color primario; un valor negativo lo desplaza hacia el color complementario.
El filtro acepta las siguientes opciones:
rs gs bs
Ajusta las sombras (los píxeles más oscuros) de rojo, verde y azul.
rm gm bm
Ajusta los medios tonos (los píxeles intermedios) de rojo, verde y azul.
rh gh bh
Ajusta las altas luces (los píxeles más brillantes) de rojo, verde y azul.
El rango permitido para las opciones es [-1.0, 1.0]. El valor predeterminado es 0.
pl
Conserva la luminosidad al cambiar el equilibrio de color. Está deshabilitado de forma predeterminada.
11.28.1 Ejemplos
- Añade una dominante roja a las sombras:
colorbalance=rs=.3
11.28.2 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.29 colorcontrast
Ajusta el contraste de color entre los componentes RGB.
El filtro acepta las siguientes opciones:
rc
Establece el contraste rojo-cian. El valor predeterminado es 0.0. El rango permitido va de -1.0 a 1.0.
gm
Establece el contraste verde-magenta. El valor predeterminado es 0.0. El rango permitido va de -1.0 a 1.0.
by
Establece el contraste azul-amarillo. El valor predeterminado es 0.0. El rango permitido va de -1.0 a 1.0.
rcw gmw byw
Establece el peso de cada valor de las opciones rc, gm y by. El valor predeterminado es 0.0. El rango permitido va de 0.0 a 1.0. Si todos los pesos son 0.0, el filtrado se deshabilita.
pl
Establece el grado de conservación de la luminosidad. El valor predeterminado es 0.0. El rango permitido va de 0.0 a 1.0.
11.29.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.30 colorcorrect
Ajusta el balance de blancos del color de forma selectiva para negros y blancos. Este filtro opera en el espacio de color YUV.
El filtro acepta las siguientes opciones:
rl
Establece el punto de sombra roja. El rango permitido va de -1.0 a 1.0. El valor predeterminado es 0.
bl
Establece el punto de sombra azul. El rango permitido va de -1.0 a 1.0. El valor predeterminado es 0.
rh
Establece el punto de luz roja. El rango permitido va de -1.0 a 1.0. El valor predeterminado es 0.
bh
Establece el punto de luz azul. El rango permitido va de -1.0 a 1.0. El valor predeterminado es 0.
saturation
Establece la cantidad de saturación. El rango permitido va de -3.0 a 3.0. El valor predeterminado es 1.
analyze
Si se establece en un valor distinto de manual, analizará cada fotograma y usará los parámetros derivados para filtrar el fotograma de salida.
Los valores posibles son:
‘manual’ ‘average’ ‘minmax’ ‘median’
El valor predeterminado es manual.
11.30.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.31 colorchannelmixer
Ajusta los fotogramas de entrada de vídeo remezclando los canales de color.
Este filtro modifica un canal de color sumando los valores asociados a los demás canales de los mismos píxeles. Por ejemplo, si el valor que se modifica es el rojo, el valor de salida será:
red=red*rr + blue*rb + green*rg + alpha*ra
El filtro acepta las siguientes opciones:
rr rg rb ra
Ajusta la contribución de los canales de entrada rojo, verde, azul y alfa al canal de salida rojo. El valor predeterminado es 1 para rr, y 0 para rg, rb y ra.
gr gg gb ga
Ajusta la contribución de los canales de entrada rojo, verde, azul y alfa al canal de salida verde. El valor predeterminado es 1 para gg, y 0 para gr, gb y ga.
br bg bb ba
Ajusta la contribución de los canales de entrada rojo, verde, azul y alfa al canal de salida azul. El valor predeterminado es 1 para bb, y 0 para br, bg y ba.
ar ag ab aa
Ajusta la contribución de los canales de entrada rojo, verde, azul y alfa al canal de salida alfa. El valor predeterminado es 1 para aa, y 0 para ar, ag y ab.
El rango permitido para las opciones es [-2.0, 2.0].
pc
Establece el modo de conservación del color. Los valores aceptados son:
‘none’
Deshabilita la conservación del color; este es el valor predeterminado.
‘lum’
Conserva la luminancia.
‘max’
Conserva el valor máximo de la terna RGB.
‘avg’
Conserva el valor medio de la terna RGB.
‘sum’
Conserva la suma de los valores de la terna RGB.
‘nrm’
Conserva el valor normalizado de la terna RGB.
‘pwr’
Conserva el valor de potencia de la terna RGB.
pa
Establece la cantidad de conservación del color al cambiar los colores. El rango permitido es [0.0, 1.0]. El valor predeterminado es 0.0, es decir, deshabilitado.
11.31.1 Ejemplos
-
Convierte la fuente a escala de grises:
colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3 -
Simula tonos sepia:
colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
11.31.2 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.32 colordetect
Analiza los fotogramas de vídeo para determinar el rango efectivo de valores y el modo alfa.
El filtro acepta las siguientes opciones:
mode
Conjunto de propiedades que se van a detectar. Las propiedades no disponibles, como el modo alfa en una imagen de entrada sin canal alfa, se ignoran automáticamente.
Acepta una combinación de los siguientes flags:
‘color_range’
Detecta si la fuente contiene píxeles de luminancia fuera del rango limitado (MPEG), lo que indica que se trata de una fuente YUV de rango completo.
‘alpha_mode’
Detecta si la fuente contiene valores de color por encima del canal alfa, lo que indica que el canal alfa es independiente (straight) en lugar de premultiplicado. También detecta si el plano alfa es totalmente opaco o no.
‘all’
Habilita la detección de todas las propiedades anteriores. Este es el valor predeterminado.
11.33 colorize
Superpone un color sólido sobre el flujo de vídeo.
El filtro acepta las siguientes opciones:
hue
Establece el tono del color. El rango permitido va de 0 a 360. El valor predeterminado es 0.
saturation
Establece la saturación del color. El rango permitido va de 0 a 1. El valor predeterminado es 0.5.
lightness
Establece la luminosidad del color. El rango permitido va de 0 a 1. El valor predeterminado es 0.5.
mix
Establece la proporción de mezcla con la luminosidad de la fuente. El valor predeterminado es 1.0. El rango permitido va de 0.0 a 1.0.
11.33.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.34 colorkey
Recorte por color clave (color keying) en el espacio de color RGB. Este filtro opera sobre fotogramas en formato RGB de 8 bits y establece en 0 el componente alfa de cada píxel que quede dentro del radio de similitud del color clave. El valor alfa de los píxeles que quedan fuera del radio de similitud depende del valor de la opción blend.
El filtro acepta las siguientes opciones:
color
Establece el color para el que el alfa se fijará en 0 (transparencia total). Consulte la sección "Color" del manual de ffmpeg-utils. El valor predeterminado es black.
similarity
Establece el radio alrededor del color clave dentro del cual otros colores también se vuelven totalmente transparentes. La distancia calculada está relacionada con la distancia fraccional unitaria en el espacio 3D entre los valores RGB del color clave y el color del píxel. El rango va de 0.01 a 1.0. 0.01 coincide dentro de un radio muy pequeño alrededor del color clave exacto, mientras que 1.0 coincide con todo. El valor predeterminado es 0.01.
blend
Establece cómo se calcula el valor alfa de los píxeles que quedan fuera del radio de similitud. Con 0.0, los píxeles resultan totalmente transparentes o totalmente opacos. Los valores más altos producen píxeles semitransparentes, con mayor transparencia cuanto más se parece el color del píxel al color clave. El rango va de 0.0 a 1.0. El valor predeterminado es 0.0.
11.34.1 Ejemplos
-
Hace transparente cada píxel verde de la imagen de entrada:
ffmpeg -i input.png -vf colorkey=green out.png -
Superpone un vídeo con pantalla verde sobre una imagen de fondo estática.
ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
11.34.2 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se conserva el valor actual.
11.35 colorhold
Elimina toda la información de color de todos los colores RGB, excepto de uno determinado.
El filtro acepta las siguientes opciones:
color
El color que no se sustituirá por un gris neutro.
similarity
Porcentaje de similitud con el color anterior. Con 0.01 solo coincide el color clave exacto, mientras que con 1.0 coincide todo.
blend
Porcentaje de mezcla. Con 0.0 los píxeles quedan completamente en gris. Los valores más altos conservan más color.
11.35.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se conserva el valor actual.
11.36 colorlevels
Ajusta los fotogramas de entrada de vídeo usando niveles.
El filtro acepta las siguientes opciones:
rimin gimin bimin aimin
Ajusta el punto negro de entrada de rojo, verde, azul y alfa. El rango permitido para las opciones es [-1.0, 1.0]. El valor predeterminado es 0.
rimax gimax bimax aimax
Ajusta el punto blanco de entrada de rojo, verde, azul y alfa. El rango permitido para las opciones es [-1.0, 1.0]. El valor predeterminado es 1.
Los niveles de entrada se usan para aclarar las altas luces (tonos claros), oscurecer las sombras (tonos oscuros) y cambiar el equilibrio entre tonos claros y oscuros.
romin gomin bomin aomin
Ajusta el punto negro de salida de rojo, verde, azul y alfa. El rango permitido para las opciones es [0, 1.0]. El valor predeterminado es 0.
romax gomax bomax aomax
Ajusta el punto blanco de salida de rojo, verde, azul y alfa. El rango permitido para las opciones es [0, 1.0]. El valor predeterminado es 1.
Los niveles de salida permiten seleccionar manualmente un rango restringido de nivel de salida.
preserve
Establece el modo de conservación del color. Los valores aceptados son:
‘none’
Deshabilita la conservación del color; este es el valor predeterminado.
‘lum’
Conserva la luminancia.
‘max’
Conserva el valor máximo de la terna RGB.
‘avg’
Conserva el valor medio de la terna RGB.
‘sum’
Conserva la suma de los valores de la terna RGB.
‘nrm’
Conserva el valor normalizado de la terna RGB.
‘pwr’
Conserva el valor de potencia de la terna RGB.
11.36.1 Ejemplos
-
Oscurece la salida de vídeo:
colorlevels=rimin=0.058:gimin=0.058:bimin=0.058 -
Aumenta el contraste:
colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96 -
Aclara la salida de vídeo:
colorlevels=rimax=0.902:gimax=0.902:bimax=0.902 -
Aumenta el brillo:
colorlevels=romin=0.5:gomin=0.5:bomin=0.5
11.36.2 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.37 colormap
Aplica mapas de color personalizados al flujo de vídeo.
Este filtro necesita tres flujos de vídeo de entrada. El primer flujo es el flujo de vídeo que se va a filtrar. El segundo y el tercer flujo de vídeo especifican los parches de color para la asignación del color de origen al color de destino.
El filtro acepta las siguientes opciones:
patch_size
Establece el tamaño de los parches de los flujos de vídeo de origen y destino, en píxeles.
nb_patches
Establece el número máximo de parches usados de los flujos de vídeo de origen y destino. El valor predeterminado es el número de parches disponibles en los flujos de vídeo adicionales. El número máximo de parches permitido es 64.
type
Establece los ajustes aplicados a los colores de destino. Puede ser relative o absolute. El valor predeterminado es absolute.
kernel
Establece el kernel usado para medir las diferencias de color entre los colores asignados.
Los valores aceptados son:
‘euclidean’ ‘weuclidean’
El valor predeterminado es euclidean.
11.38 colormatrix
Convierte la matriz de color.
El filtro acepta las siguientes opciones:
src dst
Especifica la matriz de color de origen y de destino. Deben especificarse ambos valores.
Los valores aceptados son:
‘bt709’
BT.709
‘fcc’
FCC
‘bt601’
BT.601
‘bt470’
BT.470
‘bt470bg’
BT.470BG
‘smpte170m’
SMPTE-170M
‘smpte240m’
SMPTE-240M
‘bt2020’
BT.2020
Por ejemplo, para convertir de BT.601 a SMPTE-240M, use el siguiente comando:
colormatrix=bt601:smpte240m
11.39 colorspace
Convierte el espacio de color, las características de transferencia o los primarios de color. El vídeo de entrada debe tener un tamaño par.
El filtro acepta las siguientes opciones:
all
Especifica todas las propiedades de color a la vez.
Los valores aceptados son:
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG
‘bt601-6-525’
BT.601-6 525
‘bt601-6-625’
BT.601-6 625
‘bt709’
BT.709
‘smpte170m’
SMPTE-170M
‘smpte240m’
SMPTE-240M
‘bt2020’
BT.2020
space
Especifica el espacio de color de salida.
Los valores aceptados son:
‘bt709’
BT.709
‘fcc’
FCC
‘bt470bg’
BT.470BG o BT.601-6 625
‘smpte170m’
SMPTE-170M o BT.601-6 525
‘smpte240m’
SMPTE-240M
‘ycgco’
YCgCo
‘bt2020ncl’
BT.2020 con luminancia no constante
trc
Especifica las características de transferencia de salida.
Los valores aceptados son:
‘bt709’
BT.709
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG
‘gamma22’
Gamma constante de 2.2
‘gamma28’
Gamma constante de 2.8
‘smpte170m’
SMPTE-170M, BT.601-6 625 o BT.601-6 525
‘smpte240m’
SMPTE-240M
‘srgb’
SRGB
‘iec61966-2-1’
iec61966-2-1
‘iec61966-2-4’
iec61966-2-4
‘xvycc’
xvycc
‘bt2020-10’
BT.2020 para contenido de 10 bits
‘bt2020-12’
BT.2020 para contenido de 12 bits
primaries
Especifica los primarios de color de salida.
Los valores aceptados son:
‘bt709’
BT.709
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG o BT.601-6 625
‘smpte170m’
SMPTE-170M o BT.601-6 525
‘smpte240m’
SMPTE-240M
‘film’
film
‘smpte431’
SMPTE-431
‘smpte432’
SMPTE-432
‘bt2020’
BT.2020
‘jedec-p22’
fósforos JEDEC P22
range
Especifica el rango de color de salida.
Los valores aceptados son:
‘tv’
Rango TV (restringido)
‘mpeg’
Rango MPEG (restringido)
‘pc’
Rango PC (completo)
‘jpeg’
Rango JPEG (completo)
format
Especifica el formato de color de salida.
Los valores aceptados son:
‘yuv420p’
YUV 4:2:0 plano de 8 bits
‘yuv420p10’
YUV 4:2:0 plano de 10 bits
‘yuv420p12’
YUV 4:2:0 plano de 12 bits
‘yuv422p’
YUV 4:2:2 plano de 8 bits
‘yuv422p10’
YUV 4:2:2 plano de 10 bits
‘yuv422p12’
YUV 4:2:2 plano de 12 bits
‘yuv444p’
YUV 4:4:4 plano de 8 bits
‘yuv444p10’
YUV 4:4:4 plano de 10 bits
‘yuv444p12’
YUV 4:4:4 plano de 12 bits
fast
Realiza una conversión rápida que omite la corrección de gamma/primarios. Esto reduce considerablemente la carga de CPU, pero el resultado no será matemáticamente correcto. Para obtener una salida compatible con la que produce el filtro colormatrix, use fast=1.
dither
Especifica el modo de dithering.
Los valores aceptados son:
‘none’
No dithering
‘fsb’
Dithering de Floyd-Steinberg
wpadapt
Modo de adaptación del punto blanco.
Los valores aceptados son:
‘bradford’
Adaptación del punto blanco de Bradford
‘vonkries’
Adaptación del punto blanco de von Kries
‘identity’
adaptación del punto blanco de identidad (es decir, sin adaptación del punto blanco)
clipgamut
Controla cómo recortar los colores fuera de gama que resultan de la conversión del espacio de color.
Los valores aceptados son:
‘none’
No recorta los colores fuera de gama.
‘rgb’
Recorta los valores RGB al rango [0, 1] al construir las LUT de transferencia de gamma.
iall
Sobrescribe todas las propiedades de entrada a la vez. Acepta los mismos valores que all.
ispace
Sobrescribe el espacio de color de entrada. Acepta los mismos valores que space.
iprimaries
Sobrescribe los primarios de color de entrada. Acepta los mismos valores que primaries.
itrc
Sobrescribe las características de transferencia de entrada. Acepta los mismos valores que trc.
irange
Sobrescribe el rango de color de entrada. Acepta los mismos valores que range.
El filtro convierte las características de transferencia, el espacio de color y los primarios de color a los valores especificados por el usuario. El valor de salida, si no se especifica, se establece en un valor predeterminado basado en la propiedad "all". Si esa propiedad tampoco se especifica, el filtro registrará un error. El rango de color y el formato de salida usan de forma predeterminada el mismo valor que el rango de color y el formato de entrada. Las características de transferencia, el espacio de color, los primarios de color y el rango de color de entrada deben establecerse en los datos de entrada. Si falta alguno de estos, el filtro registrará un error y no se realizará ninguna conversión.
Por ejemplo, para convertir la entrada a SMPTE-240M, use el siguiente comando:
colorspace=smpte240m
11.40 colortemperature
Ajusta la temperatura de color en el vídeo para simular variaciones en la temperatura de color ambiente.
El filtro acepta las siguientes opciones:
temperature
Establece la temperatura en Kelvin. El rango permitido va de 1000 a 40000. El valor predeterminado es 6500 K.
mix
Establece la mezcla con la salida filtrada. El rango permitido va de 0 a 1. El valor predeterminado es 1.
pl
Establece la cantidad de luminosidad que se conserva. El rango permitido va de 0 a 1. El valor predeterminado es 0.
11.40.1 Comandos
Este filtro admite los mismos comandos que opciones.
11.41 convolution
Aplica una convolución de 3x3, 5x5, 7x7, o bien horizontal/vertical de hasta 49 elementos.
El filtro acepta las siguientes opciones:
0m 1m 2m 3m
Establece la matriz para cada plano. La matriz es una secuencia de 9, 25 o 49 enteros con signo en modo square, y de 1 a 49 enteros con signo (un número impar) en modo row.
0rdiv 1rdiv 2rdiv 3rdiv
Establece el multiplicador para el valor calculado de cada plano. Si no se especifica o es 0, será 1/suma de todos los elementos de la matriz.
0bias 1bias 2bias 3bias
Establece el sesgo (bias) para cada plano. Este valor se suma al resultado de la multiplicación. Resulta útil para aclarar u oscurecer la imagen en general. El valor predeterminado es 0.0.
0mode 1mode 2mode 3mode
Establece el modo de matriz para cada plano. Puede ser square, row o column. El valor predeterminado es square.
11.41.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.41.2 Ejemplos
-
Aplica un enfoque (sharpen):
convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0" -
Aplica un desenfoque (blur):
convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9" -
Aplica realce de bordes:
convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128" -
Aplica detección de bordes:
convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128" -
Aplica un detector de bordes laplaciano que incluye diagonales:
convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0" -
Aplica relieve (emboss):
convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
11.42 convolve
Aplica una convolución 2D del flujo de vídeo en el dominio de la frecuencia usando un segundo flujo como impulso.
El filtro acepta las siguientes opciones:
planes
Establece qué planos procesar.
impulse
Establece qué fotogramas de vídeo de impulso se procesan; puede ser first o all. El valor predeterminado es all.
El filtro convolve también admite las opciones framesync.
11.43 copy
Copia el flujo de vídeo de entrada sin modificarlo en la salida. Esto resulta útil principalmente para pruebas.
11.44 coreimage
Filtra el vídeo mediante la GPU utilizando la API CoreImage de Apple en OSX.
La aceleración por hardware se basa en un contexto de OpenGL. Por lo general, esto significa que el procesamiento lo realiza el hardware de vídeo. Sin embargo, existen implementaciones de OpenGL basadas en software, por lo que no hay garantía de procesamiento por hardware. Esto depende de la versión concreta de OSX.
Apple ofrece muchos filtros y generadores de imágenes que incluyen una gran variedad de opciones. El filtro debe indicarse por su nombre junto con sus opciones.
El filtro coreimage acepta las siguientes opciones:
list_filters
Enumera todos los filtros y generadores disponibles junto con todas sus respectivas opciones, así como los posibles valores mínimo y máximo junto con los valores predeterminados.
list_filters=true
filter
Especifica todos los filtros por su nombre y opciones respectivos. Use list_filters para determinar todos los nombres de filtro y opciones válidos. Las opciones numéricas se especifican con un valor float y se recortan automáticamente a su respectivo rango de valores. Las opciones de vector y color deben especificarse mediante una lista de valores float separados por espacios. Es necesario aplicar el escapado de caracteres. Existe un nombre de opción especial, default, disponible para usar las opciones predeterminadas de un filtro.
Es necesario especificar default o al menos una de las opciones del filtro. Todas las opciones omitidas se usan con sus valores predeterminados. La sintaxis de la cadena de filtro es la siguiente:
filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
output_rect
Especifica un rectángulo en el que se copia la salida de la cadena de filtros dentro de la imagen de entrada. Se indica mediante una lista de valores float separados por espacios:
output_rect=x\ y\ width\ height
Si no se indica, el rectángulo de salida es igual a las dimensiones de la imagen de entrada. El rectángulo de salida se recorta automáticamente en los bordes de la imagen de entrada. Se admiten valores negativos para cada componente.
output_rect=25\ 25\ 100\ 100
Se pueden encadenar varios filtros para lograr un procesamiento sucesivo sin transferencias GPU-HOST, lo que permite procesar con rapidez cadenas de filtros complejas. Actualmente solo se admiten filtros con cero (generadores) o exactamente una (filtros) imagen de entrada y una imagen de salida. Además, los filtros de transición todavía no se pueden usar de la forma prevista.
Algunos filtros generan imágenes de salida con relleno adicional según el núcleo (kernel) respectivo del filtro. El relleno se elimina automáticamente para garantizar que la salida del filtro tenga el mismo tamaño que la imagen de entrada.
Para los generadores de imágenes, el tamaño de la imagen de salida lo determina la imagen de salida anterior de la cadena de filtros o, en su caso, la imagen de entrada de toda la cadena de filtros. Los generadores no usan la información de píxeles de esta imagen para generar su salida. No obstante, la salida generada se combina sobre esta imagen, lo que da lugar a una cobertura parcial o total de la imagen de salida.
La fuente de vídeo coreimagesrc puede usarse para generar imágenes de entrada que se introducen directamente en la cadena de filtros. Al usarla, no es necesario proporcionar imágenes de entrada mediante otra fuente de vídeo o un vídeo de entrada.
11.44.1 Ejemplos
-
Enumera todos los filtros disponibles:
coreimage=list_filters=true -
Usa el filtro CIBoxBlur con las opciones predeterminadas para desenfocar una imagen:
coreimage=filter=CIBoxBlur@default -
Usa una cadena de filtros con CISepiaTone en sus valores predeterminados y CIVignetteEffect con su centro en 100x100 y un radio de 50 píxeles:
coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50 -
Usa nullsrc y CIQRCodeGenerator para crear un código QR de la página de inicio de FFmpeg; se muestra como línea de comandos completa y escapada para el shell bash estándar de Apple:
ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
11.45 corr
Obtiene la correlación entre dos vídeos de entrada.
Este filtro toma dos vídeos de entrada.
Para que este filtro funcione correctamente, ambos vídeos de entrada deben tener la misma resolución y el mismo pixel format. Además, se asume que ambas entradas tienen el mismo número de fotogramas, que se comparan uno a uno.
La correlación obtenida por componente, así como la media, el mínimo y el máximo, se imprime a través del sistema de registro.
El filtro almacena la correlación calculada de cada fotograma en los metadatos del fotograma.
Este filtro también admite las opciones framesync.
En el siguiente ejemplo, el archivo de entrada main.mpg que se procesa se compara con el archivo de referencia ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi corr -f null -
11.46 cover_rect
Cubre un objeto rectangular
Acepta las siguientes opciones:
cover
Ruta del archivo de la imagen de cobertura opcional; debe estar en yuv420.
mode
Establece el modo de cobertura.
Acepta los siguientes valores:
‘cover’
lo cubre con la imagen proporcionada
‘blur’
lo cubre interpolando los píxeles circundantes
El valor predeterminado es blur.
11.46.1 Ejemplos
- Cubre un objeto rectangular de un vídeo dado con la imagen proporcionada, usando
ffmpeg:ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
11.47 crop
Recorta el vídeo de entrada a las dimensiones indicadas.
Acepta los siguientes parámetros:
w, out_w
El ancho del vídeo de salida. Su valor predeterminado es iw. Esta expresión se evalúa una sola vez durante la configuración del filtro, o cuando se envía el comando ‘w’ o ‘out_w’.
h, out_h
La altura del vídeo de salida. Su valor predeterminado es ih. Esta expresión se evalúa una sola vez durante la configuración del filtro, o cuando se envía el comando ‘h’ o ‘out_h’.
x
La posición horizontal, en el vídeo de entrada, del borde izquierdo del vídeo de salida. Su valor predeterminado es (in_w-out_w)/2. Esta expresión se evalúa por fotograma.
y
La posición vertical, en el vídeo de entrada, del borde superior del vídeo de salida. Su valor predeterminado es (in_h-out_h)/2. Esta expresión se evalúa por fotograma.
keep_aspect
Si se establece en 1, fuerza que la relación de aspecto de visualización de la salida sea la misma que la de la entrada, cambiando la relación de aspecto de muestra de la salida. Su valor predeterminado es 0.
exact
Activa el recorte exacto. Si está activado, los vídeos submuestreados se recortarán exactamente en el ancho/alto/x/y especificados y no se redondearán al valor menor más cercano. Su valor predeterminado es 0.
Los parámetros out_w, out_h, x, y son expresiones que contienen las siguientes constantes:
x y
Los valores calculados de x e y. Se evalúan en cada fotograma nuevo.
in_w in_h
El ancho y el alto de la entrada.
iw ih
Son lo mismo que in_w e in_h.
out_w out_h
El ancho y el alto de la salida (recortada).
ow oh
Son lo mismo que out_w y out_h.
a
lo mismo que iw / ih
sar
relación de aspecto de muestra de la entrada
dar
relación de aspecto de visualización de la entrada; es lo mismo que (iw / ih) * sar
hsub vsub
valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
n
El número del fotograma de entrada, empezando en 0.
pos
la posición en el archivo del fotograma de entrada; NAN si es desconocida; obsoleto, no lo use
t
La marca de tiempo expresada en segundos. Es NAN si la marca de tiempo de entrada es desconocida.
La expresión de out_w puede depender del valor de out_h, y la expresión de out_h puede depender de out_w, pero no pueden depender de x e y, ya que x e y se evalúan después de out_w y out_h.
Los parámetros x e y especifican las expresiones para la posición de la esquina superior izquierda del área de salida (sin recortar). Se evalúan en cada fotograma. Si el valor evaluado no es válido, se aproxima al valor válido más cercano.
La expresión de x puede depender de y, y la expresión de y puede depender de x.
11.47.1 Ejemplos
- Recorta un área de tamaño 100x100 en la posición (12,34).
crop=100:100:12:34
Usando opciones con nombre, el ejemplo anterior queda así:
crop=w=100:h=100:x=12:y=34
-
Recorta el área central de la entrada con tamaño 100x100:
crop=100:100 -
Recorta el área central de la entrada con un tamaño de 2/3 del vídeo de entrada:
crop=2/3*in_w:2/3*in_h -
Recorta el cuadrado central del vídeo de entrada:
crop=out_w=in_h crop=in_h -
Delimita el rectángulo con la esquina superior izquierda situada en la posición 100:100 y la esquina inferior derecha correspondiente a la esquina inferior derecha de la imagen de entrada.
crop=in_w-100:in_h-100:100:100 -
Recorta 10 píxeles de los bordes izquierdo y derecho, y 20 píxeles de los bordes superior e inferior
crop=in_w-2*10:in_h-2*20 -
Conserva solo el cuarto inferior derecho de la imagen de entrada:
crop=in_w/2:in_h/2:in_w/2:in_h/2 -
Recorta la altura para obtener la armonía griega:
crop=in_w:1/PHI*in_w -
Aplica un efecto de temblor:
crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7) -
Aplica un efecto de cámara errática según la marca de tiempo:
crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13) -
Establece x en función del valor de y:
crop=in_w/2:in_h/2:y:10+10*sin(n/10)
11.47.2 Comandos
Este filtro admite los siguientes comandos:
w, out_w h, out_h x y
Establece el ancho/alto del vídeo de salida y la posición horizontal/vertical en el vídeo de entrada. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.48 cropdetect
Detecta automáticamente el tamaño de recorte.
Calcula los parámetros de recorte necesarios e imprime los parámetros recomendados a través del sistema de registro. Las dimensiones detectadas corresponden al área no negra o al área de vídeo de la entrada, según mode.
Acepta los siguientes parámetros:
mode
Según mode, la detección de recorte se basa en el mero valor de negro de los píxeles circundantes, o bien en una combinación de vectores de movimiento y píxeles de borde.
‘black’
Detecta los píxeles negros que rodean el vídeo en reproducción. Para un control más preciso, use la opción limit.
‘mvedges’
Detecta el vídeo en reproducción mediante los vectores de movimiento dentro del vídeo y el rastreo de píxeles de borde que suelen formar el contorno de un vídeo en reproducción.
limit
Establece el umbral superior de valor de negro, que se puede especificar opcionalmente desde nada (0) hasta todo (255 en formatos de 8 bits). Un valor de intensidad mayor que el valor establecido se considera no negro. Su valor predeterminado es 24. También puede especificar un valor entre 0.0 y 1.0, que se escalará según la profundidad de bits del pixel format.
round
El valor por el que deben ser divisibles el ancho/alto. Su valor predeterminado es 16. El desplazamiento se ajusta automáticamente para centrar el vídeo. Use 2 para obtener solo dimensiones pares (necesario para vídeo 4:2:2). 16 es lo más adecuado al codificar con la mayoría de los codecs de vídeo.
skip
Establece el número de fotogramas iniciales para los que se omite la evaluación. El valor predeterminado es 2. El rango va de 0 a INT_MAX.
reset_count, reset
Establece el contador que determina tras cuántos fotogramas cropdetect reiniciará la mayor área de vídeo detectada previamente y comenzará de nuevo a detectar el área de recorte óptima actual. El valor predeterminado es 0.
Esto puede resultar útil cuando los logotipos de canal distorsionan el área de vídeo. 0 indica ’nunca reiniciar’, y devuelve la mayor área encontrada durante la reproducción.
mv_threshold
Establece el movimiento en unidades de píxel como umbral para la detección de movimiento. Su valor predeterminado es 8.
low high
Establece los valores de umbral low y high que usa el algoritmo de umbralización de Canny.
El umbral high selecciona los píxeles de borde "fuertes", que después se conectan mediante una conectividad de 8 con los píxeles de borde "débiles" seleccionados por el umbral low.
Los valores de umbral low y high deben elegirse en el rango [0,1], y low debe ser menor o igual que high.
El valor predeterminado de low es 5/255, y el de high es 15/255.
11.48.1 Ejemplos
-
Encuentra el área de vídeo rodeada de bordes negros:
ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null - -
Encuentra un área de vídeo incrustada; genera antes los vectores de movimiento:
ffmpeg -i file.mp4 -vf mestimate,cropdetect=mode=mvedges,metadata=mode=print -f null - -
Encuentra un área de vídeo incrustada; usa los vectores de movimiento del decoder:
ffmpeg -flags2 +export_mvs -i file.mp4 -vf cropdetect=mode=mvedges,metadata=mode=print -f null -
11.48.2 Comandos
Este filtro admite los siguientes comandos:
limit
El comando acepta la misma sintaxis que la opción correspondiente. Si la expresión especificada no es válida, se mantiene el valor actual.
11.49 cue
Retrasa el filtrado de vídeo hasta que se alcanza una determinada marca de tiempo wallclock. El filtro primero deja pasar una cantidad de fotogramas igual a preroll, después almacena en búfer como máximo una cantidad de fotogramas igual a buffer y espera el cue. Al alcanzar el cue, reenvía los fotogramas almacenados en búfer, así como cualquier fotograma posterior que llegue por su entrada.
El filtro puede usarse para sincronizar la salida de varios procesos de ffmpeg destinados a dispositivos de salida en tiempo real como decklink. Al colocar el retardo en la cadena de filtrado y prealmacenar los fotogramas en búfer, el proceso puede transferir los datos a la salida casi inmediatamente después de alcanzar la marca de tiempo wallclock objetivo.
No se puede garantizar una precisión perfecta de fotograma, pero el resultado es suficientemente bueno para algunos casos de uso.
cue
La marca de tiempo de cue expresada como marca de tiempo UNIX en microsegundos. El valor predeterminado es 0.
preroll
La duración del contenido que se deja pasar como preroll, expresada en segundos. El valor predeterminado es 0.
buffer
La duración máxima del contenido que se almacena en búfer antes de esperar el cue, expresada en segundos. El valor predeterminado es 0.
11.50 curves
Aplica ajustes de color mediante curvas.
Este filtro es similar a las herramientas de curvas de Adobe Photoshop y GIMP. Cada componente (rojo, verde y azul) tiene sus valores definidos por N puntos clave unidos entre sí mediante una curva suave. El eje x representa los valores de píxel del fotograma de entrada, y el eje y los nuevos valores de píxel que se establecerán en el fotograma de salida.
De forma predeterminada, la curva de un componente se define mediante los dos puntos (0;0) y (1;1). Esto crea una línea recta en la que cada valor de píxel original se "ajusta" a su propio valor, es decir, no hay ningún cambio en la imagen.
El filtro permite redefinir estos dos puntos y añadir algunos más. Se definirá una nueva curva que pase suavemente por todas estas nuevas coordenadas. Los nuevos puntos definidos deben ser estrictamente crecientes a lo largo del eje x, y sus valores de x e y deben estar en el intervalo [0;1]. La curva se forma mediante una interpolación por splines cúbicos natural o monotónica, según la opción interp (valor predeterminado: natural). El spline natural produce en general una curva más suave, mientras que el spline monotónico (pchip) garantiza que las transiciones entre los puntos especificados sean monótonas. Si las curvas calculadas llegaran a salir de los espacios vectoriales, los valores se recortarán en consecuencia.
El filtro acepta las siguientes opciones:
preset
Selecciona uno de los presets de color disponibles. Esta opción puede usarse junto con los parámetros r, g, b; en ese caso, estas últimas opciones tienen prioridad sobre los valores del preset. Los presets disponibles son:
‘none’ ‘color_negative’ ‘cross_process’ ‘darker’ ‘increase_contrast’ ‘lighter’ ‘linear_contrast’ ‘medium_contrast’ ‘negative’ ‘strong_contrast’ ‘vintage’
El valor predeterminado es none.
master, m
Establece los puntos clave master. Estos puntos definen un mapeo de segunda pasada. A veces se le llama mapeo de "luminancia" o de "valor". Puede usarse junto con r, g, b o all, ya que actúa como una LUT de posprocesado.
red, r
Establece los puntos clave para el componente rojo.
green, g
Establece los puntos clave para el componente verde.
blue, b
Establece los puntos clave para el componente azul.
all
Establece los puntos clave para todos los componentes (sin incluir master). Puede usarse junto con las demás opciones de componente de puntos clave. En ese caso, los componentes no establecidos recurrirán a este ajuste all.
psfile
Especifica un archivo de curvas de Photoshop (.acv) del que importar los ajustes.
plot
Guarda el script de Gnuplot de las curvas en el archivo especificado.
interp
Especifica el tipo de interpolación. Los algoritmos disponibles son:
‘natural’
Spline cúbico natural que usa un polinomio cúbico por tramos dos veces continuamente diferenciable.
‘pchip’
Spline cúbico monotónico que usa un polinomio de interpolación de Hermite cúbico por tramos (PCHIP).
Para evitar algunos conflictos de sintaxis del filtergraph, cada lista de puntos clave debe definirse con la siguiente sintaxis: x0/y0 x1/y1 x2/y2 ....
11.50.1 Comandos
Este filtro admite los mismos comandos que opciones.
11.50.2 Ejemplos
-
Aumenta ligeramente el nivel medio de azul:
curves=blue='0/0 0.5/0.58 1/1' -
Efecto vintage:
curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
Aquí obtenemos las siguientes coordenadas para cada componente:
red
(0;0.11) (0.42;0.51) (1;0.95)
green
(0;0) (0.50;0.48) (1;1)
blue
(0;0.22) (0.49;0.44) (1;0.80)
-
El ejemplo anterior también puede lograrse con el preset integrado asociado:
curves=preset=vintage -
O simplemente:
curves=vintage -
Usa un preset de Photoshop y redefine los puntos del componente verde:
curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1' -
Comprueba las curvas del perfil
cross_processusandoffmpegygnuplot:ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null - gnuplot -p /tmp/curves.plt
11.51 datascope
Filtro de análisis de datos de vídeo.
Este filtro muestra los valores hexadecimales de píxel de una parte del vídeo.
El filtro acepta las siguientes opciones:
size, s
Establece el tamaño del vídeo de salida.
x
Establece el desplazamiento x desde donde tomar los píxeles.
y
Establece el desplazamiento y desde donde tomar los píxeles.
mode
Establece el modo del scope; puede ser uno de los siguientes:
‘mono’
Dibuja los valores hexadecimales de píxel en color blanco sobre fondo negro.
‘color’
Dibuja los valores hexadecimales de píxel con el color de píxel del vídeo de entrada sobre fondo negro.
‘color2’
Dibuja los valores hexadecimales de píxel sobre un fondo de color tomado del vídeo de entrada; el color del texto se elige de modo que siempre sea visible.
axis
Dibuja los números de fila y columna a la izquierda y en la parte superior del vídeo.
opacity
Establece la opacidad del fondo.
format
Establece el formato de visualización de los números. Puede ser hex o dec. El valor predeterminado es hex.
components
Establece los componentes de píxel que se muestran. De forma predeterminada se muestran todos los componentes de píxel.
11.51.1 Comandos
Este filtro admite los mismos comandos que opciones, excluyendo la opción size.
11.52 dblur
Aplica el filtro de desenfoque direccional (directional blur).
El filtro acepta las siguientes opciones:
angle
Establece el ángulo del desenfoque direccional. El valor predeterminado es 45.
radius
Establece el radio del desenfoque direccional. El valor predeterminado es 5.
planes
Establece qué planos se filtran. De forma predeterminada se filtran todos los planos.
11.52.1 Comandos
Este filtro admite los mismos comandos que opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.53 dctdnoiz
Elimina el ruido de los fotogramas mediante DCT 2D (filtrado en el dominio de la frecuencia).
Este filtro no está diseñado para tiempo real.
El filtro acepta las siguientes opciones:
sigma, s
Establece la constante sigma del ruido.
Este sigma define un umbral duro de 3 * sigma; todo coeficiente DCT (en valor absoluto) por debajo de este umbral se descartará.
Si necesita un filtrado más avanzado, consulte expr.
El valor predeterminado es 0.
overlap
Establece el número de píxeles solapados para cada bloque. Dado que el filtro puede ser lento, quizá quiera reducir este valor, a costa de un filtro menos eficaz y el riesgo de diversos artefactos.
Si el valor de solapamiento no permite procesar todo el ancho o alto de la entrada, se mostrará una advertencia y no se eliminará el ruido de los bordes correspondientes.
El valor predeterminado es blocksize-1, que es el mejor ajuste posible.
expr, e
Establece la expresión del factor de coeficiente.
Para cada coeficiente de un bloque DCT, esta expresión se evalúa como valor multiplicador del coeficiente.
Si se establece esta opción, se ignorará la opción sigma.
Se puede acceder al valor absoluto del coeficiente mediante la variable c.
n
Establece el blocksize mediante el número de bits. 1<<n define el blocksize, que es el ancho y el alto de los bloques procesados.
El valor predeterminado es 3 (8x8) y puede aumentarse a 4 para un blocksize de 16x16. Tenga en cuenta que cambiar este ajuste tiene grandes consecuencias en la velocidad de procesamiento. Además, un tamaño de bloque mayor no implica necesariamente una mejor eliminación de ruido.
11.53.1 Ejemplos
Aplica una reducción de ruido con un sigma de 4.5:
dctdnoiz=4.5
La misma operación se puede lograr usando el sistema de expresiones:
dctdnoiz=e='gte(c, 4.5*3)'
Reducción de ruido agresiva usando un tamaño de bloque de 16x16:
dctdnoiz=15:n=4
11.54 deband
Elimina los artefactos de banding del vídeo de entrada. Funciona sustituyendo los píxeles con banding por el valor medio de los píxeles de referencia.
El filtro acepta las siguientes opciones:
1thr 2thr 3thr 4thr
Establece el umbral de detección de banding para cada plano. El valor predeterminado es 0.02. El rango válido va de 0.00003 a 0.5. Si la diferencia entre el píxel actual y el píxel de referencia es menor que el umbral, se considerará que hay banding.
range, r
Rango de detección de banding en píxeles. El valor predeterminado es 16. Si es positivo, se usará un número aleatorio entre 0 y el valor definido. Si es negativo, se usará exactamente el valor absoluto. El rango define un cuadrado de cuatro píxeles alrededor del píxel actual.
direction, d
Establece la dirección en radianes desde la que se compararán los cuatro píxeles. Si es positiva, se elegirá una dirección aleatoria entre 0 y la dirección definida. Si es negativa, se usará exactamente el valor absoluto. Por ejemplo, una dirección de 0, -PI o -2*PI radianes solo tomará píxeles de la misma fila, y -PI/2 solo tomará píxeles de la misma columna.
blur, b
Si está activado, el píxel actual se compara con el valor medio de los cuatro píxeles circundantes. Está activado de forma predeterminada. Si está desactivado, el píxel actual se compara con cada uno de los cuatro píxeles circundantes. El píxel se considera con banding solo si las cuatro diferencias con los píxeles circundantes son menores que el umbral.
coupling, c
Si está activado, el píxel actual se modifica si y solo si todas sus componentes presentan banding, es decir, el umbral de detección de banding se activa para todas las componentes de color. Está desactivado de forma predeterminada.
11.54.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.55 deblock
Elimina los artefactos de bloque del vídeo de entrada.
El filtro acepta las siguientes opciones:
filter
Establece el tipo de filtro, puede ser weak o strong. El valor predeterminado es strong. Controla qué tipo de desbloqueo se aplica.
block
Establece el tamaño del bloque; el rango permitido va de 4 a 512. El valor predeterminado es 8.
alpha beta gamma delta
Establece los umbrales de detección de bloques. El rango permitido va de 0 a 1. Los valores predeterminados son: 0.098 para alpha y 0.05 para el resto. Usar un umbral más alto da mayor intensidad de desbloqueo. alpha controla la detección del umbral justo en el borde del bloque. Las demás opciones controlan la detección del umbral cerca del borde, cada una para abajo/arriba o izquierda/derecha. Definir cualquiera de ellas en 0 desactiva el desbloqueo.
planes
Establece los planos a filtrar. De forma predeterminada se filtran todos los planos disponibles.
11.55.1 Ejemplos
-
Desbloqueo usando el filtro weak y un tamaño de bloque de 4 píxeles.
deblock=filter=weak:block=4 -
Desbloqueo usando el filtro strong, un tamaño de bloque de 4 píxeles y umbrales personalizados para desbloquear más bordes.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05 -
Similar al ejemplo anterior, pero filtrando solo el primer plano.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1 -
Similar al ejemplo anterior, pero filtrando solo el segundo y el tercer plano.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
11.55.2 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.56 decimate
Descarta fotogramas duplicados a intervalos regulares.
El filtro acepta las siguientes opciones:
cycle
Establece el número de fotogramas de los que se descartará uno. Establecer este valor en N significa que se descartará un fotograma de cada lote de N fotogramas. El valor predeterminado es 5.
dupthresh
Establece el umbral de detección de duplicados. Si la métrica de diferencia de un fotograma es menor o igual que este valor, se considera duplicado. El valor predeterminado es 1.1
scthresh
Establece el umbral de cambio de escena. El valor predeterminado es 15.
blockx blocky
Establece el tamaño de los bloques en los ejes x e y usados durante el cálculo de las métricas. Los bloques más grandes ofrecen mejor supresión de ruido, pero también una peor detección de movimientos pequeños. Debe ser una potencia de dos. El valor predeterminado es 32.
ppsrc
Marca la entrada principal como una entrada preprocesada y activa el flujo de entrada de fuente limpia. Esto permite preprocesar la entrada con varios filtros para ayudar al cálculo de las métricas, manteniendo sin pérdida la selección de fotogramas. Si se define en 1, el primer flujo corresponde a la entrada preprocesada y el segundo flujo es la fuente limpia de la que se eligen los fotogramas conservados. El valor predeterminado es 0.
chroma
Establece si la crominancia se tiene en cuenta o no en el cálculo de las métricas. El valor predeterminado es 1.
mixed
Establece si la entrada contiene solo parcialmente contenido que deba ser diezmado. El valor predeterminado es false. Si está activado, el flujo de vídeo de salida tendrá una velocidad de fotogramas variable.
11.57 deconvolve
Aplica una deconvolución 2D del flujo de vídeo en el dominio de la frecuencia, usando el segundo flujo como impulso.
El filtro acepta las siguientes opciones:
planes
Establece qué planos procesar.
impulse
Establece qué fotogramas de vídeo de impulso se procesarán; puede ser first o all. El valor predeterminado es all.
noise
Establece el ruido usado en las divisiones. El valor predeterminado es 0.0000001. Es útil cuando el ancho y el alto no coinciden ni son potencia de 2, o si el flujo ya tenía ruido antes de la convolución.
El filtro deconvolve también admite las opciones de framesync.
11.58 dedot
Reduce la luminancia cruzada (dot-crawl) y el color cruzado (rainbows) del vídeo.
Acepta las siguientes opciones:
m
Define el modo de funcionamiento. Puede ser una combinación de dotcrawl para reducir la luminancia cruzada y/o rainbows para reducir el color cruzado.
lt
Define el umbral espacial de luminancia. Los valores más bajos aumentan la reducción de la luminancia cruzada.
tl
Define la tolerancia para la luminancia temporal. Los valores más altos aumentan la reducción de la luminancia cruzada.
tc
Define la tolerancia para la variación temporal de crominancia. Los valores más altos aumentan la reducción del color cruzado.
ct
Define el umbral temporal de crominancia. Los valores más bajos aumentan la reducción del color cruzado.
11.59 deflate
Aplica el efecto deflate al vídeo.
Este filtro sustituye el píxel por el promedio local (3x3), teniendo en cuenta únicamente los valores menores que el propio píxel.
Acepta las siguientes opciones:
threshold0 threshold1 threshold2 threshold3
Limita el cambio máximo para cada plano; el valor predeterminado es 65535. Si es 0, el plano permanecerá sin cambios.
11.59.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.60 deflicker
Elimina las variaciones temporales de luminancia entre fotogramas.
Acepta las siguientes opciones:
size, s
Define el tamaño del filtro de media móvil en fotogramas. El valor predeterminado es 5. El rango permitido va de 2 a 129.
mode, m
Define el modo de promediado para suavizar las variaciones temporales de luminancia.
Los valores disponibles son:
‘am’
Media aritmética
‘gm’
Media geométrica
‘hm’
Media armónica
‘qm’
Media cuadrática
‘cm’
Media cúbica
‘pm’
Media de potencia
‘median’
Mediana
bypass
No modifica realmente el fotograma. Es útil cuando solo se necesitan los metadatos.
11.61 deinterlace_d3d12
Desentrelaza el vídeo de entrada usando procesamiento de vídeo acelerado por hardware D3D12.
Este filtro usa el DirectX 12 Video Processor para realizar el desentrelazado en la GPU, admitiendo tanto el simple bob como algoritmos avanzados definidos por el controlador (adaptativos al movimiento). Requiere que la entrada esté en el pixel format de hardware d3d12.
El filtro consulta automáticamente al hardware el número necesario de fotogramas de referencia temporal (si se requieren) y gestiona una cola de fotogramas para suministrarlos.
Acepta las siguientes opciones:
method
El método de desentrelazado. Acepta uno de los siguientes valores:
‘default’
Selecciona el mejor método de desentrelazado disponible en el hardware. Si el controlador admite custom, se usa ese método; en caso contrario, recurre a bob. Es el valor predeterminado.
‘bob’
Desentrelazado bob. Cada campo se escala de forma independiente hasta la altura completa del fotograma. Es simple y rápido, pero puede producir artefactos bob visibles en el contenido en movimiento.
‘custom’
Desentrelazado avanzado definido por el controlador. El algoritmo exacto depende del hardware y normalmente emplea técnicas adaptativas al movimiento con fotogramas de referencia temporal para lograr mayor calidad.
El valor predeterminado es default.
mode
Especifica el modo de entrelazado. Acepta uno de los siguientes valores:
‘frame’
Envía un fotograma de salida por cada fotograma de entrada. La velocidad de fotogramas de salida es igual a la de entrada. Es el valor predeterminado.
‘field’
Envía un fotograma por cada campo. La velocidad de fotogramas de salida es el doble de la de entrada.
El valor predeterminado es frame.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
‘all’
Desentrelaza todos los fotogramas. Es el valor predeterminado.
‘interlaced’
Solo desentrelaza los fotogramas marcados como entrelazados; los fotogramas progresivos pasan sin modificarse.
El valor predeterminado es all.
11.61.1 Ejemplos
-
Desentrelaza un vídeo entrelazado usando decodificación por software y el mejor método de desentrelazado por hardware disponible:
ffmpeg -init_hw_device d3d12va=d3d12 -filter_hw_device d3d12 -i input.ts \ -vf "format=nv12,hwupload,deinterlace_d3d12=method=default,hwdownload,format=nv12" \ -c:v libx264 -crf 18 output.mp4 -
Desentrelaza a la tasa de campo (el doble de la velocidad de fotogramas) usando el método bob con decodificación por hardware (pipeline d3d12 completo):
ffmpeg -hwaccel d3d12va -hwaccel_output_format d3d12 -i input.ts \ -vf "deinterlace_d3d12=method=bob:mode=field" \ -c:v h264_d3d12va output.mp4 -
Desentrelaza solo los fotogramas entrelazados, dejando pasar los fotogramas progresivos:
ffmpeg -init_hw_device d3d12va=d3d12 -filter_hw_device d3d12 -i input.ts \ -vf "format=nv12,hwupload,deinterlace_d3d12=deint=interlaced,hwdownload,format=nv12" \ -c:v libx264 -crf 18 output.mp4
11.62 dejudder
Elimina el judder producido por contenido con telecine parcialmente entrelazado.
El judder puede producirse, por ejemplo, por el filtro pullup. Si la fuente original tenía contenido con telecine parcial, la salida de pullup,dejudder tendrá una velocidad de fotogramas variable. Esto puede cambiar la velocidad de fotogramas registrada del container. Aparte de ese cambio, este filtro no afecta al vídeo con velocidad de fotogramas constante.
La opción disponible en este filtro es:
cycle
Especifica la longitud de la ventana en la que se repite el judder.
Acepta cualquier número entero mayor que 1. Los valores útiles son:
‘4’
Si el original tenía telecine de 24 a 30 fps (cine a NTSC).
‘5’
Si el original tenía telecine de 25 a 30 fps (PAL a NTSC).
‘20’
Si es una mezcla de ambos casos.
El valor predeterminado es ‘4’.
11.63 delogo
Suprime el logotipo de una cadena de televisión mediante una simple interpolación de los píxeles circundantes. Basta con definir un rectángulo que cubra el logotipo y verlo desaparecer (y, a veces, ver aparecer algo incluso más feo; los resultados pueden variar).
Acepta los siguientes parámetros:
x y
Especifica las coordenadas de la esquina superior izquierda del logotipo. Deben indicarse obligatoriamente.
w h
Especifica el ancho y el alto del logotipo a eliminar. Deben indicarse obligatoriamente.
show
Si se define en 1, se dibuja un rectángulo verde en la pantalla para ayudar a encontrar los parámetros x, y, w y h correctos. El valor predeterminado es 0.
El rectángulo se dibuja sobre los píxeles más externos, que serán (parcialmente) sustituidos por valores interpolados. Los valores de los píxeles inmediatamente contiguos fuera de este rectángulo en cada dirección se usarán para calcular los valores de píxel interpolados dentro del rectángulo.
11.63.1 Ejemplos
- Define un rectángulo que cubre el área con coordenadas de esquina superior izquierda 0,0 y tamaño 100x77:
delogo=x=0:y=0:w=100:h=77
11.64 derain
Elimina la lluvia de la imagen o el vídeo de entrada aplicando métodos de derain basados en redes neuronales convolucionales. Modelos admitidos:
- Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN). Véase http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf.
Los scripts de entrenamiento y de generación de modelos se proporcionan en el repositorio https://github.com/XueweiMeng/derain_filter.git.
El filtro acepta las siguientes opciones:
filter_type
Especifica qué filtro usar. Esta opción acepta los siguientes valores:
‘derain’
Filtro derain. Para aplicar el filtro derain hace falta usar un modelo derain.
‘dehaze’
Filtro dehaze. Para aplicar el filtro dehaze hace falta usar un modelo dehaze.
El valor predeterminado es ‘derain’.
dnn_backend
Especifica qué backend DNN usar para cargar y ejecutar el modelo. Esta opción acepta los siguientes valores:
‘tensorflow’
Backend TensorFlow. Para habilitar este backend hace falta instalar la biblioteca TensorFlow for C (véase https://www.tensorflow.org/install/lang_c) y configurar FFmpeg con --enable-libtensorflow
model
Define la ruta al archivo de modelo que especifica la arquitectura de la red y sus parámetros. Tenga en cuenta que los distintos backends usan formatos de archivo diferentes. TensorFlow solo puede cargar archivos de su propio formato.
Para obtener la funcionalidad completa (como la ejecución asíncrona), use el filtro dnn_processing.
11.65 deshake
Intenta corregir pequeños cambios de desplazamiento horizontal y/o vertical. Este filtro ayuda a eliminar el temblor de cámara producido al sostenerla con la mano, golpear un trípode, moverse en un vehículo, etc.
El filtro acepta las siguientes opciones:
x y w h
Especifica un área rectangular a la que limitar la búsqueda de vectores de movimiento. Si se desea, la búsqueda de vectores de movimiento puede limitarse a un área rectangular del fotograma definida por su esquina superior izquierda, ancho y alto. Estos parámetros tienen el mismo significado que en el filtro drawbox, que puede usarse para visualizar la posición del cuadro delimitador.
Esto resulta útil cuando el movimiento simultáneo de sujetos dentro del fotograma podría confundirse con el movimiento de la cámara durante la búsqueda de vectores de movimiento.
Si se define cualquiera de x, y, w y h (o todos ellos) en -1, se usa el fotograma completo. Esto permite definir opciones posteriores sin especificar el cuadro delimitador para la búsqueda de vectores de movimiento.
Valor predeterminado: se busca en todo el fotograma.
rx ry
Especifica la extensión máxima de movimiento en las direcciones x e y, en un rango de 0 a 64 píxeles. El valor predeterminado es 16.
edge
Especifica cómo generar los píxeles para rellenar los huecos en el borde del fotograma. Los valores disponibles son:
‘blank, 0’
Rellena con ceros los huecos
‘original, 1’
Usa la imagen original en los huecos
‘clamp, 2’
Usa el valor extruido del borde en los huecos
‘mirror, 3’
Usa el borde reflejado en los huecos
El valor predeterminado es ‘mirror’.
blocksize
Especifica el tamaño de bloque a usar en la búsqueda de movimiento. Rango de 4 a 128 píxeles, valor predeterminado 8.
contrast
Especifica el umbral de contraste para los bloques. Solo se tendrán en cuenta los bloques con un contraste superior al especificado (diferencia entre el píxel más oscuro y el más claro). Rango de 1 a 255, valor predeterminado 125.
search
Especifica la estrategia de búsqueda. Los valores disponibles son:
‘exhaustive, 0’
Define la búsqueda exhaustiva
‘less, 1’
Define una búsqueda menos exhaustiva.
El valor predeterminado es ‘exhaustive’.
filename
Si se define, se escribe un registro detallado de la búsqueda de movimiento en el archivo especificado.
11.66 despill
Elimina la contaminación no deseada de los colores del primer plano, causada por el color reflejado de la pantalla verde o azul.
Este filtro acepta las siguientes opciones:
type
Define el tipo de despill a usar.
mix
Define cómo se generará el spillmap.
expand
Define cuánto eliminar del spill que aún queda.
red
Controla la cantidad de rojo en el área de spill.
green
Controla la cantidad de verde en el área de spill. Debería ser -1 para pantalla verde.
blue
Controla la cantidad de azul en el área de spill. Debería ser -1 para pantalla azul.
brightness
Controla el brillo del área de spill, conservando los colores.
alpha
Modifica el alfa a partir del spillmap generado.
11.66.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.67 detelecine
Aplica el inverso exacto de la operación de telecine. Requiere un patrón predefinido especificado mediante la opción pattern, que debe coincidir con el pasado al filtro telecine.
Este filtro acepta las siguientes opciones:
first_field
‘top, t’
campo superior primero
‘bottom, b’
campo inferior primero. El valor predeterminado es top.
pattern
Una cadena de números que representa el patrón de pulldown que se desea aplicar. El valor predeterminado es 23.
start_frame
Un número que representa la posición del primer fotograma respecto al patrón de telecine. Se usa cuando el flujo está cortado. El valor predeterminado es 0.
11.68 dilation
Aplica el efecto dilation al vídeo.
Este filtro sustituye el píxel por el máximo local (3x3).
Acepta las siguientes opciones:
threshold0 threshold1 threshold2 threshold3
Limita el cambio máximo para cada plano; el valor predeterminado es 65535. Si es 0, el plano permanecerá sin cambios.
coordinates
Flag que especifica el píxel de referencia. El valor predeterminado es 255, es decir, se usan los ocho píxeles.
Los flags se corresponden con las coordenadas locales 3x3 de la siguiente manera:
1 2 3 4 5 6 7 8
11.68.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.69 displace
Desplaza los píxeles según lo indicado por el segundo y el tercer flujo de entrada.
Toma tres flujos de entrada y genera un flujo de salida; la primera entrada es la fuente, y la segunda y la tercera son los mapas de desplazamiento.
La segunda entrada especifica cuánto desplazar los píxeles a lo largo del eje x, mientras que la tercera especifica cuánto desplazarlos a lo largo del eje y. Si uno de los flujos de mapa de desplazamiento termina, se usará el último fotograma de ese mapa de desplazamiento.
Tenga en cuenta que, una vez generados, los mapas de desplazamiento pueden reutilizarse una y otra vez.
A continuación se describen las opciones aceptadas.
edge
Define el comportamiento de displace para los píxeles fuera de rango.
Los valores disponibles son:
‘blank’
Los píxeles faltantes se sustituyen por píxeles negros.
‘smear’
Los píxeles adyacentes se extienden para sustituir a los píxeles faltantes.
‘wrap’
Los píxeles fuera de rango se envuelven de modo que apuntan a los píxeles del lado opuesto.
‘mirror’
Los píxeles fuera de rango se sustituyen por píxeles reflejados.
El valor predeterminado es ‘smear’.
11.69.1 Ejemplos
-
Añade un efecto de ondulación a una entrada rgb de vídeo con tamaño hd720:
ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT -
Añade un efecto de onda a una entrada rgb de vídeo con tamaño hd720:
ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
11.70 dnn_classify
Realiza clasificación con redes neuronales profundas basada en cuadros delimitadores.
El filtro acepta las siguientes opciones:
dnn_backend
Especifica qué backend DNN usar para cargar y ejecutar el modelo. Por ahora esta opción solo acepta openvino; el backend tensorflow se añadirá más adelante.
model
Define la ruta al archivo de modelo que especifica la arquitectura de la red y sus parámetros. Tenga en cuenta que los distintos backends usan formatos de archivo diferentes.
input
Define el nombre de entrada de la red dnn.
output
Define el nombre de salida de la red dnn.
confidence
Define el umbral de confianza (valor predeterminado: 0.5).
labels
Define la ruta al archivo de etiquetas que especifica la correspondencia entre el id de etiqueta y su nombre. Cada nombre de etiqueta se escribe en una línea; los espacios finales y las líneas vacías se omiten. La primera línea es el nombre de la etiqueta con id 0, la segunda línea es el nombre de la etiqueta con id 1, etc. Si no se proporciona el archivo de etiquetas, el id de etiqueta se usa como nombre.
backend_configs
Define la configuración que se pasará al backend
Para el backend tensorflow, puede definir su configuración con las opciones sess_config; use tools/python/tf_sess_config.py para obtener la configuración de su sistema.
11.71 dnn_detect
Realiza detección de objetos con redes neuronales profundas.
El filtro acepta las siguientes opciones:
dnn_backend
Especifica qué backend DNN usar para cargar y ejecutar el modelo. Por ahora esta opción solo acepta openvino; el backend tensorflow se añadirá más adelante.
model
Define la ruta al archivo de modelo que especifica la arquitectura de la red y sus parámetros. Tenga en cuenta que los distintos backends usan formatos de archivo diferentes.
input
Define el nombre de entrada de la red dnn.
output
Define el nombre de salida de la red dnn.
confidence
Define el umbral de confianza (valor predeterminado: 0.5).
labels
Define la ruta al archivo de etiquetas que especifica la correspondencia entre el id de etiqueta y su nombre. Cada nombre de etiqueta se escribe en una línea; los espacios finales y las líneas vacías se omiten. La primera línea es el nombre de la etiqueta con id 0 (normalmente ’background’), la segunda línea es el nombre de la etiqueta con id 1, etc. Si no se proporciona el archivo de etiquetas, el id de etiqueta se usa como nombre.
backend_configs
Define la configuración que se pasará al backend. Para usar ejecución asíncrona, active async (valor predeterminado: activado). Se recurre a la ejecución síncrona si el backend no admite la ejecución asíncrona.
11.72 dnn_processing
Realiza procesamiento de imagen con redes neuronales profundas. Funciona junto con otro filtro que convierte el pixel format del fotograma al que requiere la red dnn.
El filtro acepta las siguientes opciones:
dnn_backend
Especifica qué backend DNN usar para cargar y ejecutar el modelo. Esta opción acepta los siguientes valores:
‘tensorflow’
Backend TensorFlow. Para habilitar este backend hace falta instalar la biblioteca TensorFlow for C (véase https://www.tensorflow.org/install/lang_c) y configurar FFmpeg con --enable-libtensorflow
‘openvino’
Backend OpenVINO. Para habilitar este backend hace falta compilar e instalar la biblioteca OpenVINO for C (véase https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md) y configurar FFmpeg con --enable-libopenvino (puede que hagan falta –extra-cflags=-I... –extra-ldflags=-L... si los archivos de cabecera y las bibliotecas no están instalados en la ruta del sistema)
‘torch’
Backend Libtorch. Para habilitar este backend hace falta compilar e instalar la biblioteca Libtorch para C++. Descargue la versión con ABI cxx11 (véase https://pytorch.org/get-started/locally) y configure FFmpeg con --enable-libtorch --extra-cflags=-I/libtorch_root/libtorch/include --extra-cflags=-I/libtorch_root/libtorch/include/torch/csrc/api/include --extra-ldflags=-L/libtorch_root/libtorch/lib/
‘onnx’
Backend ONNX Runtime. Para habilitar este backend hace falta instalar la biblioteca ONNX Runtime (véase https://onnxruntime.ai/) y configurar FFmpeg con --enable-libonnxruntime.
El backend ONNX Runtime actual espera tensores de entrada y salida en 4D con disposición NCHW y tipo de elemento de coma flotante de 32 bits (ONNX FLOAT); los modelos con tipos de elemento enteros u otros (por ejemplo, UINT8) no son compatibles y se rechazarán al cargarlos. Los modelos que usan disposición NHWC u otros rangos aún no son compatibles. Solo se admiten modelos de entrada única; el backend vincula exactamente un tensor de entrada al ejecutar el modelo.
Las opciones input y output son opcionales para el backend ONNX Runtime; cuando se omiten, el backend resuelve los nombres de los tensores a partir de la sesión.
El backend ONNX Runtime ejecuta la inferencia de forma síncrona usando una única solicitud de inferencia. Por ello, las opciones compartidas async y nireq no tienen efecto para dnn_backend=onnx; la inferencia siempre se ejecuta de forma síncrona, sea cual sea el valor de esas opciones.
model
Define la ruta al archivo de modelo que especifica la arquitectura de la red y sus parámetros. Tenga en cuenta que los distintos backends usan formatos de archivo diferentes. Los backends TensorFlow, OpenVINO, Libtorch y ONNX Runtime solo pueden cargar archivos de sus respectivos formatos.
input
Define el nombre de entrada de la red dnn. Obligatorio para el backend TensorFlow; opcional para el backend ONNX Runtime.
output
Define el nombre de salida de la red dnn. Obligatorio para el backend TensorFlow; opcional para el backend ONNX Runtime.
backend_configs
Define la configuración que se pasará al backend. Para usar ejecución asíncrona, active async (valor predeterminado: activado). Se recurre a la ejecución síncrona si el backend no admite la ejecución asíncrona.
Para el backend tensorflow, puede definir su configuración con las opciones sess_config; use tools/python/tf_sess_config.py para obtener la configuración del backend TensorFlow para su sistema.
device
Define el dispositivo en el que ejecutar el modelo. Para el backend ONNX Runtime, esto selecciona el proveedor de ejecución: cpu (predeterminado), cuda (GPU NVIDIA), dml (DirectML, solo Windows) o vitisai (NPU AMD Ryzen AI).
device_id
Define el índice de dispositivo usado por los proveedores de ejecución de GPU (por ejemplo, cuda o dml) para el backend ONNX Runtime. El valor predeterminado es 0.
threads_per_operation
Solo para el backend ONNX Runtime. Define el número de hilos de CPU usados por cada operador de ONNX Runtime al ejecutar con device=cpu. El valor predeterminado es 0 (deja que ONNX Runtime elija automáticamente). No tiene efecto para los proveedores de GPU/NPU.
11.72.1 Ejemplos
-
Elimina la lluvia de un fotograma rgb24 con can.pb (véase el filtro derain):
./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg -
Procesa el canal Y con srcnn.pb (véase el filtro sr) para un fotograma yuv420p (se admiten formatos YUV planares):
./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg -
Procesa el canal Y con espcn.pb (véase el filtro sr), que cambia el tamaño del fotograma, para el formato yuv420p (se admiten formatos YUV planares); use tools/python/tf_sess_config.py para obtener la configuración del backend de TensorFlow de su sistema.
./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
11.73 drawbox
Dibuja un cuadro de color sobre la imagen de entrada.
Acepta los siguientes parámetros:
x y
Las expresiones que especifican las coordenadas de la esquina superior izquierda del cuadro. El valor predeterminado es 0.
width, w height, h
Las expresiones que especifican el ancho y el alto del cuadro; si valen 0, se interpretan como el ancho y el alto de la entrada. El valor predeterminado es 0.
color, c
Especifica el color del cuadro que se va a dibujar. Para la sintaxis general de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils. Si se usa el valor especial invert, el color del borde del cuadro es el mismo que el del vídeo con la luma invertida.
thickness, t
La expresión que establece el grosor del borde del cuadro. Un valor de fill creará un cuadro relleno. El valor predeterminado es 3.
Véase más abajo la lista de constantes aceptadas.
replace
Aplicable si la entrada tiene canal alfa. Con el valor 1, los píxeles del cuadro dibujado sobrescriben los píxeles de color y alfa del vídeo. El valor predeterminado es 0, que compone el cuadro sobre la entrada dejando intacto el alfa del vídeo.
Los parámetros x, y, w, h y t son expresiones que contienen las siguientes constantes:
dar
La relación de aspecto de visualización de la entrada; es igual a (w / h) * sar.
hsub vsub
los valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
in_h, ih in_w, iw
El ancho y el alto de la entrada.
sar
La relación de aspecto de muestra de la entrada.
x y
Las coordenadas de desplazamiento x e y donde se dibuja el cuadro.
w h
El ancho y el alto del cuadro dibujado.
box_source
box_source se puede establecer como side_data_detection_bboxes si quiere usar los datos de cuadro de los cuadros delimitadores de detección (bboxes) de los datos secundarios (side data).
Si box_source está establecido, x, y, width y height se ignoran y se siguen usando los datos de cuadro de los cuadros delimitadores de detección (bboxes) de los datos secundarios (side data). Por eso, no use este parámetro si no está seguro del origen del cuadro.
t
El grosor del cuadro dibujado.
Estas constantes permiten que las expresiones x, y, w, h y t se remitan entre sí, de modo que puede especificar, por ejemplo, y=x/dar o h=w/dar.
11.73.1 Ejemplos
-
Dibuja un cuadro negro alrededor del borde de la imagen de entrada:
drawbox -
Dibuja un cuadro de color rojo con una opacidad del 50%:
drawbox=10:20:200:60:red@0.5
El ejemplo anterior se puede expresar también como:
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
-
Rellena el cuadro con color rosa:
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill -
Dibuja una máscara roja de 2 píxeles con relación 2.40:1:
drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
11.73.2 Comandos
Este filtro admite como comandos las mismas opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.74 drawgraph
Dibuja un gráfico usando los metadatos del vídeo de entrada.
Acepta los siguientes parámetros:
m1
Establece la 1ª clave de metadatos del fotograma cuyos valores se usarán para dibujar un gráfico.
fg1
Establece la 1ª expresión de color de primer plano.
m2
Establece la 2ª clave de metadatos del fotograma cuyos valores se usarán para dibujar un gráfico.
fg2
Establece la 2ª expresión de color de primer plano.
m3
Establece la 3ª clave de metadatos del fotograma cuyos valores se usarán para dibujar un gráfico.
fg3
Establece la 3ª expresión de color de primer plano.
m4
Establece la 4ª clave de metadatos del fotograma cuyos valores se usarán para dibujar un gráfico.
fg4
Establece la 4ª expresión de color de primer plano.
min
Establece el valor mínimo del valor de metadatos.
max
Establece el valor máximo del valor de metadatos.
bg
Establece el color de fondo del gráfico. El valor predeterminado es blanco.
mode
Establece el modo del gráfico.
Los valores disponibles para mode son:
‘bar’ ‘dot’ ‘line’
El valor predeterminado es line.
slide
Establece el modo de desplazamiento.
Los valores disponibles para slide son:
‘frame’
Dibuja un nuevo fotograma cuando se alcanza el borde derecho.
‘replace’
Sustituye las columnas antiguas por otras nuevas.
‘scroll’
Se desplaza de derecha a izquierda.
‘rscroll’
Se desplaza de izquierda a derecha.
‘picture’
Dibuja una única imagen.
El valor predeterminado es frame.
size
Establece el tamaño del vídeo del gráfico. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 900x256.
rate, r
Establece la velocidad de fotogramas de salida. El valor predeterminado es 25.
Las expresiones de color de primer plano pueden usar las siguientes variables:
MIN
Valor mínimo del valor de metadatos.
MAX
Valor máximo del valor de metadatos.
VAL
Valor actual de la clave de metadatos.
El color se define como 0xAABBGGRR.
Ejemplo usando metadatos del filtro signalstats:
signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
Ejemplo usando metadatos del filtro ebur128:
ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
11.75 drawgrid
Dibuja una cuadrícula sobre la imagen de entrada.
Acepta los siguientes parámetros:
x y
Las expresiones que especifican las coordenadas de algún punto de intersección de la cuadrícula (pensadas para configurar el desplazamiento). Ambas valen 0 de forma predeterminada.
width, w height, h
Las expresiones que especifican el ancho y el alto de la celda de la cuadrícula; si valen 0, se interpretan como el ancho y el alto de la entrada, respectivamente, menos thickness, de modo que la imagen queda enmarcada. El valor predeterminado es 0.
color, c
Especifica el color de la cuadrícula. Para la sintaxis general de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils. Si se usa el valor especial invert, el color de la cuadrícula es el mismo que el del vídeo con la luma invertida.
thickness, t
La expresión que establece el grosor de la línea de la cuadrícula. El valor predeterminado es 1.
Véase más abajo la lista de constantes aceptadas.
replace
Aplicable si la entrada tiene canal alfa. Con 1, los píxeles de la cuadrícula dibujada sobrescriben los píxeles de color y alfa del vídeo. El valor predeterminado es 0, que compone la cuadrícula sobre la entrada dejando intacto el alfa del vídeo.
Los parámetros x, y, w, h y t son expresiones que contienen las siguientes constantes:
dar
La relación de aspecto de visualización de la entrada; es igual a (w / h) * sar.
hsub vsub
los valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
in_h, ih in_w, iw
El ancho y el alto de la celda de la cuadrícula de entrada.
sar
La relación de aspecto de muestra de la entrada.
x y
Las coordenadas x e y de algún punto de intersección de la cuadrícula (pensadas para configurar el desplazamiento).
w h
El ancho y el alto de la celda dibujada.
t
El grosor de la celda dibujada.
Estas constantes permiten que las expresiones x, y, w, h y t se remitan entre sí, de modo que puede especificar, por ejemplo, y=x/dar o h=w/dar.
11.75.1 Ejemplos
-
Dibuja una cuadrícula con celdas de 100x100 píxeles, grosor de 2 píxeles, color rojo y una opacidad del 50%:
drawgrid=width=100:height=100:thickness=2:color=red@0.5 -
Dibuja una cuadrícula blanca de 3x3 con una opacidad del 50%:
drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
11.75.2 Comandos
Este filtro admite como comandos las mismas opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.76 drawtext
Dibuja una cadena de texto, o el texto de un archivo especificado, sobre un vídeo, usando la biblioteca libfreetype.
Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-libfreetype y --enable-libharfbuzz. Para habilitar la fuente alternativa predeterminada y la opción font, debe configurar FFmpeg con --enable-libfontconfig. Para habilitar la opción text_shaping, debe configurar FFmpeg con --enable-libfribidi.
11.76.1 Sintaxis
Acepta los siguientes parámetros:
box
Se usa para dibujar un cuadro alrededor del texto con el color de fondo. El valor debe ser 1 (activado) o 0 (desactivado). El valor predeterminado de box es 0.
boxborderw
Establece el ancho del borde que se dibuja alrededor del cuadro usando boxcolor. El valor debe especificarse con uno de los siguientes formatos:
boxborderw=10establece el ancho de todos los bordes en 10boxborderw=10|20establece el ancho de los bordes superior e inferior en 10 y el ancho de los bordes izquierdo y derecho en 20boxborderw=10|20|30establece el ancho del borde superior en 10, el ancho del borde inferior en 30 y el ancho de los bordes izquierdo y derecho en 20boxborderw=10|20|30|40establece el ancho de los bordes en 10 (superior), 20 (derecho), 30 (inferior), 40 (izquierdo)
El valor predeterminado de boxborderw es "0".
boxcolor
El color que se usa para dibujar el cuadro alrededor del texto. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
El valor predeterminado de boxcolor es "white".
line_spacing
Establece el interlineado en píxeles. El valor predeterminado de line_spacing es 0.
text_align
Establece la alineación vertical y horizontal del texto respecto a los límites del cuadro. El valor es una combinación de flags, uno para la alineación vertical (T=arriba, M=medio, B=abajo) y otro para la alineación horizontal (L=izquierda, C=centro, R=derecha). Tenga en cuenta que los caracteres de tabulación solo se admiten con la alineación horizontal a la izquierda.
y_align
Especifica a qué se refiere el valor de y. Los valores posibles son:
textla parte superior del glifo más alto de la primera línea de texto se coloca en ybaselinela línea base de la primera línea de texto se coloca en yfontla línea base de la primera línea de texto se coloca en y más el ascenso (en píxeles) definido en las métricas de la fuente
El valor predeterminado de y_align es "text" por compatibilidad con versiones anteriores.
borderw
Establece el ancho del borde que se dibuja alrededor del texto usando bordercolor. El valor predeterminado de borderw es 0.
bordercolor
Establece el color que se usa para dibujar el borde alrededor del texto. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
El valor predeterminado de bordercolor es "black".
expansion
Selecciona cómo se expande el texto. Puede ser none, strftime (obsoleto) o normal (predeterminado). Consulte la sección Expansión de texto más abajo para más información.
basetime
Establece una hora de inicio para el recuento. El valor está en microsegundos. Solo se aplica en el modo de expansión strftime, que está obsoleto. Para emularlo en el modo de expansión normal, use la función pts, indicando la hora de inicio (en segundos) como segundo argumento.
fix_bounds
Si es verdadero, comprueba y corrige las coordenadas del texto para evitar recortes.
fontcolor
El color que se usa para dibujar las fuentes. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
El valor predeterminado de fontcolor es "black".
fontcolor_expr
Cadena que se expande de la misma forma que text para obtener un valor de fontcolor dinámico. De forma predeterminada, esta opción tiene un valor vacío y no se procesa. Cuando esta opción está establecida, sustituye a la opción fontcolor.
font
La familia tipográfica que se usa para dibujar el texto. De forma predeterminada, Sans.
fontfile
El archivo de fuente que se usa para dibujar el texto. Debe incluirse la ruta. Este parámetro es obligatorio si la compatibilidad con fontconfig está desactivada.
alpha
Dibuja el texto aplicando mezcla alfa. El valor puede ser un número entre 0.0 y 1.0. La expresión también acepta las mismas variables x e y. El valor predeterminado es 1. Véase fontcolor_expr.
fontsize
El tamaño de fuente que se usa para dibujar el texto. El valor predeterminado de fontsize es 16.
text_shaping
Si se establece en 1, se intenta dar forma al texto (por ejemplo, invertir el orden del texto de derecha a izquierda y unir los caracteres árabes) antes de dibujarlo. En caso contrario, el texto se dibuja tal cual se proporciona. De forma predeterminada, 1 (si se admite).
ft_load_flags
Los flags que se usan para cargar las fuentes.
Los flags se corresponden con los flags admitidos por libfreetype, y son una combinación de los siguientes valores:
default no_scale no_hinting render no_bitmap vertical_layout force_autohint crop_bitmap pedantic ignore_global_advance_width no_recurse ignore_transform monochrome linear_design no_autohint
El valor predeterminado es "default".
Para más información, consulte la documentación de los flags FT_LOAD_* de libfreetype.
shadowcolor
El color que se usa para dibujar una sombra detrás del texto dibujado. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
El valor predeterminado de shadowcolor es "black".
boxw
Establece el ancho del cuadro que se dibuja alrededor del texto. El valor predeterminado de boxw se calcula automáticamente para ajustarse al ancho del texto
boxh
Establece el alto del cuadro que se dibuja alrededor del texto. El valor predeterminado de boxh se calcula automáticamente para ajustarse al alto del texto
shadowx shadowy
Los desplazamientos x e y para la posición de la sombra del texto respecto a la posición del texto. Pueden ser valores positivos o negativos. El valor predeterminado para ambos es "0".
start_number
El número de fotograma inicial para la variable n/frame_num. El valor predeterminado es "0".
tabsize
El tamaño, en número de espacios, que se usa para representar la tabulación. El valor predeterminado es 4.
timecode
Establece la representación inicial del código de tiempo en formato "hh:mm:ss[:;.]ff". Se puede usar con o sin el parámetro text. Debe especificarse la opción timecode_rate.
timecode_rate, rate, r
Establece la velocidad de fotogramas del código de tiempo (solo timecode). El valor se redondeará al entero más cercano. El valor mínimo es "1". El código de tiempo con fotogramas caídos (drop-frame) se admite para velocidades de fotogramas de 30 y 60.
tc24hmax
Si se establece en 1, la salida de la opción timecode dará la vuelta a las 24 horas. El valor predeterminado es 0 (desactivado).
text
La cadena de texto que se va a dibujar. El texto debe ser una secuencia de caracteres codificados en UTF-8. Este parámetro es obligatorio si no se especifica ningún archivo con el parámetro textfile.
textfile
Un archivo de texto que contiene el texto que se va a dibujar. El texto debe ser una secuencia de caracteres codificados en UTF-8.
Este parámetro es obligatorio si no se especifica ninguna cadena de texto con el parámetro text.
Si se especifican tanto text como textfile, se produce un error.
text_source
text_source debe establecerse como side_data_detection_bboxes si quiere usar los datos de texto de los cuadros delimitadores de detección (bboxes) de los datos secundarios (side data).
Si text_source está establecido, text y textfile se ignoran y se siguen usando los datos de texto de los cuadros delimitadores de detección (bboxes) de los datos secundarios (side data). Por eso, no use este parámetro si no está seguro del origen del texto.
reload
El archivo textfile se recargará en el intervalo de fotogramas especificado. Asegúrese de actualizar textfile de forma atómica, o podría leerse parcialmente, o incluso fallar. El rango va de 0 a INT_MAX. El valor predeterminado es 0.
x y
Las expresiones que especifican los desplazamientos donde se dibujará el texto dentro del fotograma de vídeo. Son relativas al borde superior/izquierdo de la imagen de salida.
El valor predeterminado de x e y es "0".
Véase más abajo la lista de constantes y funciones aceptadas.
Los parámetros x e y son expresiones que contienen las siguientes constantes y funciones:
dar
relación de aspecto de visualización de la entrada; es igual a (w / h) * sar
hsub vsub
valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
line_h, lh
el alto de cada línea de texto
main_h, h, H
el alto de la entrada
main_w, w, W
el ancho de la entrada
max_glyph_a, ascent
la distancia máxima desde la línea base hasta la coordenada de cuadrícula más alta/superior usada para situar un punto del contorno de un glifo, para todos los glifos representados. Es un valor positivo, debido a la orientación de la cuadrícula con el eje Y hacia arriba.
max_glyph_d, descent
la distancia máxima desde la línea base hasta la coordenada de cuadrícula más baja usada para situar un punto del contorno de un glifo, para todos los glifos representados. Es un valor negativo, debido a la orientación de la cuadrícula, con el eje Y hacia arriba.
max_glyph_h
el alto máximo de glifo, es decir, el alto máximo de todos los glifos contenidos en el texto representado; equivale a ascent - descent.
max_glyph_w
el ancho máximo de glifo, es decir, el ancho máximo de todos los glifos contenidos en el texto representado
font_a
el tamaño de ascenso definido en las métricas de la fuente
font_d
el tamaño de descenso definido en las métricas de la fuente
top_a
el ascendente máximo de los glifos de la primera línea de texto
bottom_d
el descendente máximo de los glifos de la última línea de texto
n
el número de fotograma de entrada, empezando desde 0
rand(min, max)
devuelve un número aleatorio comprendido entre min y max
sar
La relación de aspecto de muestra de la entrada.
t
marca de tiempo expresada en segundos, NAN si la marca de tiempo de entrada es desconocida
text_h, th
el alto del texto representado
text_w, tw
el ancho del texto representado
x y
las coordenadas de desplazamiento x e y donde se dibuja el texto.
Estos parámetros permiten que las expresiones x e y se remitan entre sí, de modo que puede especificar, por ejemplo, y=x/dar.
pict_type
Una descripción de un carácter del tipo de imagen del fotograma actual.
pkt_pos
La posición del paquete actual en el archivo o flujo de entrada (en bytes, desde el inicio de la entrada). Un valor de -1 indica que esta información no está disponible.
duration
La duración del paquete actual, en segundos.
pkt_size
El tamaño del paquete actual (en bytes).
11.76.2 Expansión de texto
Si expansion se establece en strftime, el filtro reconoce en el texto proporcionado las secuencias aceptadas por la función de C strftime y las expande en consecuencia. Consulte la documentación de strftime. Esta funcionalidad está obsoleta en favor de la expansión normal con las funciones de expansión gmtime o localtime.
Si expansion se establece en none, el texto se imprime tal cual.
Si expansion se establece en normal (que es el valor predeterminado), se usa el siguiente mecanismo de expansión.
El carácter de barra invertida ‘\’, seguido de cualquier carácter, siempre se expande al segundo carácter.
Las secuencias de la forma %{...} se expanden. El texto entre las llaves es un nombre de función, posiblemente seguido de argumentos separados por ’:’. Si los argumentos contienen caracteres especiales o delimitadores (’:’ o ’}’), deben escaparse.
Tenga en cuenta que probablemente también deban escaparse como valor de la opción text en la cadena de argumentos del filtro y como argumento del filtro en la descripción del filtergraph, y posiblemente también para el shell, lo que supone hasta cuatro niveles de escapado; usar un archivo de texto con la opción textfile evita estos problemas.
Están disponibles las siguientes funciones:
expr, e
El resultado de la evaluación de la expresión.
Debe recibir un argumento que especifique la expresión que se va a evaluar, la cual acepta las mismas constantes y funciones que los valores x e y. Tenga en cuenta que no deberían usarse todas las constantes; por ejemplo, el tamaño del texto no se conoce al evaluar la expresión, por lo que las constantes text_w y text_h tendrán un valor indefinido.
expr_int_format, eif
Evalúa el valor de la expresión y lo genera como un entero con formato.
El primer argumento es la expresión que se va a evaluar, igual que en la función expr. El segundo argumento especifica el formato de salida. Los valores permitidos son ‘x’, ‘X’, ‘d’ y ‘u’. Se tratan exactamente igual que en la función printf. El tercer parámetro es opcional y establece el número de posiciones que ocupa la salida. Se puede usar para rellenar con ceros por la izquierda.
gmtime
La hora a la que se está ejecutando el filtro, expresada en UTC. Puede aceptar un argumento: una cadena de formato de la función de C strftime. La cadena de formato se extiende para admitir la variable %[1-6]N, que imprime fracciones de segundo con un número de dígitos opcionalmente especificado.
localtime
La hora a la que se está ejecutando el filtro, expresada en la zona horaria local. Puede aceptar un argumento: una cadena de formato de la función de C strftime. La cadena de formato se extiende para admitir la variable %[1-6]N, que imprime fracciones de segundo con un número de dígitos opcionalmente especificado.
metadata
Metadatos del fotograma. Recibe uno o dos argumentos.
El primer argumento es obligatorio y especifica la clave de metadatos.
El segundo argumento es opcional y especifica un valor predeterminado, que se usa cuando la clave de metadatos no se encuentra o está vacía.
Los metadatos disponibles se pueden identificar examinando las entradas que empiezan por TAG incluidas en cada sección de fotograma que se imprime al ejecutar ffprobe -show_frames.
También están disponibles los metadatos de tipo cadena generados en los filtros que preceden al filtro drawtext.
n, frame_num
El número de fotograma, empezando desde 0.
pict_type
Una descripción de un carácter del tipo de imagen actual.
pts
La marca de tiempo del fotograma actual. Puede recibir hasta tres argumentos.
El primer argumento es el formato de la marca de tiempo; de forma predeterminada es flt, para segundos como número decimal con precisión de microsegundos; hms representa una marca de tiempo con formato [-]HH:MM:SS.mmm con precisión de milisegundos. gmtime representa la marca de tiempo del fotograma con formato de hora UTC; localtime representa la marca de tiempo del fotograma con formato de hora de la zona horaria local.
El segundo argumento es un desplazamiento que se suma a la marca de tiempo.
Si el formato se establece en hms, se puede indicar un tercer argumento 24HH para presentar la parte de la hora de la marca de tiempo con formato en formato de 24 horas (00-23).
Si el formato se establece en localtime o gmtime, se puede indicar un tercer argumento: una cadena de formato de la función de C strftime. De forma predeterminada, se usará el formato YYYY-MM-DD HH:MM:SS.
11.76.3 Comandos
Este filtro admite alterar parámetros mediante comandos:
reinit
Altera los parámetros existentes del filtro.
La sintaxis del argumento es la misma que la de la invocación del filtro, p. ej.
fontsize=56:fontcolor=green:text='Hello World'
Una invocación completa del filtro con sendcmd tendría este aspecto:
sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
Si el argumento completo no se puede analizar ni aplicar como valores válidos, el filtro continuará con sus parámetros existentes.
Las siguientes opciones también se admiten como comandos:
- x
- y
- alpha
- fontsize
- fontcolor
- boxcolor
- bordercolor
- shadowcolor
- box
- boxw
- boxh
- boxborderw
- line_spacing
- text_align
- shadowx
- shadowy
- borderw
11.76.4 Ejemplos
-
Dibuja "Test Text" con la fuente FreeSerif, usando los valores predeterminados para los parámetros opcionales.
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'" -
Dibuja ’Test Text’ con la fuente FreeSerif de tamaño 24 en la posición x=100 e y=50 (contando desde la esquina superior izquierda de la pantalla); el texto es amarillo con un cuadro rojo alrededor. Tanto el texto como el cuadro tienen una opacidad del 20%.
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\ x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
Tenga en cuenta que las comillas dobles no son necesarias si no se usan espacios dentro de la lista de parámetros.
-
Muestra el texto en el centro del fotograma de vídeo:
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2" -
Muestra el texto en una posición aleatoria, cambiando a una nueva posición cada 30 segundos:
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)" -
Muestra una línea de texto desplazándose de derecha a izquierda en la última fila del fotograma de vídeo. Se asume que el archivo LONG_LINE contiene una única línea sin saltos de línea.
drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t" -
Muestra el contenido del archivo CREDITS desde fuera de la parte inferior del fotograma y lo desplaza hacia arriba.
drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t" -
Dibuja una única letra verde "g" en el centro del vídeo de entrada. La línea base del glifo se sitúa a la mitad de la altura de la pantalla.
drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent" -
Muestra el texto durante 1 segundo cada 3 segundos:
drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'" -
Usa fontconfig para establecer la fuente. Tenga en cuenta que los dos puntos deben escaparse.
drawtext='fontfile=Linux Libertine O-40\\:style=Semibold:text=FFmpeg' -
Dibuja "Test Text" con un tamaño de fuente que depende de la altura del vídeo.
drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)" -
Imprime la fecha de una codificación en tiempo real (consulte la documentación de la función de C
strftime):drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}' -
Muestra un texto que aparece y desaparece con fundido:
#!/bin/sh DS=1.0 # display start DE=10.0 # display end FID=1.5 # fade in duration FOD=5 # fade out duration ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }" -
Alinea horizontalmente varios textos independientes. Tenga en cuenta que max_glyph_a y el valor de fontsize se incluyen en el desplazamiento y.
drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a, drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a -
Traza los metadatos especiales lavf.image2dec.source_basename en cada fotograma si dichos metadatos existen. En caso contrario, traza la cadena "NA". Tenga en cuenta que el demuxer image2 debe tener la opción -export_path_metadata 1 para que los campos de metadatos especiales estén disponibles para los filtros.
drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
Para más información sobre libfreetype, consulte: http://www.freetype.org/.
Para más información sobre fontconfig, consulte: http://freedesktop.org/software/fontconfig/fontconfig-user.html.
Para más información sobre libfribidi, consulte: http://fribidi.org/.
Para más información sobre libharfbuzz, consulte: https://github.com/harfbuzz/harfbuzz.
11.77 drawvg
Dibuja gráficos vectoriales sobre los fotogramas de vídeo ejecutando un script escrito en un lenguaje personalizado llamado VGS (Vector Graphics Script).
La documentación del lenguaje puede encontrarse en (drawvg-reference)drawvg - Language Reference. Puede consultarse una versión de esta referencia con ejemplos renderizados en el sitio del autor.
Los gráficos se renderizan usando la biblioteca gráfica 2D cario.
Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-cairo.
11.77.1 Parámetros
Debe establecerse script o file.
s, script
Código fuente del script para dibujar los gráficos.
file
Ruta del archivo desde el que cargar el código fuente del script.
11.77.2 Pixel Formats
Dado que Cairo solo admite imágenes RGB, si el vídeo de entrada usa otro formato (como YUV 4:2:0), antes de ejecutar el script el vídeo se convierte a un formato compatible con Cairo. Después, debe usarse el filtro format, o la opción -pix_fmt, para convertirlo al formato deseado en la salida.
11.77.3 Ejemplos
-
Dibuja el contorno de una elipse.
ffmpeg -i input.webm \ -vf 'drawvg=ellipse (w/2) (h/2) (w/3) (h/3) stroke' \ -pix_fmt yuv420p \ output.webm -
Dibuja un cuadrado que gira en el centro del fotograma.
El script de drawvg está en un archivo draw.vgs:
translate (w/2) (h/2)
rotate t
rect -100 -100 200 200
setcolor red@0.5
fill
A continuación:
ffmpeg -i input.webm -vf 'drawvg=file=draw.vgs,format=yuv420p' output.webm
11.78 edgedetect
Detecta y dibuja bordes. Este filtro usa el algoritmo de detección de bordes de Canny.
El filtro acepta las siguientes opciones:
low high
Establece los valores de umbral bajo y alto que usa el algoritmo de umbralización de Canny.
El umbral alto selecciona los píxeles de borde "fuertes", que después se conectan mediante conectividad de 8 con los píxeles de borde "débiles" seleccionados por el umbral bajo.
Los valores de umbral low y high deben elegirse en el rango [0,1], y low debe ser menor o igual que high.
El valor predeterminado de low es 20/255, y el valor predeterminado de high es 50/255.
mode
Define el modo de dibujo.
‘wires’
Dibuja alambres blancos/grises sobre fondo negro.
‘colormix’
Mezcla los colores para crear un efecto de pintura/dibujo animado.
‘canny’
Aplica el detector de bordes de Canny en todos los planos seleccionados.
El valor predeterminado es wires.
planes
Selecciona los planos que se filtrarán. De forma predeterminada, se filtran todos los planos disponibles.
11.78.1 Ejemplos
-
Detección de bordes estándar con valores personalizados para el umbralizado por histéresis:
edgedetect=low=0.1:high=0.4 -
Efecto de pintura sin umbralizado:
edgedetect=mode=colormix:high=0
11.79 elbg
Aplica un efecto de posterización usando el algoritmo ELBG (Enhanced LBG).
Para cada imagen de entrada, el filtro calculará la asignación óptima de la entrada a la salida dada la longitud del libro de códigos, es decir, el número de colores de salida distintos.
Este filtro acepta las siguientes opciones.
codebook_length, l
Establece la longitud del libro de códigos. El valor debe ser un entero positivo y representa el número de colores de salida distintos. El valor predeterminado es 256.
nb_steps, n
Establece el número máximo de iteraciones que se aplicarán para calcular la asignación óptima. Cuanto mayor sea el valor, mejor será el resultado, pero mayor será también el tiempo de cálculo. El valor predeterminado es 1.
seed, s
Establece una semilla aleatoria; debe ser un entero comprendido entre 0 y UINT32_MAX. Si no se especifica, o si se establece explícitamente en -1, el filtro intentará usar una buena semilla aleatoria con el mejor esfuerzo posible.
pal8
Establece el pixel format de salida pal8. Esta opción no funciona con una longitud de libro de códigos mayor que 256. Desactivado de forma predeterminada.
use_alpha
Incluye los valores alfa en el cálculo de la cuantización. Permite crear imágenes de salida paletizadas (por ejemplo, PNG8) con múltiples mezclas suaves de alfa.
11.80 entropy
Mide la entropía de nivel de gris en el histograma de los canales de color de los fotogramas de vídeo.
Acepta los siguientes parámetros:
mode
Puede ser normal o diff. El valor predeterminado es normal.
El modo diff mide la entropía de los valores delta del histograma, es decir, las diferencias absolutas entre valores contiguos del histograma.
11.81 epx
Aplica el filtro de ampliación EPX, diseñado para pixel art.
Acepta la siguiente opción:
n
Establece la dimensión de escalado: 2 para 2xEPX, 3 para 3xEPX. El valor predeterminado es 3.
11.82 eq
Establece el brillo, el contraste, la saturación y un ajuste aproximado de gamma.
El filtro acepta las siguientes opciones:
contrast
Establece la expresión de contraste. El valor debe ser un valor flotante en el rango de -1000.0 a 1000.0. El valor predeterminado es "1".
brightness
Establece la expresión de brillo. El valor debe ser un valor flotante en el rango de -1.0 a 1.0. El valor predeterminado es "0".
saturation
Establece la expresión de saturación. El valor debe ser un flotante en el rango de 0.0 a 3.0. El valor predeterminado es "1".
gamma
Establece la expresión de gamma. El valor debe ser un flotante en el rango de 0.1 a 10.0. El valor predeterminado es "1".
gamma_r
Establece la expresión de gamma para el rojo. El valor debe ser un flotante en el rango de 0.1 a 10.0. El valor predeterminado es "1".
gamma_g
Establece la expresión de gamma para el verde. El valor debe ser un flotante en el rango de 0.1 a 10.0. El valor predeterminado es "1".
gamma_b
Establece la expresión de gamma para el azul. El valor debe ser un flotante en el rango de 0.1 a 10.0. El valor predeterminado es "1".
gamma_weight
Establece la expresión de peso de gamma. Puede usarse para reducir el efecto de un valor de gamma alto en las zonas claras de la imagen, evitando por ejemplo que se sobreamplifiquen y queden simplemente en blanco puro. El valor debe ser un flotante en el rango de 0.0 a 1.0. Un valor de 0.0 reduce la corrección de gamma al mínimo, mientras que 1.0 la deja en toda su intensidad. El valor predeterminado es "1".
eval
Establece cuándo se evalúan las expresiones de brillo, contraste, saturación y gamma.
Acepta los siguientes valores:
‘init’
solo evalúa las expresiones una vez durante la inicialización del filtro o cuando se procesa un comando
‘frame’
evalúa las expresiones para cada fotograma entrante
El valor predeterminado es ‘init’.
Las expresiones aceptan los siguientes parámetros:
n
número de fotograma del fotograma de entrada, comenzando desde 0
pos
posición en bytes del paquete correspondiente en el archivo de entrada, NAN si no se especifica; obsoleto, no lo use
r
velocidad de fotogramas del vídeo de entrada, NAN si la velocidad de fotogramas de entrada es desconocida
t
marca de tiempo expresada en segundos, NAN si la marca de tiempo de entrada es desconocida
11.82.1 Comandos
El filtro admite los siguientes comandos:
contrast
Establece la expresión de contraste.
brightness
Establece la expresión de brillo.
saturation
Establece la expresión de saturación.
gamma
Establece la expresión de gamma.
gamma_r
Establece la expresión de gamma_r.
gamma_g
Establece la expresión de gamma_g.
gamma_b
Establece la expresión de gamma_b.
gamma_weight
Establece la expresión de gamma_weight.
El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene su valor actual.
11.83 erosion
Aplica un efecto de erosión al vídeo.
Este filtro sustituye cada píxel por el mínimo local (3x3).
Acepta las siguientes opciones:
threshold0 threshold1 threshold2 threshold3
Limita el cambio máximo para cada plano; el valor predeterminado es 65535. Si es 0, el plano no cambiará.
coordinates
Flag que especifica a qué píxel referirse. El valor predeterminado es 255, es decir, se usan los ocho píxeles.
Los flags se corresponden con las coordenadas locales 3x3 del siguiente modo:
1 2 3 4 5 6 7 8
11.83.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.84 estdif
Desentrelaza el vídeo de entrada ("estdif" son las siglas de "Edge Slope Tracing Deinterlacing Filter").
Filtro únicamente espacial que usa un algoritmo de rastreo de pendiente de bordes para interpolar las líneas que faltan. Acepta los siguientes parámetros:
mode
El modo de entrelazado que se adoptará. Acepta uno de los siguientes valores:
frame
Genera un fotograma de salida por cada fotograma de entrada.
field
Genera un fotograma de salida por cada campo.
El valor predeterminado es field.
parity
La paridad de campo de imagen que se asume para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
tff
Asume que el campo superior va primero.
bff
Asume que el campo inferior va primero.
auto
Activa la detección automática de la paridad de campo.
El valor predeterminado es auto. Si el entrelazado es desconocido o el decoder no exporta esta información, se asumirá que el campo superior va primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
all
Desentrelaza todos los fotogramas.
interlaced
Solo desentrelaza los fotogramas marcados como entrelazados.
El valor predeterminado es all.
rslope
Especifica el radio de búsqueda para el rastreo de pendiente de bordes. El valor predeterminado es 1. El rango permitido es de 1 a 15.
redge
Especifica el radio de búsqueda para la mejor coincidencia de bordes. El valor predeterminado es 2. El rango permitido es de 0 a 15.
ecost
Especifica el coste de borde para la coincidencia de bordes. El valor predeterminado es 2. El rango permitido es de 0 a 50.
mcost
Especifica el coste medio para la coincidencia de bordes. El valor predeterminado es 1. El rango permitido es de 0 a 50.
dcost
Especifica el coste de distancia para la coincidencia de bordes. El valor predeterminado es 1. El rango permitido es de 0 a 50.
interp
Especifica la interpolación usada. De forma predeterminada se usa interpolación de 4 puntos. Acepta uno de los siguientes valores:
2p
Interpolación de dos puntos.
4p
Interpolación de cuatro puntos.
6p
Interpolación de seis puntos.
11.84.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.85 exposure
Ajusta la exposición del flujo de vídeo.
El filtro acepta las siguientes opciones:
exposure
Establece la corrección de exposición en EV. El rango permitido es de -3.0 a 3.0 EV. El valor predeterminado es 0 EV.
black
Establece la corrección de nivel de negro. El rango permitido es de -1.0 a 1.0. El valor predeterminado es 0.
11.85.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.86 extractplanes
Extrae los componentes de canal de color del flujo de vídeo de entrada en flujos de vídeo en escala de grises independientes.
El filtro acepta la siguiente opción:
planes
Establece el plano o planos que se extraerán.
Los valores disponibles para planes son:
‘y’ ‘u’ ‘v’ ‘a’ ‘r’ ‘g’ ‘b’
Elegir planos no disponibles en la entrada producirá un error. Es decir, no pueden seleccionarse a la vez los planos r, g, b y los planos y, u, v.
11.86.1 Ejemplos
- Extrae los componentes de canal de color de luma, u y v del fotograma de vídeo de entrada en 3 salidas en escala de grises:
ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
11.87 fade
Aplica un efecto de fundido de entrada/salida al vídeo de entrada.
Acepta los siguientes parámetros:
type, t
El tipo de efecto puede ser "in" para un fundido de entrada, o "out" para un fundido de salida. El valor predeterminado es in.
start_frame, s
Especifica el número del fotograma en el que empezar a aplicar el efecto de fundido. El valor predeterminado es 0.
nb_frames, n
El número de fotogramas que dura el efecto de fundido. Al final del efecto de fundido de entrada, el vídeo de salida tendrá la misma intensidad que el vídeo de entrada. Al final de la transición de fundido de salida, el vídeo de salida se rellenará con el color seleccionado. El valor predeterminado es 25.
alpha
Si se establece en 1, el fundido afecta solo al canal alfa, si existe uno en la entrada. El valor predeterminado es 0.
start_time, st
Especifica la marca de tiempo (en segundos) del fotograma en el que empezar a aplicar el efecto de fundido. Si se especifican tanto start_frame como start_time, el fundido comenzará con el que ocurra más tarde. El valor predeterminado es 0.
duration, d
El número de segundos que dura el efecto de fundido. Al final del efecto de fundido de entrada el vídeo de salida tendrá la misma intensidad que el vídeo de entrada, y al final de la transición de fundido de salida el vídeo de salida se rellenará con el color seleccionado. Si se especifican tanto duration como nb_frames, se usa duration. El valor predeterminado es 0 (de forma predeterminada se usa nb_frames).
color, c
Especifica el color del fundido. El valor predeterminado es "black".
11.87.1 Ejemplos
- Fundido de entrada en los primeros 30 fotogramas del vídeo:
fade=in:0:30
El comando anterior equivale a:
fade=t=in:s=0:n=30
-
Fundido de salida en los últimos 45 fotogramas de un vídeo de 200 fotogramas:
fade=out:155:45 fade=type=out:start_frame=155:nb_frames=45 -
Fundido de entrada en los primeros 25 fotogramas y fundido de salida en los últimos 25 fotogramas de un vídeo de 1000 fotogramas:
fade=in:0:25, fade=out:975:25 -
Deja los primeros 5 fotogramas en amarillo y luego aplica un fundido de entrada en los fotogramas 5-24:
fade=in:5:20:color=yellow -
Fundido de entrada del alfa en los primeros 25 fotogramas del vídeo:
fade=in:0:25:alpha=1 -
Deja los primeros 5.5 segundos en negro y luego aplica un fundido de entrada durante 0.5 segundos:
fade=t=in:st=5.5:d=0.5
11.88 feedback
Aplica el filtro de vídeo feedback.
Este filtro pasa los fotogramas de entrada recortados a la 2ª salida. A partir de ahí puede filtrarse con otros filtros de vídeo. Cuando el filtro recibe un fotograma de la 2ª entrada, ese fotograma se combina sobre el fotograma original de la 1ª entrada y se pasa a la 1ª salida.
El uso típico es filtrar solo una parte del fotograma.
El filtro acepta las siguientes opciones:
x y
Establece la posición superior izquierda del recorte.
w h
Establece el tamaño del recorte.
11.88.1 Ejemplos
-
Difumina solo la parte rectangular superior izquierda del fotograma de vídeo, de tamaño 100x100, con el filtro gblur.
[in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin] -
Dibuja un recuadro negro en la parte superior izquierda del fotograma de vídeo, de tamaño 100x100, con el filtro drawbox.
[in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin] -
Pixela la parte rectangular del fotograma de vídeo, de tamaño 100x100, con el filtro pixelize.
[in][blurin]feedback=x=320:y=240:w=100:h=100[out][blurout];[blurout]pixelize[blurin]
11.89 fftdnoiz
Elimina el ruido de los fotogramas usando FFT 3D (filtrado en el dominio de la frecuencia).
El filtro acepta las siguientes opciones:
sigma
Establece la constante sigma del ruido. Esto determina la intensidad de la reducción de ruido. El valor predeterminado es 1. El rango permitido es de 0 a 30. Usar un sigma muy alto con un solapamiento bajo puede producir artefactos de bloque.
amount
Establece la cantidad de reducción de ruido. De forma predeterminada se reduce todo el ruido detectado. El valor predeterminado es 1. El rango permitido es de 0 a 1.
block
Establece el tamaño del bloque en píxeles. El valor predeterminado es 32; puede ser de 8 a 256.
overlap
Establece el solapamiento de bloques. El valor predeterminado es 0.5. El rango permitido es de 0.2 a 0.8.
method
Establece el método de reducción de ruido. El valor predeterminado es wiener; también puede ser hard.
prev
Establece el número de fotogramas anteriores que se usarán para la reducción de ruido. De forma predeterminada se establece en 0.
next
Establece el número de fotogramas siguientes que se usarán para la reducción de ruido. De forma predeterminada se establece en 0.
planes
Establece los planos que se filtrarán. De forma predeterminada se filtran todos los disponibles excepto el alfa.
11.90 fftfilt
Aplica expresiones arbitrarias a las muestras en el dominio de la frecuencia
dc_Y
Ajusta el valor dc (ganancia) del plano de luma de la imagen. El filtro acepta un valor entero en el rango de 0 a 1000. El valor predeterminado se fija en 0.
dc_U
Ajusta el valor dc (ganancia) del 1.er plano de crominancia de la imagen. El filtro acepta un valor entero en el rango de 0 a 1000. El valor predeterminado se fija en 0.
dc_V
Ajusta el valor dc (ganancia) del 2.º plano de crominancia de la imagen. El filtro acepta un valor entero en el rango de 0 a 1000. El valor predeterminado se fija en 0.
weight_Y
Establece la expresión de peso en el dominio de la frecuencia para el plano de luma.
weight_U
Establece la expresión de peso en el dominio de la frecuencia para el 1.er plano de crominancia.
weight_V
Establece la expresión de peso en el dominio de la frecuencia para el 2.º plano de crominancia.
eval
Establece cuándo se evalúan las expresiones.
Acepta los siguientes valores:
‘init’
Solo evalúa las expresiones una vez durante la inicialización del filtro.
‘frame’
Evalúa las expresiones para cada fotograma entrante.
El valor predeterminado es ‘init’.
El filtro acepta las siguientes variables:
X Y
Las coordenadas de la muestra actual.
W H
El ancho y el alto de la imagen.
N
El número del fotograma de entrada, comenzando desde 0.
WS HS
El tamaño del array de la FFT para el procesamiento horizontal y vertical.
11.90.1 Ejemplos
-
Paso alto:
fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)' -
Paso bajo:
fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)' -
Enfoque (sharpen):
fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)' -
Desenfoque:
fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
11.91 field
Extrae un único campo de una imagen entrelazada usando aritmética de stride para evitar desperdiciar tiempo de CPU. Los fotogramas de salida se marcan como no entrelazados.
El filtro acepta las siguientes opciones:
type
Especifica si extraer el campo superior (si el valor es 0 o top) o el campo inferior (si el valor es 1 o bottom).
11.92 fieldhint
Crea nuevos fotogramas copiando los campos superior e inferior de los fotogramas circundantes indicados como números en el archivo de pistas.
hint
Establece el archivo que contiene las pistas: números de fotograma absolutos o relativos.
Debe haber una línea por cada fotograma del clip. Cada línea debe contener dos números separados por una coma, seguidos opcionalmente de - o +. Los números indicados en cada línea del archivo no pueden estar fuera de [N-1,N+1], donde N es el número de fotograma actual, en el modo absolute, ni fuera del rango [-1, 1] en el modo relative. El primer número indica de qué fotograma tomar el campo superior, y el segundo número indica de qué fotograma tomar el campo inferior.
Si opcionalmente se añade +, el fotograma de salida se marcará como entrelazado; si se añade -, se marcará como progresivo; si no se añade ninguno, se marcará igual que el fotograma de entrada. Si opcionalmente se añade t, el fotograma de salida usará solo el campo superior, o en el caso de b usará solo el campo inferior. Si una línea empieza con # o ;, esa línea se omite.
mode
Puede ser absolute, relative o pattern. El valor predeterminado es absolute. El modo pattern es igual que el modo relative, salvo que en la última entrada del archivo, si quedan más fotogramas por procesar de los que contiene el archivo hint, se retrocede hasta el principio.
Ejemplo de las primeras líneas de un archivo hint para el modo relative:
0,0 - # first frame
1,0 - # second frame, use third's frame top field and second's frame bottom field
1,0 - # third frame, use fourth's frame top field and third's frame bottom field
1,0 -
0,0 -
0,0 -
1,0 -
1,0 -
1,0 -
0,0 -
0,0 -
1,0 -
1,0 -
1,0 -
0,0 -
11.93 fieldmatch
Filtro de coincidencia de campos para telecine inverso. Su objetivo es reconstruir los fotogramas progresivos a partir de un flujo con telecine. Este filtro no descarta los fotogramas duplicados, así que para lograr un telecine inverso completo hay que hacer que a fieldmatch le siga un filtro de diezmado como decimate en el filtergraph.
La separación entre la coincidencia de campos y el diezmado está motivada sobre todo por la posibilidad de insertar entre ambos, como respaldo, un filtro de desentrelazado. Si la fuente combina contenido con telecine y contenido realmente entrelazado, fieldmatch no podrá hacer coincidir los campos de las partes entrelazadas. Pero los fotogramas con peinado que queden se marcarán como entrelazados, por lo que podrán desentrelazarse con un filtro posterior, como yadif, antes del diezmado.
Además de las diversas opciones de configuración, fieldmatch puede recibir un segundo flujo opcional, activado mediante la opción ppsrc. Si se habilita, la reconstrucción de los fotogramas se basará en los campos y fotogramas de este segundo flujo. Esto permite preprocesar la primera entrada para ayudar a los distintos algoritmos del filtro, manteniendo la salida sin pérdidas (asumiendo que los campos se emparejan correctamente). Normalmente ayudan un eliminador de ruido consciente de los campos, o ajustes de brillo/contraste.
Tenga en cuenta que este filtro usa los mismos algoritmos que TIVTC/TFM (proyecto AviSynth) y VIVTC/VFM (proyecto VapourSynth). Este último es un clon ligero de TFM, en el que se basa fieldmatch. Aunque la semántica y el uso son muy similares, algunos comportamientos y nombres de opciones pueden diferir.
El filtro decimate actualmente solo funciona con entradas de velocidad de fotogramas constante. Si su entrada combina contenido con telecine (30fps) y contenido progresivo con una velocidad de fotogramas menor, como 24fps, use la siguiente cadena de filtros para generar el flujo cfr necesario: dejudder,fps=30000/1001,fieldmatch,decimate.
El filtro acepta las siguientes opciones:
order
Especifica el orden de campo asumido para el flujo de entrada. Los valores disponibles son:
‘auto’
Detecta la paridad automáticamente (usa el valor de paridad interno de FFmpeg).
‘bff’
Asume que el campo inferior va primero.
‘tff’
Asume que el campo superior va primero.
Tenga en cuenta que a veces se recomienda no confiar en la paridad anunciada por el flujo.
El valor predeterminado es auto.
mode
Establece el modo o estrategia de coincidencia que se usará. El modo pc es el más seguro, en el sentido de que no arriesga generar tirones por fotogramas duplicados cuando es posible evitarlo, pero si hay ediciones defectuosas o campos mezclados puede acabar generando fotogramas con peinado cuando en realidad existe una buena coincidencia. Por otro lado, el modo pcn_ub es el más arriesgado en cuanto a generar tirones, pero casi siempre encuentra un buen fotograma si existe alguno. Los demás valores se sitúan en algún punto entre pc y pcn_ub en cuanto al riesgo de generar tirones y fotogramas duplicados frente a la capacidad de encontrar buenas coincidencias en secciones con ediciones defectuosas, campos huérfanos, campos mezclados, etc.
Puede encontrar más detalles sobre p/c/n/u/b en la sección p/c/n/u/b meaning.
Los valores disponibles son:
‘pc’
Coincidencia en 2 direcciones (p/c)
‘pc_n’
Coincidencia en 2 direcciones, e intenta una 3.ª coincidencia si sigue habiendo peinado (p/c + n)
‘pc_u’
Coincidencia en 2 direcciones, e intenta una 3.ª coincidencia (mismo orden) si sigue habiendo peinado (p/c + u)
‘pc_n_ub’
Coincidencia en 2 direcciones, intenta una 3.ª coincidencia si sigue habiendo peinado, y una 4.ª/5.ª si sigue habiendo peinado (p/c + n + u/b)
‘pcn’
Coincidencia en 3 direcciones (p/c/n)
‘pcn_ub’
Coincidencia en 3 direcciones, e intenta la 4.ª/5.ª coincidencia si las 3 coincidencias originales se detectan con peinado (p/c/n + u/b)
El paréntesis final indica las coincidencias que se usarían para ese modo asumiendo order=tff (y field en auto o top).
En cuanto a velocidad, el modo pc es, con diferencia, el más rápido, y pcn_ub el más lento.
El valor predeterminado es pc_n.
ppsrc
Marca el flujo de entrada principal como entrada preprocesada, y habilita el flujo de entrada secundario como fuente limpia de la que tomar los campos. Consulte la introducción del filtro para más detalles. Es similar a la función clip2 de VFM/TFM.
El valor predeterminado es 0 (desactivado).
field
Establece el campo desde el que se hará la coincidencia. Se recomienda establecerlo con el mismo valor que order, salvo que experimente fallos de coincidencia con ese ajuste. En ciertas circunstancias, cambiar el campo usado para la coincidencia puede afectar considerablemente al rendimiento de la coincidencia. Los valores disponibles son:
‘auto’
Automático (el mismo valor que order).
‘bottom’
Hace la coincidencia desde el campo inferior.
‘top’
Hace la coincidencia desde el campo superior.
El valor predeterminado es auto.
mchroma
Establece si la crominancia se incluye o no en las comparaciones de coincidencia. En la mayoría de los casos se recomienda dejarlo activado. Solo debería establecer esto en 0 si su clip tiene problemas graves de crominancia, como fuertes irisaciones (rainbowing) u otros artefactos. Establecerlo en 0 también puede usarse para acelerar el proceso a costa de algo de precisión.
El valor predeterminado es 1.
y0 y1
Estos definen una banda de exclusión que excluye de la decisión de coincidencia de campos las líneas entre y0 e y1. Una banda de exclusión puede usarse para ignorar subtítulos, un logotipo u otros elementos que puedan interferir con la coincidencia. y0 establece la línea de escaneo inicial e y1 la línea final; todas las líneas entre y0 e y1 (incluidos y0 e y1) se ignorarán. Establecer y0 e y1 en el mismo valor desactiva esta función. El valor predeterminado de y0 e y1 es 0.
scthresh
Establece el umbral de detección de cambio de escena como un porcentaje del cambio máximo en el plano de luma. Los valores adecuados están en el rango [8.0, 14.0]. La detección de cambio de escena solo es relevante cuando combmatch=sc. El rango de scthresh es [0.0, 100.0].
El valor predeterminado es 12.0.
combmatch
Cuando combmatch no es none, fieldmatch tiene en cuenta las puntuaciones de peinado de las coincidencias al decidir cuál usar como coincidencia final. Los valores disponibles son:
‘none’
Sin coincidencia final basada en puntuaciones de peinado.
‘sc’
Las puntuaciones de peinado solo se usan cuando se detecta un cambio de escena.
‘full’
Usa las puntuaciones de peinado en todo momento.
El valor predeterminado es sc.
combdbg
Fuerza a fieldmatch a calcular las métricas de peinado para ciertas coincidencias y a mostrarlas. Este ajuste se conoce como micout en el vocabulario de TFM/VFM. Los valores disponibles son:
‘none’
Sin cálculo forzado.
‘pcn’
Fuerza los cálculos p/c/n.
‘pcnub’
Fuerza los cálculos p/c/n/u/b.
El valor predeterminado es none.
cthresh
Este es el umbral de peinado de área usado para la detección de fotogramas con peinado. En esencia, controla cuán "fuerte" o "visible" debe ser el peinado para detectarse. Valores mayores implican que el peinado debe ser más visible, y valores menores implican que el peinado puede ser menos visible o intenso y aun así detectarse. Los ajustes válidos van de -1 (se detecta como peinado todo píxel) a 255 (no se detecta como peinado ningún píxel). Básicamente es un valor de diferencia de píxeles. Un buen rango es [8, 12].
El valor predeterminado es 9.
chroma
Establece si la crominancia se tiene en cuenta o no en la decisión de fotograma con peinado. Desactive esto solo si su fuente tiene problemas de crominancia (irisaciones, etc.) que causan problemas en la detección de fotogramas con peinado con la crominancia activada. En la práctica, usar chroma=0 suele ser más fiable, salvo en el caso de que el peinado se dé únicamente en la crominancia de la fuente.
El valor predeterminado es 0.
blockx blocky
Establecen respectivamente el tamaño en el eje x y en el eje y de la ventana usada durante la detección de fotogramas con peinado. Esto tiene que ver con el tamaño del área en la que se requiere detectar combpel píxeles con peinado para que un fotograma se declare con peinado. Consulte la descripción del parámetro combpel para más información. Los valores posibles son cualquier número que sea potencia de 2, desde 4 hasta 512.
El valor predeterminado es 16.
combpel
El número de píxeles con peinado dentro de cualquiera de los bloques de tamaño blocky por blockx en el fotograma, para que el fotograma se detecte con peinado. Mientras que cthresh controla cuán "visible" debe ser el peinado, este ajuste controla "cuánto" peinado debe haber en cualquier área localizada (una ventana definida por los ajustes blockx y blocky) del fotograma. El valor mínimo es 0 y el máximo es blocky x blockx (momento en el que ningún fotograma se detectará jamás con peinado). Este ajuste se conoce como MI en el vocabulario de TFM/VFM.
El valor predeterminado es 80.
11.93.1 Significado de p/c/n/u/b
11.93.1.1 p/c/n
Supongamos el siguiente flujo telecinado:
Top fields: 1 2 2 3 4
Bottom fields: 1 2 3 4 4
Los números corresponden al fotograma progresivo al que pertenecen los campos. Aquí, los dos primeros fotogramas son progresivos, el 3.º y el 4.º presentan peinado (combed), y así sucesivamente.
Cuando fieldmatch se configura para emparejar desde abajo (field=bottom), así es como se transforma este flujo de entrada:
Input stream:
T 1 2 2 3 4
B 1 2 3 4 4 <-- matching reference
Matches: c c n n c
Output stream:
T 1 2 3 4 4
B 1 2 3 4 4
Como resultado del emparejamiento de campos, vemos que algunos fotogramas se duplican. Para realizar una conversión de cadencia inversa (inverse telecine) completa, es necesario recurrir a un filtro de diezmado tras esta operación. Véase, por ejemplo, el filtro decimate.
La misma operación, ahora emparejando desde los campos superiores (field=top), se ve así:
Input stream:
T 1 2 2 3 4 <-- matching reference
B 1 2 3 4 4
Matches: c c p p c
Output stream:
T 1 2 2 3 4
B 1 2 2 3 4
En estos ejemplos podemos ver qué significan p, c y n; básicamente, hacen referencia al fotograma y campo de la paridad opuesta:
- p empareja con el campo de la paridad opuesta en el fotograma anterior
- c empareja con el campo de la paridad opuesta en el fotograma actual
- n empareja con el campo de la paridad opuesta en el fotograma siguiente
11.93.1.2 u/b
El emparejamiento u y b es un poco especial, en el sentido de que empareja a partir del flag de paridad opuesta. En los siguientes ejemplos suponemos que se está emparejando el 2.º fotograma (Top:2, bottom:2). Según la coincidencia, se coloca una ’x’ encima y debajo de cada campo emparejado.
Con emparejamiento inferior (field=bottom):
Match: c p n b u
x x x x x
Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
x x x x x
Output frames:
2 1 2 2 2
2 2 2 1 3
Con emparejamiento superior (field=top):
Match: c p n b u
x x x x x
Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
x x x x x
Output frames:
2 2 2 1 2
2 1 3 2 2
11.93.2 Ejemplos
IVTC simple de un flujo telecinado con campo superior primero:
fieldmatch=order=tff:combmatch=none, decimate
IVTC avanzado, recurriendo a yadif como respaldo para los fotogramas que sigan con peinado:
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
11.94 fieldorder
Transforma el orden de campo del vídeo de entrada.
Acepta los siguientes parámetros:
order
El orden de campo de salida. Los valores válidos son tff para campo superior primero o bff para campo inferior primero.
El valor predeterminado es ‘tff’.
La transformación se realiza desplazando el contenido de la imagen una línea hacia arriba o hacia abajo, y rellenando la línea restante con el contenido de imagen adecuado. Este método es coherente con la mayoría de los conversores de orden de campo utilizados en emisión.
Si el vídeo de entrada no está marcado como entrelazado, o ya está marcado con el orden de campo de salida requerido, este filtro no altera el vídeo de entrada.
Resulta muy útil al convertir desde o hacia material PAL DV, que es de campo inferior primero.
Por ejemplo:
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
11.95 fillborders
Rellena los bordes del vídeo de entrada sin cambiar las dimensiones del flujo de vídeo. A veces el vídeo puede tener basura en los cuatro bordes, y quizá no se desee recortar la entrada para mantener un tamaño múltiplo de cierto número.
Este filtro acepta las siguientes opciones:
left
Número de píxeles que se rellenarán desde el borde izquierdo.
right
Número de píxeles que se rellenarán desde el borde derecho.
top
Número de píxeles que se rellenarán desde el borde superior.
bottom
Número de píxeles que se rellenarán desde el borde inferior.
mode
Establece el modo de relleno.
Acepta los siguientes valores:
‘smear’
rellena los píxeles usando los píxeles más externos
‘mirror’
rellena los píxeles usando reflejo especular (simétrico de media muestra)
‘fixed’
rellena los píxeles con un valor constante
‘reflect’
rellena los píxeles usando reflejo (simétrico de muestra completa)
‘wrap’
rellena los píxeles mediante ajuste cíclico (wrap)
‘fade’
difumina los píxeles hacia un valor constante
‘margins’
rellena los píxeles superiores e inferiores con promedios ponderados de los píxeles cercanos a los bordes
El valor predeterminado es smear.
color
Establece el color de los píxeles en modo fixed o fade. El valor predeterminado es black.
11.95.1 Comandos
Este filtro admite los mismos comandos que opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene su valor actual.
11.96 find_rect
Busca un objeto rectangular en el vídeo de entrada.
El objeto que se va a buscar debe especificarse como una imagen gray8, indicada mediante la opción object.
Para cada posible coincidencia se calcula una puntuación. Si la puntuación alcanza el umbral especificado, se considera que el objeto ha sido encontrado.
Si el vídeo de entrada contiene varias instancias del objeto, el filtro encontrará solo una de ellas.
Cuando se encuentra un objeto, se establecen las siguientes entradas de metadatos en el fotograma coincidente:
lavfi.rect.w
ancho del objeto
lavfi.rect.h
alto del objeto
lavfi.rect.x
posición x del objeto
lavfi.rect.y
posición y del objeto
lavfi.rect.score
puntuación de coincidencia del objeto encontrado
Acepta las siguientes opciones:
object
Ruta del archivo de imagen del objeto; debe estar en gray8.
threshold
Umbral de detección, expresado como número decimal en el rango 0-1.
Un umbral de 0.01 significa que solo se aceptan coincidencias exactas, mientras que un umbral de 0.99 hace que casi todo coincida.
El valor predeterminado es 0.5.
mipmaps
Número de mipmaps; el valor predeterminado es 3.
xmin, ymin, xmax, ymax
Especifica el rectángulo en el que se realizará la búsqueda.
discard
Descarta los fotogramas en los que no se detecta el objeto. De forma predeterminada está desactivado.
11.96.1 Ejemplos
-
Cubrir un objeto rectangular con la imagen suministrada de un vídeo dado, usando
ffmpeg:ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv -
Encontrar la posición de un objeto en cada fotograma usando
ffprobey escribirla en un archivo de registro:ffprobe -f lavfi movie=test.mp4,find_rect=object=object.pgm:threshold=0.3 \ -show_entries frame=pkt_pts_time:frame_tags=lavfi.rect.x,lavfi.rect.y \ -of csv -o find_rect.csv
11.97 floodfill
Rellena un área con los valores de los mismos componentes de píxel usando otros valores.
Acepta las siguientes opciones:
x
Establece la coordenada x del píxel.
y
Establece la coordenada y del píxel.
s0
Establece el valor del componente de origen #0.
s1
Establece el valor del componente de origen #1.
s2
Establece el valor del componente de origen #2.
s3
Establece el valor del componente de origen #3.
d0
Establece el valor del componente de destino #0.
d1
Establece el valor del componente de destino #1.
d2
Establece el valor del componente de destino #2.
d3
Establece el valor del componente de destino #3.
11.98 format
Convierte el vídeo de entrada a uno de los pixel formats especificados. Libavfilter intentará elegir uno adecuado como entrada para el siguiente filtro.
Acepta los siguientes parámetros:
pix_fmts
Lista de nombres de pixel format separados por ’|’, tal como "pix_fmts=yuv420p|monow|rgb24".
color_spaces
Lista de nombres de espacio de color separados por ’|’, tal como "color_spaces=bt709|bt470bg|bt2020nc".
color_ranges
Lista de nombres de rango de color separados por ’|’, tal como "color_ranges=tv|pc".
alpha_modes
Lista de nombres de rango de color separados por ’|’, tal como "alpha_modes=straight|premultiplied".
11.98.1 Ejemplos
- Convertir el vídeo de entrada al formato yuv420p
format=pix_fmts=yuv420p
Convertir el vídeo de entrada a cualquiera de los formatos de la lista
format=pix_fmts=yuv420p|yuv444p|yuv410p
11.99 fps
Convierte el vídeo a una velocidad de fotogramas constante especificada, duplicando o descartando fotogramas según sea necesario.
Acepta los siguientes parámetros:
fps
La velocidad de fotogramas de salida deseada. Acepta expresiones que contengan las siguientes constantes:
‘source_fps’
La velocidad de fotogramas de la entrada
‘ntsc’
Velocidad de fotogramas NTSC de 30000/1001
‘pal’
Velocidad de fotogramas PAL de 25.0
‘film’
Velocidad de fotogramas de cine de 24.0
‘ntsc_film’
Velocidad de fotogramas NTSC-cine de 24000/1001
El valor predeterminado es 25.
start_time
Asume que el primer PTS debería ser el valor indicado, en segundos. Esto permite rellenar o recortar al inicio del flujo. De forma predeterminada no se hace ninguna suposición sobre el PTS esperado del primer fotograma, por lo que no se realiza ningún relleno ni recorte. Por ejemplo, esto podría establecerse en 0 para rellenar el inicio con duplicados del primer fotograma si un flujo de vídeo empieza después del flujo de audio, o para recortar cualquier fotograma con PTS negativo.
round
Método de redondeo de la marca de tiempo (PTS).
Los valores posibles son:
zero
redondear hacia 0
inf
redondear alejándose de 0
down
redondear hacia -infinito
up
redondear hacia +infinito
near
redondear al más cercano
El valor predeterminado es near.
eof_action
Acción realizada al leer el último fotograma.
Los valores posibles son:
round
Usa el mismo método de redondeo de marca de tiempo que para el resto de fotogramas.
pass
Deja pasar el último fotograma si aún no se ha alcanzado la duración de la entrada.
El valor predeterminado es round.
Alternativamente, las opciones pueden especificarse como una cadena plana: fps[:start_time[:round]].
Véase también el filtro setpts.
11.99.1 Ejemplos
-
Uso típico para establecer los fps en 25:
fps=fps=25 -
Establece los fps en 24, usando la abreviatura y el método de redondeo al más cercano:
fps=fps=film:round=near
11.100 framepack
Combina dos flujos de vídeo distintos en un vídeo estereoscópico, estableciendo los metadatos adecuados en los codecs compatibles. Las dos vistas deben tener el mismo tamaño y la misma velocidad de fotogramas, y el procesamiento se detendrá cuando termine el vídeo más corto. Tenga en cuenta que puede ajustar cómodamente las propiedades de las vistas con los filtros scale y fps.
Acepta los siguientes parámetros:
format
El formato de empaquetado deseado. Los valores admitidos son:
sbs
Las vistas se colocan una junto a la otra (predeterminado).
tab
Las vistas se colocan una encima de la otra.
lines
Las vistas se empaquetan por línea.
columns
Las vistas se empaquetan por columna.
frameseq
Las vistas se intercalan temporalmente.
Algunos ejemplos:
# Convert left and right views into a frame-sequential video
ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
# Convert views into a side-by-side video with the same output resolution as the input
ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
11.101 framerate
Cambia la velocidad de fotogramas interpolando nuevos fotogramas de vídeo de salida a partir de los fotogramas de origen.
Este filtro no está diseñado para funcionar correctamente con medios entrelazados. Si desea cambiar la velocidad de fotogramas de un medio entrelazado, deberá desentrelazarlo antes de este filtro y volver a entrelazarlo después de este filtro.
A continuación se describen las opciones aceptadas.
fps
Especifica los fotogramas de salida por segundo. Esta opción también puede especificarse como un valor suelto. El valor predeterminado es 50.
interp_start
Especifica el inicio de un rango en el que el fotograma de salida se creará como interpolación lineal de dos fotogramas. El rango es [0-255], el valor predeterminado es 15.
interp_end
Especifica el final de un rango en el que el fotograma de salida se creará como interpolación lineal de dos fotogramas. El rango es [0-255], el valor predeterminado es 240.
scene
Especifica el nivel al que se detecta un cambio de escena, como un valor entre 0 y 100 que indica una nueva escena; un valor bajo refleja una probabilidad baja de que el fotograma actual introduzca una nueva escena, mientras que un valor más alto indica que es más probable que lo sea. El valor predeterminado es 8.2.
flags
Especifica los flags que influyen en el proceso del filtro.
El valor disponible para flags es:
scene_change_detect, scd
Activa la detección de cambio de escena usando el valor de la opción scene. Este flag está activado de forma predeterminada.
11.102 frc_amf
Duplica la velocidad de fotogramas usando Frame Rate Converter (FRC), proporcionado por la biblioteca AMD Advanced Media Framework para aceleración por hardware.
El filtro acepta las siguientes opciones:
engine_type
Especifica el motor usado para ejecutar los shaders.
‘dx11’
DirectX 11.
‘dx12’
DirectX 12 (valor predeterminado).
enable
Valor booleano: activa/desactiva FRC. Es un valor dinámico, que puede modificarse en tiempo de ejecución sin reinicializar el filtro. (Valor predeterminado: activado).
fallback_mode
Comportamiento de reserva en caso de baja confianza de interpolación.
‘duplicate’
Duplica el fotograma.
‘blend’
Combina dos fotogramas mediante fundido (valor predeterminado).
indicator
Valor booleano: muestra el indicador cuadrado de FRC en la esquina superior izquierda del vídeo (valor predeterminado: desactivado).
profile
Nivel de búsqueda jerárquica de movimiento.
‘low’
Menos niveles de búsqueda jerárquica de movimiento. Solo se recomienda para resoluciones extremadamente bajas.
‘high’
Recomendado para cualquier resolución de hasta 1440p. (Valor predeterminado)
‘super’
Más niveles de búsqueda jerárquica de movimiento. Recomendado para resoluciones de 1440p o superiores.
mv_search_mode
Modo de rendimiento de la búsqueda de movimiento.
‘native’
Realiza la búsqueda de movimiento sobre la resolución completa de las imágenes de origen.
‘performance’
Realiza la búsqueda de movimiento sobre imágenes de origen reducidas de resolución. Se recomienda en APU o GPU de gama baja para un mejor rendimiento.
use_future_frame
Valor booleano: activa la dependencia de un fotograma futuro, lo que mejora la calidad a costa de latencia (valor predeterminado: activado).
11.103 framestep
Selecciona un fotograma de cada N fotogramas.
Este filtro acepta la siguiente opción:
step
Selecciona un fotograma cada step fotogramas. Los valores permitidos son enteros positivos mayores que 0. El valor predeterminado es 1.
11.104 freezedetect
Detecta vídeo congelado.
Este filtro registra un mensaje y establece metadatos de fotograma cuando detecta que el vídeo de entrada no presenta cambios significativos de contenido durante una duración determinada. La detección de congelación calcula la diferencia absoluta media de todos los componentes de los fotogramas de vídeo y la compara con un umbral de ruido.
Los tiempos y la duración mostrados se expresan en segundos. La clave de metadatos lavfi.freezedetect.freeze_start se establece en el primer fotograma cuya marca de tiempo iguala o supera la duración de detección, y contiene la marca de tiempo del primer fotograma de la congelación. Las claves de metadatos lavfi.freezedetect.freeze_duration y lavfi.freezedetect.freeze_end se establecen en el primer fotograma posterior a la congelación.
El filtro acepta las siguientes opciones:
noise, n
Establece la tolerancia al ruido. Puede especificarse en dB (si se añade "dB" al valor indicado) o como una relación de diferencia entre 0 y 1. El valor predeterminado es -60dB, o 0.001.
duration, d
Establece la duración de la congelación hasta la notificación (el valor predeterminado es 2 segundos).
11.105 freezeframes
Congela fotogramas de vídeo.
Este filtro congela fotogramas de vídeo usando el fotograma de la 2.ª entrada.
El filtro acepta las siguientes opciones:
first
Establece el número del primer fotograma a partir del cual comienza la congelación.
last
Establece el número del último fotograma en el que termina la congelación.
replace
Establece el número de fotograma de la 2.ª entrada que se usará en lugar de los fotogramas reemplazados.
11.106 frei0r
Aplica un efecto frei0r al vídeo de entrada.
Para habilitar la compilación de este filtro, debe instalar la cabecera de frei0r y configurar FFmpeg con --enable-frei0r.
Acepta los siguientes parámetros:
filter_name
Nombre del efecto frei0r que se va a cargar. Si la variable de entorno FREI0R_PATH está definida, el efecto frei0r se busca en cada uno de los directorios especificados en la lista separada por dos puntos de FREI0R_PATH. En caso contrario, se buscan las rutas estándar de frei0r, en este orden: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/, /usr/lib/frei0r-1/.
filter_params
Lista de parámetros separados por ’|’ que se pasan al efecto frei0r.
Un parámetro de un efecto frei0r puede ser un booleano (su valor es "y" o "n"), un valor double, un color (especificado como R/G/B, donde R, G y B son números en coma flotante entre 0.0 y 1.0, ambos inclusive) o una descripción de color según se especifica en la sección "Color" del manual ffmpeg-utils, una posición (especificada como X/Y, donde X e Y son números en coma flotante) y/o una cadena de texto.
El número y los tipos de parámetros dependen del efecto cargado. Si no se especifica un parámetro del efecto, se establece el valor predeterminado.
11.106.1 Ejemplos
-
Aplicar el efecto distort0r, estableciendo los dos primeros parámetros double:
frei0r=filter_name=distort0r:filter_params=0.5|0.01 -
Aplicar el efecto colordistance, tomando un color como primer parámetro:
frei0r=colordistance:0.2/0.3/0.4 frei0r=colordistance:violet frei0r=colordistance:0x112233 -
Aplicar el efecto perspective, especificando las posiciones de imagen superior izquierda y superior derecha:
frei0r=perspective:0.2/0.2|0.8/0.2
Para más información, véase http://frei0r.dyne.org
11.106.2 Comandos
Este filtro admite la opción filter_params como comando.
11.107 fspp
Aplica un postprocesado rápido y sencillo. Es una versión más rápida de spp.
Divide la (I)DCT en pasadas horizontales/verticales. A diferencia del filtro de postprocesado simple, una de ellas se realiza una vez por bloque, no por píxel. Esto permite una velocidad mucho mayor.
El filtro acepta las siguientes opciones:
quality
Establece la calidad. Esta opción define el número de niveles para el promediado. Acepta un entero en el rango 4-5. El valor predeterminado es 4.
qp
Fuerza un parámetro de cuantización constante. Acepta un entero en el rango 0-63. Si no se establece, el filtro usará el QP del flujo de vídeo (si está disponible).
strength
Establece la intensidad del filtro. Acepta un entero en el rango -15 a 32. Los valores más bajos significan más detalle pero también más artefactos, mientras que los valores más altos suavizan la imagen aunque también la difuminan más. El valor predeterminado es 0 − óptimo para el PSNR.
use_bframe_qp
Activa el uso del QP de los B-Frames si se establece en 1. Usar esta opción puede provocar parpadeo, ya que los B-Frames suelen tener un QP mayor. El valor predeterminado es 0 (no activado).
11.108 fsync
Sincroniza fotogramas de vídeo con una asignación externa a partir de un archivo.
Para cada PTS de entrada indicado en el archivo de asignación, se descartan o crean tantos fotogramas como sea necesario para recrear la secuencia de fotogramas de salida indicada en dicho archivo.
Este filtro es útil para recrear los fotogramas de salida de una conversión de velocidad de fotogramas realizada mediante el filtro fps, registrados en un archivo de asignación con la opción de ffmpeg -stats_mux_pre, y para procesar posteriormente los fotogramas correspondientes, por ejemplo, comparación de calidad.
Cada línea del archivo de asignación debe contener tres elementos por fotograma de entrada: el PTS de entrada (decimal), el PTS de salida (decimal) y el TIMEBASE de salida (decimal/decimal), separados por un espacio. Este formato de archivo corresponde a la salida de -stats_mux_pre_fmt="{ptsi} {pts} {tb}".
El filtro asume que el archivo de asignación está ordenado por PTS de entrada creciente.
El filtro acepta las siguientes opciones:
file, f
Nombre del archivo de asignación que se va a usar.
Ejemplo:
# Convert a video to 25 fps and record a MAP_FILE file with the default format of this filter
ffmpeg -i INPUT -vf fps=fps=25 -stats_mux_pre MAP_FILE -stats_mux_pre_fmt "{ptsi} {pts} {tb}" OUTPUT
# Sort MAP_FILE by increasing input PTS
sort -n MAP_FILE
# Use INPUT, OUTPUT and the MAP_FILE from above to compare the corresponding frames in INPUT and OUTPUT via SSIM
ffmpeg -i INPUT -i OUTPUT -filter_complex '[0:v]fsync=file=MAP_FILE[ref];[1:v][ref]ssim' -f null -
11.109 gblur
Aplica el filtro de desenfoque gaussiano.
El filtro acepta las siguientes opciones:
sigma
Establece sigma horizontal, la desviación estándar del desenfoque gaussiano. El valor predeterminado es 0.5.
steps
Establece el número de pasos para la aproximación gaussiana. El valor predeterminado es 1.
planes
Establece los planos que se van a filtrar. De forma predeterminada se filtran todos los planos.
sigmaV
Establece sigma vertical; si es negativo, será igual a sigma. El valor predeterminado es -1.
11.109.1 Comandos
Este filtro admite los mismos comandos que opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene su valor actual.
11.110 geq
Aplica una ecuación genérica a cada píxel.
El filtro acepta las siguientes opciones:
lum_expr, lum
Establece la expresión de luma.
cb_expr, cb
Establece la expresión de crominancia azul.
cr_expr, cr
Establece la expresión de crominancia roja.
alpha_expr, a
Establece la expresión de alfa.
red_expr, r
Establece la expresión de rojo.
green_expr, g
Establece la expresión de verde.
blue_expr, b
Establece la expresión de azul.
El espacio de color se selecciona según las opciones especificadas. Si se especifica alguna de las opciones lum_expr, cb_expr o cr_expr, el filtro seleccionará automáticamente un espacio de color YCbCr. Si se especifica alguna de las opciones red_expr, green_expr o blue_expr, seleccionará un espacio de color RGB.
Si no se define una de las expresiones de crominancia, se recurre a la otra. Si no se especifica ninguna expresión de alfa, se evaluará como valor opaco. Si no se especifican las expresiones de crominancia, se evaluarán como la expresión de luma.
Las expresiones pueden usar las siguientes variables y funciones:
N
El número secuencial del fotograma filtrado, comenzando desde 0.
X Y
Las coordenadas de la muestra actual.
W H
El ancho y el alto de la imagen.
SW SH
Escala de ancho y alto según el plano filtrado actualmente. Es la proporción entre el número de píxeles del plano de luma correspondiente y los del plano actual. P. ej., para YUV4:2:0 los valores son 1,1 para el plano de luma, y 0.5,0.5 para los planos de crominancia.
T
Tiempo del fotograma actual, expresado en segundos.
p(x, y)
Devuelve el valor del píxel en la posición (x,y) del plano actual.
lum(x, y)
Devuelve el valor del píxel en la posición (x,y) del plano de luma.
cb(x, y)
Devuelve el valor del píxel en la posición (x,y) del plano de crominancia azul-diferencia. Devuelve 0 si no existe tal plano.
cr(x, y)
Devuelve el valor del píxel en la posición (x,y) del plano de crominancia roja-diferencia. Devuelve 0 si no existe tal plano.
r(x, y) g(x, y) b(x, y)
Devuelve el valor del píxel en la posición (x,y) del componente rojo/verde/azul. Devuelve 0 si no existe tal componente.
alpha(x, y)
Devuelve el valor del píxel en la posición (x,y) del plano alfa. Devuelve 0 si no existe tal plano.
psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y), bsum(x,y), alphasum(x,y)
Suma de los valores de muestra en el rectángulo desde (0,0) hasta (x,y); esto permite obtener sumas de muestras dentro de un rectángulo. Véanse las funciones sin el sufijo sum.
interpolation
Establece uno de los métodos de interpolación:
nearest, n bilinear, b
El valor predeterminado es bilinear.
En el caso de las funciones, si x e y quedan fuera del área, el valor se recortará automáticamente al borde más cercano.
Tenga en cuenta que este filtro puede usar múltiples hilos, en cuyo caso cada segmento (slice) tendrá su propio estado de expresión. Si desea usar un único estado de expresión porque sus expresiones dependen de un estado anterior, debe limitar el número de hilos del filtro a 1.
11.110.1 Ejemplos
-
Voltear la imagen horizontalmente:
geq=p(W-X\,Y) -
Generar una onda senoidal bidimensional, con ángulo
PI/3y una longitud de onda de 100 píxeles:geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128 -
Generar una luz móvil enigmática y vistosa:
nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128 -
Generar un efecto de repujado rápido:
format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2' -
Modificar los componentes RGB en función de la posición del píxel:
geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)' -
Crear un degradado radial del mismo tamaño que la entrada (véase también el filtro vignette):
geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
11.111 gradfun
Corrige los artefactos de bandas que a veces aparecen en regiones casi planas debido al truncamiento a una profundidad de color de 8 bits. Interpola los degradados que deberían estar donde se encuentran las bandas y les aplica dither.
Está diseñado únicamente para reproducción. No lo use antes de una compresión con pérdida, porque la compresión tiende a perder el dither y traer de vuelta las bandas.
Acepta los siguientes parámetros:
strength
La cantidad máxima en la que el filtro cambiará un píxel dado. Este es también el umbral para detectar regiones casi planas. Los valores aceptables van de .51 a 64; el valor predeterminado es 1.2. Los valores fuera de rango se recortarán al rango válido.
radius
El entorno al que se ajusta el degradado. Un radius mayor produce degradados más suaves, pero también impide que el filtro modifique los píxeles cercanos a regiones con detalle. Los valores aceptables van de 8 a 32; el valor predeterminado es 16. Los valores fuera de rango se recortarán al rango válido.
Alternativamente, las opciones pueden especificarse como una cadena plana: strength[:radius]
11.111.1 Ejemplos
-
Aplicar el filtro con un strength de
3.5y un radius de8:gradfun=3.5:8 -
Especificar radius, omitiendo strength (que recurrirá al valor predeterminado):
gradfun=radius=8
11.112 graphmonitor
Muestra varias estadísticas del filtergraph.
Con este filtro se puede depurar un filtergraph completo. Es especialmente útil para problemas con enlaces que se llenan de fotogramas en cola.
El filtro acepta las siguientes opciones:
size, s
Establece el tamaño de salida del vídeo. El valor predeterminado es hd720.
opacity, o
Establece la opacidad del vídeo. El valor predeterminado es 0.9. El rango permitido va de 0 a 1.
mode, m
Establece los flags del modo de salida.
Los valores disponibles para los flags son:
‘full’
Sin ningún filtrado. Es el valor predeterminado.
‘compact’
Muestra solo los filtros con fotogramas en cola.
‘nozero’
Muestra solo los filtros con estadísticas distintas de cero.
‘noeof’
Muestra solo los filtros con estadística distinta de eof.
‘nodisabled’
Muestra solo los filtros habilitados en la línea de tiempo.
flags, f
Establece los flags que activan qué estadísticas se muestran en el vídeo.
Los valores disponibles para los flags son:
‘none’
Desactiva todos los flags.
‘all’
Activa todos los flags.
‘queue’
Muestra el número de fotogramas en cola en cada enlace.
‘frame_count_in’
Muestra el número de fotogramas tomados del filtro.
‘frame_count_out’
Muestra el número de fotogramas entregados por el filtro.
‘frame_count_delta’
Muestra la diferencia entre los dos valores anteriores.
‘pts’
Muestra el pts del fotograma actualmente filtrado.
‘pts_delta’
Muestra la diferencia de pts entre el fotograma actual y el anterior.
‘time’
Muestra el instante del fotograma actualmente filtrado.
‘time_delta’
Muestra la diferencia de tiempo entre el fotograma actual y el anterior.
‘timebase’
Muestra la base de tiempo del enlace de filtro.
‘format’
Muestra el formato usado por el enlace de filtro.
‘size’
Muestra el tamaño de vídeo, o el número de canales de audio en caso de que el enlace de filtro se use para audio.
‘rate’
Muestra la velocidad de fotogramas de vídeo, o la frecuencia de muestreo en caso de que el enlace de filtro se use para audio.
‘eof’
Muestra el estado de salida del enlace.
‘sample_count_in’
Muestra el número de muestras tomadas del filtro.
‘sample_count_out’
Muestra el número de muestras entregadas por el filtro.
‘sample_count_delta’
Muestra la diferencia entre los dos valores anteriores.
‘disabled’
Muestra el estado del filtro en la línea de tiempo.
rate, r
Establece el límite superior de la velocidad de vídeo del flujo de salida. El valor predeterminado es 25. Esto garantiza que la velocidad de fotogramas del vídeo de salida no supere este valor.
11.113 grayworld
Un filtro de constancia de color que aplica corrección de color basada en la suposición de mundo gris (grayworld)
El algoritmo usa luz lineal, por lo que los datos de entrada deben linealizarse de antemano (y, si es posible, etiquetarse correctamente).
ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
11.114 greyedge
Un filtro variante de constancia de color que estima la iluminación de la escena mediante el algoritmo grey edge y corrige los colores de la escena en consecuencia.
Véase: https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf
El filtro acepta las siguientes opciones:
difford
El orden de derivación que se aplicará a la escena. Debe elegirse en el rango [0,2] y el valor predeterminado es 1.
minknorm
El parámetro de Minkowski que se usará para calcular la distancia de Minkowski. Debe elegirse en el rango [0,20] y el valor predeterminado es 1. Si se establece en 0, se obtiene el valor máximo en lugar de calcular la distancia de Minkowski.
sigma
La desviación estándar del desenfoque gaussiano que se aplicará a la escena. Debe elegirse en el rango [0,1024.0] y el valor predeterminado es 1. floor( sigma * break_off_sigma(3) ) no puede ser igual a 0 si difford es mayor que 0.
11.114.1 Ejemplos
-
Borde gris:
greyedge=difford=1:minknorm=5:sigma=2 -
Borde máximo:
greyedge=difford=1:minknorm=0:sigma=2
11.115 guided
Aplica el filtro guided para suavizado que preserva bordes, eliminación de neblina y similares.
El filtro acepta las siguientes opciones:
radius
Establece el radio de la caja en píxeles. El rango permitido va de 1 a 20. El valor predeterminado es 3.
eps
Establece el parámetro de regularización (al cuadrado). El rango permitido va de 0 a 1. El valor predeterminado es 0.01.
mode
Establece el modo del filtro. Puede ser basic o fast. El valor predeterminado es basic.
sub
Establece la relación de submuestreo para el modo fast. El rango va de 2 a 64. El valor predeterminado es 4. En el modo basic no se produce submuestreo.
guidance
Establece el modo de guía. Puede ser off o on. El valor predeterminado es off. Si es off, se requiere una sola entrada. Si es on, se requieren dos entradas con la misma resolución y el mismo pixel format. La segunda entrada sirve como guía.
planes
Establece los planos que se van a filtrar. El valor predeterminado es solo el primero.
11.115.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.115.2 Ejemplos
-
Suavizado que preserva bordes con el filtro guided:
ffmpeg -i in.png -vf guided out.png -
Eliminación de neblina, filtrado que transfiere estructura y realce de detalle con el filtro guided. Para generar la imagen de guía, consulte el artículo "Guided Image Filtering". Véase: http://kaiminghe.com/publications/pami12guidedfilter.pdf.
ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
11.116 haldclut
Aplica un Hald CLUT a un flujo de vídeo.
La primera entrada es el flujo de vídeo a procesar, y la segunda es el Hald CLUT. La entrada del Hald CLUT puede ser una imagen simple o un flujo de vídeo completo.
El filtro acepta las siguientes opciones:
clut
Establece qué fotogramas de vídeo del CLUT se procesarán a partir del segundo flujo de entrada; puede ser first o all. El valor predeterminado es all.
shortest
Fuerza la terminación cuando finaliza la entrada más corta. El valor predeterminado es 0.
repeatlast
Sigue aplicando el último CLUT tras el final del flujo. Un valor de 0 desactiva el filtro tras alcanzar el último fotograma del CLUT. El valor predeterminado es 1.
haldclut también tiene las mismas opciones de interpolación que lut3d (ambos filtros comparten los mismos elementos internos).
Este filtro también admite las opciones de framesync.
Puede encontrar más información sobre el Hald CLUT en el sitio web de Eskil Steenberg (autor del Hald CLUT), en http://www.quelsolaar.com/technology/clut.html.
11.116.1 Comandos
Este filtro admite la opción interp como comando.
11.116.2 Ejemplos de flujo de trabajo
11.116.2.1 Flujo de vídeo Hald CLUT
Genera un flujo de Hald CLUT identidad alterado con varios efectos:
ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
Nota: asegúrese de usar un codec sin pérdida.
Luego, úselo con haldclut para aplicarlo a un flujo aleatorio cualquiera:
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
El Hald CLUT se aplicará a los primeros 10 segundos (duración de clut.nut); después, la última imagen de ese flujo de CLUT se aplicará a los fotogramas restantes del flujo mandelbrot.
11.116.2.2 Hald CLUT con vista previa
Se supone que un Hald CLUT es una imagen cuadrada de Level*Level*Level por Level*Level*Level píxeles. Para un Hald CLUT dado, FFmpeg seleccionará el cuadrado más grande posible empezando por la esquina superior izquierda de la imagen. Los píxeles de relleno restantes (inferior o derecho) se ignorarán. Esta zona puede usarse para añadir una vista previa del Hald CLUT.
Normalmente, el filtro haldclut admitirá el siguiente Hald CLUT generado:
ffmpeg -f lavfi -i haldclutsrc=8 -vf "
pad=iw+320 [padded_clut];
smptebars=s=320x256, split [a][b];
[padded_clut][a] overlay=W-320:h, curves=color_negative [main];
[main][b] overlay=W-320" -frames:v 1 clut.png
Contiene el original y una vista previa del efecto del CLUT: las barras de color SMPTE se muestran arriba a la derecha, y debajo las mismas barras de color procesadas por los cambios de color.
Después, el efecto de este Hald CLUT puede visualizarse con:
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
11.117 hflip
Voltea el vídeo de entrada horizontalmente.
Por ejemplo, para voltear horizontalmente el vídeo de entrada con ffmpeg:
ffmpeg -i in.avi -vf "hflip" out.avi
11.118 histeq
Este filtro aplica una ecualización global del histograma de color, fotograma a fotograma.
Puede usarse para corregir vídeo con un rango comprimido de intensidades de píxel. El filtro redistribuye las intensidades de los píxeles para uniformar su distribución en todo el rango de intensidad. Puede considerarse un "filtro de contraste que se ajusta automáticamente". Este filtro solo es útil para corregir vídeo fuente degradado o mal capturado.
El filtro acepta las siguientes opciones:
strength
Determina la cantidad de ecualización que se aplicará. Al reducir strength, la distribución de las intensidades de los píxeles se aproxima cada vez más a la del fotograma de entrada. El valor debe ser un número de coma flotante en el rango [0,1] y su valor predeterminado es 0.200.
intensity
Establece la intensidad máxima que puede generarse y escala los valores de salida en consecuencia. Conviene ajustar strength como se desee y, si es necesario, limitar intensity para evitar el lavado de color. El valor debe ser un número de coma flotante en el rango [0,1] y su valor predeterminado es 0.210.
antibanding
Establece el nivel de antibanding. Si está habilitado, el filtro variará aleatoriamente la luminancia de los píxeles de salida en una pequeña cantidad para evitar bandas en el histograma. Los valores posibles son none, weak o strong. El valor predeterminado es none.
11.119 histogram
Calcula y dibuja un histograma de distribución de color para el vídeo de entrada.
El histograma calculado es una representación de la distribución de componentes de color en una imagen.
El histograma estándar muestra la distribución de los componentes de color en una imagen. Muestra un gráfico de color para cada componente. Muestra la distribución de los componentes Y, U, V, A o R, G, B, según el formato de entrada, en el fotograma actual. Debajo de cada gráfico se muestra un medidor de escala del componente de color.
El filtro acepta las siguientes opciones:
level_height
Establece la altura del nivel. El valor predeterminado es 200. El rango permitido es [50, 2048].
scale_height
Establece la altura de la escala de color. El valor predeterminado es 12. El rango permitido es [0, 40].
display_mode
Establece el modo de visualización. Acepta los siguientes valores:
‘stack’
Los gráficos de cada componente de color se colocan uno debajo del otro.
‘parade’
Los gráficos de cada componente de color se colocan uno al lado del otro.
‘overlay’
Presenta información idéntica a la de parade, salvo que los gráficos que representan los componentes de color se superponen directamente unos sobre otros.
El valor predeterminado es stack.
levels_mode
Establece el modo. Puede ser linear o logarithmic. El valor predeterminado es linear.
components
Establece qué componentes de color mostrar. El valor predeterminado es 7.
fgopacity
Establece la opacidad de primer plano. El valor predeterminado es 0.7.
bgopacity
Establece la opacidad de fondo. El valor predeterminado es 0.5.
colors_mode
Establece el modo de colores. Acepta los siguientes valores:
‘whiteonblack’ ‘blackonwhite’ ‘whiteongray’ ‘blackongray’ ‘coloronblack’ ‘coloronwhite’ ‘colorongray’ ‘blackoncolor’ ‘whiteoncolor’ ‘grayoncolor’
El valor predeterminado es whiteonblack.
11.119.1 Ejemplos
- Calcular y dibujar el histograma:
ffplay -i input -vf histogram
11.120 hqdn3d
Este es un filtro de reducción de ruido 3D de alta precisión y calidad. Su objetivo es reducir el ruido de la imagen, produciendo imágenes suaves y haciendo que las imágenes fijas sean realmente fijas. Debería mejorar la compresibilidad.
Acepta los siguientes parámetros opcionales:
luma_spatial
Un número de coma flotante no negativo que especifica la intensidad espacial de la luma. El valor predeterminado es 4.0.
chroma_spatial
Un número de coma flotante no negativo que especifica la intensidad espacial de la crominancia. El valor predeterminado es 3.0*luma_spatial/4.0.
luma_tmp
Un número de coma flotante que especifica la intensidad temporal de la luma. El valor predeterminado es 6.0*luma_spatial/4.0.
chroma_tmp
Un número de coma flotante que especifica la intensidad temporal de la crominancia. El valor predeterminado es luma_tmp*chroma_spatial/luma_spatial.
11.120.1 Comandos
Este filtro admite los mismos comandos que opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.121 hwdownload
Descarga fotogramas de hardware a la memoria del sistema.
La entrada debe estar en fotogramas de hardware, y la salida en un formato que no sea de hardware. No todos los formatos se admiten en la salida; puede ser necesario insertar un filtro format adicional inmediatamente después en el grafo para obtener la salida en un formato admitido.
11.122 hwmap
Asigna fotogramas de hardware a la memoria del sistema o a otro dispositivo.
Este filtro tiene varios modos de operación distintos; cuál se usa depende de los formatos de entrada y salida:
- Entrada de fotograma de hardware, salida de fotograma normal
Asigna los fotogramas de entrada a la memoria del sistema y los pasa a la salida. Si más adelante se necesita el fotograma de hardware original (por ejemplo, tras superponer algo más sobre una parte de él), el filtro hwmap puede usarse de nuevo en el siguiente modo para recuperarlo.
- Entrada de fotograma normal, salida de fotograma de hardware
Si la entrada es en realidad un fotograma de hardware mapeado por software, se desmapea, es decir, se devuelve el fotograma de hardware original.
En caso contrario, debe proporcionarse un dispositivo. Se crean nuevas superficies de hardware en ese dispositivo para la salida, luego se vuelven a mapear al formato de software en la entrada y esos fotogramas se entregan al filtro precedente. Esto actuará entonces como el filtro hwupload, pero puede evitar una copia adicional cuando la entrada ya está en un formato compatible.
- Entrada y salida de fotograma de hardware
Debe proporcionarse un dispositivo para la salida, ya sea directamente o con la opción derive_device. Los dispositivos de entrada y salida deben ser de tipos distintos y compatibles; el significado exacto de esto depende del sistema, pero típicamente implica que deben referirse al mismo contexto de hardware subyacente (por ejemplo, a la misma tarjeta gráfica).
Si los fotogramas de entrada se crearon originalmente en el dispositivo de salida, se desmapean para recuperar los fotogramas originales.
En caso contrario, se mapean los fotogramas al dispositivo de salida: se crean nuevos fotogramas de hardware en la salida correspondientes a los fotogramas de la entrada.
Se aceptan los siguientes parámetros adicionales:
mode
Establece el modo de mapeo de fotogramas. Alguna combinación de:
read
El fotograma mapeado debería ser legible.
write
El fotograma mapeado debería ser escribible.
overwrite
El mapeo siempre sobrescribirá el fotograma completo.
Esto puede mejorar el rendimiento en algunos casos, ya que no es necesario cargar el contenido original del fotograma.
direct
El mapeo no debe implicar ninguna copia.
En algunos casos se crean mapeos indirectos a copias de fotogramas, cuando el mapeo directo no es posible o tendría propiedades inesperadas. Establecer este flag garantiza que el mapeo sea directo y fallará si eso no es posible.
El valor predeterminado es read+write si no se especifica.
derive_device type
En lugar de usar el dispositivo suministrado en la inicialización, deriva un nuevo dispositivo del tipo type a partir del dispositivo en el que existen los fotogramas de entrada.
reverse
En un mapeo de hardware a hardware, mapea en sentido inverso: crea fotogramas en el sumidero y los vuelve a mapear a la fuente. Esto puede ser necesario en algunos casos en los que se requiere un mapeo en una dirección, pero los dispositivos usados solo admiten la dirección opuesta.
Esta opción es peligrosa: puede romper el filtro precedente de maneras indefinidas si existen restricciones adicionales sobre la salida de ese filtro. No la use sin comprender plenamente las implicaciones de su uso.
11.123 hwupload
Sube fotogramas de la memoria del sistema a superficies de hardware.
El dispositivo al que subir debe suministrarse al inicializar el filtro. Si usa ffmpeg, seleccione el dispositivo apropiado con la opción -filter_hw_device o con la opción derive_device. Los dispositivos de entrada y salida deben ser de tipos distintos y compatibles; el significado exacto de esto depende del sistema, pero típicamente implica que deben referirse al mismo contexto de hardware subyacente (por ejemplo, a la misma tarjeta gráfica).
Se aceptan los siguientes parámetros adicionales:
derive_device type
En lugar de usar el dispositivo suministrado en la inicialización, deriva un nuevo dispositivo del tipo type a partir del dispositivo en el que existen los fotogramas de entrada.
11.124 hwupload_cuda
Sube fotogramas de la memoria del sistema a un dispositivo CUDA.
Acepta los siguientes parámetros opcionales:
device
El número del dispositivo CUDA que se va a usar
11.125 hqx
Aplica un filtro de ampliación de alta calidad diseñado para pixel art. Este filtro fue creado originalmente por Maxim Stepin.
Acepta la siguiente opción:
n
Establece la dimensión de escalado: 2 para hq2x, 3 para hq3x y 4 para hq4x. El valor predeterminado es 3.
11.126 hstack
Apila vídeos de entrada horizontalmente.
Todos los flujos deben tener el mismo pixel format y la misma altura.
Tenga en cuenta que este filtro es más rápido que usar los filtros overlay y pad para crear la misma salida.
El filtro acepta la siguiente opción:
inputs
Establece el número de flujos de entrada. El valor predeterminado es 2.
shortest
Si se establece en 1, fuerza a que la salida termine cuando finalice la entrada más corta. El valor predeterminado es 0.
11.127 hsvhold
Convierte un cierto rango HSV en valores de gris.
Este filtro mide la diferencia de color entre el color HSV establecido en las opciones y los medidos en el flujo de vídeo. Según las opciones, los colores de salida pueden cambiarse a gris o no.
El filtro acepta las siguientes opciones:
hue
Establece el valor de matiz (hue) que se usará en el cálculo de la diferencia de color. El rango permitido va de -360 a 360. El valor predeterminado es 0.
sat
Establece el valor de saturación que se usará en el cálculo de la diferencia de color. El rango permitido va de -1 a 1. El valor predeterminado es 0.
val
Establece el valor (value) que se usará en el cálculo de la diferencia de color. El rango permitido va de -1 a 1. El valor predeterminado es 0.
similarity
Establece el porcentaje de similitud con el color clave. El rango permitido va de 0 a 1. El valor predeterminado es 0.01.
0.00001 coincide únicamente con el color clave exacto, mientras que 1.0 coincide con todo.
blend
Porcentaje de mezcla. El rango permitido va de 0 a 1. El valor predeterminado es 0.
Con 0.0, los píxeles quedan completamente grises o nada grises.
Cuanto más alto es el valor, mayor es el número de píxeles grises, y cuanto más se parece el color de un píxel al color clave, mayor es su grado de gris.
11.128 hsvkey
Convierte un cierto rango HSV en transparencia.
Este filtro mide la diferencia de color entre el color HSV establecido en las opciones y los medidos en el flujo de vídeo. Según las opciones, los colores de salida pueden volverse transparentes añadiendo un canal alfa.
El filtro acepta las siguientes opciones:
hue
Establece el valor de matiz (hue) que se usará en el cálculo de la diferencia de color. El rango permitido va de -360 a 360. El valor predeterminado es 0.
sat
Establece el valor de saturación que se usará en el cálculo de la diferencia de color. El rango permitido va de -1 a 1. El valor predeterminado es 0.
val
Establece el valor (value) que se usará en el cálculo de la diferencia de color. El rango permitido va de -1 a 1. El valor predeterminado es 0.
similarity
Establece el porcentaje de similitud con el color clave. El rango permitido va de 0 a 1. El valor predeterminado es 0.01.
0.00001 coincide únicamente con el color clave exacto, mientras que 1.0 coincide con todo.
blend
Porcentaje de mezcla. El rango permitido va de 0 a 1. El valor predeterminado es 0.
Con 0.0, los píxeles quedan completamente transparentes o nada transparentes.
Cuanto más alto es el valor, mayor es el número de píxeles semitransparentes, y cuanto más se parece el color de un píxel al color clave, mayor es su transparencia.
11.129 hue
Modifica el matiz o la saturación de la entrada.
Acepta los siguientes parámetros:
h
Especifica el ángulo de matiz en grados. Acepta una expresión y su valor predeterminado es "0".
s
Especifica la saturación en el rango [-10,10]. Acepta una expresión y su valor predeterminado es "1".
H
Especifica el ángulo de matiz en radianes. Acepta una expresión y su valor predeterminado es "0".
b
Especifica el brillo en el rango [-10,10]. Acepta una expresión y su valor predeterminado es "0".
h y H son mutuamente excluyentes y no pueden especificarse al mismo tiempo.
Los valores de las opciones b, h, H y s son expresiones que contienen las siguientes constantes:
n
número de fotograma de entrada, comenzando desde 0
pts
presentation timestamp del fotograma de entrada, expresado en unidades de base de tiempo
r
velocidad de fotogramas del vídeo de entrada, NAN si se desconoce la velocidad de fotogramas de entrada
t
marca de tiempo expresada en segundos, NAN si se desconoce la marca de tiempo de entrada
tb
base de tiempo del vídeo de entrada
11.129.1 Ejemplos
-
Establecer el matiz en 90 grados y la saturación en 1.0:
hue=h=90:s=1 -
El mismo comando, pero expresando el matiz en radianes:
hue=H=PI/2:s=1 -
Rotar el matiz y hacer que la saturación oscile entre 0 y 2 durante un período de 1 segundo:
hue="H=2*PI*t: s=sin(2*PI*t)+1" -
Aplicar un efecto de aparición gradual (fade-in) de la saturación de 3 segundos comenzando en 0:
hue="s=min(t/3\,1)"
La expresión general del fade-in puede escribirse como:
hue="s=min(0\, max((t-START)/DURATION\, 1))"
- Aplicar un efecto de desvanecimiento (fade-out) de la saturación de 3 segundos comenzando en el segundo 5:
hue="s=max(0\, min(1\, (8-t)/3))"
La expresión general del fade-out puede escribirse como:
hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
11.129.2 Comandos
Este filtro admite los siguientes comandos:
b s h H
Modifica el matiz, la saturación o el brillo del vídeo de entrada. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.130 huesaturation
Aplica ajustes de matiz, saturación e intensidad al flujo de vídeo de entrada.
Este filtro opera en el espacio de color RGB.
Este filtro acepta las siguientes opciones:
hue
Establece el desplazamiento de matiz en grados que se va a aplicar. El valor predeterminado es 0. El rango permitido va de -180 a 180.
saturation
Establece el desplazamiento de saturación. El valor predeterminado es 0. El rango permitido va de -1 a 1.
intensity
Establece el desplazamiento de intensidad. El valor predeterminado es 0. El rango permitido va de -1 a 1.
colors
Establece qué colores primarios y complementarios se van a ajustar. Esta opción se configura proporcionando uno o varios valores. Puede seleccionar varios colores a la vez. De forma predeterminada se seleccionan todos los colores.
‘r’
Ajusta los rojos.
‘y’
Ajusta los amarillos.
‘g’
Ajusta los verdes.
‘c’
Ajusta los cianes.
‘b’
Ajusta los azules.
‘m’
Ajusta los magentas.
‘a’
Ajusta todos los colores.
strength
Establece la intensidad del filtrado. El rango permitido va de 0 a 100. El valor predeterminado es 1.
rw, gw, bw
Establece el peso de cada componente RGB. El rango permitido va de 0 a 1. De forma predeterminada se establece en 0.333, 0.334, 0.333. Estas opciones se usan en el procesamiento de saturación y luminosidad.
lightness
Establece la preservación de la luminosidad; está deshabilitada de forma predeterminada. Ajustar el matiz puede cambiar la luminosidad respecto al triplete RGB original; con esta opción habilitada, la luminosidad se mantiene en el mismo valor.
11.131 hysteresis
Hace crecer el primer flujo dentro del segundo flujo conectando componentes. Esto permite construir máscaras de bordes más robustas.
Este filtro admite las siguientes opciones:
planes
Establece qué planos se procesarán como mapa de bits; los planos no procesados se copiarán del primer flujo. De forma predeterminada, con el valor 0xf, se procesan todos los planos.
threshold
Establece el umbral utilizado en el filtrado. Si el valor de un componente de píxel es superior a este umbral, se activa el algoritmo de conexión de componentes. El valor predeterminado es 0.
El filtro hysteresis también admite las opciones de framesync.
11.132 iccdetect
Detecta el espacio de color a partir de un perfil ICC incrustado (si está presente) y actualiza las etiquetas del fotograma en consecuencia.
Este filtro admite las siguientes opciones:
force
Si es true, las etiquetas de espacio de color existentes del fotograma siempre se sobrescribirán con los valores detectados a partir de un perfil ICC. En caso contrario, solo se asignarán si contienen unknown. Habilitado de forma predeterminada.
11.133 iccgen
Genera perfiles ICC y los adjunta a los fotogramas.
Este filtro admite las siguientes opciones:
color_primaries color_trc
Configura el espacio de color para el que se generará el perfil ICC. El valor predeterminado auto infiere el valor a partir de los metadatos del fotograma de entrada, recurriendo a BT.709/sRGB según corresponda.
Consulte el filtro setparams para obtener una lista de los valores posibles, pero tenga en cuenta que unknown no es un valor válido para este filtro.
force
Si es true, se generará un perfil ICC incluso si eso sobrescribe uno ya existente. Deshabilitado de forma predeterminada.
11.134 identity
Obtiene la puntuación de identidad entre dos vídeos de entrada.
Este filtro toma dos vídeos de entrada.
Ambos vídeos de entrada deben tener la misma resolución y el mismo pixel format para que este filtro funcione correctamente. Además, se asume que ambas entradas tienen el mismo número de fotogramas, que se comparan uno a uno.
La puntuación de identidad obtenida por componente, junto con el promedio, el mínimo y el máximo, se imprime a través del sistema de registro.
El filtro almacena las puntuaciones de identidad calculadas de cada fotograma en los metadatos del fotograma.
Este filtro también admite las opciones de framesync.
En el siguiente ejemplo, el archivo de entrada main.mpg que se procesa se compara con el archivo de referencia ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
11.135 idet
Detecta el tipo de entrelazado del vídeo.
Este filtro intenta detectar si los fotogramas de entrada son entrelazados, progresivos, o si el campo superior o el campo inferior van primero. También intenta detectar campos que se repiten entre fotogramas adyacentes (un indicio de telecine).
La detección de fotograma único solo tiene en cuenta los fotogramas inmediatamente adyacentes al clasificar cada fotograma. La detección de múltiples fotogramas incorpora el historial de clasificación de fotogramas anteriores.
El filtro registrará estos valores de metadatos:
single.current_frame
Tipo detectado del fotograma actual mediante la detección de fotograma único. Uno de: “tff” (campo superior primero), “bff” (campo inferior primero), “progressive”, o “undetermined”
single.tff
Número acumulado de fotogramas detectados con el campo superior primero mediante la detección de fotograma único.
multiple.tff
Número acumulado de fotogramas detectados con el campo superior primero mediante la detección de múltiples fotogramas.
single.bff
Número acumulado de fotogramas detectados con el campo inferior primero mediante la detección de fotograma único.
multiple.current_frame
Tipo detectado del fotograma actual mediante la detección de múltiples fotogramas. Uno de: “tff” (campo superior primero), “bff” (campo inferior primero), “progressive”, o “undetermined”
multiple.bff
Número acumulado de fotogramas detectados con el campo inferior primero mediante la detección de múltiples fotogramas.
single.progressive
Número acumulado de fotogramas detectados como progresivos mediante la detección de fotograma único.
multiple.progressive
Número acumulado de fotogramas detectados como progresivos mediante la detección de múltiples fotogramas.
single.undetermined
Número acumulado de fotogramas que no pudieron clasificarse mediante la detección de fotograma único.
multiple.undetermined
Número acumulado de fotogramas que no pudieron clasificarse mediante la detección de múltiples fotogramas.
repeated.current_frame
Qué campo del fotograma actual se repite respecto al anterior. Uno de “neither”, “top”, o “bottom”.
repeated.neither
Número acumulado de fotogramas sin campo repetido.
repeated.top
Número acumulado de fotogramas en los que el campo superior se repite respecto al campo superior del fotograma anterior.
repeated.bottom
Número acumulado de fotogramas en los que el campo inferior se repite respecto al campo inferior del fotograma anterior.
El filtro admite las siguientes opciones:
intl_thres
Establece el umbral de entrelazado.
prog_thres
Establece el umbral de progresividad.
rep_thres
Umbral para la detección de campos repetidos.
half_life
Número de fotogramas tras los cuales la contribución de un fotograma dado a las estadísticas se reduce a la mitad (es decir, contribuye solo con 0.5 a su clasificación). El valor predeterminado de 0 significa que todos los fotogramas vistos reciben un peso completo de 1.0 para siempre.
analyze_interlaced_flag
Cuando este valor no es 0, idet usará el número especificado de fotogramas para determinar si el flag interlaced es preciso, sin contar los fotogramas indeterminados. Si se determina que el flag es preciso, se usará sin más cálculos; si se determina que es impreciso, se borrará sin más cálculos. Esto permite insertar el filtro idet como un método de bajo coste computacional para limpiar el flag interlaced
11.135.1 Ejemplos
Inspeccione el orden de campos de los primeros 360 fotogramas de un vídeo, con todo detalle:
ffmpeg -i INPUT -filter:v idet,metadata=mode=print -frames:v 360 -an -f null -
El filtro idet añadirá metadatos de análisis a cada fotograma, que después se descartan. Al final, el filtro también imprime un informe final con estadísticas.
11.136 il
Desentrelaza o entrelaza campos.
Este filtro permite procesar los campos de imágenes entrelazadas sin desentrelazarlas. El desentrelazado divide el fotograma de entrada en 2 campos (las llamadas semi-imágenes). Las líneas impares se trasladan a la mitad superior de la imagen de salida y las líneas pares a la mitad inferior. Puede procesarlos (filtrarlos) de forma independiente y volver a entrelazarlos después.
El filtro admite las siguientes opciones:
luma_mode, l chroma_mode, c alpha_mode, a
Los valores disponibles para luma_mode, chroma_mode y alpha_mode son:
‘none’
No hace nada.
‘deinterleave, d’
Desentrelaza los campos, colocando uno encima del otro.
‘interleave, i’
Entrelaza los campos. Revierte el efecto del desentrelazado.
El valor predeterminado es none.
luma_swap, ls chroma_swap, cs alpha_swap, as
Intercambia los campos de luma/chroma/alpha. Intercambia las líneas pares e impares. El valor predeterminado es 0.
11.136.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.137 inflate
Aplica el efecto inflate al vídeo.
Este filtro sustituye el píxel por el promedio local (3x3), teniendo en cuenta únicamente los valores superiores al del píxel.
Admite las siguientes opciones:
threshold0 threshold1 threshold2 threshold3
Limita el cambio máximo para cada plano; el valor predeterminado es 65535. Si es 0, el plano permanece sin cambios.
11.137.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.138 interlace, interlace_vulkan
Filtro sencillo de entrelazado a partir de contenido progresivo. Entrelaza las líneas superiores (o inferiores) de los fotogramas impares con las líneas inferiores (o superiores) de los fotogramas pares, reduciendo a la mitad la velocidad de fotogramas y conservando la altura de la imagen.
Original Original New Frame
Frame 'j' Frame 'j+1' (tff)
========== =========== ==================
Line 0 --------------------> Frame 'j' Line 0
Line 1 Line 1 ----> Frame 'j+1' Line 1
Line 2 ---------------------> Frame 'j' Line 2
Line 3 Line 3 ----> Frame 'j+1' Line 3
... ... ...
New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
Admite los siguientes parámetros opcionales:
scan
Esto determina si el fotograma entrelazado se toma de las líneas pares (tff, predeterminado) o impares (bff) del fotograma progresivo.
lowpass
Filtro de paso bajo vertical para evitar el parpadeo del entrelazado y reducir los patrones de muaré.
‘0, off’
Deshabilita el filtro de paso bajo vertical
‘1, linear’
Habilita el filtro lineal (predeterminado)
‘2, complex’
Habilita el filtro complejo. Reduce algo menos el parpadeo y el muaré, pero conserva mejor el detalle y la sensación subjetiva de nitidez.
11.139 kerndeint
Desentrelaza el vídeo de entrada aplicando el desentrelazado adaptativo por kernel de Donald Graft. Actúa sobre las partes entrelazadas de un vídeo para producir fotogramas progresivos.
A continuación se describen los parámetros admitidos.
thresh
Establece el umbral que afecta a la tolerancia del filtro al determinar si una línea de píxeles debe procesarse. Debe ser un entero en el rango [0,255] y su valor predeterminado es 10. Un valor de 0 hará que el proceso se aplique a todos los píxeles.
map
Pinta de blanco los píxeles que superan el valor del umbral si se establece en 1. El valor predeterminado es 0.
order
Establece el orden de los campos. Intercambia los campos si se establece en 1, y los deja tal cual si es 0. El valor predeterminado es 0.
sharp
Habilita el realce de nitidez adicional si se establece en 1. El valor predeterminado es 0.
twoway
Habilita el realce de nitidez bidireccional si se establece en 1. El valor predeterminado es 0.
11.139.1 Ejemplos
-
Aplicar los valores predeterminados:
kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0 -
Habilitar el realce de nitidez adicional:
kerndeint=sharp=1 -
Pintar de blanco los píxeles procesados:
kerndeint=map=1
11.140 kirsch
Aplica el operador kirsch al flujo de vídeo de entrada.
El filtro admite la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. De forma predeterminada, con el valor 0xf, se procesan todos los planos.
scale
Establece el valor por el que se multiplicará el resultado filtrado.
delta
Establece el valor que se sumará al resultado filtrado.
11.140.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.141 lagfun
Actualiza lentamente los píxeles más oscuros.
Este filtro hace que los destellos de luz breves parezcan más largos. Este filtro admite las siguientes opciones:
decay
Establece el factor de decaimiento. El valor predeterminado es .95. El rango permitido va de 0 a 1.
planes
Establece qué planos filtrar. El valor predeterminado es all. El rango permitido va de 0 a 15.
11.141.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.142 lenscorrection
Corrige la distorsión radial de la lente
Este filtro puede usarse para corregir la distorsión radial que puede producirse por el uso de lentes gran angulares, rectificando así la imagen. Para encontrar los parámetros adecuados se pueden usar herramientas disponibles, por ejemplo, como parte de opencv, o simplemente ir probando. Para usar opencv, use el ejemplo de calibración (en samples/cpp) de las fuentes de opencv y extraiga los coeficientes k1 y k2 de la matriz resultante.
Tenga en cuenta que, en la práctica, el mismo filtro está disponible en las herramientas de código abierto Krita y Digikam del proyecto KDE.
A diferencia del filtro vignette, que también puede usarse para compensar errores de la lente, este filtro corrige la distorsión de la imagen, mientras que vignette corrige la distribución del brillo; por eso, en algunos casos puede convenir usar ambos filtros juntos, aunque habrá que cuidar el orden, es decir, si el viñeteado debe aplicarse antes o después de la corrección de lente.
11.142.1 Opciones
El filtro admite las siguientes opciones:
cx
Coordenada x relativa del punto focal de la imagen y, por tanto, del centro de la distorsión. Este valor tiene un rango [0,1] y se expresa como fracción del ancho de la imagen. El valor predeterminado es 0.5.
cy
Coordenada y relativa del punto focal de la imagen y, por tanto, del centro de la distorsión. Este valor tiene un rango [0,1] y se expresa como fracción de la altura de la imagen. El valor predeterminado es 0.5.
k1
Coeficiente del término de corrección cuadrático. Este valor tiene un rango [-1,1]. 0 significa que no hay corrección. El valor predeterminado es 0.
k2
Coeficiente del término de corrección bicuadrática. Este valor tiene un rango [-1,1]. 0 significa que no hay corrección. El valor predeterminado es 0.
i
Establece el tipo de interpolación. Puede ser nearest o bilinear. El valor predeterminado es nearest.
fc
Especifica el color de los píxeles no mapeados. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)"Color" sección del manual de ffmpeg-utils. El color predeterminado es black@0.
La fórmula que genera la corrección es:
r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
donde r_0 es la mitad de la diagonal de la imagen, y r_src y r_tgt son las distancias al punto focal en las imágenes de origen y de destino, respectivamente.
11.142.2 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.143 lensfun
Aplica la corrección de lente mediante la biblioteca lensfun (http://lensfun.sourceforge.net/).
El filtro lensfun requiere la marca de la cámara, el modelo de la cámara y el modelo de la lente para aplicar la corrección de lente. El filtro carga la base de datos de lensfun y la consulta para encontrar las entradas de cámara y lente correspondientes. Mientras estas entradas puedan encontrarse con las opciones indicadas, el filtro podrá aplicar correcciones a los fotogramas. Tenga en cuenta que, si las cadenas son incompletas, el filtro elegirá la coincidencia más aproximada con las opciones dadas, e informará de la cámara y la lente elegidas (registrado con el nivel "info"). Debe proporcionar la marca, el modelo de cámara y el modelo de lente, ya que son obligatorios.
Para obtener una lista de las marcas y modelos disponibles, omita una o ambas opciones make y model. El filtro enviará la lista completa al registro con nivel INFO. La primera columna es la marca y la segunda columna es el modelo. Para obtener una lista de las lentes disponibles, asigne cualquier valor a make y model y omita la opción lens_model. El filtro enviará la lista completa de lentes al registro con nivel INFO. La herramienta ffmpeg terminará después de que se imprima la lista.
El filtro admite las siguientes opciones:
make
La marca de la cámara (por ejemplo, "Canon"). Esta opción es obligatoria.
model
El modelo de la cámara (por ejemplo, "Canon EOS 100D"). Esta opción es obligatoria.
lens_model
El modelo de la lente (por ejemplo, "Canon EF-S 18-55mm f/3.5-5.6 IS STM"). Esta opción es obligatoria.
db_path
La ruta completa al directorio de la base de datos de lentes. Si no se establece, el filtro intentará cargar la base de datos desde la ruta de instalación con la que se compiló la biblioteca. De forma predeterminada no está definida.
mode
El tipo de corrección que se aplicará. Los siguientes valores son opciones válidas:
‘vignetting’
Habilita la corrección del viñeteado de la lente.
‘geometry’
Habilita la corrección de la geometría de la lente. Es la opción predeterminada.
‘subpixel’
Habilita la corrección de las aberraciones cromáticas.
‘vig_geo’
Habilita la corrección del viñeteado y de la geometría de la lente.
‘vig_subpixel’
Habilita la corrección del viñeteado de la lente y de las aberraciones cromáticas.
‘distortion’
Habilita la corrección tanto de la geometría de la lente como de las aberraciones cromáticas.
‘all’
Habilita todas las correcciones posibles.
focal_length
La distancia focal de la imagen o vídeo (zoom; se espera que sea constante para vídeo). Por ejemplo, una lente de 18–55mm tiene un rango de distancia focal de [18–55], por lo que debería elegirse un valor dentro de ese rango al usar esa lente. El valor predeterminado es 18.
aperture
La apertura de la imagen o vídeo (se espera que sea constante para vídeo). Tenga en cuenta que la apertura solo se usa para la corrección del viñeteado. El valor predeterminado es 3.5.
focus_distance
La distancia de enfoque de la imagen o vídeo (se espera que sea constante para vídeo). Tenga en cuenta que la distancia de enfoque solo se usa para el viñeteado y afecta solo ligeramente al proceso de corrección del viñeteado. Si se desconoce, déjela en el valor predeterminado (que es 1000).
scale
El factor de escala que se aplica después de la transformación. Tras la corrección, el vídeo ya no es necesariamente rectangular. Este parámetro controla cuánta parte de la imagen resultante es visible. El valor 0 significa que se elegirá automáticamente un valor tal que haya poca o ninguna área sin mapear en la imagen de salida. 1.0 significa que no se aplica ningún escalado adicional. Valores más bajos pueden hacer visible más parte de la imagen corregida, mientras que valores más altos pueden evitar áreas sin mapear en la salida.
target_geometry
La geometría de destino de la imagen o vídeo de salida. Los siguientes valores son opciones válidas:
‘rectilinear (default)’ ‘fisheye’ ‘panoramic’ ‘equirectangular’ ‘fisheye_orthographic’ ‘fisheye_stereographic’ ‘fisheye_equisolid’ ‘fisheye_thoby’ reverse
Aplica el inverso de la corrección de imagen (en lugar de corregir la distorsión, la aplica).
interpolation
El tipo de interpolación utilizado al corregir la distorsión. Los siguientes valores son opciones válidas:
‘nearest’ ‘linear (default)’ ‘lanczos’
11.143.1 Ejemplos
-
Aplique la corrección de lente con marca "Canon", modelo de cámara "Canon EOS 100D" y modelo de lente "Canon EF-S 18-55mm f/3.5-5.6 IS STM", con una distancia focal de "18" y una apertura de "8.0".
ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov -
Aplique lo mismo que antes, pero solo para los primeros 5 segundos de vídeo.
ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
11.144 lcevc
Filtro Low Complexity Enhancement Video Codec basado en liblcevc_dec (https://github.com/v-novaltd/LCEVCdec).
11.145 libplacebo
Filtro de procesamiento flexible acelerado por GPU, basado en libplacebo (https://code.videolan.org/videolan/libplacebo).
11.145.1 Opciones
Las opciones de este filtro se dividen en las siguientes secciones:
11.145.1.1 Modo de salida
Estas opciones controlan el modo de salida general. De forma predeterminada, libplacebo intentará preservar en la medida de lo posible la colorimetría y el tamaño de origen, pero aplicará cualquier grano de película incrustado, metadatos de Dolby Vision o SAR anamórfico presentes en los fotogramas de origen.
inputs
Establece el número de entradas. Esto se puede usar, junto con la variable idx, para permitir colocar o mezclar varias entradas dentro del fotograma de salida. En la práctica, esto habilita una funcionalidad similar a hstack, overlay, etc.
w h
Establece la expresión de dimensiones del vídeo de salida. Los valores predeterminados son iw e ih.
Permite las mismas expresiones que el filtro scale.
crop_x crop_y
Establece las expresiones x/y de recorte de entrada; los valores predeterminados son (iw-cw)/2 y (ih-ch)/2.
crop_w crop_h
Establece las expresiones de ancho/alto de recorte de entrada; los valores predeterminados son iw e ih.
pos_x pos_y
Establece las expresiones x/y de colocación de salida; los valores predeterminados son (ow-pw)/2 y (oh-ph)/2.
pos_w pos_h
Establece las expresiones de ancho/alto de colocación de salida; los valores predeterminados son ow y oh.
rotate
Rota el fotograma de entrada en sentido horario según el ángulo especificado.
‘0, 360’ ‘90’ ‘180’ ‘270’ fps
Establece la velocidad de fotogramas de salida. Puede ser un valor racional, p. ej. 60000/1001. Si se establece en la cadena especial none (el valor predeterminado), las marcas de tiempo de entrada se pasarán a la salida sin modificar. En caso contrario, los fotogramas de vídeo de entrada se interpolarán según sea necesario para reescalar el vídeo a la velocidad de fotogramas de destino especificada, de la forma determinada por la opción frame_mixer.
format
Establece la anulación del formato de salida. Si no se establece (el valor predeterminado), los fotogramas se emitirán en el mismo formato que sus respectivos fotogramas de entrada. En caso contrario, se realizará la conversión de formato.
force_original_aspect_ratio force_divisible_by
Funcionan igual que las opciones homónimas del filtro scale. Tenga en cuenta que force_divisible_by también funciona con fit_sense=constraint.
reset_sar
Si está habilitada, los fotogramas de salida siempre tendrán una relación de aspecto de píxel de 1:1. Si está deshabilitada (el valor predeterminado), cualquier discrepancia de relación de aspecto, incluidas las procedentes de, por ejemplo, fuentes de vídeo anamórfico, se traslada a la relación de aspecto de píxel de salida.
normalize_sar
Similar a reset_sar, pero en lugar de estirar el contenido de vídeo para llenar la nueva relación de aspecto de salida, el contenido se rellena o se recorta según sea necesario. Mutuamente excluyente con fit_mode. Deshabilitada de forma predeterminada.
pad_crop_ratio
Especifica una proporción (entre 0.0 y 1.0) entre relleno y recorte cuando la relación de aspecto de entrada no coincide con la de salida y normalize_sar está en efecto. El valor predeterminado 0.0 siempre rellena el contenido con bordes negros, mientras que un valor de 1.0 siempre recorta partes del contenido. También son posibles valores intermedios, que dan lugar a una combinación de ambos enfoques.
fit_mode
Especifica la estrategia de ajuste del contenido según una lista de modos predefinidos. Determina cómo se coloca la imagen de entrada dentro del rectángulo de recorte de destino (definido por pos_x/y y pos_w/h). Los nombres y sus implementaciones están tomados de la propiedad CSS ’object-fit’. Tenga en cuenta que esta opción es mutuamente excluyente con normalize_sar. El valor predeterminado es fill. Los valores válidos son:
‘fill’
Estira la entrada hasta el rectángulo de salida, ignorando las discrepancias de relación de aspecto. Tenga en cuenta que, a menos que reset_sar también esté habilitada, la salida seguirá teniendo etiquetada la relación de aspecto de píxel correcta.
‘contain’
Escala la entrada para que quepa dentro de la salida, preservando la relación de aspecto mediante relleno. Equivalente a normalize_sar con pad_crop_ratio establecido en 0.0.
‘cover’
Escala la entrada para llenar la salida, preservando la relación de aspecto mediante recorte. Equivalente a normalize_sar con pad_crop_ratio establecido en 1.0.
‘none, place’
No escala la entrada. La entrada se colocará dentro del rectángulo de salida en su tamaño natural, lo que puede dar lugar a relleno o recorte adicionales.
‘scale_down’
Reduce la escala de la entrada tanto como sea necesario para que quepa dentro de la salida. Equivale a contain o a none, según si la entrada es mayor que la salida o no.
fit_sense
Cuando se usa fit_mode, esta opción controla cómo se aplica la estrategia de ajuste respecto a la resolución de salida especificada. Mutuamente excluyente con force_original_aspect_ratio. Los valores válidos son:
‘target’
La resolución de salida calculada se toma como el tamaño exacto del fotograma de salida. Este es el comportamiento predeterminado.
‘constraint’
La resolución de salida calculada es una referencia de tamaño respecto a la cual se aplica el modo de ajuste, ampliando o reduciendo el tamaño real del fotograma según sea necesario para ajustar el contenido.
fillcolor
Establece el color usado para rellenar el área de salida no cubierta por la imagen de salida, por ejemplo como resultado de normalize_sar. Para conocer la sintaxis general de esta opción, consulte la (ffmpeg-utils)"Color" sección del manual de ffmpeg-utils. El valor predeterminado es black@0.
corner_rounding
Renderiza los fotogramas con esquinas redondeadas. El valor, dado como un número en coma flotante entre 0.0 y 1.0, indica el grado relativo de redondeo, desde totalmente cuadrado hasta totalmente circular. Dicho de otro modo, da el radio dividido entre la mitad de la longitud del lado más corto. El valor predeterminado es 0.0.
lut
Especifica una LUT personalizada (en formato Adobe .cube) para aplicar a los colores como parte de la conversión de color. La interpretación exacta depende del valor de lut_type.
lut_type
Controla la interpretación de los valores de color que entran y salen de la LUT especificada en lut. Los valores válidos son:
‘auto’
Elige automáticamente la interpretación de la LUT a partir de los metadatos etiquetados y, en caso contrario, recurre a ‘native’. (Predeterminado)
‘native’
Se aplica al contenido de imagen en bruto en su espacio de color RGB nativo (luz no lineal), antes de la conversión al espacio de color de salida.
‘normalized’
Se aplica al contenido de imagen RGB normalizado, en luz lineal, antes de la conversión al espacio de color de salida.
‘conversion’
Sustituye por completo la conversión del espacio de color de la imagen al espacio de color de salida. Si existe una LUT de este tipo, tiene la máxima prioridad y anula cualquier perfil ICC, así como las opciones relacionadas con el mapeo tonal y la colorimetría de salida (color_primaries, color_trc).
extra_opts
Pasa opciones de configuración interna adicionales de libplacebo. Estas pueden especificarse como una lista de pares clave=valor separados por ’:’. El siguiente ejemplo muestra cómo configurar un kernel de filtro personalizado ("EWA LanczosSharp") y usarlo para duplicar la resolución de la imagen de entrada:
-vf "libplacebo=w=iw*2:h=ih*2:extra_opts='upscaler=custom\:upscaler_preset=ewa_lanczos\:upscaler_blur=0.9812505644269356'"
shader_cache
Ruta del directorio de caché que libplacebo usará para almacenar y cargar objetos de shader en caché. Esta caché no se limpia automáticamente. Si la ruta no termina en un separador de directorio, los nombres de archivo generados quedarán, en la práctica, prefijados por el último componente de la ruta. Todos los directorios deben existir ya.
-vf "libplacebo=shader_cache=/tmp/pl-shader-"
colorspace color_primaries color_trc range chroma_location
Configura el espacio de color en el que se entregarán los fotogramas de salida. El valor predeterminado auto entrega los fotogramas en el mismo formato que los fotogramas de entrada, sin ningún cambio. Para cualquier otro valor, se realizará la conversión.
Consulte el filtro setparams para obtener una lista de los valores posibles.
alpha_mode
Elige el modo alfa de salida deseado, cuando el formato de salida tiene un canal alfa. Consulte el filtro setparams para obtener una lista de los valores posibles.
apply_filmgrain
Aplica el grano de película (por ejemplo, de AV1 o H.274) si está presente en los fotogramas de origen y lo elimina de la salida. Habilitado de forma predeterminada.
apply_dolbyvision
Aplica los metadatos RPU de Dolby Vision si están presentes en los fotogramas de origen y los elimina de la salida. Habilitado de forma predeterminada. Tenga en cuenta que Dolby Vision siempre generará BT.2020+PQ, anulando los metadatos habituales del fotograma de entrada. Estos también se tomarán como los valores de auto para las opciones de salida de fotograma correspondientes.
Además de las constantes de expresión documentadas para el filtro scale, las opciones crop_w, crop_h, crop_x, crop_y, pos_w, pos_h, pos_x y pos_y también pueden contener las siguientes constantes:
in_idx, idx
El índice numérico (basado en 0) del flujo de entrada actualmente activo.
crop_w, cw crop_h, ch
Los valores calculados de crop_w y crop_h.
pos_w, pw pos_h, ph
Los valores calculados de pos_w y pos_h.
in_t, t
La marca de tiempo del fotograma de entrada, en segundos. NAN si la marca de tiempo de entrada es desconocida.
out_t, ot
La marca de tiempo del fotograma de entrada, en segundos. NAN si la marca de tiempo de entrada es desconocida.
n
El número de fotograma de entrada, comenzando en 0.
11.145.1.2 Escalado
Las opciones de esta sección controlan cómo realiza libplacebo el escalado ascendente y, si es necesario, el escalado descendente. Tenga en cuenta que libplacebo siempre opera internamente sobre contenido 4:4:4, por lo que cualquier formato de croma submuestreado, como yuv420p, se sobremuestreará y submuestreará necesariamente como parte del proceso de renderizado. Esto significa que el escalado puede estar en efecto incluso si la resolución de origen y la de destino son la misma.
upscaler downscaler
Configura el kernel de filtro usado para el escalado ascendente y descendente. Los valores predeterminados respectivos son spline36 y mitchell. Para obtener la lista completa de valores posibles, pase help a estas opciones. Los valores más importantes son:
‘none’
Fuerza el uso del muestreo de textura integrado de la GPU (normalmente bilineal). Extremadamente rápido, pero de baja calidad, especialmente al reducir la escala.
‘bilinear’
Interpolación bilineal. Por lo general puede hacerse sin coste en las GPU, salvo cuando ello provocaría aliasing. Rápida y de baja calidad.
‘nearest’
Interpolación por vecino más cercano. Nítida, pero con mucho aliasing.
‘oversample’
Algoritmo visualmente similar a la interpolación por vecino más cercano, pero que intenta preservar la relación de aspecto de los píxeles. Adecuado para pixel art, ya que produce una distorsión mínima del aspecto artístico.
‘lanczos’
Kernel de interpolación sinc-sinc estándar.
‘spline36’
Aproximación mediante spline cúbico de lanczos. Sin diferencia de rendimiento, pero con un poco menos de ringing.
‘ewa_lanczos’
Versión de promedio ponderado elíptico de lanczos, basada en un kernel jinc-jinc. También se conoce popularmente simplemente como "Jinc scaling". Lento, pero de muy alta calidad.
‘gaussian’
Kernel gaussiano. Tiene ciertas propiedades matemáticas ideales, pero es subjetivamente muy borroso.
‘mitchell’
Spline cúbico BC con los parámetros recomendados por Mitchell y Netravali. Muy poco ringing.
frame_mixer
Controla el kernel usado para mezclar fotogramas temporalmente. El valor predeterminado es none, que deshabilita la mezcla de fotogramas. Para obtener la lista completa de valores posibles, pase help a esta opción. Los valores más importantes son:
‘none’
Deshabilita la mezcla de fotogramas, dando un resultado equivalente a la semántica "nearest neighbour".
‘oversample’
Sobremuestrea el vídeo de entrada para crear un efecto de tipo "Smooth Motion": si un fotograma de salida cayera exactamente en la transición entre dos fotogramas de vídeo, se mezcla según el solapamiento relativo. Esta es la opción recomendada siempre que se desee preservar el aspecto subjetivo original.
‘mitchell_clamp’
Kernel de filtro más grande que interpola varios fotogramas de forma suave, diseñado para eliminar en la medida de lo posible el ringing y otros artefactos. Esta es la opción recomendada siempre que se desee la máxima suavidad visual.
‘linear’
Mezcla/fundido lineal entre fotogramas. Especialmente útil para construir, por ejemplo, presentaciones de diapositivas.
antiringing
Habilita el anti-ringing (para filtros que no sean EWA). El valor (entre 0.0 y 1.0) configura la intensidad del algoritmo anti-ringing. Puede aumentar el aliasing si se establece demasiado alto. Deshabilitado de forma predeterminada.
sigmoid
Habilita la compresión sigmoidal durante el escalado ascendente. Reduce ligeramente el ringing. Habilitado de forma predeterminada.
11.145.1.3 Desentrelazado
El desentrelazado se admite automáticamente cuando los fotogramas están marcados como entrelazados; sin embargo, los fotogramas no se desentrelazan a menos que se elija un algoritmo de desentrelazado.
deinterlace
El algoritmo de desentrelazado que se usará.
‘weave’
No aplica desentrelazado: combina (weave) los campos en un único fotograma. Es el valor predeterminado.
‘bob’
Desentrelazado bob simple: repite cada línea de campo dos veces.
‘yadif’
Yet another deinterlacing filter (otro filtro de desentrelazado más). Consulte el filtro yadif para más información.
‘bwdif’
Bob Weaver Deinterlacing Filter. Consulte el filtro bwdif para más información.
skip_spatial_check
Omite la comprobación espacial del desentrelazado al usar el desentrelazado yadif.
send_fields
Genera un fotograma por cada campo, en lugar de uno por cada fotograma. Tenga en cuenta que esto siempre duplicará la velocidad de fotogramas de salida indicada, incluso si la entrada no contiene fotogramas entrelazados. Deshabilitado de forma predeterminada.
11.145.1.4 Eliminación de bandas
Libplacebo incluye un filtro de eliminación de bandas (debanding) integrado que resulta eficaz para contrarrestar muchas causas habituales de bandeo y bloques. Se recomienda encarecidamente activarlo siempre que se busque calidad.
deband
Habilita el algoritmo (rápido) de eliminación de bandas. Deshabilitado de forma predeterminada.
deband_iterations
Número de iteraciones del algoritmo de eliminación de bandas. Cada iteración se realiza con un radio progresivamente mayor (y un umbral menor). Los valores recomendados están en el rango de 1 a 4. El valor predeterminado es 1.
deband_threshold
Intensidad del filtro de eliminación de bandas. Cuanto mayor sea el número, más agresiva será la eliminación de bandas. El valor predeterminado es 4.0.
deband_radius
Radio del filtro de eliminación de bandas. Un radio mayor es mejor para gradientes suaves, mientras que uno menor es mejor para gradientes pronunciados. El valor predeterminado es 16.0.
deband_grain
Cantidad de grano adicional que se añade a la salida. Ayuda a ocultar imperfecciones. El valor predeterminado es 6.0.
11.145.1.5 Ajuste de color
Un conjunto de controles de color subjetivos. No son muy rigurosos, por lo que el efecto exacto variará algo según los primarios y el espacio de color de la entrada.
brightness
Incremento de brillo, entre -1.0 y 1.0. El valor predeterminado es 0.0.
contrast
Ganancia de contraste, entre 0.0 y 16.0. El valor predeterminado es 1.0.
saturation
Ganancia de saturación, entre 0.0 y 16.0. El valor predeterminado es 1.0.
hue
Desplazamiento de matiz en radianes, entre -3.14 y 3.14. El valor predeterminado es 0.0. Esto rota el subvector UV, usando de forma predeterminada los coeficientes BT.709 para entradas RGB.
gamma
Ajuste de gamma, entre 0.0 y 16.0. El valor predeterminado es 1.0.
temperature
Ajuste de la temperatura de color. Los valores más bajos hacen que la salida sea más cálida/rojiza, hasta 1667, mientras que los valores más altos la hacen más fría/azulada, hasta 25000. El valor predeterminado es 6500 (blanco neutro).
cones
Modelo de conos que se usará para simular el daltonismo. Acepta cualquier combinación de l, m y s. A continuación se muestran algunos ejemplos:
‘m’
Deuteranomalía / deuteranopía (afecta al 3 %-4 % de la población)
‘l’
Protanomalía / protanopía (afecta al 1 %-2 % de la población)
‘l+m’
Monocromacía (muy poco frecuente)
‘l+m+s’
Acromatopsia (pérdida completa de la visión diurna, extremadamente rara)
cone-strength
Factor de ganancia para los conos especificados por cones, entre 0.0 y 10.0. Un valor de 1.0 no produce ningún cambio en la visión del color. Un valor de 0.0 (el predeterminado) simula la pérdida completa de esos conos. Los valores superiores a 1.0 exageran las diferencias entre conos, lo que puede ayudar a compensar una visión del color reducida.
11.145.1.6 Detección de picos
Para ayudar con fuentes que solo tienen metadatos HDR10 estáticos (o ningún marcado en absoluto), libplacebo usa su propio compute shader interno de análisis de fotogramas para analizar los fotogramas de origen y adaptar la función de mapeo de tonos en tiempo real. Si esto resulta demasiado lento, o si se necesitan resultados exactamente reproducibles fotograma a fotograma, se recomienda desactivar esta función.
peak_detect
Habilita la detección de picos HDR. Ignora los valores estáticos de MaxCLL/MaxFALL en favor de la detección dinámica a partir de la entrada. Tenga en cuenta que los valores detectados no se escriben de vuelta en los fotogramas de salida; solo sirven para guiar el proceso interno de mapeo de tonos. Habilitado de forma predeterminada.
smoothing_period
Periodo de suavizado de la detección de picos, entre 0.0 y 1000.0. Los valores más altos hacen que la detección de picos responda con menor rapidez a los cambios en la entrada. El valor predeterminado es 20.0.
scene_threshold_low scene_threshold_high
Umbrales inferior y superior para la detección de cambios de escena. Se expresan en una escala logarítmica entre 0.0 y 100.0. Sus valores predeterminados son 1.0 y 3.0, respectivamente. Si se asigna un valor negativo a cualquiera de ellos, esta funcionalidad se deshabilita.
percentile
Qué percentil del histograma de brillo del fotograma se usa como pico de origen para el mapeo de tonos. El valor predeterminado es 99.995, un valor bastante conservador. Si se establece en 100.0, se deshabilita la medición del histograma del fotograma y en su lugar se usa el brillo pico real para el mapeo de tonos.
11.145.1.7 Mapeo de tonos
Las opciones de esta sección controlan cómo realiza libplacebo el mapeo de tonos y el mapeo de gama al tratar discrepancias entre contenido de gama amplia o HDR. En general, libplacebo depende de un marcado preciso del origen y de la información de gama de la pantalla de masterización para producir los mejores resultados.
gamut_mode
Cómo tratar los colores fuera de gama que pueden producirse como resultado del mapeo colorimétrico de gama.
‘clip’
No hace nada; simplemente recorta los colores fuera de rango al volumen RGB. Calidad baja pero extremadamente rápido.
‘perceptual’
Recorta suavemente los colores de forma perceptual al volumen de la gama. Es el valor predeterminado.
‘relative’
Recorte duro colorimétrico relativo. Similar a perceptual, pero sin la rodilla suave.
‘saturation’
Mapeo de saturación: mapea los primarios directamente a primarios en el espacio RGB. No se recomienda salvo para gráficos por ordenador artificiales en los que se desee una visualización brillante y saturada.
‘absolute’
Recorte duro colorimétrico absoluto. No realiza ningún ajuste del punto blanco.
‘desaturate’
Desatura de forma brusca los colores fuera de gama hacia el blanco, preservando la luminancia. Tiende a distorsionar la apariencia visual de los objetos brillantes.
‘darken’
Reduce linealmente el brillo del contenido para preservar los detalles saturados, y a continuación recorta los colores fuera de gama restantes.
‘warn’
Resalta los píxeles fuera de gama (invirtiéndolos o marcándolos).
‘linear’
Reduce linealmente la cromaticidad de toda la imagen para que quepa dentro del volumen de color de destino. Tenga cuidado al usar esta opción con fuentes BT.2020 sin metadatos de masterización adecuados, ya que esto provocará una desaturación excesiva.
tonemapping
Algoritmo de mapeo de tonos que se usará. Los valores disponibles son:
‘auto’
Selección automática basada en heurísticas internas. Es el valor predeterminado.
‘clip’
No realiza mapeo de tonos; simplemente recorta los colores fuera de rango. Conserva una precisión de color perfecta para los colores dentro de rango, pero destruye por completo la información fuera de rango. No realiza ninguna adaptación del punto negro. No es configurable.
‘st2094-40’
EETF del anexo B de SMPTE ST 2094-40, que aplica las curvas de Bézier basadas en los metadatos dinámicos de HDR10+ para realizar el mapeo de tonos. La OOTF usada se ajusta según la relación entre la luminancia pico de la pantalla objetivo y la real.
‘st2094-10’
EETF del anexo B.2 de SMPTE ST 2094-10, que tiene en cuenta la luminancia media de la señal de entrada además del máximo y el mínimo. El parámetro configurable contrast influye en la pendiente del segmento de salida lineal, con un valor predeterminado de 1.0 para no aumentar ni disminuir el contraste. Tenga en cuenta que esto actualmente no incluye los controles subjetivos de ganancia/desplazamiento/gamma definidos en el anexo B.3.
‘bt.2390’
EETF del informe ITU-R BT.2390, una atenuación mediante spline de Hermite con segmento lineal. El desplazamiento del punto de rodilla es configurable. Tenga en cuenta que este parámetro tiene como valor predeterminado 1.0, en lugar del valor 0.5 de la especificación ITU-R.
‘bt.2446a’
EETF del informe ITU-R BT.2446, método A. Diseñado para fuentes HDR bien masterizadas. Puede usarse tanto para el mapeo de tonos directo como para el inverso. No es configurable.
‘spline’
Spline simple formado por dos polinomios, unidos por un único punto de pivote. El parámetro indica el punto de pivote (en el espacio PQ), con un valor predeterminado de 0.30. Puede usarse tanto para el mapeo de tonos directo como para el inverso.
‘reinhard’
Algoritmo de mapeo de tonos global, simple y no lineal. El parámetro especifica el coeficiente de contraste local en el pico de la pantalla. En esencia, un parámetro de 0.5 implica que el blanco de referencia tendrá aproximadamente la mitad de brillo que con el recorte. El valor predeterminado es 0.5, lo que da lugar a la formulación más simple de esta función.
‘mobius’
Generalización del algoritmo de mapeo de tonos reinhard que admite una pendiente lineal adicional cerca del negro. El parámetro de mapeo de tonos indica el compromiso entre la sección lineal y la no lineal. En esencia, para un parámetro x dado, todo valor de color por debajo de x se mapeará linealmente, mientras que los valores superiores recibirán un mapeo de tonos no lineal. Los valores cercanos a 1.0 hacen que esta curva se comporte como clip, mientras que los valores cercanos a 0.0 hacen que se comporte como reinhard. El valor predeterminado es 0.3, que ofrece un buen equilibrio entre la precisión colorimétrica y la preservación de los detalles fuera de gama.
‘hable’
Algoritmo de mapeo de tonos fílmico y segmentado, desarrollado por John Hable para su uso en Uncharted 2, inspirado en un algoritmo de mapeo de tonos similar usado por Kodak. Se popularizó gracias a su uso en videojuegos con renderizado HDR. Preserva muy bien tanto los detalles oscuros como los brillantes, pero tiene el inconveniente de cambiar el brillo medio de forma bastante significativa. Es, en cierto modo, similar a reinhard con el parámetro 0.24.
‘gamma’
Ajusta una función gamma (potencia) para la transferencia entre el espacio de color de origen y el de destino, lo que da como resultado una rodilla dura perceptual que une dos secciones aproximadamente lineales. Esto preserva los detalles en todas las escalas con bastante precisión, pero puede dar lugar a una imagen con un aspecto apagado o deslucido. El parámetro se usa como punto de corte, con un valor predeterminado de 0.5.
‘linear’
Estira linealmente el rango de entrada hasta el rango de salida, en el espacio PQ. Esto preserva todos los detalles con precisión, pero da como resultado un brillo medio significativamente distinto. Puede usarse tanto para el mapeo de tonos inverso como para el habitual. El parámetro puede usarse como coeficiente de ganancia lineal adicional (con un valor predeterminado de 1.0).
tonemapping_param
Para las funciones de mapeo de tonos ajustables, este parámetro puede usarse para afinar el comportamiento de la curva. Consulte la documentación de tonemapping. El valor predeterminado 0.0 se sustituye por el valor preferido de la curva.
inverse_tonemapping
Si se habilita, este filtro también intentará estirar las señales SDR para llenar los volúmenes de color de salida HDR. Deshabilitado de forma predeterminada.
tonemapping_lut_size
Tamaño de la LUT de mapeo de tonos, entre 2 y 1024. El valor predeterminado es 256. Tenga en cuenta que esta cifra se eleva al cuadrado cuando se combina con peak_detect.
contrast_recovery
Intensidad de la recuperación de contraste. Si se establece en un valor superior a 0.0, la imagen de origen se divide en componentes de alta y baja frecuencia, y una parte de la imagen de alta frecuencia se vuelve a sumar a la salida con el mapeo de tonos aplicado. Puede producir artefactos de "ringing" excesivos en algunas fuentes HDR, pero puede mejorar la nitidez subjetiva y el detalle que queda en la imagen tras el mapeo de tonos. El valor predeterminado es 0.30.
contrast_smoothness
Tamaño del núcleo de paso bajo para la recuperación de contraste. El valor predeterminado es 3.5. Aumentarlo o reducirlo afectará sustancialmente al aspecto visual. No tiene efecto cuando contrast_recovery está deshabilitado.
11.145.1.8 Tramado
De forma predeterminada, libplacebo aplica tramado (dithering) siempre que es necesario, lo que incluye la renderización a cualquier formato entero con una precisión inferior a 16 bits. Se recomienda dejar esto siempre activado, ya que no hacerlo puede provocar bandeo visible en la salida, incluso con el filtro debanding habilitado. Si se necesita el máximo rendimiento, use ordered_fixed en lugar de deshabilitar el tramado.
dithering
Método de tramado que se usará. Acepta los siguientes valores:
‘none’
Deshabilita el tramado por completo. Puede provocar bandeo visible.
‘blue’
Aplica tramado con ruido pseudoazul. Es el valor predeterminado.
‘ordered’
Patrón de tramado ordenado ajustable.
‘ordered_fixed’
Tramado ordenado más rápido, con un tamaño fijo de 6. Sin textura.
‘white’
Aplica tramado con ruido blanco. Sin textura.
dither_lut_size
Tamaño de la LUT de tramado, como logaritmo en base 2 entre 1 y 8. El valor predeterminado es 6, que corresponde a un tamaño de LUT de 64x64.
dither_temporal
Habilita el tramado temporal. Deshabilitado de forma predeterminada.
11.145.1.9 Shaders personalizados
libplacebo admite varios shaders personalizados basados en la sintaxis GLSL .hook de mpv. Puede encontrar una colección de estos shaders aquí: https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders
Una descripción completa del formato de shader de mpv queda fuera del alcance de esta sección, pero puede encontrar un resumen aquí: https://mpv.io/manual/master/#options-glsl-shader
custom_shader_path
Especifica una ruta a un archivo de shader personalizado que se cargará en tiempo de ejecución.
custom_shader_bin
Especifica un shader personalizado completo como cadena en bruto (raw).
11.145.1.10 Depuración / rendimiento
Todas las opciones de esta sección están deshabilitadas de forma predeterminada. Pueden ser útiles cuando se intenta exprimir el máximo rendimiento a costa de la calidad.
skip_aa
Deshabilita el suavizado de bordes (anti-aliasing) al reducir la escala.
disable_linear
Deshabilita el escalado en luz lineal.
disable_builtin
Deshabilita el muestreo integrado de la GPU (fuerza el uso de LUT).
disable_fbos
Deshabilita forzosamente los FBO, lo que provoca la pérdida de casi toda la funcionalidad, pero ofrece la máxima velocidad posible.
11.145.2 Comandos
Este filtro admite casi todas las opciones anteriores como comandos.
11.145.3 Ejemplos
-
Aplica mapeo de tonos a la entrada para obtener una salida BT.709 de gama estándar:
libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv -
Reescala la entrada para ajustarla a un 1080p estándar, con escalado de alta calidad:
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos -
Interpola una entrada de FPS bajos / VFR para obtener una salida suavizada a 60 fps constantes:
libplacebo=fps=60:frame_mixer=mitchell_clamp -
Convierte la entrada a un JPEG sRGB estándar:
libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc -
Usa ajustes de eliminación de bandas de mayor calidad:
libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6 -
Ejecuta este filtro en la CPU, en sistemas con Mesa instalado (y con las opciones más costosas deshabilitadas):
ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false -
Suprime la aplicación de grano de película AV1/H.274 basada en CPU en el decoder, para hacerlo en su lugar con este filtro. Tenga en cuenta que esto solo supone una ganancia si los fotogramas ya están en la GPU, o si usa libplacebo con otros fines, ya que de lo contrario el ida y vuelta a la VRAM compensará con creces cualquier aceleración esperada.
ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true -
Interoperación con el hwdec de VAAPI para evitar el ida y vuelta por la RAM:
ffmpeg -init_hw_device vulkan -hwaccel vaapi -hwaccel_output_format vaapi ... -vf libplacebo
11.146 libvmaf
Calcula la puntuación VMAF (Video Multi-Method Assessment Fusion) para un par de vídeos de entrada, uno de referencia y otro distorsionado.
La primera entrada es el vídeo distorsionado, y la segunda entrada es el vídeo de referencia.
La puntuación VMAF obtenida se imprime a través del sistema de registro.
Requiere como prerrequisito la biblioteca vmaf de Netflix (libvmaf). Tras instalar la biblioteca, puede habilitarse con: ./configure --enable-libvmaf.
El filtro tiene las siguientes opciones:
model
Una lista de modelos vmaf delimitada por ‘|‘. Cada modelo puede configurarse con varios parámetros. Valor predeterminado: "version=vmaf_v0.6.1"
feature
Una lista de feature delimitada por ‘|‘. Cada feature puede configurarse con varios parámetros.
log_path
Establece la ruta de archivo que se usará para almacenar los archivos de registro.
log_fmt
Establece el formato del archivo de registro (xml, json, csv o sub).
pool
Establece el método de agrupamiento (pool) que se usará para calcular vmaf. Las opciones son min, harmonic_mean o mean (predeterminado).
n_threads
Establece el número de hilos que se usarán al inicializar libvmaf. Valor predeterminado: 0, sin hilos.
n_subsample
Establece el intervalo de submuestreo de fotogramas que se usará.
Este filtro también admite las opciones de framesync.
11.146.1 Ejemplos
- En los ejemplos siguientes, se compara un vídeo distorsionado distorted.mpg con un archivo de referencia reference.mpg.
-
Uso básico:
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null - -
Ejemplo con varios modelos:
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null - -
Ejemplo con varios feature adicionales:
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null - -
Ejemplo con opciones y containers distintos:
ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
11.147 libvmaf_cuda
Esta es la variante CUDA del filtro libvmaf. Solo acepta fotogramas CUDA.
Requiere como prerrequisito la biblioteca vmaf de Netflix (libvmaf). Tras instalar la biblioteca, puede habilitarse con: ./configure --enable-nonfree --enable-ffnvcodec --enable-libvmaf.
11.147.1 Ejemplos
- Uso básico que muestra la decodificación por hardware CUVID y el escalado CUDA con scale_cuda:
ffmpeg \ -hwaccel cuda -hwaccel_output_format cuda -codec:v av1_cuvid -i dis.obu \ -hwaccel cuda -hwaccel_output_format cuda -codec:v av1_cuvid -i ref.obu \ -filter_complex " [0:v]scale_cuda=format=yuv420p[dis]; \ [1:v]scale_cuda=format=yuv420p[ref]; \ [dis][ref]libvmaf_cuda=log_fmt=json:log_path=output.json " \ -f null -
11.148 limitdiff
Aplica un filtro de diferencia limitada usando un segundo flujo de vídeo y, opcionalmente, un tercero.
El filtro acepta las siguientes opciones:
threshold
Establece el umbral que se usará al permitir ciertas diferencias entre flujos de vídeo. Cualquier valor de diferencia absoluta menor o igual que este umbral tomará los componentes de píxel del primer flujo de vídeo.
elasticity
Establece la elasticidad del umbral suave al procesar los flujos de vídeo. Este valor, multiplicado por el primero, define el segundo umbral. Cualquier valor de diferencia absoluta mayor o igual que el segundo umbral tomará los componentes de píxel del segundo flujo de vídeo. Para los valores comprendidos entre ambos umbrales se usará una interpolación lineal entre el primer y el segundo flujo de vídeo.
reference
Habilita el procesamiento del flujo de vídeo de referencia (el tercero). Está deshabilitado de forma predeterminada. Si se activa, este flujo de vídeo se usará para calcular la diferencia absoluta con el primer flujo de vídeo.
planes
Especifica qué planos se procesarán. De forma predeterminada, todos los disponibles.
11.148.1 Comandos
Este filtro admite todas las opciones anteriores como comandos, excepto la opción ‘reference’.
11.149 limiter
Limita los valores de los componentes de píxel al rango especificado [min, max].
El filtro acepta las siguientes opciones:
min
Límite inferior. De forma predeterminada, el valor más bajo permitido para la entrada.
max
Límite superior. De forma predeterminada, el valor más alto permitido para la entrada.
planes
Especifica qué planos se procesarán. De forma predeterminada, todos los disponibles.
11.149.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.150 loop
Repite en bucle los fotogramas de vídeo.
El filtro acepta las siguientes opciones:
loop
Establece el número de repeticiones del bucle. Si se asigna el valor -1, el bucle será infinito. El valor predeterminado es 0.
size
Establece el tamaño máximo en número de fotogramas. El valor predeterminado es 0.
start
Establece el primer fotograma del bucle. El valor predeterminado es 0.
time
Establece el instante de inicio del bucle en segundos. Solo se usa si la opción start está establecida en -1.
11.150.1 Ejemplos
-
Repite en bucle infinito el primer fotograma:
loop=loop=-1:size=1:start=0 -
Repite en bucle el primer fotograma 10 veces:
loop=loop=10:size=1:start=0 -
Repite en bucle los primeros 10 fotogramas 5 veces:
loop=loop=5:size=10:start=0
11.151 lut1d
Aplica una LUT 1D a un vídeo de entrada.
El filtro acepta las siguientes opciones:
file
Establece el nombre de archivo de la LUT 1D.
Formatos admitidos actualmente:
‘cube’
Iridas
‘csp’
cineSpace
interp
Selecciona el modo de interpolación.
Los valores disponibles son:
‘nearest’
Usa los valores del punto definido más cercano.
‘linear’
Interpola los valores mediante interpolación lineal.
‘cosine’
Interpola los valores mediante interpolación coseno.
‘cubic’
Interpola los valores mediante interpolación cúbica.
‘spline’
Interpola los valores mediante interpolación por splines.
11.151.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.152 lut3d
Aplica una LUT 3D a un vídeo de entrada.
El filtro acepta las siguientes opciones:
file
Establece el nombre de archivo de la LUT 3D.
Formatos admitidos actualmente:
‘3dl’
AfterEffects
‘cube’
Iridas
‘dat’
DaVinci
‘m3d’
Pandora
‘csp’
cineSpace
interp
Selecciona el modo de interpolación.
Los valores disponibles son:
‘nearest’
Usa los valores del punto definido más cercano.
‘trilinear’
Interpola los valores usando los 8 puntos que definen un cubo.
‘tetrahedral’
Interpola los valores usando un tetraedro.
‘pyramid’
Interpola los valores usando una pirámide.
‘prism’
Interpola los valores usando un prisma.
11.152.1 Comandos
Este filtro admite la opción interp como comando.
11.153 lumakey
Convierte ciertos valores de luma en transparencia.
El filtro acepta las siguientes opciones:
threshold
Establece el valor de luma que se usará como base para la transparencia. El valor predeterminado es 0.
tolerance
Establece el rango de valores de luma que se eliminarán por clave. El valor predeterminado es 0.01.
softness
Establece el rango de suavidad. El valor predeterminado es 0. Úselo para controlar la transición gradual de cero a transparencia total.
11.153.1 Comandos
Este filtro admite los mismos comandos que opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.154 lut, lutrgb, lutyuv
Calcula una tabla de búsqueda (look-up table) que asocia cada valor de entrada de un componente de píxel a un valor de salida, y la aplica al vídeo de entrada.
lutyuv aplica una tabla de búsqueda a un vídeo de entrada YUV, y lutrgb a un vídeo de entrada RGB.
Estos filtros aceptan los siguientes parámetros:
c0
establece la expresión del primer componente de píxel
c1
establece la expresión del segundo componente de píxel
c2
establece la expresión del tercer componente de píxel
c3
establece la expresión del cuarto componente de píxel; corresponde al componente alfa
r
establece la expresión del componente rojo
g
establece la expresión del componente verde
b
establece la expresión del componente azul
a
expresión del componente alfa
y
establece la expresión del componente Y/luma
u
establece la expresión del componente U/Cb
v
establece la expresión del componente V/Cr
Cada uno de ellos especifica la expresión que se usará para calcular la tabla de búsqueda de los valores del componente de píxel correspondiente.
El componente exacto asociado a cada una de las opciones c* depende del formato de la entrada.
El filtro lut requiere pixel formats YUV o RGB en la entrada; lutrgb requiere pixel formats RGB en la entrada, y lutyuv requiere YUV.
Las expresiones pueden contener las siguientes constantes y funciones:
w h
El ancho y el alto de la entrada.
val
El valor de entrada del componente de píxel.
clipval
El valor de entrada, recortado al rango minval-maxval.
maxval
El valor máximo del componente de píxel.
minval
El valor mínimo del componente de píxel.
negval
El valor negado del componente de píxel, recortado al rango minval-maxval; corresponde a la expresión "maxval-clipval+minval".
clip(val)
El valor calculado en val, recortado al rango minval-maxval.
gammaval(gamma)
El valor de corrección de gamma calculado para el valor del componente de píxel, recortado al rango minval-maxval. Corresponde a la expresión "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
Todas las expresiones tienen "clipval" como valor predeterminado.
11.154.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.154.2 Ejemplos
- Invertir el vídeo de entrada:
lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val" lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
Lo anterior equivale a:
lutrgb="r=negval:g=negval:b=negval"
lutyuv="y=negval:u=negval:v=negval"
-
Invertir la luma:
lutyuv=y=negval -
Eliminar los componentes de crominancia, convirtiendo el vídeo en una imagen en escala de grises:
lutyuv="u=128:v=128" -
Aplicar un efecto de quemado de luma:
lutyuv="y=2*val" -
Eliminar los componentes verde y azul:
lutrgb="g=0:b=0" -
Establecer un valor constante para el canal alfa en la entrada:
format=rgba,lutrgb=a="maxval-minval/2" -
Corregir el gamma de la luma con un factor de 0.5:
lutyuv=y=gammaval(0.5) -
Descartar los bits menos significativos de la luma:
lutyuv=y='bitand(val, 128+64+32)' -
Efecto similar a Technicolor:
lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
11.155 lut2, tlut2
El filtro lut2 toma dos flujos de entrada y genera un flujo de salida.
El filtro tlut2 (lut2 temporal) toma dos fotogramas consecutivos de un único flujo.
Este filtro acepta los siguientes parámetros:
c0
establece la expresión para el primer componente de píxel
c1
establece la expresión para el segundo componente de píxel
c2
establece la expresión para el tercer componente de píxel
c3
establece la expresión para el cuarto componente de píxel, que corresponde al componente alfa
d
establece la profundidad de bits de salida; solo disponible para el filtro lut2. De forma predeterminada es 0, lo que significa que la profundidad de bits se toma automáticamente del formato de la primera entrada.
El filtro lut2 también admite las opciones framesync.
Cada una de ellas especifica la expresión que se usará para calcular la tabla de consulta (lookup table) de los valores del componente de píxel correspondiente.
El componente exacto asociado a cada una de las opciones c* depende del formato de las entradas.
Las expresiones pueden contener las siguientes constantes:
w h
El ancho y el alto de la entrada.
x
El valor de la primera entrada para el componente de píxel.
y
El valor de la segunda entrada para el componente de píxel.
bdx
La profundidad de bits del primer vídeo de entrada.
bdy
La profundidad de bits del segundo vídeo de entrada.
Todas las expresiones tienen "x" como valor predeterminado.
11.155.1 Comandos
Este filtro admite todas las opciones anteriores como comandos, excepto la opción d.
11.155.2 Ejemplos
-
Resaltar las diferencias entre dos flujos de vídeo RGB:
lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)' -
Resaltar las diferencias entre dos flujos de vídeo YUV:
lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)' -
Mostrar la diferencia máxima entre dos flujos de vídeo:
lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
11.156 maskedclamp
Limita (clamp) el primer flujo de entrada usando el segundo y el tercer flujo de entrada.
Devuelve el valor del primer flujo ajustado para que esté entre el segundo flujo de entrada menos undershoot y el tercer flujo de entrada más overshoot.
Este filtro acepta las siguientes opciones:
undershoot
El valor predeterminado es 0.
overshoot
El valor predeterminado es 0.
planes
Establece qué planos se procesarán como mapa de bits; los planos no procesados se copiarán del primer flujo. De forma predeterminada el valor es 0xf, por lo que se procesan todos los planos.
11.156.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.157 maskedmax
Combina el segundo y el tercer flujo de entrada en el flujo de salida usando la diferencia absoluta entre el segundo flujo de entrada y el primero, y la diferencia absoluta entre el tercer flujo de entrada y el primero. El valor elegido procederá del segundo flujo de entrada si esa segunda diferencia absoluta es mayor que la primera, o del tercer flujo de entrada en caso contrario.
Este filtro acepta las siguientes opciones:
planes
Establece qué planos se procesarán como mapa de bits; los planos no procesados se copiarán del primer flujo. De forma predeterminada el valor es 0xf, por lo que se procesan todos los planos.
11.157.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.158 maskedmerge
Combina el primer flujo de entrada con el segundo flujo de entrada usando ponderaciones por píxel tomadas del tercer flujo de entrada.
Un valor de 0 en el componente de píxel del tercer flujo indica que el componente de píxel del primer flujo se devuelve sin cambios, mientras que el valor máximo (por ejemplo, 255 para vídeos de 8 bits) indica que el componente de píxel del segundo flujo se devuelve sin cambios. Los valores intermedios definen el grado de mezcla entre los componentes de píxel de ambos flujos de entrada.
Este filtro acepta las siguientes opciones:
planes
Establece qué planos se procesarán como mapa de bits; los planos no procesados se copiarán del primer flujo. De forma predeterminada el valor es 0xf, por lo que se procesan todos los planos.
11.158.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.159 maskedmin
Combina el segundo y el tercer flujo de entrada en el flujo de salida usando la diferencia absoluta entre el segundo flujo de entrada y el primero, y la diferencia absoluta entre el tercer flujo de entrada y el primero. El valor elegido procederá del segundo flujo de entrada si esa segunda diferencia absoluta es menor que la primera, o del tercer flujo de entrada en caso contrario.
Este filtro acepta las siguientes opciones:
planes
Establece qué planos se procesarán como mapa de bits; los planos no procesados se copiarán del primer flujo. De forma predeterminada el valor es 0xf, por lo que se procesan todos los planos.
11.159.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.160 maskedthreshold
Selecciona píxeles comparando la diferencia absoluta de dos flujos de vídeo con un umbral fijo.
Si la diferencia absoluta entre el componente de píxel del primer y el segundo flujo de vídeo es igual o menor que el umbral indicado por el usuario, se selecciona el componente de píxel del primer flujo de vídeo; en caso contrario, se selecciona el del segundo flujo de vídeo.
Este filtro acepta las siguientes opciones:
threshold
Establece el umbral usado para seleccionar píxeles a partir de la diferencia absoluta entre dos flujos de vídeo de entrada.
planes
Establece qué planos se procesarán como mapa de bits; los planos no procesados se copiarán del segundo flujo. De forma predeterminada el valor es 0xf, por lo que se procesan todos los planos.
mode
Establece el modo de funcionamiento del filtro. Puede ser abs o diff. El valor predeterminado es abs.
11.160.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.161 maskfun
Crea una máscara a partir del vídeo de entrada.
Resulta útil, por ejemplo, para crear máscaras de movimiento después del filtro tblend.
Este filtro acepta las siguientes opciones:
low
Establece el umbral inferior. Cualquier componente de píxel menor o igual que este valor se fijará en 0.
high
Establece el umbral superior. Cualquier componente de píxel mayor que este valor se fijará en el valor máximo permitido para el pixel format actual.
planes
Establece los planos que se filtrarán; de forma predeterminada se filtran todos los planos disponibles.
fill
Rellena todos los píxeles del fotograma con este valor.
sum
Establece el valor medio máximo de píxel para el fotograma. Si la suma de todos los componentes de píxel supera este promedio, el fotograma de salida se rellenará por completo con el valor establecido en la opción fill. Suele resultar útil para detectar cambios de escena cuando se combina con el filtro tblend.
11.161.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.162 mcdeint
Aplica desentrelazado con compensación de movimiento.
Necesita un campo por fotograma como entrada, por lo que debe usarse junto con yadif=1/3 o un filtro equivalente.
Este filtro acepta las siguientes opciones:
mode
Establece el modo de desentrelazado.
Acepta uno de los siguientes valores:
‘fast’ ‘medium’ ‘slow’
utiliza estimación de movimiento iterativa
‘extra_slow’
similar a ‘slow’, pero usa múltiples fotogramas de referencia.
El valor predeterminado es ‘fast’.
parity
Establece la paridad de campo de imagen asumida para el vídeo de entrada. Debe ser uno de los siguientes valores:
‘0, tff’
asume que el campo superior va primero
‘1, bff’
asume que el campo inferior va primero
El valor predeterminado es ‘bff’.
qp
Establece el parámetro de cuantización (QP) por bloque que utiliza el encoder interno.
Los valores más altos deberían producir un campo de vectores de movimiento más suave, pero vectores individuales menos óptimos. El valor predeterminado es 1.
11.163 median
Selecciona el píxel mediano dentro de un rectángulo definido por el radio.
Este filtro acepta las siguientes opciones:
radius
Establece el tamaño del radio horizontal. El valor predeterminado es 1. El rango permitido es un entero de 1 a 127.
planes
Establece qué planos se procesarán. El valor predeterminado es 15, es decir, todos los planos disponibles.
radiusV
Establece el tamaño del radio vertical. El valor predeterminado es 0. El rango permitido es un entero de 0 a 127. Si es 0, el valor se tomará de la opción horizontal radius.
percentile
Establece el percentil de la mediana. El valor predeterminado es 0.5. Con el valor predeterminado 0.5 siempre se eligen los valores medianos, mientras que 0 elige los valores mínimos y 1 los valores máximos.
11.163.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
11.164 mergeplanes
Combina componentes de canal de color procedentes de varios flujos de vídeo.
El filtro acepta hasta 4 flujos de entrada y combina los planos de entrada seleccionados en el vídeo de salida.
Este filtro acepta las siguientes opciones:
mapping
Establece la correspondencia entre planos de entrada y de salida. El valor predeterminado es 0.
La correspondencia se especifica como un mapa de bits. Debe indicarse como un número hexadecimal con la forma 0xAa[Bb[Cc[Dd]]]. ’Aa’ describe la correspondencia para el primer plano del flujo de salida. ’A’ establece el número del flujo de entrada que se usará (de 0 a 3), y ’a’ el número de plano de esa entrada que se usará (de 0 a 3). El resto de las correspondencias funciona de forma similar: ’Bb’ describe la correspondencia para el segundo plano del flujo de salida, ’Cc’ describe la correspondencia para el tercer plano del flujo de salida, y ’Dd’ describe la correspondencia para el cuarto plano del flujo de salida.
format
Establece el pixel format de salida. El valor predeterminado es yuva444p.
map0s map1s map2s map3s
Establece la correspondencia de flujo de entrada a salida para el plano N-ésimo de salida. El valor predeterminado es 0.
map0p map1p map2p map3p
Establece la correspondencia de plano de entrada a salida para el plano N-ésimo de salida. El valor predeterminado es 0.
11.164.1 Ejemplos
-
Combinar tres flujos de vídeo en escala de grises con el mismo ancho y alto en un único flujo de vídeo:
[a0][a1][a2]mergeplanes=0x001020:yuv444p -
Combinar el primer flujo yuv444p y el segundo flujo de vídeo en escala de grises en un flujo de vídeo yuva444p:
[a0][a1]mergeplanes=0x00010210:yuva444p -
Intercambiar los planos Y y A en un flujo yuva444p:
format=yuva444p,mergeplanes=0x03010200:yuva444p -
Intercambiar los planos U y V en un flujo yuv420p:
format=yuv420p,mergeplanes=0x000201:yuv420p -
Convertir un clip rgb24 a yuv444p:
format=rgb24,mergeplanes=0x000102:yuv444p
11.165 mestimate
Estima y exporta vectores de movimiento mediante algoritmos de coincidencia de bloques (block matching). Los vectores de movimiento se almacenan en los datos laterales del fotograma para que otros filtros puedan usarlos.
Este filtro acepta las siguientes opciones:
method
Especifica el método de estimación de movimiento. Acepta uno de los siguientes valores:
‘esa’
Algoritmo de búsqueda exhaustiva.
‘tss’
Algoritmo de búsqueda en tres pasos.
‘tdls’
Algoritmo de búsqueda logarítmica bidimensional.
‘ntss’
Nuevo algoritmo de búsqueda en tres pasos.
‘fss’
Algoritmo de búsqueda en cuatro pasos.
‘ds’
Algoritmo de búsqueda en diamante.
‘hexbs’
Algoritmo de búsqueda basado en hexágonos.
‘epzs’
Algoritmo de búsqueda zonal predictiva mejorada.
‘umh’
Algoritmo de búsqueda multihexagonal irregular.
El valor predeterminado es ‘esa’.
mb_size
Tamaño del macrobloque. El valor predeterminado es 16.
search_param
Parámetro de búsqueda. El valor predeterminado es 7.
11.166 mestimate_d3d12
Estima y exporta vectores de movimiento mediante estimación de movimiento acelerada por hardware D3D12. Este filtro utiliza las capacidades de estimación de movimiento por hardware de la GPU disponibles en las API de vídeo de DirectX 12 para lograr mejoras significativas de rendimiento frente al filtro mestimate basado en software.
Los vectores de movimiento se almacenan en los datos laterales del fotograma para que otros filtros puedan usarlos.
Este filtro requiere que la entrada esté en el pixel format de hardware d3d12. El filtro usa precisión de cuarto de píxel para la estimación de los vectores de movimiento.
Este filtro acepta las siguientes opciones:
mb_size
Tamaño del macrobloque. Solo se admiten 8 y 16. El valor predeterminado es 16.
11.166.1 Ejemplos
Estimar vectores de movimiento usando aceleración por hardware D3D12 con bloques de 16x16, y visualizarlos:
ffmpeg -hwaccel d3d12va -hwaccel_output_format d3d12 -i input.mp4 \
-vf mestimate_d3d12=mb_size=16,hwdownload,format=nv12,codecview=mv=pf \
-c:v libx264 -preset fast -b:v 5M output.mp4
11.167 midequalizer
Aplica el efecto de ecualización Midway Image Equalization usando dos flujos de vídeo.
Midway Image Equalization ajusta un par de imágenes para que tengan el mismo histograma, conservando en la medida de lo posible su dinámica. Resulta útil, por ejemplo, para igualar la exposición de un par de cámaras estéreo.
Este filtro tiene dos entradas y una salida, que deben tener el mismo pixel format, aunque pueden tener tamaños diferentes. La salida del filtro es la primera entrada ajustada con el histograma intermedio (midway) de ambas entradas.
Este filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán. El valor predeterminado es 15, es decir, todos los planos disponibles.
11.168 minterpolate
Convierte el vídeo a la velocidad de fotogramas especificada mediante interpolación de movimiento.
Este filtro acepta las siguientes opciones:
fps
Especifica la velocidad de fotogramas de salida. Puede ser un valor racional, por ejemplo 60000/1001. Se descartan fotogramas si fps es menor que la fps de origen. El valor predeterminado es 60.
mi_mode
Modo de interpolación de movimiento. Se aceptan los siguientes valores:
‘dup’
Duplica el fotograma anterior o siguiente para interpolar los nuevos.
‘blend’
Mezcla los fotogramas de origen. El fotograma interpolado es la media del fotograma anterior y el siguiente.
‘mci’
Interpolación compensada por movimiento. Las siguientes opciones surten efecto cuando se selecciona este modo:
‘mc_mode’
Modo de compensación de movimiento. Se aceptan los siguientes valores:
‘obmc’
Compensación de movimiento por bloques superpuestos.
‘aobmc’
Compensación de movimiento por bloques superpuestos adaptativa. Los coeficientes de ponderación de la ventana se controlan de forma adaptativa según la fiabilidad de los vectores de movimiento vecinos, para reducir el suavizado excesivo.
El modo predeterminado es ‘obmc’.
‘me_mode’
Modo de estimación de movimiento. Se aceptan los siguientes valores:
‘bidir’
Estimación de movimiento bidireccional. Los vectores de movimiento se estiman para cada fotograma de origen tanto hacia adelante como hacia atrás.
‘bilat’
Estimación de movimiento bilateral. Los vectores de movimiento se estiman directamente para el fotograma interpolado.
El modo predeterminado es ‘bilat’.
‘me’
El algoritmo que se usará para la estimación de movimiento. Se aceptan los siguientes valores:
‘esa’
Algoritmo de búsqueda exhaustiva.
‘tss’
Algoritmo de búsqueda en tres pasos.
‘tdls’
Algoritmo de búsqueda logarítmica bidimensional.
‘ntss’
Nuevo algoritmo de búsqueda en tres pasos.
‘fss’
Algoritmo de búsqueda en cuatro pasos.
‘ds’
Algoritmo de búsqueda en diamante.
‘hexbs’
Algoritmo de búsqueda basado en hexágonos.
‘epzs’
Algoritmo de búsqueda zonal predictiva mejorada.
‘umh’
Algoritmo de búsqueda multihexagonal irregular.
El algoritmo predeterminado es ‘epzs’.
‘mb_size’
Tamaño del macrobloque. El valor predeterminado es 16.
‘search_param’
Parámetro de búsqueda para la estimación de movimiento. El valor predeterminado es 32.
‘vsbmc’
Activa la compensación de movimiento por bloques de tamaño variable. La estimación de movimiento se aplica con bloques más pequeños en los bordes de los objetos para que queden menos borrosos. El valor predeterminado es 0 (desactivado).
scd
Método de detección de cambios de escena. Un cambio de escena hace que los vectores de movimiento apunten en direcciones aleatorias. La detección de cambios de escena sustituye los fotogramas interpolados por duplicados. Puede no ser necesaria en otros modos. Se aceptan los siguientes valores:
‘none’
Desactiva la detección de cambios de escena.
‘fdiff’
Diferencia de fotogramas. Se comparan los valores de píxel correspondientes y, si se satisface scd_threshold, se detecta un cambio de escena.
El método predeterminado es ‘fdiff’.
scd_threshold
Umbral de detección de cambios de escena. El valor predeterminado es 10..
11.169 mix
Mezcla varios flujos de vídeo de entrada en un único flujo de vídeo.
A continuación se describen las opciones aceptadas.
inputs
El número de entradas. Si no se especifica, el valor predeterminado es 2.
weights
Especifica el peso de cada flujo de vídeo de entrada como una secuencia. Cada peso se separa con un espacio. Si el número de pesos es menor que el número de fotogramas, el último peso especificado se usará para todos los pesos restantes sin definir.
scale
Especifica la escala; si se establece, se multiplicará por la suma de cada peso multiplicado por los valores de píxel para obtener el valor de píxel final de destino. De forma predeterminada, la escala se ajusta automáticamente a la suma de los pesos.
planes
Establece qué planos se filtrarán. El valor predeterminado es todos. El rango permitido va de 0 a 15.
duration
Especifica cómo se determina el final del flujo.
‘longest’
La duración de la entrada más larga. (predeterminado)
‘shortest’
La duración de la entrada más corta.
‘first’
La duración de la primera entrada.
11.169.1 Comandos
Este filtro admite los siguientes comandos:
weights scale planes
La sintaxis es la misma que la de la opción con el mismo nombre.
11.170 monochrome
Convierte el vídeo a escala de grises usando un filtro de color personalizado.
A continuación se describen las opciones aceptadas.
cb
Establece el punto de crominancia azul. El rango permitido va de -1 a 1. El valor predeterminado es 0.
cr
Establece el punto de crominancia rojo. El rango permitido va de -1 a 1. El valor predeterminado es 0.
size
Establece el tamaño del filtro de color. El rango permitido va de .1 a 10. El valor predeterminado es 1.
high
Establece la intensidad de las luces altas. El rango permitido va de 0 a 1. El valor predeterminado es 0.
11.170.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.171 morpho
Este filtro permite aplicar las principales transformaciones morfológicas en escala de grises, erosión y dilatación, con estructuras arbitrarias definidas en el segundo flujo de entrada.
A diferencia de la implementación ingenua y mucho más lenta de los filtros de erosión y dilatación, cuando la velocidad es crítica conviene usar en su lugar el filtro morpho.
A continuación se describen las opciones aceptadas,
mode
Establece la transformación morfológica que se aplicará; puede ser:
‘erode’ ‘dilate’ ‘open’ ‘close’ ‘gradient’ ‘tophat’ ‘blackhat’
El valor predeterminado es erode.
planes
Establece los planos que se filtrarán; de forma predeterminada se filtran todos los planos excepto el alfa.
structure
Establece qué fotogramas de vídeo de estructura, procedentes del segundo flujo de entrada, se procesarán; puede ser first o all. El valor predeterminado es all.
El filtro morpho también admite las opciones framesync.
11.171.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.172 mpdecimate
Descarta fotogramas que no difieren mucho del fotograma anterior, con el fin de reducir la velocidad de fotogramas.
El uso principal de este filtro es la codificación a una tasa de bits muy baja (por ejemplo, streaming a través de módem de acceso telefónico), aunque en teoría podría usarse para corregir películas a las que se les aplicó incorrectamente un telecine inverso.
A continuación se describen las opciones aceptadas.
max
Establece el número máximo de fotogramas consecutivos que se pueden descartar (si es positivo), o el intervalo mínimo entre fotogramas descartados (si es negativo). Si el valor es 0, el fotograma se descarta sin tener en cuenta el número de fotogramas descartados consecutivamente con anterioridad.
El valor predeterminado es 0.
keep
Establece el número máximo de fotogramas similares consecutivos que se ignoran antes de empezar a descartarlos. Si el valor es 0, el fotograma se descarta sin tener en cuenta el número de fotogramas similares consecutivos anteriores.
El valor predeterminado es 0.
hi lo frac
Establece los valores de umbral para el descarte.
Los valores de hi y lo corresponden a bloques de píxeles de 8x8 y representan diferencias reales de valor de píxel, de modo que un umbral de 64 equivale a 1 unidad de diferencia por píxel, o el mismo total repartido de otra forma dentro del bloque.
Un fotograma es candidato a ser descartado si ningún bloque de 8x8 difiere en más del umbral hi, y si no más de frac bloques (1 significa la imagen completa) difieren en más del umbral lo.
El valor predeterminado de hi es 6412, el de lo es 645, y el de frac es 0.33.
11.173 msad
Obtiene el MSAD (Mean Sum of Absolute Differences, suma media de diferencias absolutas) entre dos vídeos de entrada.
Este filtro toma dos vídeos de entrada.
Para que este filtro funcione correctamente, ambos vídeos de entrada deben tener la misma resolución y el mismo pixel format. Además, se asume que ambas entradas tienen el mismo número de fotogramas, que se comparan uno a uno.
El MSAD obtenido por componente, así como el promedio, el mínimo y el máximo, se muestran a través del sistema de registro.
El filtro almacena el MSAD calculado de cada fotograma en los metadatos del fotograma.
Este filtro también admite las opciones framesync.
En el siguiente ejemplo, el archivo de entrada main.mpg que se procesa se compara con el archivo de referencia ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
11.174 multiply
Multiplica los valores de píxel del primer flujo de vídeo por los valores de píxel del segundo flujo de vídeo.
El filtro acepta las siguientes opciones:
scale
Establece la escala aplicada al segundo flujo de vídeo. De forma predeterminada es 1. El rango permitido va de 0 a 9.
offset
Establece el desplazamiento (offset) aplicado al segundo flujo de vídeo. De forma predeterminada es 0.5. El rango permitido va de -1 a 1.
planes
Especifica los planos del flujo de vídeo de entrada que se procesarán. De forma predeterminada se procesan todos los planos.
11.174.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.175 negate
Niega (invierte) el vídeo de entrada.
Acepta la siguiente opción:
components
Define los componentes que se van a negar.
Los valores disponibles para components son los siguientes:
‘y’ ‘u’ ‘v’ ‘a’ ‘r’ ‘g’ ‘b’ negate_alpha
Con el valor 1, niega el componente alfa, si está presente. El valor predeterminado es 0.
11.175.1 Comandos
Este filtro admite los mismos comandos que las opciones.
11.176 nlmeans
Elimina el ruido de los fotogramas mediante el algoritmo Non-Local Means.
Cada píxel se ajusta buscando otros píxeles con contextos similares. Esta similitud de contexto se define comparando los parches circundantes de tamaño pxp. Los parches se buscan en un área de rxr alrededor del píxel.
Tenga en cuenta que el área de búsqueda define los centros de los parches, lo que significa que algunos parches estarán formados por píxeles fuera de esa área de búsqueda.
El filtro acepta las siguientes opciones.
s
Define la intensidad de la reducción de ruido. El valor predeterminado es 1.0. Debe estar en el rango [1.0, 30.0].
p
Define el tamaño del parche. El valor predeterminado es 7. Debe ser un número impar en el rango [0, 99].
pc
Igual que p, pero para los planos de crominancia.
El valor predeterminado es 0 y significa automático.
r
Define el tamaño de búsqueda. El valor predeterminado es 15. Debe ser un número impar en el rango [0, 99].
rc
Igual que r, pero para los planos de crominancia.
El valor predeterminado es 0 y significa automático.
11.177 nnedi
Desentrelaza el vídeo mediante interpolación dirigida por bordes con redes neuronales.
Este filtro acepta las siguientes opciones:
weights
Opción obligatoria; sin el archivo binario, el filtro no puede funcionar. Actualmente el archivo se encuentra aquí: https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
deint
Define qué fotogramas desentrelazar; de forma predeterminada es all. Puede ser all o interlaced.
field
Define el modo de funcionamiento.
Puede ser uno de los siguientes:
‘af’
Usa los flags de fotograma, ambos campos.
‘a’
Usa los flags de fotograma, un solo campo.
‘t’
Usa solo el campo superior.
‘b’
Usa solo el campo inferior.
‘tf’
Usa ambos campos, primero el superior.
‘bf’
Usa ambos campos, primero el inferior.
planes
Define qué planos procesar; de forma predeterminada el filtro procesa todos los fotogramas.
nsize
Define el tamaño del vecindario local alrededor de cada píxel, usado por la red neuronal predictora.
Puede ser uno de los siguientes:
‘s8x6’ ‘s16x6’ ‘s32x6’ ‘s48x6’ ‘s8x4’ ‘s16x4’ ‘s32x4’ nns
Define el número de neuronas de la red neuronal predictora. Puede ser uno de los siguientes:
‘n16’ ‘n32’ ‘n64’ ‘n128’ ‘n256’ qual
Controla el número de predicciones distintas de la red neuronal que se combinan para calcular el valor de salida final. Puede ser fast, el valor predeterminado, o slow.
etype
Define qué conjunto de pesos usar en el predictor. Puede ser uno de los siguientes:
‘a, abs’
pesos entrenados para minimizar el error absoluto
‘s, mse’
pesos entrenados para minimizar el error cuadrático
pscrn
Controla si se usa o no la red neuronal de preselección (prescreener) para decidir qué píxeles debe procesar la red neuronal predictora y cuáles pueden resolverse mediante una simple interpolación cúbica. El prescreener está entrenado para saber si la interpolación cúbica será suficiente para un píxel o si este debe predecirse con la red predictora. La complejidad computacional de la red del prescreener es mucho menor que la de la red predictora. Dado que la mayoría de los píxeles pueden resolverse con interpolación cúbica, usar el prescreener suele acelerar considerablemente el procesamiento. El prescreener es bastante preciso, por lo que la diferencia entre usarlo y no usarlo casi siempre pasa desapercibida.
Puede ser uno de los siguientes:
‘none’ ‘original’ ‘new’ ‘new2’ ‘new3’
El valor predeterminado es new.
11.177.1 Comandos
Este filtro admite los mismos comandos que las opciones, excluyendo la opción weights.
11.178 noformat
Obliga a libavfilter a no usar ninguno de los pixel formats especificados para la entrada del siguiente filtro.
Acepta los siguientes parámetros:
pix_fmts
Una lista de nombres de pixel formats separados por ’|’, como pix_fmts=yuv420p|monow|rgb24".
11.178.1 Ejemplos
-
Obliga a libavfilter a usar un formato distinto de yuv420p para la entrada del filtro vflip:
noformat=pix_fmts=yuv420p,vflip -
Convierte el vídeo de entrada a cualquiera de los formatos no incluidos en la lista:
noformat=yuv420p|yuv444p|yuv410p
11.179 noise
Añade ruido al fotograma de entrada de vídeo.
El filtro acepta las siguientes opciones:
all_seed c0_seed c1_seed c2_seed c3_seed
Define la semilla de ruido para un componente de píxel específico, o para todos los componentes en el caso de all_seed. El valor predeterminado es 123457.
all_strength, alls c0_strength, c0s c1_strength, c1s c2_strength, c2s c3_strength, c3s
Define la intensidad de ruido para un componente de píxel específico, o para todos los componentes en el caso de all_strength. El valor predeterminado es 0. El rango permitido es [0, 100].
all_flags, allf c0_flags, c0f c1_flags, c1f c2_flags, c2f c3_flags, c3f
Define los flags del componente de píxel, o los flags de todos los componentes en el caso de all_flags. Los valores disponibles para los flags de componente son los siguientes:
‘a’
ruido temporal promediado (más suave)
‘p’
mezcla ruido aleatorio con un patrón (semi)regular
‘t’
ruido temporal (el patrón de ruido cambia entre fotogramas)
‘u’
ruido uniforme (gaussiano en caso contrario)
11.179.1 Ejemplos
Añade ruido temporal y uniforme al vídeo de entrada:
noise=alls=20:allf=t+u
11.180 normalize
Normaliza el vídeo RGB (también llamado estiramiento de histograma o estiramiento de contraste). Véase: https://en.wikipedia.org/wiki/Normalization_(image_processing)
Para cada canal de cada fotograma, el filtro calcula el rango de entrada y lo mapea linealmente al rango de salida especificado por el usuario. De forma predeterminada, el rango de salida es el rango dinámico completo, desde negro puro hasta blanco puro.
El suavizado temporal se puede aplicar al rango de entrada para reducir el parpadeo (cambios rápidos de brillo) que se produce cuando objetos oscuros o claros de pequeño tamaño entran o salen de la escena. Esto es similar al autoexposímetro (control automático de ganancia) de una cámara de vídeo y, al igual que en una cámara de vídeo, puede provocar un periodo de sobre- o subexposición del vídeo.
Los canales R, G y B pueden normalizarse de forma independiente, lo que puede provocar cierto desplazamiento de color, o bien enlazarse como un único canal, lo que evita ese desplazamiento. La normalización enlazada preserva el matiz. La normalización independiente no lo hace, por lo que puede usarse para eliminar dominantes de color. La normalización independiente y la enlazada pueden combinarse en cualquier proporción.
El filtro normalize acepta las siguientes opciones:
blackpt whitept
Colores que definen el rango de salida. El valor de entrada mínimo se mapea a blackpt. El valor de entrada máximo se mapea a whitept. Los valores predeterminados son negro y blanco respectivamente. Si se especifica blanco para blackpt y negro para whitept se obtiene un vídeo normalizado con los colores invertidos. Pueden usarse tonos de gris para reducir el rango dinámico (contraste). Especificar aquí colores saturados puede crear efectos interesantes.
smoothing
El número de fotogramas anteriores que se usan para el suavizado temporal. El rango de entrada de cada canal se suaviza mediante una media móvil sobre el fotograma actual y los smoothing fotogramas anteriores. El valor predeterminado es 0 (sin suavizado temporal).
independence
Controla la proporción entre la normalización de canal independiente (con desplazamiento de color) y la enlazada (que preserva el color). 0.0 es totalmente enlazada, 1.0 es totalmente independiente. El valor predeterminado es 1.0 (totalmente independiente).
strength
Intensidad global del filtro. 1.0 es la intensidad máxima. 0.0 es una operación nula bastante costosa. El valor predeterminado es 1.0 (intensidad máxima).
11.180.1 Comandos
Este filtro admite los mismos comandos que las opciones, excluyendo la opción smoothing. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene en su valor actual.
11.180.2 Ejemplos
Estira el contraste del vídeo para usar todo el rango dinámico, sin suavizado temporal; puede parpadear según el contenido de origen:
normalize=blackpt=black:whitept=white:smoothing=0
Como el anterior, pero con 50 fotogramas de suavizado temporal; el parpadeo debería reducirse, según el contenido de origen:
normalize=blackpt=black:whitept=white:smoothing=50
Como el anterior, pero con normalización de canal enlazada que preserva el matiz:
normalize=blackpt=black:whitept=white:smoothing=50:independence=0
Como el anterior, pero con la mitad de intensidad:
normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
Mapea el color de entrada más oscuro a rojo y el más claro a cian:
normalize=blackpt=red:whitept=cyan
11.181 null
Pasa la fuente de vídeo a la salida sin modificarla.
11.182 ocio
Filtro de la biblioteca OpenColorIO
Este filtro permite realizar gestión del color mediante la biblioteca OpenColorIO. Para más información, véase https://opencolorio.org/. Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-libopencolorio.
Acepta las siguientes opciones:
config
De forma predeterminada, el filtro usa la configuración de OCIO definida por la variable de entorno OCIO, pero este parámetro permite especificar explícitamente su ubicación. Si está empezando, puede usar config=ocio://studio-config-v1.0.0_aces-v1.3_ocio-v2.1, que especifica uno de los valores predeterminados integrados.
input
Define el espacio de color de entrada.
output
Define el espacio de color de salida.
display
Define el espacio de color de la pantalla (display), usado en combinación con view.
view
Define el espacio de color de la vista (view), usado en combinación con display.
inverse
Cuando se usa junto con display y view, invierte la transformación, pasando así de un display/view al "espacio de color de entrada".
filetransform
Permite especificar una transformación de archivo (file-transform) externa que se usará en lugar del archivo de configuración de OCIO. Esto resulta útil para aplicar una única transformación sin necesidad de un archivo de configuración de OCIO completo.
format
Permite especificar el pix_fmt de salida del filtro OCIO. Este debe ser un espacio de color RGB, por lo que en la práctica se limita a rgb24, rgba, rgb48, rgba48, gbrp10, gbrp12, gbrpf32le, gbrapf32le; para la mayoría de las codificaciones se recomienda rgb48
context_params
Permite especificar parámetros de contexto adicionales para el filtro OCIO. Es una lista de pares key=value separados por dos puntos.
11.182.1 Ejemplos
Mapea de ACEScg a ACEScct; esto supone que el archivo OCIO está definido mediante la variable de entorno OCIO.
input=ACEScg:output=ACEScct:format=rgb48
Mapea de ACEScg a una pantalla sRGB usando la transformación de vista "ACES 1.0 - SDR Video"; esto supone que el archivo OCIO está definido mediante la variable de entorno OCIO. Tenga en cuenta que deberá encerrar el argumento entre comillas para asegurar que los espacios se interpreten correctamente.
input=ACEScg:display=sRGB - Display:view=ACES 1.0 - SDR Video:format=rgb48
Como el anterior, pero usando el archivo OCIO studio-config-v1.0.0_aces-v1.3_ocio-v2.1_ns.ocio en lugar de la variable de entorno OCIO.
config=studio-config-v1.0.0_aces-v1.3_ocio-v2.1_ns.ocio:input=ACEScg:display=sRGB - Display:view=ACES 1.0 - SDR Video:format=rgb48
Si está convirtiendo a YCrCb, seguirá necesitando establecer la matriz de color para la conversión. Este es un buen ejemplo de cómo combinar ambas cosas.
ffmpeg -y -i SOURCEFRAMES.%05d.exr -c:v libx265 -vf "ocio=input=ACEScg:output=ACEScct:format=rgb48,scale=in_color_matrix=bt709:out_color_matrix=bt709,format=yuv444p10" OUTPUTFILE.mov
11.183 ocr
Reconocimiento óptico de caracteres
Este filtro usa Tesseract para el reconocimiento óptico de caracteres. Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-libtesseract.
Acepta las siguientes opciones:
datapath
Define la ruta (datapath) a los datos de tesseract. De forma predeterminada se usa lo que se haya definido en la instalación.
language
Define el idioma; el valor predeterminado es "eng".
whitelist
Define la lista blanca de caracteres.
blacklist
Define la lista negra de caracteres.
El filtro exporta el texto reconocido como metadato de fotograma lavfi.ocr.text. El filtro exporta la confianza de las palabras reconocidas como metadato de fotograma lavfi.ocr.confidence.
11.184 ocv
Aplica una transformación de vídeo mediante libopencv.
Para habilitar este filtro, instale la biblioteca libopencv y sus cabeceras, y configure FFmpeg con --enable-libopencv.
Acepta los siguientes parámetros:
filter_name
El nombre del filtro de libopencv que se va a aplicar.
filter_params
Los parámetros que se pasan al filtro de libopencv. Si no se especifican, se asumen los valores predeterminados.
Consulte la documentación oficial de libopencv para obtener información más precisa: http://docs.opencv.org/master/modules/imgproc/doc/filtering.html
Se admiten varios filtros de libopencv; consulte las siguientes subsecciones.
11.184.1 dilate
Dilata una imagen usando un elemento estructurante específico. Corresponde a la función cvDilate de libopencv.
Acepta los parámetros: struct_el|nb_iterations.
struct_el representa un elemento estructurante y tiene la sintaxis: colsxrows+anchor_xxanchor_y/shape
cols y rows representan el número de columnas y filas del elemento estructurante; anchor_x y anchor_y, el punto de anclaje; y shape, la forma del elemento estructurante. shape debe ser "rect", "cross", "ellipse" o "custom".
Si el valor de shape es "custom", debe ir seguido de una cadena con la forma "=filename". Se asume que el archivo de nombre filename representa una imagen binaria, en la que cada carácter imprimible corresponde a un píxel brillante. Cuando se usa una forma custom, cols y rows se ignoran, y en su lugar se asume el número de columnas y filas del archivo leído.
El valor predeterminado de struct_el es "3x3+0x0/rect".
nb_iterations especifica el número de veces que se aplica la transformación a la imagen, y su valor predeterminado es 1.
Algunos ejemplos:
# Use the default values
ocv=dilate
# Dilate using a structuring element with a 5x5 cross, iterating two times
ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
# Read the shape from the file diamond.shape, iterating two times.
# The file diamond.shape may contain a pattern of characters like this
# *
# ***
# *****
# ***
# *
# The specified columns and rows are ignored
# but the anchor point coordinates are not
ocv=dilate:0x0+2x2/custom=diamond.shape|2
11.184.2 erode
Erosiona una imagen usando un elemento estructurante específico. Corresponde a la función cvErode de libopencv.
Acepta los parámetros: struct_el:nb_iterations, con la misma sintaxis y semántica que el filtro dilate.
11.184.3 smooth
Suaviza el vídeo de entrada.
El filtro toma los siguientes parámetros: type|param1|param2|param3|param4.
type es el tipo de filtro de suavizado que se aplica, y debe ser uno de los siguientes valores: "blur", "blur_no_scale", "median", "gaussian" o "bilateral". El valor predeterminado es "gaussian".
El significado de param1, param2, param3 y param4 depende del type de smooth. param1 y param2 aceptan valores enteros positivos o 0. param3 y param4 aceptan valores en coma flotante.
El valor predeterminado de param1 es 3. El valor predeterminado del resto de parámetros es 0.
Estos parámetros corresponden a los parámetros asignados a la función cvSmooth de libopencv.
11.185 oscilloscope
Osciloscopio de vídeo 2D.
Útil para medir la respuesta a impulso espacial, la respuesta a escalón, los retardos de crominancia, etc.
Acepta los siguientes parámetros:
x
Define la posición x del centro del osciloscopio.
y
Define la posición y del centro del osciloscopio.
s
Define el tamaño del osciloscopio, relativo a la diagonal del fotograma.
t
Define la inclinación/rotación del osciloscopio.
o
Define la opacidad del trazo.
tx
Define la posición x del centro del trazo.
ty
Define la posición y del centro del trazo.
tw
Define el ancho del trazo, relativo al ancho del fotograma.
th
Define la altura del trazo, relativa a la altura del fotograma.
c
Define qué componentes trazar. De forma predeterminada traza los tres primeros componentes.
g
Dibuja la cuadrícula del trazo. Está activado de forma predeterminada.
st
Dibuja algunas estadísticas. Está activado de forma predeterminada.
sc
Dibuja el osciloscopio. Está activado de forma predeterminada.
11.185.1 Comandos
Este filtro admite los mismos comandos que las opciones. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene en su valor actual.
11.185.2 Ejemplos
-
Examina la primera fila completa del fotograma de vídeo.
oscilloscope=x=0.5:y=0:s=1 -
Examina la última fila completa del fotograma de vídeo.
oscilloscope=x=0.5:y=1:s=1 -
Examina la quinta línea completa de un fotograma de vídeo de altura 1080.
oscilloscope=x=0.5:y=5/1080:s=1 -
Examina la última columna completa del fotograma de vídeo.
oscilloscope=x=1:y=0.5:s=1:t=1
11.186 overlay
Superpone un vídeo sobre otro.
Toma dos entradas y tiene una salida. La primera entrada es el vídeo "principal" (main), sobre el que se superpone la segunda entrada.
Acepta los siguientes parámetros:
A continuación se describen las opciones aceptadas.
x y
Define la expresión para las coordenadas x e y del vídeo superpuesto sobre el vídeo principal. El valor predeterminado es "0" para ambas expresiones. Si la expresión no es válida, se fija en un valor enorme (lo que significa que la superposición no se mostrará dentro del área visible de la salida).
eof_action
Véase framesync.
eval
Define cuándo se evalúan las expresiones de x e y.
Acepta los siguientes valores:
‘init’
evalúa las expresiones una sola vez, durante la inicialización del filtro o cuando se procesa un comando
‘frame’
evalúa las expresiones en cada fotograma entrante
El valor predeterminado es ‘frame’.
shortest
Véase framesync.
format
Define el formato del vídeo de salida.
Acepta los siguientes valores:
‘yuv420’
fuerza una salida plana YUV 4:2:0 de 8 bits
‘yuv420p10’
fuerza una salida plana YUV 4:2:0 de 10 bits
‘yuv422’
fuerza una salida plana YUV 4:2:2 de 8 bits
‘yuv422p10’
fuerza una salida plana YUV 4:2:2 de 10 bits
‘yuv444’
fuerza una salida plana YUV 4:4:4 de 8 bits
‘yuv444p10’
fuerza una salida plana YUV 4:4:4 de 10 bits
‘rgb’
fuerza una salida empaquetada RGB de 8 bits
‘gbrp’
fuerza una salida plana RGB de 8 bits
‘auto’
elige el formato automáticamente
El valor predeterminado es ‘yuv420’.
repeatlast
Véase framesync.
alpha
Define el formato de alfa del vídeo superpuesto; puede ser straight o premultiplied, o auto para elegir el modo alfa automáticamente. El valor predeterminado es auto.
Las expresiones x e y pueden contener los siguientes parámetros.
main_w, W main_h, H
El ancho y el alto de la entrada principal.
overlay_w, w overlay_h, h
El ancho y el alto de la entrada superpuesta.
x y
Los valores calculados de x e y. Se evalúan en cada fotograma nuevo.
hsub vsub
los valores de submuestreo de croma horizontal y vertical del formato de salida. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
n
el número de fotograma de entrada, empezando por 0
pos
la posición del fotograma de entrada dentro del archivo; NAN si se desconoce. Obsoleto, no usar
t
La marca de tiempo, expresada en segundos. Es NAN si la marca de tiempo de entrada es desconocida.
Este filtro también admite las opciones de framesync.
Tenga en cuenta que las variables n y t solo están disponibles cuando la evaluación se hace por fotograma , y se evaluarán como NAN cuando eval esté fijado a ‘init’.
Tenga en cuenta que los fotogramas se toman de cada vídeo de entrada en orden de marca de tiempo; por ello, si sus marcas de tiempo iniciales difieren, es buena idea pasar ambas entradas por un filtro setpts=PTS-STARTPTS para que empiecen desde la misma marca de tiempo cero, tal como hace el ejemplo del filtro movie.
Se pueden encadenar más superposiciones, pero conviene comprobar la eficiencia de ese enfoque.
11.186.1 Comandos
Este filtro admite los siguientes comandos:
x y
Modifica x e y de la entrada superpuesta. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene en su valor actual.
11.186.2 Ejemplos
- Dibuja la superposición a 10 píxeles de la esquina inferior derecha del vídeo principal:
overlay=main_w-overlay_w-10:main_h-overlay_h-10
Usando opciones con nombre, el ejemplo anterior queda así:
overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
-
Inserta un logotipo PNG transparente en la esquina inferior izquierda de la entrada, usando la herramienta
ffmpegcon la opción-filter_complex:ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output -
Inserta 2 logotipos PNG transparentes distintos (el segundo, en la esquina inferior derecha) usando la herramienta
ffmpeg:ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output -
Añade una capa de color transparente sobre el vídeo principal;
WxHdebe especificar el tamaño de la entrada principal del filtro overlay:color=color=red@.3:size=WxH [over]; [in][over] overlay [out] -
Reproduce un vídeo original y una versión filtrada (aquí con el filtro deshake) lado a lado usando la herramienta
ffplay:ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
El comando anterior equivale a:
ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
-
Crea una superposición deslizante que aparece desde la izquierda hacia la parte superior derecha de la pantalla a partir del instante 2:
overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0 -
Compone la salida colocando dos vídeos de entrada uno al lado del otro:
ffmpeg -i left.avi -i right.avi -filter_complex " nullsrc=size=200x100 [background]; [0:v] setpts=PTS-STARTPTS, scale=100x100 [left]; [1:v] setpts=PTS-STARTPTS, scale=100x100 [right]; [background][left] overlay=shortest=1 [background+left]; [background+left][right] overlay=shortest=1:x=100 [left+right] " -
Enmascara los segundos 10 a 20 de un vídeo aplicando el filtro delogo a una sección
ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]' masked.avi -
Encadena varias superposiciones en cascada:
nullsrc=s=200x200 [bg]; testsrc=s=100x100, split=4 [in0][in1][in2][in3]; [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0]; [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1]; [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2]; [in3] null, [mid2] overlay=100:100 [out0]
11.187 owdenoise
Aplica un eliminador de ruido por wavelets sobrecompleta (Overcomplete Wavelet).
El filtro acepta las siguientes opciones:
depth
Define la profundidad (depth).
Los valores de depth más altos eliminan mejor el ruido de los componentes de frecuencia más baja, pero ralentizan el filtrado.
Debe ser un entero en el rango 8-16; el valor predeterminado es 8.
luma_strength, ls
Define la intensidad de luma.
Debe ser un valor doble en el rango 0-1000; el valor predeterminado es 1.0.
chroma_strength, cs
Define la intensidad de crominancia.
Debe ser un valor doble en el rango 0-1000; el valor predeterminado es 1.0.
11.188 pad
Añade relleno a la imagen de entrada y coloca la entrada original en las coordenadas x, y indicadas.
Acepta los siguientes parámetros:
width, w height, h
Especifica una expresión para el tamaño de la imagen de salida con el relleno añadido. Si el valor de width o height es 0, se usa el tamaño de entrada correspondiente para la salida.
La expresión de width puede referirse al valor establecido por la expresión de height, y viceversa.
El valor predeterminado de width y height es 0.
x y
Especifica los desplazamientos para colocar la imagen de entrada dentro del área de relleno, con respecto al borde superior/izquierdo de la imagen de salida.
La expresión de x puede referirse al valor establecido por la expresión de y, y viceversa.
El valor predeterminado de x y y es 0.
Si x o y se evalúan como un número negativo, se cambiarán de modo que la imagen de entrada quede centrada en el área de relleno.
color
Especifica el color del área de relleno. Para conocer la sintaxis de esta opción, consulte la sección "Color" (ffmpeg-utils) del manual de ffmpeg-utils.
El valor predeterminado de color es "black".
eval
Especifica cuándo evaluar la expresión de width, height, x y y.
Acepta los siguientes valores:
‘init’
Solo evalúa las expresiones una vez durante la inicialización del filtro o cuando se procesa un comando.
‘frame’
Evalúa las expresiones para cada fotograma entrante.
El valor predeterminado es ‘init’.
aspect
Aplica relleno según una relación de aspecto en lugar de una resolución.
El valor de las opciones width, height, x e y son expresiones que contienen las siguientes constantes:
in_w in_h
El ancho y el alto del vídeo de entrada.
iw ih
Son iguales a in_w e in_h.
out_w out_h
El ancho y el alto de salida (el tamaño del área de relleno), según lo especificado por las expresiones width y height.
ow oh
Son iguales a out_w y out_h.
x y
Los desplazamientos x e y según lo especificado por las expresiones x e y, o NAN si aún no se han especificado.
a
igual a iw / ih
sar
relación de aspecto de muestra de la entrada
dar
relación de aspecto de visualización de la entrada; es igual a (iw / ih) * sar
hsub vsub
Los valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
11.188.1 Ejemplos
- Añade relleno con el color "violet" al vídeo de entrada. El tamaño del vídeo de salida es 640x480, y la esquina superior izquierda del vídeo de entrada se coloca en la columna 0, fila 40
pad=640:480:0:40:violet
El ejemplo anterior es equivalente al siguiente comando:
pad=width=640:height=480:x=0:y=40:color=violet
-
Rellena la entrada para obtener una salida con las dimensiones aumentadas en 3/2, y coloca el vídeo de entrada en el centro del área de relleno:
pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2" -
Rellena la entrada para obtener una salida cuadrada con un tamaño igual al valor máximo entre el ancho y el alto de la entrada, y coloca el vídeo de entrada en el centro del área de relleno:
pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2" -
Rellena la entrada para obtener una relación w/h final de 16:9:
pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2" -
En el caso de vídeo anamórfico, para establecer correctamente la relación de aspecto de visualización de salida, es necesario usar sar en la expresión, de acuerdo con la siguiente relación:
(ih * X / ih) * sar = output_dar X = output_dar / sar
Por lo tanto, el ejemplo anterior debe modificarse de la siguiente manera:
pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
- Duplica el tamaño de salida y coloca el vídeo de entrada en la esquina inferior derecha del área de relleno de salida:
pad="2*iw:2*ih:ow-iw:oh-ih"
11.189 palettegen
Genera una paleta para todo un flujo de vídeo.
Acepta las siguientes opciones:
max_colors
Establece el número máximo de colores que se cuantizarán en la paleta. Nota: la paleta seguirá conteniendo 256 colores; las entradas de paleta no utilizadas serán negras.
reserve_transparent
Crea una paleta de 255 colores como máximo y reserva el último para la transparencia. Reservar el color de transparencia es útil para la optimización de GIF. Si no se establece, el máximo de colores en la paleta será 256. Probablemente convenga deshabilitar esta opción para una imagen independiente. Está habilitada de forma predeterminada.
transparency_color
Establece el color que se usará como fondo para la transparencia.
stats_mode
Establece el modo de estadísticas.
Acepta los siguientes valores:
‘full’
Calcula histogramas de fotograma completo.
‘diff’
Calcula histogramas solo para la parte que difiere del fotograma anterior. Esto puede ser útil para dar más importancia a la parte en movimiento de la entrada cuando el fondo es estático.
‘single’
Calcula un nuevo histograma para cada fotograma.
El valor predeterminado es full.
Este filtro también exporta los metadatos de fotograma lavfi.color_quant_ratio (nb_color_in / nb_color_out), que puede usar para evaluar el grado de cuantización de color de la paleta. Esta información también es visible en el nivel de registro info.
11.189.1 Ejemplos
- Genera una paleta representativa de un vídeo dado usando
ffmpeg:ffmpeg -i input.mkv -vf palettegen palette.png
11.190 paletteuse
Usa una paleta para reducir el número de colores de un flujo de vídeo de entrada.
El filtro toma dos entradas: un flujo de vídeo y una paleta. La paleta debe ser una imagen de 256 píxeles.
Acepta las siguientes opciones:
dither
Selecciona el modo de tramado (dithering). Los algoritmos disponibles son:
‘bayer’
Tramado bayer ordenado de 8x8 (determinista)
‘heckbert’
Tramado tal como lo definió Paul Heckbert en 1982 (difusión de error simple). Nota: este tramado a veces se considera "incorrecto" y se incluye como referencia.
‘floyd_steinberg’
Tramado de Floyd y Steingberg (difusión de error)
‘sierra2’
Tramado Frankie Sierra v2 (difusión de error)
‘sierra2_4a’
Tramado Frankie Sierra v2 "Lite" (difusión de error)
‘sierra3’
Tramado Frankie Sierra v3 (difusión de error)
‘burkes’
Tramado de Burkes (difusión de error)
‘atkinson’
Tramado de Atkinson, de Bill Atkinson en Apple Computer (difusión de error)
‘none’
Deshabilita el tramado.
El valor predeterminado es sierra2_4a.
bayer_scale
Cuando se selecciona el tramado bayer, esta opción define la escala del patrón (cuánto se aprecia el patrón entramado). Un valor bajo significa un patrón más visible a cambio de menos bandeado, y un valor más alto significa un patrón menos visible a costa de más bandeado.
La opción debe ser un valor entero en el rango [0,5]. El valor predeterminado es 2.
diff_mode
Si se establece, define la zona a procesar
‘rectangle’
Solo se volverá a procesar el rectángulo que cambia. Esto es similar al mecanismo de compresión por recorte/desplazamiento de GIF. Esta opción puede ser útil por velocidad si solo cambia una parte de la imagen, y tiene casos de uso como limitar el alcance del tramado por difusión de error al rectángulo que delimita la escena en movimiento (esto produce una salida más determinista si la escena no cambia mucho y, como resultado, menos ruido de movimiento y mejor compresión GIF).
El valor predeterminado es none.
new
Toma una nueva paleta para cada fotograma de salida.
alpha_threshold
Establece el umbral alfa para la transparencia. Los valores alfa por encima de este umbral se tratarán como completamente opacos, y los valores por debajo de este umbral se tratarán como completamente transparentes.
La opción debe ser un valor entero en el rango [0,255]. El valor predeterminado es 128.
11.190.1 Ejemplos
- Use una paleta (generada, por ejemplo, con palettegen) para codificar un GIF usando
ffmpeg:ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
11.191 perspective
Corrige la perspectiva de vídeo que no se grabó perpendicular a la pantalla.
A continuación se describen los parámetros aceptados.
x0 y0 x1 y1 x2 y2 x3 y3
Establece las expresiones de coordenadas para las esquinas superior izquierda, superior derecha, inferior izquierda e inferior derecha. Los valores predeterminados son 0:0:W:0:0:H:W:H, con los que la perspectiva permanece sin cambios. Si la opción sense se establece en source, los puntos especificados se enviarán a las esquinas del destino. Si la opción sense se establece en destination, las esquinas del origen se enviarán a las coordenadas especificadas.
Las expresiones pueden usar las siguientes variables:
W H
el ancho y el alto del fotograma de vídeo.
in
Recuento de fotogramas de entrada.
on
Recuento de fotogramas de salida.
interpolation
Establece la interpolación para la corrección de perspectiva.
Acepta los siguientes valores:
‘linear’ ‘cubic’
El valor predeterminado es ‘linear’.
sense
Establece la interpretación de las opciones de coordenadas.
Acepta los siguientes valores:
‘0, source’
Envía el punto en el origen especificado por las coordenadas dadas a las esquinas del destino.
‘1, destination’
Envía las esquinas del origen al punto en el destino especificado por las coordenadas dadas.
El valor predeterminado es ‘source’.
eval
Establece cuándo se evalúan las expresiones de las coordenadas x0,y0,...x3,y3.
Acepta los siguientes valores:
‘init’
solo evalúa las expresiones una vez durante la inicialización del filtro o cuando se procesa un comando
‘frame’
evalúa las expresiones para cada fotograma entrante
El valor predeterminado es ‘init’.
11.192 phase
Retrasa el vídeo entrelazado un tiempo de campo para que cambie el orden de campos.
El uso previsto es corregir películas PAL que se capturaron con el orden de campos opuesto al de la transferencia de película a vídeo.
A continuación se describen los parámetros aceptados.
mode
Establece el modo de fase.
Acepta los siguientes valores:
‘t’
Orden de captura con campo superior primero, transferencia con campo inferior primero. El filtro retrasará el campo inferior.
‘b’
Orden de captura con campo inferior primero, transferencia con campo superior primero. El filtro retrasará el campo superior.
‘p’
Captura y transferencia con el mismo orden de campos. Este modo solo existe para que la documentación de las demás opciones pueda hacer referencia a él, pero si realmente lo selecciona, el filtro fielmente no hará nada.
‘a’
Orden de captura determinado automáticamente por flags de campo, transferencia opuesta. El filtro elige entre los modos ‘t’ y ‘b’ fotograma a fotograma usando flags de campo. Si no hay información de campo disponible, funciona igual que ‘u’.
‘u’
Captura desconocida o variable, transferencia opuesta. El filtro elige entre ‘t’ y ‘b’ fotograma a fotograma analizando las imágenes y seleccionando la alternativa que produce la mejor coincidencia entre los campos.
‘T’
Captura con campo superior primero, transferencia desconocida o variable. El filtro elige entre ‘t’ y ‘p’ mediante análisis de imagen.
‘B’
Captura con campo inferior primero, transferencia desconocida o variable. El filtro elige entre ‘b’ y ‘p’ mediante análisis de imagen.
‘A’
Captura determinada por flags de campo, transferencia desconocida o variable. El filtro elige entre ‘t’, ‘b’ y ‘p’ usando flags de campo y análisis de imagen. Si no hay información de campo disponible, funciona igual que ‘U’. Este es el modo predeterminado.
‘U’
Tanto la captura como la transferencia son desconocidas o variables. El filtro elige entre ‘t’, ‘b’ y ‘p’ usando únicamente análisis de imagen.
11.192.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.193 photosensitivity
Reduce varios destellos en el vídeo, para ayudar a los usuarios con epilepsia.
Acepta las siguientes opciones:
frames, f
Establece cuántos fotogramas usar al filtrar. El valor predeterminado es 30.
threshold, t
Establece el factor de umbral de detección. El valor predeterminado es 1. Cuanto menor sea, más estricto.
skip
Establece cuántos píxeles omitir al muestrear fotogramas. El valor predeterminado es 1. El rango permitido va de 1 a 1024.
bypass
Deja los fotogramas sin cambios. Está deshabilitado de forma predeterminada.
11.194 pixdesctest
Filtro de prueba del descriptor de pixel format, útil principalmente para pruebas internas. El vídeo de salida debería ser igual al vídeo de entrada.
Por ejemplo:
format=monow, pixdesctest
puede usarse para probar la definición del descriptor de pixel format monowhite.
11.195 pixelize
Aplica pixelización al flujo de vídeo.
El filtro acepta las siguientes opciones:
width, w height, h
Establece las dimensiones de bloque que se usarán para la pixelización. El valor predeterminado es 16.
mode, m
Establece el modo de pixelización utilizado.
Los valores posibles son:
‘avg’ ‘min’ ‘max’
El valor predeterminado es avg.
planes, p
Establece qué planos filtrar. De forma predeterminada se filtran todos los planos.
11.195.1 Comandos
Este filtro admite todas las opciones como comandos.
11.196 pixscope
Muestra los valores de muestra de los canales de color. Útil principalmente para comprobar el color y los niveles. La resolución mínima admitida es 640x480.
Los filtros aceptan las siguientes opciones:
x
Establece la posición X de la sonda, desplazamiento relativo en el eje X.
y
Establece la posición Y de la sonda, desplazamiento relativo en el eje Y.
w
Establece el ancho de la sonda.
h
Establece el alto de la sonda.
o
Establece la opacidad de la ventana. Esta ventana también contiene estadísticas sobre el área de píxeles.
wx
Establece la posición X de la ventana, desplazamiento relativo en el eje X.
wy
Establece la posición Y de la ventana, desplazamiento relativo en el eje Y.
11.196.1 Comandos
Este filtro admite los mismos comandos que opciones.
11.197 pp7
Aplica el filtro de posprocesado 7. Es una variante del filtro spp, similar a spp = 6 con DCT de 7 puntos, en la que solo se usa la muestra central después de la IDCT.
El filtro acepta las siguientes opciones:
qp
Fuerza un parámetro de cuantización constante. Acepta un entero en el rango de 0 a 63. Si no se establece, el filtro usará el QP del flujo de vídeo (si está disponible).
mode
Establece el modo de umbralización. Los modos disponibles son:
‘hard’
Aplica umbralización dura.
‘soft’
Aplica umbralización suave (mejor efecto de reducción de ringing, aunque probablemente resulte más borroso).
‘medium’
Aplica umbralización media (buenos resultados, opción predeterminada).
11.198 premultiply
Aplica el efecto de premultiplicación alfa al flujo de vídeo de entrada, usando el primer plano del segundo flujo como alfa.
Ambos flujos deben tener las mismas dimensiones y el mismo pixel format.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. Con el valor predeterminado 0xf, se procesarán todos los planos.
inplace
No requiere una segunda entrada para el procesamiento; en su lugar, usa el plano alfa del flujo de entrada.
11.199 premultiply_dynamic
Premultiplica o revierte la premultiplicación del flujo de vídeo de entrada dinámicamente según sea necesario, para ajustarse a los requisitos del grafo de filtros posterior. Esto equivale aproximadamente a premultiply:inplace=yes o unpremultiply:inplace=yes, o en caso contrario no hace nada.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. Con el valor predeterminado 0xf, se procesarán todos los planos.
11.200 prewitt
Aplica el operador prewitt al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. Con el valor predeterminado 0xf, se procesarán todos los planos.
scale
Establece el valor por el que se multiplicará el resultado filtrado.
delta
Establece el valor que se sumará al resultado filtrado.
11.200.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.201 pseudocolor
Modifica los colores de los fotogramas del vídeo mediante pseudocolores.
Este filtro acepta las siguientes opciones:
c0
establece la expresión del primer componente del píxel
c1
establece la expresión del segundo componente del píxel
c2
establece la expresión del tercer componente del píxel
c3
establece la expresión del cuarto componente del píxel; corresponde al componente alfa
index, i
establece el componente que se usará como base para modificar los colores
preset, p
Elige una de las LUT integradas. De forma predeterminada se establece en none.
LUT disponibles:
‘magma’ ‘inferno’ ‘plasma’ ‘viridis’ ‘turbo’ ‘cividis’ ‘range1’ ‘range2’ ‘shadows’ ‘highlights’ ‘solar’ ‘nominal’ ‘preferred’ ‘total’ ‘spectral’ ‘cool’ ‘heat’ ‘fiery’ ‘blues’ ‘green’ ‘helix’ opacity
Establece la opacidad de los colores de salida. El rango permitido es de 0 a 1. El valor predeterminado es 1.
Cada una de las opciones de expresión especifica la expresión que se usará para calcular la tabla de consulta (lookup table) de los valores del componente de píxel correspondiente.
Las expresiones pueden contener las siguientes constantes y funciones:
w h
El ancho y el alto de la entrada.
val
El valor de entrada para el componente de píxel.
ymin, umin, vmin, amin
El valor mínimo permitido para el componente.
ymax, umax, vmax, amax
El valor máximo permitido para el componente.
Todas las expresiones usan "val" de forma predeterminada.
11.201.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.201.2 Ejemplos
- Cambia los valores de luma demasiado altos a un degradado:
pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
11.202 psnr
Obtiene el PSNR (Peak Signal to Noise Ratio) medio, máximo y mínimo entre dos vídeos de entrada.
Este filtro toma como entrada dos vídeos: la primera entrada se considera la fuente "principal" y se pasa sin cambios a la salida. La segunda entrada se usa como vídeo de "referencia" para calcular el PSNR.
Ambas entradas de vídeo deben tener la misma resolución y el mismo pixel format para que este filtro funcione correctamente. Además, se asume que ambas entradas tienen el mismo número de fotogramas, que se comparan uno por uno.
El PSNR medio obtenido se imprime a través del sistema de registro.
El filtro almacena el MSE (mean squared error, error cuadrático medio) acumulado de cada fotograma y, al final del procesamiento, se promedia por igual entre todos los fotogramas; después se aplica la siguiente fórmula para obtener el PSNR:
PSNR = 10*log10(MAX^2/MSE)
Donde MAX es el promedio de los valores máximos de cada componente de la imagen.
A continuación se describen los parámetros aceptados.
stats_file, f
Si se especifica, el filtro usará el archivo indicado para guardar el PSNR de cada fotograma individual. Cuando el nombre de archivo es "-", los datos se envían a la salida estándar.
stats_version
Especifica qué versión del formato de archivo de estadísticas se usará. Los detalles de cada formato se describen a continuación. El valor predeterminado es 1.
output_max
Determina si el valor máximo se incluye en el registro de estadísticas. El valor predeterminado es 0. Requiere stats_version >= 2. Si se establece esta opción y stats_version < 2, el filtro devolverá un error.
Este filtro también admite las opciones framesync.
El archivo que se escribe cuando se selecciona stats_file contiene una secuencia de pares clave/valor con la forma key:value para cada par de fotogramas comparado.
Si se especifica un stats_version mayor que 1, una línea de cabecera precede a la lista de estadísticas por par de fotogramas, con pares clave-valor que siguen el formato de fotograma con los siguientes parámetros:
psnr_log_version
La versión del formato del archivo de registro. Coincidirá con stats_version.
fields
Una lista separada por comas de los parámetros por par de fotogramas incluidos en el registro.
A continuación se describe cada parámetro por par de fotogramas mostrado:
n
número secuencial del fotograma de entrada, empezando en 1
mse_avg
Diferencia media píxel a píxel del error cuadrático medio (Mean Square Error) de los fotogramas comparados, promediada entre todos los componentes de la imagen.
mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
Diferencia media píxel a píxel del error cuadrático medio de los fotogramas comparados para el componente especificado por el sufijo.
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
Relación señal-ruido de pico (Peak Signal to Noise ratio) de los fotogramas comparados para el componente especificado por el sufijo.
max_avg, max_y, max_u, max_v
Valor máximo permitido para cada canal, y promedio entre todos los canales.
11.202.1 Ejemplos
- Por ejemplo:
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] psnr="stats_file=stats.log" [out]
En este ejemplo, el archivo de entrada que se procesa se compara con el archivo de referencia ref_movie.mpg. El PSNR de cada fotograma individual se almacena en stats.log.
- Otro ejemplo con distintos containers:
ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
11.203 pullup
Filtro de reversión de pulldown (telecine inverso), capaz de gestionar contenido mixto hard-telecine, progresivo a 24000/1001 fps y progresivo a 30000/1001 fps.
El filtro pullup está diseñado para aprovechar el contexto futuro al tomar sus decisiones. Este filtro no tiene estado (stateless), en el sentido de que no se fija en un patrón a seguir, sino que mira hacia adelante, a los campos siguientes, para identificar coincidencias y reconstruir fotogramas progresivos.
Para producir contenido con una velocidad de fotogramas uniforme, inserte el filtro fps después de pullup; use fps=24000/1001 si la velocidad de fotogramas de entrada es 29.97fps, fps=24 para 30fps, y para la (rara) entrada telecinada a 25fps.
El filtro acepta las siguientes opciones:
jl jr jt jb
Estas opciones establecen la cantidad de "basura" que se ignorará a la izquierda, a la derecha, arriba y abajo de la imagen, respectivamente. Izquierda y derecha se miden en unidades de 8 píxeles, mientras que arriba y abajo se miden en unidades de 2 líneas. El valor predeterminado es 8 píxeles en cada lado.
sb
Establece los cortes estrictos (strict breaks). Si se establece esta opción en 1 se reducen las probabilidades de que el filtro genere ocasionalmente un fotograma mal emparejado, pero también puede provocar que se descarte un número excesivo de fotogramas durante secuencias de mucho movimiento. Por el contrario, si se establece en -1 el filtro emparejará campos con mayor facilidad. Esto puede ayudar a procesar vídeo con un ligero desenfoque entre campos, pero también puede provocar fotogramas entrelazados en la salida. El valor predeterminado es 0.
mp
Establece el plano métrico a usar. Acepta los siguientes valores:
‘l’
Usa el plano de luma.
‘u’
Usa el plano de croma azul.
‘v’
Usa el plano de croma rojo.
Esta opción puede establecerse para usar el plano de croma en lugar del plano de luma predeterminado para los cálculos del filtro. Esto puede mejorar la precisión en material fuente muy limpio, pero es más probable que la reduzca, especialmente si hay ruido de croma (efecto arcoíris) o cualquier vídeo en escala de grises. El propósito principal de establecer mp en un plano de croma es reducir la carga de CPU y hacer que pullup pueda usarse en tiempo real en máquinas lentas.
Para obtener los mejores resultados (sin fotogramas duplicados en el archivo de salida) es necesario cambiar la velocidad de fotogramas de salida. Por ejemplo, para aplicar telecine inverso a una entrada NTSC:
ffmpeg -i input -vf pullup -r 24000/1001 ...
11.204 qp
Cambia los parámetros de cuantización de vídeo (QP).
El filtro acepta la siguiente opción:
qp
Establece la expresión para el parámetro de cuantización.
La expresión se evalúa mediante la API eval y puede contener, entre otras, las siguientes constantes:
known
1 si el índice no es 129, 0 en caso contrario.
qp
Índice secuencial que va de -129 a 128.
11.204.1 Ejemplos
- Una ecuación como esta:
qp=2+2*sin(PI*qp)
11.205 qrencode
Genera un código QR usando la biblioteca libqrencode (véase https://fukuchi.org/works/qrencode/) y lo superpone en la parte superior del fotograma actual.
Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-libqrencode.
El código QR se genera a partir del texto o patrón de texto proporcionado. El código QR correspondiente se escala y se superpone en la salida de vídeo según las opciones especificadas.
Si no se especifica ningún texto, no se superpone ningún código QR.
Este filtro acepta las siguientes opciones:
qrcode_width, q padded_qrcode_width, Q
Especifica una expresión para el ancho del código QR renderizado, con y sin relleno. La expresión qrcode_width puede referenciar el valor establecido por la expresión padded_qrcode_width, y viceversa. De forma predeterminada, padded_qrcode_width se establece igual a qrcode_width, es decir, sin relleno.
Estas expresiones se evalúan en cada fotograma nuevo.
Consulte la sección Expresiones de qrencode para más detalles.
x y
Especifica una expresión para posicionar la esquina superior izquierda del código QR con relleno. La expresión x puede referenciar el valor establecido por la expresión y, y viceversa.
De forma predeterminada, x e y se establecen en 0, lo que significa que el código QR se coloca en la esquina superior izquierda de la entrada.
Estas expresiones se evalúan en cada fotograma nuevo.
Consulte la sección Expresiones de qrencode para más detalles.
case_sensitive, cs
Indica a libqrencode que use codificación sensible a mayúsculas y minúsculas. Esto está habilitado de forma predeterminada. Puede deshabilitarse para reducir el tamaño de la codificación QR.
level, l
Especifica el nivel de corrección de errores de la codificación QR. Con un nivel de corrección más alto, el tamaño de la codificación aumentará, pero el código será más robusto frente a la corrupción. El nivel más bajo es L.
Acepta los siguientes valores:
‘L’ ‘M’ ‘Q’ ‘H’ expansion
Selecciona cómo se expande el texto de entrada. Puede ser none o normal (predeterminado). Consulte la sección Expansión de texto de qrencode más abajo para más detalles.
text textfile
Define el texto que se va a renderizar. Si no se especifica ninguno de los dos, no se codifica ningún QR (solo se genera un fotograma vacío de color).
Si expansion está habilitada, el texto se trata como una plantilla de texto, usando el mecanismo de expansión de qrencode. Consulte la sección Expansión de texto de qrencode más abajo para más detalles.
background_color, bc foreground_color, fc
Establece el color del código QR y del fondo. El valor predeterminado de foreground_color es "black"; el valor predeterminado de background_color es "white".
Para conocer la sintaxis de las opciones de color, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
11.205.1 Expresiones de qrencode
Las expresiones establecidas por las opciones pueden contener las siguientes constantes y funciones.
dar
relación de aspecto de visualización de la entrada, es igual a (w / h) * sar
duration
la duración del fotograma actual, en segundos
hsub vsub
valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
main_h, H
la altura de la entrada
main_w, W
el ancho de la entrada
n
el número del fotograma de entrada, a partir de 0
pict_type
un número que representa el tipo de imagen
qr_w, w
el ancho del código QR codificado
rendered_qr_w, q rendered_padded_qr_w, Q
el ancho del código QR renderizado, sin y con relleno.
Estos parámetros permiten que las expresiones q y Q se refieran entre sí, de modo que puede, por ejemplo, especificar q=3/4*Q.
rand(min, max)
devuelve un número aleatorio comprendido entre min y max
sar
la relación de aspecto de muestra de la entrada
t
la marca de tiempo expresada en segundos; NAN si la marca de tiempo de la entrada es desconocida
x y
las coordenadas de desplazamiento x e y donde se dibuja el texto.
Estos parámetros permiten que las expresiones x e y se refieran entre sí, de modo que puede, por ejemplo, especificar y=x/dar.
11.205.2 Expansión de texto de qrencode
Si expansion se establece en none, el texto se imprime literalmente.
Si expansion se establece en normal (que es el valor predeterminado), se usa el siguiente mecanismo de expansión.
El carácter de barra invertida ‘\’, seguido de cualquier carácter, siempre se expande al segundo carácter.
Las secuencias de la forma %{...} se expanden. El texto entre las llaves es un nombre de función, posiblemente seguido de argumentos separados por ’:’. Si los argumentos contienen caracteres especiales o delimitadores (’:’ o ’}’), deben escaparse.
Tenga en cuenta que probablemente también deban escaparse como valor de la opción text en la cadena de argumentos del filtro, como argumento del filtro en la descripción del filtergraph, y posiblemente también para el shell, lo que supone hasta cuatro niveles de escapado; usar un archivo de texto con la opción textfile evita estos problemas.
Están disponibles las siguientes funciones:
n, frame_num
devuelve el número de fotograma
pts
Devuelve la marca de tiempo de presentación del fotograma actual.
Puede tomar hasta dos argumentos.
El primer argumento es el formato de la marca de tiempo; de forma predeterminada es flt, que expresa los segundos como un número decimal con precisión de microsegundos; hms representa una marca de tiempo [-]HH:MM:SS.mmm formateada con precisión de milisegundos. gmtime representa la marca de tiempo del fotograma formateada como hora UTC; localtime representa la marca de tiempo del fotograma formateada como hora de la zona horaria local. Si el formato se establece en hms24hh, la hora se formatea en un formato de 24 horas (00-23).
El segundo argumento es un desplazamiento que se suma a la marca de tiempo.
Si el formato se establece en localtime o gmtime, se puede proporcionar un tercer argumento: una cadena de formato de la función C strftime. De forma predeterminada, se usa el formato YYYY-MM-DD HH:MM:SS.
expr, e
Evalúa el valor de la expresión y lo genera como un double.
Debe tomar un argumento que especifique la expresión que se va a evaluar, aceptando las constantes y funciones definidas en qrencode_expressions.
expr_formatted, ef
Evalúa el valor de la expresión y lo genera como una cadena formateada.
El primer argumento es la expresión que se va a evaluar, igual que en la función expr. El segundo argumento especifica el formato de salida. Los valores permitidos son ‘x’, ‘X’, ‘d’ y ‘u’. Se tratan exactamente igual que en la función printf. El tercer parámetro es opcional y establece el número de posiciones que ocupa la salida. Puede usarse para añadir relleno con ceros por la izquierda.
gmtime
La hora en la que se ejecuta el filtro, expresada en UTC. Puede aceptar un argumento: una cadena de formato de la función C strftime. La cadena de formato se ha ampliado para admitir la variable %[1-6]N, que imprime las fracciones de segundo con un número de dígitos opcionalmente especificado.
localtime
La hora en la que se ejecuta el filtro, expresada en la zona horaria local. Puede aceptar un argumento: una cadena de formato de la función C strftime. La cadena de formato se ha ampliado para admitir la variable %[1-6]N, que imprime las fracciones de segundo con un número de dígitos opcionalmente especificado.
metadata
Metadatos del fotograma. Toma uno o dos argumentos.
El primer argumento es obligatorio y especifica la clave de los metadatos.
El segundo argumento es opcional y especifica un valor predeterminado, que se usa cuando la clave de metadatos no se encuentra o está vacía.
Los metadatos disponibles pueden identificarse examinando las entradas que empiezan por TAG incluidas en cada sección de fotograma que se imprime al ejecutar ffprobe -show_frames.
También están disponibles los metadatos de tipo cadena generados por los filtros que preceden al filtro qrencode.
rand(min, max)
devuelve un número aleatorio comprendido entre min y max
11.205.3 Ejemplos
-
Genera un código QR que codifica el texto especificado con el tamaño predeterminado, superpuesto en la esquina superior izquierda del vídeo de entrada:
qrencode=text=www.ffmpeg.org -
Igual que el anterior, pero seleccionando azul sobre rosa:
qrencode=text=www.ffmpeg.org:bc=pink@0.5:fc=blue -
Coloca el código QR en la esquina inferior derecha del vídeo de entrada:
qrencode=text=www.ffmpeg.org:x=W-Q:y=H-Q -
Genera un código QR con un ancho de 200 píxeles y relleno, de modo que el ancho con relleno sea 4/3 del ancho del código QR:
qrencode=text=www.ffmpeg.org:q=200:Q=4/3*q -
Genera un código QR con un ancho con relleno de 200 píxeles y relleno, de modo que el ancho del código QR sea 3/4 del ancho con relleno:
qrencode=text=www.ffmpeg.org:Q=200:q=3/4*Q -
Hace que el código QR sea una fracción del ancho del vídeo de entrada:
qrencode=text=www.ffmpeg.org:q=W/5 -
Genera un código QR que codifica el número de fotograma:
qrencode=text=%{n} -
Genera un código QR que codifica la marca de tiempo GMT:
qrencode=text=%{gmtime} -
Genera un código QR que codifica la marca de tiempo expresada como un número en coma flotante:
qrencode=text=%{pts}
11.206 quirc
Identifica y decodifica un código QR usando la biblioteca libquirc (véase https://github.com/dlbeer/quirc/), e imprime la posición y la carga útil de los códigos QR identificados como metadatos.
Para habilitar la compilación de este filtro, debe configurar FFmpeg con --enable-libquirc.
Para cada código QR encontrado en el vídeo de entrada, se añaden algunas entradas de metadatos con el prefijo lavfi.quirc.N, donde N es el índice, a partir de 0, asociado al código QR.
A continuación se describe cada valor de metadatos:
lavfi.quirc.count
el número de códigos QR encontrados; no se establece si no se encontró ninguno
lavfi.quirc.N.corner.M.x lavfi.quirc.N.coreer.M.y
las posiciones x/y de las cuatro esquinas del cuadrado que contiene el código QR, donde M es el índice de la esquina a partir de 0
lavfi.quirc.N.payload
la carga útil del código QR
11.207 random
Vacía los fotogramas de vídeo de la caché interna de fotogramas en un orden aleatorio. No se descarta ningún fotograma. Inspirado en el filtro nervous de frei0r.
frames
Establece el tamaño de la caché interna en número de fotogramas, en el rango de 2 a 512. El valor predeterminado es 30.
seed
Establece la semilla del generador de números aleatorios; debe ser un entero comprendido entre 0 y UINT32_MAX. Si no se especifica, o si se establece explícitamente en un valor menor que 0, el filtro intentará usar una buena semilla aleatoria haciendo el mejor esfuerzo posible.
11.208 readeia608
Lee información de subtitulado oculto (EIA-608) de las líneas superiores de un fotograma de vídeo.
Este filtro añade los metadatos de fotograma lavfi.readeia608.X.cc y lavfi.readeia608.X.line, donde X es el número de la línea identificada con datos EIA-608 (a partir de 0). A continuación se describe cada valor de metadatos:
lavfi.readeia608.X.cc
Los dos bytes almacenados como datos EIA-608 (impresos en hexadecimal).
lavfi.readeia608.X.line
El número de la línea en la que se identificaron y leyeron los datos EIA-608.
Este filtro acepta las siguientes opciones:
scan_min
Establece la línea en la que comenzar a buscar datos EIA-608. El valor predeterminado es 0.
scan_max
Establece la línea en la que terminar de buscar datos EIA-608. El valor predeterminado es 29.
spw
Establece la proporción del ancho reservada para la detección del código de sincronización. El valor predeterminado es 0.27. El rango permitido es [0.1 - 0.7].
chp
Habilita la comprobación del bit de paridad. En caso de error de paridad, el filtro generará 0x00 para ese carácter. El valor predeterminado es false.
lp
Aplica un filtro de paso bajo a las líneas antes de continuar con el procesamiento. Está habilitado de forma predeterminada.
11.208.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.208.2 Ejemplos
- Genera un csv con el tiempo de presentación y las dos primeras líneas de datos de subtitulado EIA-608 identificados.
ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
11.209 readvitc
Lee información de código de tiempo de intervalo vertical (VITC) de las líneas superiores de un fotograma de vídeo.
El filtro añade la clave de metadatos de fotograma lavfi.readvitc.tc_str con el valor del código de tiempo, si se ha detectado un código de tiempo válido. Además, la clave de metadatos lavfi.readvitc.found se establece en 0/1 según si se han encontrado datos de código de tiempo o no.
Este filtro acepta las siguientes opciones:
scan_max
Establece el número máximo de líneas en las que buscar datos VITC. Si el valor se establece en -1, se escanea el fotograma de vídeo completo. El valor predeterminado es 45.
thr_b
Establece el umbral de luma para el negro. Acepta números en coma flotante en el rango [0.0,1.0]; el valor predeterminado es 0.2. El valor debe ser igual o menor que thr_w.
thr_w
Establece el umbral de luma para el blanco. Acepta números en coma flotante en el rango [0.0,1.0]; el valor predeterminado es 0.6. El valor debe ser igual o mayor que thr_b.
11.209.1 Ejemplos
- Detecta y dibuja los datos VITC en el fotograma de vídeo; si no se detecta ningún VITC válido, dibuja
--:--:--:--como marcador de posición:ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
11.210 remap
Remapea los píxeles usando el segundo flujo de vídeo de entrada (Xmap) y el tercero (Ymap).
El píxel de destino en la posición (X, Y) se tomará de la posición de origen (x, y), donde x = Xmap(X, Y) e y = Ymap(X, Y). Si los valores de mapeo están fuera de rango, se usará el valor cero para el píxel de destino.
Los flujos de vídeo de entrada Xmap y Ymap deben tener las mismas dimensiones. El flujo de vídeo de salida tendrá las dimensiones de los flujos de vídeo Xmap/Ymap. Los flujos de vídeo de entrada Xmap y Ymap tienen una profundidad de 16 bits y un único canal.
format
Especifica el pixel format de la salida de este filtro. Puede ser color o gray. El valor predeterminado es color.
fill
Especifica el color de los píxeles no mapeados. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils. El color predeterminado es black.
11.211 removegrain
El filtro removegrain es un eliminador de ruido espacial para vídeo progresivo.
m0
Establece el modo para el primer plano.
m1
Establece el modo para el segundo plano.
m2
Establece el modo para el tercer plano.
m3
Establece el modo para el cuarto plano.
El rango del modo va de 0 a 24. A continuación se describe cada modo:
0
Deja el plano de entrada sin modificar. Es el valor predeterminado.
1
Recorta el píxel entre el mínimo y el máximo de los 8 píxeles vecinos.
2
Recorta el píxel entre el segundo mínimo y el segundo máximo de los 8 píxeles vecinos.
3
Recorta el píxel entre el tercer mínimo y el tercer máximo de los 8 píxeles vecinos.
4
Recorta el píxel entre el cuarto mínimo y el cuarto máximo de los 8 píxeles vecinos. Esto equivale a un filtro de mediana.
5
Recorte sensible a la línea que produce el cambio mínimo.
6
Recorte sensible a la línea, intermedio.
7
Recorte sensible a la línea, intermedio.
8
Recorte sensible a la línea, intermedio.
9
Recorte sensible a la línea, en la línea donde los píxeles vecinos son más cercanos.
10
Sustituye el píxel objetivo por el vecino más cercano.
11
Desenfoque con núcleo [1 2 1] horizontal y vertical.
12
Igual que el modo 11.
13
Modo bob: interpola el campo superior a partir de la línea donde los píxeles vecinos son más cercanos.
14
Modo bob: interpola el campo inferior a partir de la línea donde los píxeles vecinos son más cercanos.
15
Modo bob: interpola el campo superior. Igual que el modo 13, pero con una fórmula de interpolación más compleja.
16
Modo bob: interpola el campo inferior. Igual que el modo 14, pero con una fórmula de interpolación más compleja.
17
Recorta el píxel entre el mínimo y el máximo, respectivamente, del máximo y el mínimo de cada par de píxeles vecinos opuestos.
18
Recorte sensible a la línea usando los vecinos opuestos cuya distancia máxima al píxel actual es mínima.
19
Sustituye el píxel por la media de sus 8 vecinos.
20
Calcula la media de los 9 píxeles (desenfoque [1 1 1] horizontal y vertical).
21
Recorta los píxeles usando las medias de los vecinos opuestos.
22
Igual que el modo 21, pero más simple y rápido.
23
Eliminación de bordes y halos pequeños, aunque se considera poco útil.
24
Similar al modo 23.
11.212 removelogo
Suprime el logotipo de una cadena de televisión, usando un archivo de imagen para determinar qué píxeles forman el logotipo. Funciona rellenando los píxeles que forman el logotipo con píxeles vecinos.
El filtro acepta las siguientes opciones:
filename, f
Establece el archivo de mapa de bits del filtro, que puede tener cualquier formato de imagen admitido por libavformat. El ancho y el alto del archivo de imagen deben coincidir con los del flujo de vídeo que se está procesando.
Los píxeles de la imagen de mapa de bits proporcionada con un valor de cero no se consideran parte del logotipo; los píxeles distintos de cero se consideran parte del logotipo. Si usa blanco (255) para el logotipo y negro (0) para el resto, no tendrá problemas. Para crear el mapa de bits del filtro, se recomienda capturar la pantalla de un fotograma negro con el logotipo visible y, a continuación, aplicar un filtro threshold seguido del filtro erode una o dos veces.
Si es necesario, las pequeñas manchas se pueden corregir manualmente. Recuerde que, si los píxeles del logotipo no quedan cubiertos, la calidad del filtro se reducirá considerablemente. Marcar demasiados píxeles como parte del logotipo no perjudica tanto, pero aumentará la cantidad de desenfoque necesaria para cubrir la imagen, destruirá más información de la necesaria, y los píxeles adicionales ralentizarán el proceso en el caso de un logotipo grande.
11.213 repeatfields
Este filtro usa la marca repeat_field de las cabeceras Video ES y repite físicamente (hard repeat) los campos según su valor.
11.214 reverse
Invierte un clip de vídeo.
Advertencia: este filtro necesita memoria para almacenar en búfer el clip completo, por lo que se recomienda recortarlo (trim) previamente.
11.214.1 Ejemplos
- Toma los primeros 5 segundos de un clip y lo invierte.
trim=end=5,reverse
11.215 rgbashift
Desplaza los píxeles R/G/B/A horizontal y/o verticalmente.
El filtro acepta las siguientes opciones:
rh
Establece la cantidad de desplazamiento horizontal del rojo.
rv
Establece la cantidad de desplazamiento vertical del rojo.
gh
Establece la cantidad de desplazamiento horizontal del verde.
gv
Establece la cantidad de desplazamiento vertical del verde.
bh
Establece la cantidad de desplazamiento horizontal del azul.
bv
Establece la cantidad de desplazamiento vertical del azul.
ah
Establece la cantidad de desplazamiento horizontal del alfa.
av
Establece la cantidad de desplazamiento vertical del alfa.
edge
Establece el modo de borde; puede ser smear, default o warp.
11.215.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.216 roberts
Aplica el operador cruzado de Roberts al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. Con el valor predeterminado 0xf, se procesarán todos los planos.
scale
Establece el valor por el que se multiplicará el resultado filtrado.
delta
Establece el valor que se sumará al resultado filtrado.
11.216.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.217 rotate
Rota el vídeo un ángulo arbitrario expresado en radianes.
El filtro acepta las siguientes opciones:
A continuación se describen los parámetros opcionales.
angle, a
Establece una expresión para el ángulo en el que rotar el vídeo de entrada en sentido horario, expresado como un número de radianes. Un valor negativo dará como resultado una rotación en sentido antihorario. De forma predeterminada se establece en "0".
Esta expresión se evalúa en cada fotograma.
out_w, ow
Establece la expresión del ancho de salida; el valor predeterminado es "iw". Esta expresión se evalúa una sola vez durante la configuración.
out_h, oh
Establece la expresión del alto de salida; el valor predeterminado es "ih". Esta expresión se evalúa una sola vez durante la configuración.
bilinear
Habilita la interpolación bilineal si se establece en 1; un valor de 0 la deshabilita. El valor predeterminado es 1.
fillcolor, c
Establece el color usado para rellenar el área de salida no cubierta por la imagen rotada. Para la sintaxis general de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils. Si se selecciona el valor especial "none", no se imprime ningún fondo (útil, por ejemplo, si el fondo nunca se muestra).
El valor predeterminado es "black".
Las expresiones del ángulo y del tamaño de salida pueden contener las siguientes constantes y funciones:
n
número secuencial del fotograma de entrada, a partir de 0. Siempre es NAN antes de que se filtre el primer fotograma.
t
tiempo en segundos del fotograma de entrada; se establece en 0 cuando se configura el filtro. Siempre es NAN antes de que se filtre el primer fotograma.
hsub vsub
valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
in_w, iw in_h, ih
el ancho y el alto del vídeo de entrada
out_w, ow out_h, oh
el ancho y el alto de salida, es decir, el tamaño del área con relleno según lo especificado por las expresiones width y height
rotw(a) roth(a)
el ancho/alto mínimo necesario para contener por completo el vídeo de entrada rotado a radianes.
Estas solo están disponibles al calcular las expresiones out_w y out_h.
11.217.1 Ejemplos
-
Rota la entrada PI/6 radianes en sentido horario:
rotate=PI/6 -
Rota la entrada PI/6 radianes en sentido antihorario:
rotate=-PI/6 -
Rota la entrada 45 grados en sentido horario:
rotate=45*PI/180 -
Aplica una rotación constante con periodo T, a partir de un ángulo de PI/3:
rotate=PI/3+2*PI*t/T -
Hace que la rotación del vídeo de entrada oscile con un periodo de T segundos y una amplitud de A radianes:
rotate=A*sin(2*PI/T*t) -
Rota el vídeo; el tamaño de salida se elige de modo que el vídeo de entrada en rotación quede siempre completamente contenido en la salida:
rotate='2*PI*t:ow=hypot(iw,ih):oh=ow' -
Rota el vídeo y reduce el tamaño de salida de modo que nunca se muestre el fondo:
rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
11.217.2 Comandos
El filtro admite los siguientes comandos:
a, angle
Establece la expresión del ángulo. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene en su valor actual.
11.218 sab
Aplica Shape Adaptive Blur (desenfoque adaptativo a la forma).
El filtro acepta las siguientes opciones:
luma_radius, lr
Establece la intensidad del filtro de desenfoque de luma; debe ser un valor en el rango 0.1-4.0, el valor predeterminado es 1.0. Un valor mayor produce una imagen más desenfocada y un procesamiento más lento.
luma_pre_filter_radius, lpfr
Establece el radio del prefiltro de luma; debe ser un valor en el rango 0.1-2.0, el valor predeterminado es 1.0.
luma_strength, ls
Establece la diferencia máxima de luma entre píxeles para que aún se consideren relacionados; debe ser un valor en el rango 0.1-100.0, el valor predeterminado es 1.0.
chroma_radius, cr
Establece la intensidad del filtro de desenfoque de croma; debe ser un valor en el rango -0.9-4.0. Un valor mayor produce una imagen más desenfocada y un procesamiento más lento.
chroma_pre_filter_radius, cpfr
Establece el radio del prefiltro de croma; debe ser un valor en el rango -0.9-2.0.
chroma_strength, cs
Establece la diferencia máxima de croma entre píxeles para que aún se consideren relacionados; debe ser un valor en el rango -0.9-100.0.
Cada valor de las opciones de croma, si no se especifica explícitamente, se establece igual al valor de la opción de luma correspondiente.
11.219 scale
Escala (cambia el tamaño de) el vídeo de entrada, usando la biblioteca libswscale.
El filtro scale fuerza que la relación de aspecto de visualización de la salida sea la misma que la de la entrada, cambiando la relación de aspecto de muestra de la salida.
Si el formato de la imagen de entrada difiere del formato solicitado por el siguiente filtro, el filtro scale convertirá la entrada al formato solicitado.
11.219.1 Opciones
El filtro acepta las siguientes opciones, cualquiera de las opciones admitidas por el escalador libswscale, así como cualquiera de las opciones de framesync.
Consulte (ffmpeg-scaler)el manual de ffmpeg-scaler para conocer la lista completa de opciones del escalador.
width, w height, h
Establece la expresión de las dimensiones del vídeo de salida. El valor predeterminado es la dimensión de la entrada.
Si el valor de width o w es 0, se usa el ancho de la entrada para la salida. Si el valor de height o h es 0, se usa el alto de la entrada para la salida.
Si uno, y solo uno, de los valores es -n con n >= 1, el filtro scale usará un valor que mantenga la relación de aspecto de la imagen de entrada, calculado a partir de la otra dimensión especificada. Después de eso, no obstante, se asegurará de que la dimensión calculada sea divisible por n y ajustará el valor si es necesario.
Si ambos valores son -n con n >= 1, el comportamiento será idéntico al de establecer ambos valores en 0, tal como se ha detallado antes.
Consulte más abajo la lista de constantes aceptadas para usar en la expresión de dimensión.
eval
Especifica cuándo evaluar la expresión de width y height. Acepta los siguientes valores:
‘init’
Evalúa las expresiones una sola vez durante la inicialización del filtro o cuando se procesa un comando.
‘frame’
Evalúa las expresiones en cada fotograma entrante.
El valor predeterminado es ‘init’.
interl
Establece el modo de entrelazado. Acepta los siguientes valores:
‘1’
Fuerza el escalado consciente del entrelazado.
‘0’
No aplica el escalado entrelazado.
‘-1’
Selecciona el escalado consciente del entrelazado en función de si los fotogramas de origen están marcados como entrelazados o no.
El valor predeterminado es ‘0’.
flags
Establece los flags de escalado de libswscale. Consulte (ffmpeg-scaler)el manual de ffmpeg-scaler para conocer la lista completa de valores. Si no se especifica explícitamente, el filtro aplica los flags predeterminados.
param0, param1
Establece los parámetros de entrada de libswscale para los algoritmos de escalado que los necesiten. Consulte (ffmpeg-scaler)el manual de ffmpeg-scaler para conocer la documentación completa. Si no se especifican explícitamente, el filtro aplica parámetros vacíos.
intent
Establece la intención de renderizado ICC que se usará al transformar entre distintos espacios de color. Acepta los siguientes valores:
‘perceptual’
Usa una curva de mapeo de tono y gama guiada perceptualmente. Los detalles exactos del mapeo usado pueden cambiar en cualquier momento y no deben considerarse estables. Esta intención se recomienda para la visualización final de contenido de imagen/vídeo en entornos de visualización típicos.
‘relative_colorimetric’
Recorta de forma estática los colores fuera de gama usando una curva de recorte colorimétrico que intenta encontrar el color dentro de gama colorimétricamente menos distinto. Esta intención realiza adaptación del punto blanco y del punto negro. Es el valor predeterminado. Esta intención se recomienda siempre que la reproducción fiel del color sea de máxima importancia, incluso a costa de recortar colores.
‘absolute_colorimetric’
Recorta de forma estricta los colores fuera de gama, sin intentar reproducir el punto blanco ni el punto negro. Esta intención reproduce los colores dentro de gama 1:1 en la pantalla de salida tal como aparecerían en la pantalla de referencia, suponiendo que la pantalla de salida esté calibrada correctamente.
‘saturation’
Realiza un mapeo de saturación, es decir, estira el volumen de color de entrada directamente sobre el volumen de color de salida, de forma no lineal que preserva en la medida de lo posible el aspecto de la señal original. Esta intención se recomienda para la evaluación del contenido de la señal, ya que no provoca ningún recorte. Es aproximadamente análoga a no realizar ningún mapeo de color, aunque sigue teniendo en cuenta los primarios de la pantalla de masterización y cualquier diferencia en la TRC de codificación.
size, s
Establece el tamaño del vídeo. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils.
in_color_matrix out_color_matrix
Establece el tipo de espacio de color YCbCr de entrada/salida.
Esto permite anular el valor detectado automáticamente, además de forzar un valor específico usado para la salida y el encoder.
Si no se especifica, el tipo de espacio de color depende del pixel format.
Valores posibles:
‘auto’
Selecciona automáticamente.
‘bt709’
Formato conforme a la Recomendación BT.709 de la Unión Internacional de Telecomunicaciones (ITU).
‘fcc’
Establece un espacio de color conforme al Título 47 del Código de Regulaciones Federales (CFR) (2003) 73.682(a) de la Comisión Federal de Comunicaciones (FCC) de los Estados Unidos.
‘bt601’ ‘bt470’ ‘smpte170m’
Establece un espacio de color conforme a:
- Recomendación BT.601 del Sector de Radiocomunicaciones de la ITU (ITU-R)
- ITU-R Rec. BT.470-6 (1998), sistemas B, B1 y G
- ST 170:2004 de la Society of Motion Picture and Television Engineers (SMPTE)
‘smpte240m’
Establece un espacio de color conforme a SMPTE ST 240:1999.
‘bt2020’
Establece un espacio de color conforme al sistema de luminancia no constante ITU-R BT.2020.
in_range out_range
Establece el rango de muestra YCbCr de entrada/salida.
Esto permite anular el valor detectado automáticamente, además de forzar un valor específico usado para la salida y el encoder. Si no se especifica, el rango depende del pixel format. Valores posibles:
‘auto/unknown’
Selecciona automáticamente.
‘jpeg/full/pc’
Establece el rango completo (0-255 en el caso de luma de 8 bits).
‘mpeg/limited/tv’
Establece el rango "MPEG" (16-235 en el caso de luma de 8 bits).
in_chroma_loc out_chroma_loc
Establece la ubicación de muestra de croma de entrada/salida. Si no se especifica, de forma predeterminada se usa croma centrado. Valores posibles:
‘auto, unknown’ ‘left’ ‘center’ ‘topleft’ ‘top’ ‘bottomleft’ ‘bottom’ in_primaries out_primaries
Establece los primarios RGB de entrada/salida.
Esto permite anular el valor detectado automáticamente, además de forzar un valor específico usado para la salida y el encoder. Valores posibles:
‘auto’
Selecciona automáticamente. Es el valor predeterminado.
‘bt709’ ‘bt470m’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘film’ ‘bt2020’ ‘smpte428’ ‘smpte431’ ‘smpte432’ ‘jedec-p22’ ‘ebu3213’ in_transfer out_transfer
Establece la curva de respuesta de transferencia (TRC) de entrada/salida.
Esto permite anular el valor detectado automáticamente, además de forzar un valor específico para la salida y el encoder. Valores posibles:
‘auto’
Elige automáticamente. Es el valor predeterminado.
‘bt709’ ‘bt470m’ ‘gamma22’ ‘bt470bg’ ‘gamma28’ ‘smpte170m’ ‘smpte240m’ ‘linear’ ‘iec61966-2-1’ ‘srgb’ ‘iec61966-2-4’ ‘xvycc’ ‘bt1361e’ ‘bt2020-10’ ‘bt2020-12’ ‘smpte2084’ ‘smpte428’ ‘arib-std-b67’ force_original_aspect_ratio
Permite reducir o aumentar el ancho o el alto del vídeo de salida cuando sea necesario para conservar la relación de aspecto original. Valores posibles:
‘disable’
Escala el vídeo según lo indicado y desactiva esta función.
‘decrease’
Las dimensiones del vídeo de salida se reducirán automáticamente si es necesario.
‘increase’
Las dimensiones del vídeo de salida se aumentarán automáticamente si es necesario.
Un caso de uso práctico de esta opción es cuando se conoce la resolución máxima admitida por un dispositivo concreto: puede usarse para limitar el vídeo de salida a ese valor conservando la relación de aspecto. Por ejemplo, el dispositivo A admite reproducción a 1280x720 y el vídeo de entrada es de 1920x800. Usando esta opción (con el valor decrease) e indicando 1280x720 en la línea de comandos, la salida resulta en 1280x533.
Tenga en cuenta que esto es distinto de especificar -1 en w o h: sigue siendo necesario indicar la resolución de salida para que esta opción funcione.
force_divisible_by
Garantiza que ambas dimensiones de salida, ancho y alto, sean divisibles por el entero indicado cuando se usa junto con force_original_aspect_ratio. Esto funciona de forma similar a usar -n en las opciones w y h.
Esta opción respeta el valor establecido en force_original_aspect_ratio, aumentando o disminuyendo la resolución en consecuencia. La relación de aspecto del vídeo puede modificarse ligeramente.
Esta opción resulta útil cuando se necesita que un vídeo se ajuste a una resolución definida (o la supere) mediante force_original_aspect_ratio, pero además existen restricciones del encoder sobre la divisibilidad del ancho o el alto.
reset_sar
Al activar esta opción, el SAR de salida se restablece a 1. Además, si se solicita un escalado proporcional mediante las expresiones de ancho o alto, por ejemplo w=-4:h=360 o w=iw/2:h=-1, o activando force_original_aspect_ratio, se tiene en cuenta el DAR de entrada y la salida se escala para producir píxeles cuadrados. El valor predeterminado es false.
Los valores de las opciones w y h son expresiones que contienen las siguientes constantes:
in_w in_h
El ancho y el alto de la entrada
iw ih
Son lo mismo que in_w e in_h.
out_w out_h
El ancho y el alto de salida (tras el escalado)
ow oh
Son lo mismo que out_w y out_h
a
Lo mismo que iw / ih
sar
relación de aspecto de muestra de la entrada
dar
La relación de aspecto de visualización de la entrada. Se calcula como (iw / ih) * sar.
hsub vsub
los valores de submuestreo de croma horizontal y vertical de la entrada. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
ohsub ovsub
los valores de submuestreo de croma horizontal y vertical de la salida. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
n
El número (secuencial) del fotograma de entrada, empezando en 0. Solo disponible con eval=frame.
t
La marca de tiempo de presentación del fotograma de entrada, expresada en segundos. Solo disponible con eval=frame.
pos
La posición (desplazamiento en bytes) del fotograma dentro del flujo de entrada, o NaN si esta información no está disponible o carece de sentido (por ejemplo, en el caso de vídeo sintético). Solo disponible con eval=frame. Obsoleto, no debe usarse.
ref_w, rw ref_h, rh ref_a ref_dar, rdar ref_n ref_t ref_pos
Equivalentes a las anteriores, pero para una segunda entrada de referencia. Si está presente cualquiera de estas variables, el filtro acepta dos entradas.
11.219.2 Ejemplos
- Escala el vídeo de entrada a un tamaño de 200x100
scale=w=200:h=100
Esto es equivalente a:
scale=200:100
o:
scale=200x100
- Especifica una abreviatura de tamaño para el tamaño de salida:
scale=qcif
que también puede escribirse como:
scale=size=qcif
-
Escala la entrada al doble (2x):
scale=w=2*iw:h=2*ih -
Lo anterior es lo mismo que:
scale=2*in_w:2*in_h -
Escala la entrada al doble (2x) forzando el escalado entrelazado:
scale=2*iw:2*ih:interl=1 -
Escala la entrada a la mitad de tamaño:
scale=w=iw/2:h=ih/2 -
Aumenta el ancho y ajusta el alto al mismo tamaño:
scale=3/2*iw:ow -
En busca de la armonía griega:
scale=iw:1/PHI*iw scale=ih*PHI:ih -
Aumenta el alto y ajusta el ancho a 3/2 del alto:
scale=w=3/2*oh:h=3/5*ih -
Aumenta el tamaño, haciendo que sea múltiplo de los valores de submuestreo de croma:
scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub" -
Aumenta el ancho hasta un máximo de 500 píxeles, conservando la misma relación de aspecto que la entrada:
scale=w='min(500\, iw*3/2):h=-1' -
Hace que los píxeles sean cuadrados combinando scale y setsar:
scale='trunc(ih*dar):ih',setsar=1/1 -
Hace que los píxeles sean cuadrados usando reset_sar, garantizando que la resolución resultante sea par (requerido por algunos codecs):
scale='-2:ih-mod(ih,2):reset_sar=1' -
Escala exactamente al valor indicado, pero restableciendo el SAR a 1:
scale='400:300:reset_sar=1' -
Escala a dimensiones pares que quepan dentro de 400x300, conservando el SAR de entrada:
scale='400:300:force_original_aspect_ratio=decrease:force_divisible_by=2' -
Escala para producir píxeles cuadrados con dimensiones pares que quepan dentro de 400x300:
scale='400:300:force_original_aspect_ratio=decrease:force_divisible_by=2:reset_sar=1' -
Escala un flujo de subtítulos (sub) para que coincida en tamaño con el vídeo principal (main) antes de superponerlo. ("scale2ref")
'[main]split[a][b]; [ref][a]scale=rw:rh[c]; [b][c]overlay' -
Escala un logotipo a 1/10 del alto de un vídeo, conservando su relación de aspecto de visualización.
[logo-in][video-in]scale=w=oh*dar:h=rh/10[logo-out]
11.219.3 Comandos
Este filtro admite los siguientes comandos:
width, w height, h
Establece la expresión de la dimensión del vídeo de salida. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene en su valor actual.
11.220 scharr
Aplica el operador scharr al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. De forma predeterminada, con el valor 0xf, se procesan todos los planos.
scale
Establece el valor por el que se multiplicará el resultado filtrado.
delta
Establece el valor que se sumará al resultado filtrado.
11.220.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.221 scroll
Desplaza (scroll) el vídeo de entrada horizontal y/o verticalmente a velocidad constante.
El filtro acepta las siguientes opciones:
horizontal, h
Establece la velocidad de desplazamiento horizontal. El valor predeterminado es 0. El rango permitido va de -1 a 1. Los valores negativos invierten la dirección del desplazamiento.
vertical, v
Establece la velocidad de desplazamiento vertical. El valor predeterminado es 0. El rango permitido va de -1 a 1. Los valores negativos invierten la dirección del desplazamiento.
hpos
Establece la posición inicial de desplazamiento horizontal. El valor predeterminado es 0. El rango permitido va de 0 a 1.
vpos
Establece la posición inicial de desplazamiento vertical. El valor predeterminado es 0. El rango permitido va de 0 a 1.
11.221.1 Comandos
Este filtro admite los siguientes comandos:
horizontal, h
Establece la velocidad de desplazamiento horizontal.
vertical, v
Establece la velocidad de desplazamiento vertical.
11.222 scdet
Detecta cambios de escena en el vídeo.
Este filtro establece en los metadatos del fotograma el mafd entre fotogramas y la puntuación de escena, y reenvía el fotograma al filtro siguiente, de modo que este pueda usar dichos metadatos para detectar cambios de escena u otros fines.
Además, este filtro registra un mensaje y establece metadatos de fotograma cuando detecta un cambio de escena mediante el umbral.
La clave de metadatos lavfi.scd.mafd se establece con el mafd de cada fotograma.
La clave de metadatos lavfi.scd.score se establece con la puntuación de cambio de escena de cada fotograma para detectar el cambio de escena.
La clave de metadatos lavfi.scd.time se establece con el instante del fotograma filtrado actual en el que se detecta el cambio de escena mediante el umbral.
El filtro acepta las siguientes opciones:
threshold, t
Establece el umbral de detección de cambio de escena como porcentaje del cambio máximo. Los valores adecuados están en el rango [8.0, 14.0]. El rango de threshold es [0., 100.].
El valor predeterminado es 10..
sc_pass, s
Establece el flag para pasar los fotogramas de cambio de escena al siguiente filtro. El valor predeterminado es 0. Puede activarlo si desea obtener únicamente instantáneas de los fotogramas de cambio de escena.
11.223 selectivecolor
Ajusta el cian, magenta, amarillo y negro (CMYK) en determinados rangos de colores (como "reds", "yellows", "greens", "cyans", ...). El rango de ajuste se define según la "pureza" del color (es decir, cuánta saturación tiene ya).
Este filtro es similar a la herramienta "Selective Color" de Adobe Photoshop.
El filtro acepta las siguientes opciones:
correction_method
Selecciona el método de corrección de color.
Los valores disponibles son:
‘absolute’
Los ajustes especificados se aplican "tal cual" (se suman/restan al valor original del componente del píxel).
‘relative’
Los ajustes especificados se aplican como valores relativos al valor original del componente.
El valor predeterminado es absolute.
reds
Ajustes para los píxeles rojizos (píxeles en los que el componente rojo es el máximo)
yellows
Ajustes para los píxeles amarillentos (píxeles en los que el componente azul es el mínimo)
greens
Ajustes para los píxeles verdosos (píxeles en los que el componente verde es el máximo)
cyans
Ajustes para los píxeles cian (píxeles en los que el componente rojo es el mínimo)
blues
Ajustes para los píxeles azulados (píxeles en los que el componente azul es el máximo)
magentas
Ajustes para los píxeles magenta (píxeles en los que el componente verde es el mínimo)
whites
Ajustes para los píxeles blancos (píxeles en los que todos los componentes son mayores que 128)
neutrals
Ajustes para todos los píxeles excepto el negro puro y el blanco puro
blacks
Ajustes para los píxeles negros (píxeles en los que todos los componentes son menores que 128)
psfile
Especifica un archivo de color selectivo de Photoshop (.asv) del que importar los ajustes.
Todos los ajustes (reds, yellows, ...) aceptan hasta 4 valores de ajuste en coma flotante separados por espacios, en el rango [-1,1], para ajustar respectivamente la cantidad de cian, magenta, amarillo y negro de los píxeles de ese rango.
11.223.1 Ejemplos
-
Aumenta el cian un 50% y reduce el amarillo un 33% en todas las zonas verdes, y aumenta el magenta un 27% en las zonas azules:
selectivecolor=greens=.5 0 -.33 0:blues=0 .27 -
Usa un preajuste de color selectivo de Photoshop:
selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
11.224 separatefields
El filtro separatefields toma una entrada de vídeo basada en fotogramas y divide cada fotograma en sus campos componentes, produciendo un nuevo clip de la mitad de altura, con el doble de velocidad de fotogramas y el doble de número de fotogramas.
Este filtro usa la información de dominancia de campo (field-dominance) del fotograma para decidir cuál de cada par de campos se coloca primero en la salida. Si el resultado es incorrecto, use el filtro setfield antes del filtro separatefields.
11.225 setdar, setsar
El filtro setdar establece la relación de aspecto de visualización (Display Aspect Ratio) del vídeo de salida del filtro.
Esto se realiza cambiando la relación de aspecto de muestra (también llamada de píxel) especificada, según la siguiente ecuación:
DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR
Tenga en cuenta que el filtro setdar no modifica las dimensiones en píxeles del fotograma de vídeo. Además, la relación de aspecto de visualización establecida por este filtro puede ser modificada por filtros posteriores en la cadena de filtros, por ejemplo en caso de escalado o si se aplica otro filtro "setdar" o "setsar".
El filtro setsar establece la relación de aspecto de muestra (también llamada de píxel) del vídeo de salida del filtro.
Tenga en cuenta que, como consecuencia de la aplicación de este filtro, la relación de aspecto de visualización de salida cambiará según la ecuación anterior.
Tenga en cuenta que la relación de aspecto de muestra establecida por el filtro setsar puede ser modificada por filtros posteriores en la cadena de filtros, por ejemplo si se aplica otro filtro "setsar" o "setdar".
Acepta los siguientes parámetros:
r, ratio, dar (setdar only), sar (setsar only)
Establece la relación de aspecto usada por el filtro.
El parámetro puede ser una cadena con un número en coma flotante, o una expresión. Si no se especifica el parámetro, se asume el valor "0", lo que significa que se usa el mismo valor de entrada.
max
Establece el valor entero máximo que se usará para expresar el numerador y el denominador al reducir a fracción la relación de aspecto expresada. El valor predeterminado es 100.
El parámetro sar es una expresión que contiene las siguientes constantes:
w, h
El ancho y el alto de la entrada.
a
Lo mismo que w / h.
sar
La relación de aspecto de muestra de la entrada.
dar
La relación de aspecto de visualización de la entrada. Es lo mismo que (w / h) * sar.
hsub, vsub
Los valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub vale 2 y vsub vale 1.
11.225.1 Ejemplos
-
Para cambiar la relación de aspecto de visualización a 16:9, especifique una de las siguientes:
setdar=dar=1.77777 setdar=dar=16/9 -
Para cambiar la relación de aspecto de muestra a 10:11, especifique:
setsar=sar=10/11 -
Para establecer una relación de aspecto de visualización de 16:9 y especificar un valor entero máximo de 1000 en la reducción de la relación de aspecto, use el siguiente comando:
setdar=ratio=16/9:max=1000
11.226 setfield
Fuerza el campo del fotograma de vídeo de salida.
El filtro setfield marca el tipo de campo de entrelazado en los fotogramas de salida. No cambia el fotograma de entrada, sino que solo establece la propiedad correspondiente, lo cual afecta a cómo tratan ese fotograma los filtros posteriores (por ejemplo, fieldorder o yadif).
El filtro acepta las siguientes opciones:
mode
Los valores disponibles son:
‘auto’
Conserva la misma propiedad de campo.
‘bff’
Marca el fotograma como bottom-field-first.
‘tff’
Marca el fotograma como top-field-first.
‘prog’
Marca el fotograma como progresivo.
11.227 setparams
Fuerza el parámetro del fotograma de vídeo de salida.
El filtro setparams marca el entrelazado y el rango de color (color range) en los fotogramas de salida. No cambia el fotograma de entrada, sino que solo establece la propiedad correspondiente, lo cual afecta a cómo tratan ese fotograma los filtros o encoders.
field_mode
Los valores disponibles son:
‘auto’
Conserva la misma propiedad de campo (valor predeterminado).
‘bff’
Marca el fotograma como bottom-field-first.
‘tff’
Marca el fotograma como top-field-first.
‘prog’
Marca el fotograma como progresivo.
range
Los valores disponibles son:
‘auto’
Conserva la misma propiedad de rango de color (valor predeterminado).
‘unspecified, unknown’
Marca el fotograma con rango de color no especificado.
‘limited, tv, mpeg’
Marca el fotograma con rango limitado (limited range).
‘full, pc, jpeg’
Marca el fotograma con rango completo (full range).
color_primaries
Establece los primarios de color (color primaries). Los valores disponibles son:
‘auto’
Conserva la misma propiedad de primarios de color (valor predeterminado).
‘bt709’ ‘unknown’ ‘bt470m’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘film’ ‘bt2020’ ‘smpte428’ ‘smpte431’ ‘smpte432’ ‘jedec-p22’ color_trc
Establece la transferencia de color (color transfer). Los valores disponibles son:
‘auto’
Conserva la misma propiedad de color trc (valor predeterminado).
‘bt709’ ‘unknown’ ‘bt470m’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘linear’ ‘log100’ ‘log316’ ‘iec61966-2-4’ ‘bt1361e’ ‘iec61966-2-1’ ‘bt2020-10’ ‘bt2020-12’ ‘smpte2084’ ‘smpte428’ ‘arib-std-b67’ colorspace
Establece el espacio de color (colorspace). Los valores disponibles son:
‘auto’
Conserva la misma propiedad de espacio de color (valor predeterminado).
‘gbr’ ‘bt709’ ‘unknown’ ‘fcc’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘ycgco’ ‘bt2020nc’ ‘bt2020c’ ‘smpte2085’ ‘chroma-derived-nc’ ‘chroma-derived-c’ ‘ictcp’ chroma_location
Establece la ubicación de muestra de croma. Los valores disponibles son:
‘auto’
Conserva la misma ubicación de croma (valor predeterminado).
‘unspecified, unknown’ ‘left’ ‘center’ ‘topleft’ ‘top’ ‘bottomleft’ ‘bottom’ alpha_mode
Establece el modo alfa (alpha mode). Los valores disponibles son:
‘auto’
Conserva el mismo modo alfa (valor predeterminado).
‘unspecified, unknown’ ‘premultiplied’ ‘straight’
11.228 shear
Aplica una transformación de cizalladura (shear) al vídeo de entrada.
Este filtro admite las siguientes opciones:
shx
Factor de cizalladura en la dirección X. El valor predeterminado es 0. El rango permitido va de -2 a 2.
shy
Factor de cizalladura en la dirección Y. El valor predeterminado es 0. El rango permitido va de -2 a 2.
fillcolor, c
Establece el color usado para rellenar el área de salida no cubierta por el vídeo transformado. Para la sintaxis general de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils. Si se selecciona el valor especial "none", no se dibuja ningún fondo (útil, por ejemplo, si el fondo nunca se muestra).
El valor predeterminado es "black".
interp
Establece el tipo de interpolación. Puede ser bilinear o nearest. El valor predeterminado es bilinear.
11.228.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.229 showinfo
Muestra una línea con diversa información de cada fotograma de vídeo de entrada. El vídeo de entrada no se modifica.
Este filtro admite las siguientes opciones:
checksum
Calcula las sumas de comprobación (checksum) de cada plano. Habilitado de forma predeterminada.
udu_sei_as_ascii
Intenta mostrar los SEI de datos de usuario no registrados como caracteres ASCII cuando sea posible, y en formato hexadecimal en caso contrario.
La línea mostrada contiene una secuencia de pares clave/valor con la forma clave:valor.
En la salida se muestran los siguientes valores:
n
El número (secuencial) del fotograma de entrada, empezando en 0.
pts
La marca de tiempo de presentación (Presentation TimeStamp) del fotograma de entrada, expresada como un número de unidades de base de tiempo. La unidad de base de tiempo depende del pad de entrada del filtro.
pts_time
La marca de tiempo de presentación (Presentation TimeStamp) del fotograma de entrada, expresada en segundos.
fmt
El nombre del pixel format.
sar
La relación de aspecto de muestra del fotograma de entrada, expresada en la forma num/den.
s
El tamaño del fotograma de entrada. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils.
i
El tipo de modo entrelazado ("P" de "progressive", "T" de campo superior primero, "B" de campo inferior primero).
iskey
Vale 1 si el fotograma es un keyframe (key frame), 0 en caso contrario.
type
El tipo de imagen (picture type) del fotograma de entrada ("I" para un fotograma I, "P" para un fotograma P, "B" para un fotograma B, o "?" para un tipo desconocido). Consulte también la documentación de la enumeración AVPictureType y de la función av_get_picture_type_char, definidas en libavutil/avutil.h.
checksum
La suma de comprobación Adler-32 (impresa en hexadecimal) de todos los planos del fotograma de entrada.
plane_checksum
La suma de comprobación Adler-32 (impresa en hexadecimal) de cada plano del fotograma de entrada, expresada en la forma "[c0 c1 c2 c3]".
mean
El valor medio de los píxeles de cada plano del fotograma de entrada, expresado en la forma "[mean0 mean1 mean2 mean3]".
stdev
La desviación estándar de los valores de los píxeles de cada plano del fotograma de entrada, expresada en la forma "[stdev0 stdev1 stdev2 stdev3]".
11.230 showpalette
Muestra la paleta de 256 colores de cada fotograma. Este filtro solo es relevante para fotogramas con pixel format pal8.
Acepta la siguiente opción:
s
Establece el tamaño del recuadro usado para representar cada entrada de color de la paleta. El valor predeterminado es 30 (para un recuadro de 30x30 píxeles).
11.231 shuffleframes
Reordena y/o duplica y/o descarta fotogramas de vídeo.
Acepta los siguientes parámetros:
mapping
Establece los índices de destino de los fotogramas de entrada. Es una lista de índices separados por espacios o por ’|’ que asigna los fotogramas de entrada a los de salida. El número de índices también determina el valor máximo que puede tomar cada índice. El índice ’-1’ tiene un significado especial: descartar el fotograma.
El primer fotograma tiene el índice 0. De forma predeterminada, la entrada se conserva sin cambios.
11.231.1 Ejemplos
-
Intercambia el segundo y el tercer fotograma de cada tres fotogramas de la entrada:
ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT -
Intercambia el décimo y el primer fotograma de cada diez fotogramas de la entrada:
ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
11.232 shufflepixels
Reordena los píxeles de los fotogramas de vídeo.
Este filtro acepta las siguientes opciones:
direction, d
Establece la dirección de la mezcla (shuffle). Puede ser forward (hacia delante) o inverse (inversa). La dirección predeterminada es forward.
mode, m
Establece el modo de mezcla. Puede ser horizontal, vertical o de bloque (block).
width, w height, h
Establece el block_size de la mezcla. En el modo de mezcla horizontal solo se usa la parte width del tamaño, y en el modo de mezcla vertical solo se usa la parte height.
seed, s
Establece la semilla aleatoria usada para mezclar los píxeles. Resulta útil sobre todo para poder invertir el proceso de filtrado y recuperar la entrada original. Por ejemplo, para invertir una mezcla hacia delante hay que usar los mismos parámetros y exactamente la misma semilla, y establecer direction en inverse.
11.233 shuffleplanes
Reordena y/o duplica los planos de vídeo.
Acepta los siguientes parámetros:
map0
Índice del plano de entrada que se usará como primer plano de salida.
map1
Índice del plano de entrada que se usará como segundo plano de salida.
map2
Índice del plano de entrada que se usará como tercer plano de salida.
map3
Índice del plano de entrada que se usará como cuarto plano de salida.
El primer plano tiene el índice 0. De forma predeterminada, la entrada se mantiene sin cambios.
11.233.1 Ejemplos
- Intercambia el segundo y el tercer plano de la entrada:
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
11.234 signalstats
Evalúa varias métricas visuales que ayudan a determinar problemas asociados con la digitalización de medios de vídeo analógico.
De forma predeterminada, el filtro registra los siguientes valores de metadatos:
YMIN
Muestra el valor Y mínimo contenido en el fotograma de entrada. Se expresa en el rango [0-255].
YLOW
Muestra el valor Y correspondiente al percentil 10% dentro del fotograma de entrada. Se expresa en el rango [0-255].
YAVG
Muestra el valor Y medio dentro del fotograma de entrada. Se expresa en el rango [0-255].
YHIGH
Muestra el valor Y correspondiente al percentil 90% dentro del fotograma de entrada. Se expresa en el rango [0-255].
YMAX
Muestra el valor Y máximo contenido en el fotograma de entrada. Se expresa en el rango [0-255].
UMIN
Muestra el valor U mínimo contenido en el fotograma de entrada. Se expresa en el rango [0-255].
ULOW
Muestra el valor U correspondiente al percentil 10% dentro del fotograma de entrada. Se expresa en el rango [0-255].
UAVG
Muestra el valor U medio dentro del fotograma de entrada. Se expresa en el rango [0-255].
UHIGH
Muestra el valor U correspondiente al percentil 90% dentro del fotograma de entrada. Se expresa en el rango [0-255].
UMAX
Muestra el valor U máximo contenido en el fotograma de entrada. Se expresa en el rango [0-255].
VMIN
Muestra el valor V mínimo contenido en el fotograma de entrada. Se expresa en el rango [0-255].
VLOW
Muestra el valor V correspondiente al percentil 10% dentro del fotograma de entrada. Se expresa en el rango [0-255].
VAVG
Muestra el valor V medio dentro del fotograma de entrada. Se expresa en el rango [0-255].
VHIGH
Muestra el valor V correspondiente al percentil 90% dentro del fotograma de entrada. Se expresa en el rango [0-255].
VMAX
Muestra el valor V máximo contenido en el fotograma de entrada. Se expresa en el rango [0-255].
SATMIN
Muestra el valor de saturación mínimo contenido en el fotograma de entrada. Se expresa en el rango [0-~181.02].
SATLOW
Muestra el valor de saturación correspondiente al percentil 10% dentro del fotograma de entrada. Se expresa en el rango [0-~181.02].
SATAVG
Muestra el valor de saturación medio dentro del fotograma de entrada. Se expresa en el rango [0-~181.02].
SATHIGH
Muestra el valor de saturación correspondiente al percentil 90% dentro del fotograma de entrada. Se expresa en el rango [0-~181.02].
SATMAX
Muestra el valor de saturación máximo contenido en el fotograma de entrada. Se expresa en el rango [0-~181.02].
HUEMED
Muestra el valor mediano del matiz (hue) dentro del fotograma de entrada. Se expresa en el rango [0-360].
HUEAVG
Muestra el valor medio del matiz dentro del fotograma de entrada. Se expresa en el rango [0-360].
YDIF
Muestra la media de la diferencia de valores de muestra entre todos los valores del plano Y del fotograma actual y los valores correspondientes del fotograma de entrada anterior. Se expresa en el rango [0-255].
UDIF
Muestra la media de la diferencia de valores de muestra entre todos los valores del plano U del fotograma actual y los valores correspondientes del fotograma de entrada anterior. Se expresa en el rango [0-255].
VDIF
Muestra la media de la diferencia de valores de muestra entre todos los valores del plano V del fotograma actual y los valores correspondientes del fotograma de entrada anterior. Se expresa en el rango [0-255].
YBITDEPTH
Muestra la profundidad de bits del plano Y en el fotograma actual. Se expresa en el rango [0-16].
UBITDEPTH
Muestra la profundidad de bits del plano U en el fotograma actual. Se expresa en el rango [0-16].
VBITDEPTH
Muestra la profundidad de bits del plano V en el fotograma actual. Se expresa en el rango [0-16].
El filtro acepta las siguientes opciones:
stat out
stat especifica una forma adicional de análisis de la imagen; out muestra el vídeo de salida resaltando el tipo de píxel especificado.
Ambas opciones aceptan los siguientes valores:
‘tout’
Identifica píxeles atípicos temporales. Un valor atípico temporal es un píxel distinto de los píxeles vecinos del mismo campo. Son ejemplos de valores atípicos temporales los resultados de pérdidas de vídeo, obstrucciones del cabezal o problemas de arrastre de cinta.
‘vrep’
Identifica la repetición de líneas verticales. La repetición de líneas verticales consiste en filas de píxeles similares dentro de un fotograma. En el vídeo nativamente digital esta repetición es habitual, pero este patrón es poco frecuente en vídeo digitalizado a partir de una fuente analógica. Cuando aparece en vídeo resultante de la digitalización de una fuente analógica, puede indicar el enmascaramiento de un compensador de caídas.
‘brng’
Identifica los píxeles que quedan fuera del rango de difusión permitido.
color, c
Establece el color de resaltado para la opción out. El color predeterminado es amarillo.
11.234.1 Ejemplos
-
Genera datos de varias métricas de vídeo:
ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames -
Genera datos concretos sobre los valores mínimo y máximo del plano Y por fotograma:
ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN -
Reproduce el vídeo resaltando en rojo los píxeles que quedan fuera del rango de difusión.
ffplay example.mov -vf signalstats="out=brng:color=red" -
Reproduce el vídeo con los metadatos de signalstats dibujados sobre el fotograma.
ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
El contenido de signalstat_drawtext.txt usado en el comando es el siguiente:
time %{pts:hms}
Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
11.235 signature
Calcula la firma de vídeo MPEG-7 (MPEG-7 Video Signature). El filtro puede admitir más de una entrada. En ese caso, además puede calcularse la coincidencia entre las entradas. El filtro siempre deja pasar la primera entrada sin cambios. La firma de cada flujo puede escribirse en un archivo.
Acepta las siguientes opciones:
detectmode
Activa o desactiva el proceso de coincidencia.
Los valores disponibles son:
‘off’
Desactiva el cálculo de coincidencias (valor predeterminado).
‘full’
Calcula la coincidencia para todo el vídeo e indica si coincide por completo o solo en algunas partes.
‘fast’
Calcula solo hasta encontrar una coincidencia o hasta que termine el vídeo. En algunos casos resulta más rápido.
nb_inputs
Establece el número de entradas. El valor de la opción debe ser un entero no negativo. El valor predeterminado es 1.
filename
Establece la ruta en la que se escribe la salida. Si hay más de una entrada, la ruta debe ser un prototipo, es decir, debe contener %d o %0nd (donde n es un entero positivo), que se sustituirá por el número de entrada. Si no se especifica ningún nombre de archivo, no se escribirá ninguna salida. Este es el comportamiento predeterminado.
format
Selecciona el formato de salida.
Los valores disponibles son:
‘binary’
Usa la representación binaria especificada (valor predeterminado).
‘xml’
Usa la representación xml especificada.
th_d
Establece el umbral para detectar una palabra como similar. El valor de la opción debe ser un entero mayor que cero. El valor predeterminado es 9000.
th_dc
Establece el umbral para detectar todas las palabras como similares. El valor de la opción debe ser un entero mayor que cero. El valor predeterminado es 60000.
th_xh
Establece el umbral para detectar fotogramas como similares. El valor de la opción debe ser un entero mayor que cero. El valor predeterminado es 116.
th_di
Establece la longitud mínima, en fotogramas, de una secuencia para reconocerla como secuencia coincidente. El valor de la opción debe ser un entero no negativo. El valor predeterminado es 0.
th_it
Establece la proporción mínima que deben tener los fotogramas coincidentes respecto al total de fotogramas. El valor de la opción debe ser un valor double entre 0 y 1. El valor predeterminado es 0.5.
11.235.1 Ejemplos
-
Para calcular la firma de un vídeo de entrada y guardarla en signature.bin:
ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null - -
Para detectar si dos vídeos coinciden y guardar las firmas en formato XML en signature0.xml y signature1.xml:
ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
11.236 siti
Calcula las puntuaciones de Información Espacial (SI) e Información Temporal (TI) de un vídeo, tal como se definen en la ITU-T Rec. P.910 (11/21): Subjective video quality assessment methods for multimedia applications. PDF disponible en https://www.itu.int/rec/T-REC-P.910-202111-S/en. Tenga en cuenta que esta es una implementación heredada que corresponde a una recomendación ya sustituida. Consulte la ITU-T Rec. P.910 (07/22) para la versión más reciente: https://www.itu.int/rec/T-REC-P.910-202207-I/en
Acepta la siguiente opción:
print_summary
Si se establece en 1, se imprimen en la consola las estadísticas de resumen. El valor predeterminado es 0.
11.236.1 Ejemplos
- Para calcular las métricas SI/TI e imprimir el resumen:
ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
11.237 smartblur
Difumina el vídeo de entrada sin afectar a los contornos.
Acepta las siguientes opciones:
luma_radius, lr
Establece el radio de luma. El valor de la opción debe ser un número en coma flotante en el rango [0.1,5.0] que especifica la varianza del filtro gaussiano usado para difuminar la imagen (cuanto mayor, más lento). El valor predeterminado es 1.0.
luma_strength, ls
Establece la intensidad de luma. El valor de la opción debe ser un número en coma flotante en el rango [-1.0,1.0] que configura el desenfoque. Un valor incluido en [0.0,1.0] difumina la imagen, mientras que un valor incluido en [-1.0,0.0] la enfoca (sharpen). El valor predeterminado es 1.0.
luma_threshold, lt
Establece el umbral de luma, usado como coeficiente para determinar si un píxel debe difuminarse o no. El valor de la opción debe ser un entero en el rango [-30,30]. Un valor de 0 filtra toda la imagen, un valor incluido en [0,30] filtra las áreas planas y un valor incluido en [-30,0] filtra los bordes. El valor predeterminado es 0.
chroma_radius, cr
Establece el radio de chroma. El valor de la opción debe ser un número en coma flotante en el rango [0.1,5.0] que especifica la varianza del filtro gaussiano usado para difuminar la imagen (cuanto mayor, más lento). El valor predeterminado es luma_radius.
chroma_strength, cs
Establece la intensidad de chroma. El valor de la opción debe ser un número en coma flotante en el rango [-1.0,1.0] que configura el desenfoque. Un valor incluido en [0.0,1.0] difumina la imagen, mientras que un valor incluido en [-1.0,0.0] la enfoca (sharpen). El valor predeterminado es luma_strength.
chroma_threshold, ct
Establece el umbral de chroma, usado como coeficiente para determinar si un píxel debe difuminarse o no. El valor de la opción debe ser un entero en el rango [-30,30]. Un valor de 0 filtra toda la imagen, un valor incluido en [0,30] filtra las áreas planas y un valor incluido en [-30,0] filtra los bordes. El valor predeterminado es luma_threshold.
alpha_radius, ar
Establece el radio de alpha. El valor de la opción debe ser un número en coma flotante en el rango [0.1,5.0] que especifica la varianza del filtro gaussiano usado para difuminar la imagen (cuanto mayor, más lento). El valor predeterminado es luma_radius.
alpha_strength, as
Establece la intensidad de alpha. El valor de la opción debe ser un número en coma flotante en el rango [-1.0,1.0] que configura el desenfoque. Un valor incluido en [0.0,1.0] difumina la imagen, mientras que un valor incluido en [-1.0,0.0] la enfoca (sharpen). El valor predeterminado es luma_strength.
alpha_threshold, at
Establece el umbral de alpha, usado como coeficiente para determinar si un píxel debe difuminarse o no. El valor de la opción debe ser un entero en el rango [-30,30]. Un valor de 0 filtra toda la imagen, un valor incluido en [0,30] filtra las áreas planas y un valor incluido en [-30,0] filtra los bordes. El valor predeterminado es luma_threshold.
Si no se establece explícitamente una opción de chroma o alpha, se usa el valor de luma correspondiente.
11.238 sobel
Aplica el operador sobel al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesan; los planos no procesados se copian. Con el valor predeterminado 0xf, se procesan todos los planos.
scale
Establece el valor por el que se multiplica el resultado filtrado.
delta
Establece el valor que se suma al resultado filtrado.
11.238.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.239 spp
Aplica un filtro de postprocesado simple que comprime y descomprime la imagen en varios (o - en el caso del nivel de calidad 6 - todos) desplazamientos y promedia los resultados.
El filtro acepta las siguientes opciones:
quality
Establece la calidad. Esta opción define el número de niveles usados para el promediado. Acepta un entero en el rango 0-6. Si se establece en 0, el filtro no tiene efecto. Un valor de 6 significa la calidad más alta. Por cada incremento de ese valor, la velocidad se reduce en un factor aproximado de 2. El valor predeterminado es 3.
qp
Fuerza un parámetro de cuantización constante. Si no se establece, el filtro usa el QP del flujo de vídeo (si está disponible).
mode
Establece el modo de umbralización. Los modos disponibles son:
‘hard’
Establece la umbralización dura (hard) (valor predeterminado).
‘soft’
Establece la umbralización suave (soft) (mejor efecto de reducción de ringing, aunque probablemente más borrosa).
use_bframe_qp
Activa el uso del QP de los fotogramas B (B-Frames) si se establece en 1. Usar esta opción puede causar parpadeo, ya que los fotogramas B suelen tener un QP mayor. El valor predeterminado es 0 (desactivado).
11.239.1 Comandos
Este filtro admite los siguientes comandos:
quality, level
Establece el nivel de calidad. Puede usarse el valor max para establecer el nivel máximo, actualmente 6.
11.240 sr
Escala la entrada aplicando uno de los métodos de superresolución basados en redes neuronales convolucionales. Modelos admitidos:
- Modelo de red neuronal convolucional de superresolución (SRCNN, Super-Resolution Convolutional Neural Network). Véase https://arxiv.org/abs/1501.00092.
- Modelo de red neuronal convolucional subpíxel eficiente (ESPCN, Efficient Sub-Pixel Convolutional Neural Network). Véase https://arxiv.org/abs/1609.05158.
Los scripts de entrenamiento, así como los scripts para guardar el archivo de modelo (.pb), pueden encontrarse en https://github.com/XueweiMeng/sr/tree/sr_dnn_native. El repositorio original está en https://github.com/HighVoltageRocknRoll/sr.git.
El filtro acepta las siguientes opciones:
dnn_backend
Especifica qué backend de DNN se usa para cargar y ejecutar el modelo. Esta opción acepta los siguientes valores:
‘tensorflow’
Backend de TensorFlow. Para habilitar este backend es necesario instalar la biblioteca TensorFlow for C (véase https://www.tensorflow.org/install/lang_c) y configurar FFmpeg con --enable-libtensorflow
model
Establece la ruta al archivo de modelo que especifica la arquitectura de la red y sus parámetros. Tenga en cuenta que cada backend usa un formato de archivo distinto. Los backends de TensorFlow y OpenVINO solo pueden cargar archivos en su propio formato.
scale_factor
Establece el factor de escala para el modelo SRCNN. Los valores permitidos son 2, 3 y 4. El valor predeterminado es 2. El factor de escala es necesario para el modelo SRCNN, ya que este acepta una entrada escalada previamente mediante escalado bicúbico con el factor de escala adecuado.
Para obtener la funcionalidad completa (como la ejecución asíncrona), use el filtro dnn_processing.
11.241 sr_amf
Escala al alza (aumento de tamaño) el vídeo de entrada usando la biblioteca AMD Advanced Media Framework para aceleración por hardware. Emplea algoritmos avanzados de escalado que producen una salida de mayor calidad. Establecer el ancho y el alto de salida funciona igual que en el filtro scale.
El filtro acepta las siguientes opciones:
w h
Establece la expresión de las dimensiones del vídeo de salida. El valor predeterminado es la dimensión de entrada.
Admite las mismas expresiones que el filtro scale.
algorithm
Establece el algoritmo usado para el escalado:
bilinear
Bilineal
bicubic
Bicúbico
sr1-0
Video SR1.0. Este es el valor predeterminado
point
Punto
sr1-1
Video SR1.1
sharpness
Controla el enfoque (sharpening) del escalador hq. El valor es un número en coma flotante en el rango [0.0, 2.0]
format
Controla el pixel format de salida. De forma predeterminada, o si no se especifica ninguno, se usa el pixel format de entrada.
keep-ratio
Fuerza al escalador a mantener la relación de aspecto de la imagen de entrada cuando el tamaño de salida tiene una relación de aspecto distinta. El valor predeterminado es false.
fill
Especifica si la parte de la imagen de salida que queda fuera de la región de interés, cuando esta no ocupa toda la superficie de salida, debe rellenarse con un color sólido.
11.241.1 Ejemplos
-
Escala la entrada a 720p, manteniendo la relación de aspecto y asegurando que la salida sea yuv420p.
sr_amf=-2:720:format=yuv420p -
Escala al alza a 4K con el algoritmo video SR1.1.
sr_amf=4096:2160:algorithm=sr1-1
11.242 ssim
Obtiene el SSIM (Structural SImilarity Metric) entre dos vídeos de entrada.
Este filtro toma dos vídeos como entrada; la primera entrada se considera la fuente "principal" y se pasa sin cambios a la salida. La segunda entrada se usa como vídeo de "referencia" para calcular el SSIM.
Ambas entradas de vídeo deben tener la misma resolución y el mismo pixel format para que este filtro funcione correctamente. Además, se asume que ambas entradas tienen el mismo número de fotogramas, que se comparan uno a uno.
El filtro almacena el SSIM calculado de cada fotograma.
A continuación se describen los parámetros aceptados.
stats_file, f
Si se especifica, el filtro usa el archivo indicado para guardar el SSIM de cada fotograma individual. Cuando el nombre de archivo es "-", los datos se envían a la salida estándar.
El archivo generado cuando se selecciona stats_file contiene una secuencia de pares clave/valor con la forma clave:valor para cada par de fotogramas comparado.
A continuación se describe cada uno de los parámetros mostrados:
n
número secuencial del fotograma de entrada, empezando en 1
Y, U, V, R, G, B
SSIM de los fotogramas comparados para el componente indicado por el sufijo.
All
SSIM de los fotogramas comparados para el fotograma completo.
dB
Igual que el anterior, pero en representación en dB.
Este filtro también admite las opciones de framesync.
11.242.1 Ejemplos
- Por ejemplo:
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] ssim="stats_file=stats.log" [out]
En este ejemplo, el archivo de entrada procesado se compara con el archivo de referencia ref_movie.mpg. El SSIM de cada fotograma individual se guarda en stats.log.
-
Otro ejemplo con psnr y ssim al mismo tiempo:
ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null - -
Otro ejemplo con distintos containers:
ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
11.243 stereo3d
Convierte entre distintos formatos de imagen estereoscópica.
Los filtros aceptan las siguientes opciones:
in
Establece el formato de imagen estereoscópica de la entrada.
Los valores disponibles para los formatos de imagen de entrada son:
‘sbsl’
en paralelo lado a lado (ojo izquierdo a la izquierda, ojo derecho a la derecha)
‘sbsr’
en cruzado lado a lado (ojo derecho a la izquierda, ojo izquierdo a la derecha)
‘sbs2l’
en paralelo lado a lado con media resolución horizontal (ojo izquierdo a la izquierda, ojo derecho a la derecha)
‘sbs2r’
en cruzado lado a lado con media resolución horizontal (ojo derecho a la izquierda, ojo izquierdo a la derecha)
‘abl’ ‘tbl’
arriba-abajo (ojo izquierdo arriba, ojo derecho abajo)
‘abr’ ‘tbr’
arriba-abajo (ojo derecho arriba, ojo izquierdo abajo)
‘ab2l’ ‘tb2l’
arriba-abajo con media resolución vertical (ojo izquierdo arriba, ojo derecho abajo)
‘ab2r’ ‘tb2r’
arriba-abajo con media resolución vertical (ojo derecho arriba, ojo izquierdo abajo)
‘al’
fotogramas alternos (primero el ojo izquierdo, después el derecho)
‘ar’
fotogramas alternos (primero el ojo derecho, después el izquierdo)
‘irl’
filas entrelazadas (el ojo izquierdo ocupa la fila superior, el ojo derecho empieza en la siguiente fila)
‘irr’
filas entrelazadas (el ojo derecho ocupa la fila superior, el ojo izquierdo empieza en la siguiente fila)
‘icl’
columnas entrelazadas, empezando por el ojo izquierdo
‘icr’
columnas entrelazadas, empezando por el ojo derecho
El valor predeterminado es ‘sbsl’.
out
Establece el formato de imagen estereoscópica de la salida.
‘sbsl’
en paralelo lado a lado (ojo izquierdo a la izquierda, ojo derecho a la derecha)
‘sbsr’
en cruzado lado a lado (ojo derecho a la izquierda, ojo izquierdo a la derecha)
‘sbs2l’
en paralelo lado a lado con media resolución horizontal (ojo izquierdo a la izquierda, ojo derecho a la derecha)
‘sbs2r’
en cruzado lado a lado con media resolución horizontal (ojo derecho a la izquierda, ojo izquierdo a la derecha)
‘abl’ ‘tbl’
arriba-abajo (ojo izquierdo arriba, ojo derecho abajo)
‘abr’ ‘tbr’
arriba-abajo (ojo derecho arriba, ojo izquierdo abajo)
‘ab2l’ ‘tb2l’
arriba-abajo con media resolución vertical (ojo izquierdo arriba, ojo derecho abajo)
‘ab2r’ ‘tb2r’
arriba-abajo con media resolución vertical (ojo derecho arriba, ojo izquierdo abajo)
‘al’
fotogramas alternos (primero el ojo izquierdo, después el derecho)
‘ar’
fotogramas alternos (primero el ojo derecho, después el izquierdo)
‘irl’
filas entrelazadas (el ojo izquierdo ocupa la fila superior, el ojo derecho empieza en la siguiente fila)
‘irr’
filas entrelazadas (el ojo derecho ocupa la fila superior, el ojo izquierdo empieza en la siguiente fila)
‘arbg’
anaglifo rojo/azul en escala de grises (filtro rojo en el ojo izquierdo, filtro azul en el ojo derecho)
‘argg’
anaglifo rojo/verde en escala de grises (filtro rojo en el ojo izquierdo, filtro verde en el ojo derecho)
‘arcg’
anaglifo rojo/cian en escala de grises (filtro rojo en el ojo izquierdo, filtro cian en el ojo derecho)
‘arch’
anaglifo rojo/cian semicoloreado (filtro rojo en el ojo izquierdo, filtro cian en el ojo derecho)
‘arcc’
anaglifo rojo/cian en color (filtro rojo en el ojo izquierdo, filtro cian en el ojo derecho)
‘arcd’
anaglifo rojo/cian en color, optimizado con la proyección de mínimos cuadrados de Dubois (filtro rojo en el ojo izquierdo, filtro cian en el ojo derecho)
‘agmg’
anaglifo verde/magenta en escala de grises (filtro verde en el ojo izquierdo, filtro magenta en el ojo derecho)
‘agmh’
anaglifo verde/magenta semicoloreado (filtro verde en el ojo izquierdo, filtro magenta en el ojo derecho)
‘agmc’
anaglifo verde/magenta coloreado (filtro verde en el ojo izquierdo, filtro magenta en el ojo derecho)
‘agmd’
anaglifo verde/magenta en color, optimizado con la proyección de mínimos cuadrados de Dubois (filtro verde en el ojo izquierdo, filtro magenta en el ojo derecho)
‘aybg’
anaglifo amarillo/azul en escala de grises (filtro amarillo en el ojo izquierdo, filtro azul en el ojo derecho)
‘aybh’
anaglifo amarillo/azul semicoloreado (filtro amarillo en el ojo izquierdo, filtro azul en el ojo derecho)
‘aybc’
anaglifo amarillo/azul coloreado (filtro amarillo en el ojo izquierdo, filtro azul en el ojo derecho)
‘aybd’
anaglifo amarillo/azul en color, optimizado con la proyección de mínimos cuadrados de Dubois (filtro amarillo en el ojo izquierdo, filtro azul en el ojo derecho)
‘ml’
salida monoscópica (solo el ojo izquierdo)
‘mr’
salida monoscópica (solo el ojo derecho)
‘chl’
patrón de tablero de ajedrez, empezando por el ojo izquierdo
‘chr’
patrón de tablero de ajedrez, empezando por el ojo derecho
‘icl’
columnas entrelazadas, empezando por el ojo izquierdo
‘icr’
columnas entrelazadas, empezando por el ojo derecho
‘hdmi’
empaquetado de fotogramas HDMI (frame pack)
El valor predeterminado es ‘arcd’.
11.243.1 Ejemplos
-
Convertir el vídeo de entrada de lado a lado en paralelo a anaglifo amarillo/azul dubois:
stereo3d=sbsl:aybd -
Convertir el vídeo de entrada de arriba y abajo (ojo izquierdo arriba, ojo derecho abajo) a lado a lado cruzado.
stereo3d=abl:sbsr
11.244 streamselect, astreamselect
Selecciona flujos de vídeo o de audio.
El filtro acepta las siguientes opciones:
inputs
Establece el número de entradas. El valor predeterminado es 2.
map
Establece los índices de entrada que se remapean a las salidas.
11.244.1 Comandos
Los filtros streamselect y astreamselect admiten los siguientes comandos:
map
Establece los índices de entrada que se remapean a las salidas.
11.244.2 Ejemplos
-
Seleccionar el primer flujo durante los primeros 5 segundos y el segundo flujo el resto del tiempo:
sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0 -
Igual que el anterior, pero para audio:
asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
11.245 subtitles
Dibuja subtítulos sobre el vídeo de entrada usando la biblioteca libass.
Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-libass. Este filtro también requiere una compilación con libavcodec y libavformat para convertir el archivo de subtítulos indicado al formato de subtítulos ASS (Advanced Substation Alpha).
El filtro acepta las siguientes opciones:
filename, f
Establece el nombre del archivo de subtítulos que se va a leer. Debe especificarse.
original_size
Especifica el tamaño del vídeo original, el vídeo para el que se compuso el archivo ASS. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. Debido a un fallo de diseño en la aritmética de la relación de aspecto de ASS, esto es necesario para escalar correctamente las fuentes si se ha cambiado la relación de aspecto.
fontsdir
Establece una ruta de directorio que contenga fuentes que el filtro pueda usar. Estas fuentes se usarán además de las que use el proveedor de fuentes.
alpha
Procesa el canal alfa; de forma predeterminada, el canal alfa no se modifica.
charenc
Establece la codificación de caracteres de entrada de los subtítulos. Solo para el filtro subtitles. Solo resulta útil si no es UTF-8.
stream_index, si
Establece el índice de flujo de subtítulos. Solo para el filtro subtitles.
force_style
Sobrescribe el estilo predeterminado o los parámetros de información del script de los subtítulos. Acepta una cadena que contiene pares KEY=VALUE en formato de estilo ASS separados por ",".
wrap_unicode
Rompe las líneas según el algoritmo de salto de línea Unicode (Unicode Line Breaking Algorithm). Su disponibilidad requiere al menos la versión 0.17.0 de libass (o LIBASS_VERSION 0x01600010), y que libass se haya compilado con libunibreak.
La opción está habilitada de forma predeterminada, excepto para ASS nativo.
shaping
Establece el motor de shaping.
Los valores disponibles son:
‘auto’
El motor de shaping predeterminado de libass, que es el mejor disponible.
‘simple’
Un shaper rápido e independiente de la fuente que solo puede hacer sustituciones.
‘complex’
Un shaper más lento que usa OpenType para sustituciones y posicionamiento. Necesario para representar correctamente escrituras complejas como el árabe, el hebreo, el devanagari y el tailandés. Requiere que libass se haya compilado con HarfBuzz.
El valor predeterminado es auto.
Si no se especifica la primera clave, se asume que el primer valor especifica el nombre de archivo.
Por ejemplo, para renderizar el archivo sub.srt sobre el vídeo de entrada, use el siguiente comando:
subtitles=sub.srt
lo cual equivale a:
subtitles=filename=sub.srt
Para renderizar el flujo de subtítulos predeterminado del archivo video.mkv, use:
subtitles=video.mkv
Para renderizar el segundo flujo de subtítulos de ese archivo, use:
subtitles=video.mkv:si=1
Para hacer que el flujo de subtítulos de sub.srt aparezca en DejaVu Serif azul con un 80% de transparencia, use:
subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
11.246 super2xsai
Escala la entrada al doble (2x) y suaviza usando el algoritmo de escalado de pixel art Super2xSaI (Scale and Interpolate).
Resulta útil para ampliar imágenes de pixel art sin reducir la nitidez.
11.247 swaprect
Intercambia dos objetos rectangulares en el vídeo.
Este filtro acepta las siguientes opciones:
w
Establece el ancho del objeto.
h
Establece el alto del objeto.
x1
Establece la coordenada x del 1.º rectángulo.
y1
Establece la coordenada y del 1.º rectángulo.
x2
Establece la coordenada x del 2.º rectángulo.
y2
Establece la coordenada y del 2.º rectángulo.
Todas las expresiones se evalúan una vez por cada fotograma.
Todas las opciones son expresiones que contienen las siguientes constantes:
w h
El ancho y el alto de la entrada.
a
lo mismo que w / h
sar
relación de aspecto de muestra de la entrada
dar
relación de aspecto de visualización de la entrada; es lo mismo que (w / h) * sar
n
El número del fotograma de entrada, empezando en 0.
t
La marca de tiempo expresada en segundos. Es NAN si la marca de tiempo de entrada es desconocida.
pos
la posición en el archivo del fotograma de entrada; NAN si es desconocida; obsoleto, no lo use
11.247.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.248 swapuv
Intercambia los planos U y V.
11.249 tblend
Combina fotogramas de vídeo sucesivos.
Véase blend
11.250 telecine
Aplica el proceso de telecine al vídeo.
Este filtro acepta las siguientes opciones:
first_field
‘top, t’
campo superior primero
‘bottom, b’
campo inferior primero. El valor predeterminado es top.
pattern
Una cadena de números que representa el patrón de pulldown que se desea aplicar. El valor predeterminado es 23.
Some typical patterns:
NTSC output (30i):
27.5p: 32222
24p: 23 (classic)
24p: 2332 (preferred)
20p: 33
18p: 334
16p: 3444
PAL output (25i):
27.5p: 12222
24p: 222222222223 ("Euro pulldown")
16.67p: 33
16p: 33333334
11.251 thistogram
Calcula y dibuja un histograma de distribución de color del vídeo de entrada a lo largo del tiempo.
A diferencia del filtro de vídeo histogram, que solo muestra el histograma de un único fotograma de entrada en un instante determinado, este filtro también muestra los histogramas pasados del número de fotogramas definido por la opción width.
El histograma calculado es una representación de la distribución de los componentes de color en una imagen.
El filtro acepta las siguientes opciones:
width, w
Establece el ancho de la salida de un único componente de color. El valor predeterminado es 0. Un valor de 0 significa que el ancho se tomará del vídeo de entrada. Esto también establece el número de histogramas pasados que se conservan. El rango permitido es [0, 8192].
display_mode, d
Establece el modo de visualización. Acepta los siguientes valores:
‘stack’
Los gráficos de cada componente de color se colocan uno debajo del otro.
‘parade’
Los gráficos de cada componente de color se colocan uno junto al otro.
‘overlay’
Presenta la misma información que parade, salvo que los gráficos que representan los componentes de color se superponen directamente unos sobre otros.
El valor predeterminado es stack.
levels_mode, m
Establece el modo. Puede ser linear o logarithmic. El valor predeterminado es linear.
components, c
Establece qué componentes de color mostrar. El valor predeterminado es 7.
bgopacity, b
Establece la opacidad del fondo. El valor predeterminado es 0.9.
envelope, e
Muestra la envolvente. Está deshabilitada de forma predeterminada.
ecolor, ec
Establece el color de la envolvente. El valor predeterminado es gold.
slide
Establece el modo de deslizamiento.
Los valores disponibles para slide son:
‘frame’
Dibuja un nuevo fotograma cuando se alcanza el borde derecho.
‘replace’
Sustituye las columnas antiguas por otras nuevas.
‘scroll’
Desplaza de derecha a izquierda.
‘rscroll’
Desplaza de izquierda a derecha.
‘picture’
Dibuja una única imagen.
El valor predeterminado es replace.
11.252 threshold
Aplica un efecto de umbral al flujo de vídeo.
Este filtro necesita cuatro flujos de vídeo para realizar la umbralización. El primer flujo es el flujo que se está filtrando. El segundo flujo contiene los valores de umbral, el tercero contiene los valores mínimos y, por último, el cuarto contiene los valores máximos.
El filtro acepta la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán. Con el valor predeterminado 0xf, se procesan todos los planos.
Por ejemplo, si el valor del componente de píxel del primer flujo es menor que el valor de umbral del componente de píxel del segundo flujo de umbral, se elegirá el valor del tercer flujo; en caso contrario, se elegirá el valor del componente de píxel del cuarto flujo.
Usando el filtro de fuente color se pueden realizar varios tipos de umbralización:
11.252.1 Comandos
Este filtro admite todas las opciones como comandos.
11.252.2 Ejemplos
-
Umbral binario, usando el color gris como umbral:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi -
Umbral binario invertido, usando el color gris como umbral:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi -
Umbral binario truncado, usando el color gris como umbral:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi -
Umbral a cero, usando el color gris como umbral:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi -
Umbral a cero invertido, usando el color gris como umbral:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
11.253 thumbnail
Selecciona el fotograma más representativo de una secuencia dada de fotogramas consecutivos.
El filtro acepta las siguientes opciones:
n
Establece el tamaño del lote de fotogramas que se va a analizar; de cada conjunto de n fotogramas, el filtro elegirá uno de ellos y después procesará el siguiente lote de n fotogramas hasta el final. El valor predeterminado es 100.
log
Establece el nivel de registro para mostrar las estadísticas del fotograma elegido. El valor predeterminado es info.
Como el filtro hace un seguimiento de toda la secuencia de fotogramas, un valor de n más alto se traduce en un mayor uso de memoria, por lo que no se recomienda usar un valor alto.
11.253.1 Ejemplos
-
Extraer una imagen cada 50 fotogramas:
thumbnail=50 -
Ejemplo completo de creación de una miniatura con
ffmpeg:ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
11.254 tile
Compone varios fotogramas sucesivos en un mosaico.
El filtro untile puede hacer lo contrario.
El filtro acepta las siguientes opciones:
layout
Establece el tamaño de la cuadrícula en la forma COLUMNSxROWS. El rango permitido llega hasta UINT_MAX celdas. El valor predeterminado es 6x5.
nb_frames
Establece el número máximo de fotogramas que se renderizarán en el área dada. Debe ser menor o igual que wxh. El valor predeterminado es 0, lo que significa que se usará toda el área.
margin
Establece el margen exterior en píxeles. El rango va de 0 a 1024. El valor predeterminado es 0.
padding
Establece el grosor del borde interior (es decir, el número de píxeles entre fotogramas). Para opciones de relleno más avanzadas (como usar valores distintos para cada borde), consulte el filtro de vídeo pad. El rango va de 0 a 1024. El valor predeterminado es 0.
color
Especifica el color del área no utilizada. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils. El valor predeterminado de color es "black".
overlap
Establece el número de fotogramas que se solapan al combinar varios fotogramas sucesivos en el mosaico. El valor debe estar entre 0 y nb_frames - 1. El valor predeterminado es 0.
init_padding
Establece el número de fotogramas que estarán inicialmente vacíos antes de mostrar el primer fotograma de salida. Esto controla cuánto se tarda en obtener el primer fotograma de salida. El valor debe estar entre 0 y nb_frames - 1. El valor predeterminado es 0.
11.254.1 Ejemplos
- Producir mosaicos PNG de 8x8 con todos los keyframes (-skip_frame nokey) de una película:
ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -fps_mode passthrough keyframes%03d.png
La opción -fps_mode passthrough es necesaria para evitar que ffmpeg duplique cada fotograma de salida para ajustarse a la velocidad de fotogramas detectada originalmente.
- Mostrar
5imágenes en un área de3x2fotogramas, con7píxeles entre ellas y2píxeles de margen inicial, combinando opciones planas y con nombre:tile=3x2:nb_frames=5:padding=7:margin=2
11.255 tiltandshift
Aplica un efecto tilt-and-shift.
¿Qué ocurre si se invierten el tiempo y el espacio?
Normalmente, un vídeo se compone de varios fotogramas que representan un instante de tiempo distinto y muestran una escena que evoluciona en el espacio capturado por el fotograma. Este filtro es la antítesis de ese concepto, y se inspira en la fotografía tilt-shift.
Un fotograma filtrado contiene toda la línea temporal de eventos que componen la secuencia, y esto se logra colocando una franja de píxeles de cada fotograma en uno solo. Sin embargo, dado que no existen fotogramas de anchura infinita, esto se hace hasta el ancho del fotograma de entrada, y el vídeo se recompone desplazando una columna por cada fotograma siguiente. Para trasladar el espacio al tiempo, el filtro también inclina cada fotograma de entrada, de modo que se preserve el movimiento. Esto se logra seleccionando progresivamente una columna distinta de cada fotograma de entrada.
El resultado final es una especie de paralaje invertido, de modo que los objetos lejanos se mueven mucho más rápido que los que están en primer plano. Las condiciones ideales para este efecto de vídeo se dan cuando hay muy poco movimiento y el fondo es estático, o cuando hay mucho movimiento y una profundidad de campo muy amplia (p. ej., un panorama amplio mientras se viaja en tren).
El filtro acepta los siguientes parámetros:
tilt
Inclina el vídeo mientras se desplaza (opción predeterminada). Si no se establece, el vídeo deslizará una imagen estática, compuesta por la primera columna de cada fotograma.
start
Qué hacer al inicio del filtrado (véase más abajo).
end
Qué hacer al final del filtrado (véase más abajo).
hold
Cuántas columnas deben pasar antes de que comience el filtrado.
pad
Cuántas columnas deben insertarse antes de que finalice el filtrado.
Normalmente, el filtro desplaza e inclina desde el primerísimo fotograma y se detiene cuando se recibe el último. Sin embargo, antes de que comience el filtrado, puede conservarse el vídeo normal, de modo que el efecto se desplace lentamente hasta su lugar. De igual manera, el último fotograma de vídeo puede reconstruirse al final. Alternativamente, es posible simplemente empezar y terminar con negro.
‘none’
El filtrado comienza inmediatamente y termina cuando se recibe el último fotograma.
‘frame’
Los primeros fotogramas o el último fotograma se mantienen intactos durante el procesamiento.
‘black’
Se añade relleno negro al principio o al final del filtrado.
11.256 tinterlace
Realiza varios tipos de entrelazado temporal de campos.
Los fotogramas se cuentan empezando en 1, por lo que el primer fotograma de entrada se considera impar.
El filtro acepta las siguientes opciones:
mode
Especifica el modo de entrelazado. Esta opción también puede especificarse como un valor suelto. Véase más abajo la lista de valores para esta opción.
Los valores disponibles son:
‘merge, 0’
Mueve los fotogramas impares al campo superior y los pares al campo inferior, generando un fotograma del doble de altura a la mitad de la velocidad de fotogramas.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
Output:
11111 33333
22222 44444
11111 33333
22222 44444
11111 33333
22222 44444
11111 33333
22222 44444
‘drop_even, 1’
Solo emite los fotogramas impares; los fotogramas pares se descartan, generando un fotograma con la misma altura a la mitad de la velocidad de fotogramas.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
Output:
11111 33333
11111 33333
11111 33333
11111 33333
‘drop_odd, 2’
Solo emite los fotogramas pares; los fotogramas impares se descartan, generando un fotograma con la misma altura a la mitad de la velocidad de fotogramas.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
Output:
22222 44444
22222 44444
22222 44444
22222 44444
‘pad, 3’
Expande cada fotograma a la altura completa, pero rellena las líneas alternas con negro, generando un fotograma del doble de altura a la misma velocidad de fotogramas de entrada.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
Output:
11111 ..... 33333 .....
..... 22222 ..... 44444
11111 ..... 33333 .....
..... 22222 ..... 44444
11111 ..... 33333 .....
..... 22222 ..... 44444
11111 ..... 33333 .....
..... 22222 ..... 44444
‘interleave_top, 4’
Intercala el campo superior de los fotogramas impares con el campo inferior de los fotogramas pares, generando un fotograma con la misma altura a la mitad de la velocidad de fotogramas.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111<- 22222 33333<- 44444
11111 22222<- 33333 44444<-
11111<- 22222 33333<- 44444
11111 22222<- 33333 44444<-
Output:
11111 33333
22222 44444
11111 33333
22222 44444
‘interleave_bottom, 5’
Intercala el campo inferior de los fotogramas impares con el campo superior de los fotogramas pares, generando un fotograma con la misma altura a la mitad de la velocidad de fotogramas.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222<- 33333 44444<-
11111<- 22222 33333<- 44444
11111 22222<- 33333 44444<-
11111<- 22222 33333<- 44444
Output:
22222 44444
11111 33333
22222 44444
11111 33333
‘interlacex2, 6’
Duplica la velocidad de fotogramas manteniendo la misma altura. Se insertan fotogramas que contienen, cada uno, el segundo campo temporal del fotograma de entrada anterior y el primer campo temporal del siguiente fotograma de entrada. Este modo depende del flag top_field_first. Útil para pantallas de vídeo entrelazado sin sincronización de campos.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
Output:
11111 22222 22222 33333 33333 44444 44444
11111 11111 22222 22222 33333 33333 44444
11111 22222 22222 33333 33333 44444 44444
11111 11111 22222 22222 33333 33333 44444
‘mergex2, 7’
Mueve los fotogramas impares al campo superior y los pares al campo inferior, generando un fotograma del doble de altura a la misma velocidad de fotogramas.
------> time
Input:
Frame 1 Frame 2 Frame 3 Frame 4
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
11111 22222 33333 44444
Output:
11111 33333 33333 55555
22222 22222 44444 44444
11111 33333 33333 55555
22222 22222 44444 44444
11111 33333 33333 55555
22222 22222 44444 44444
11111 33333 33333 55555
22222 22222 44444 44444
Los valores numéricos están obsoletos, pero se aceptan por motivos de compatibilidad con versiones anteriores.
El modo predeterminado es merge.
flags
Especifica los flags que influyen en el proceso del filtro.
El valor disponible para flags es:
low_pass_filter, vlpf
Habilita el filtrado paso bajo vertical lineal en el filtro. El filtrado paso bajo vertical es necesario al crear un destino entrelazado a partir de una fuente progresiva que contiene detalle vertical de alta frecuencia. El filtrado reducirá el ’parpadeo’ entrelazado y el patrón de Moiré.
complex_filter, cvlpf
Habilita el filtrado paso bajo vertical complejo. Esto reducirá algo menos el ’parpadeo’ entrelazado y el patrón de Moiré, pero conservará mejor el detalle y la sensación subjetiva de nitidez.
bypass_il
Omite los fotogramas ya entrelazados y solo ajusta la velocidad de fotogramas.
El filtrado paso bajo vertical y la omisión de fotogramas ya entrelazados solo pueden habilitarse para los modos interleave_top e interleave_bottom.
11.257 tmedian
Elige los píxeles medianos de varios fotogramas de vídeo de entrada sucesivos.
El filtro acepta las siguientes opciones:
radius
Establece el radio del filtro de mediana. El valor predeterminado es 1. El rango permitido va de 1 a 127.
planes
Establece qué planos se filtran. El valor predeterminado es 15, con el que se procesan todos los planos.
percentile
Establece el percentil de la mediana. El valor predeterminado es 0.5. Con el valor predeterminado de 0.5 siempre se eligen los valores de la mediana, mientras que 0 elige los valores mínimos y 1 los máximos.
11.257.1 Comandos
Este filtro admite todas las opciones anteriores como comandos, excepto la opción radius.
11.258 tmidequalizer
Aplica el efecto Temporal Midway Video Equalization.
Midway Video Equalization ajusta una secuencia de fotogramas de vídeo para que tengan el mismo histograma, manteniendo al mismo tiempo su dinámica en la medida de lo posible. Resulta útil, p. ej., para igualar las exposiciones de una secuencia de fotogramas de vídeo.
Este filtro acepta la siguiente opción:
radius
Establece el radio de filtrado. El valor predeterminado es 5. El rango permitido va de 1 a 127.
sigma
Establece la sigma de filtrado. El valor predeterminado es 0.5. Esto controla la intensidad del filtrado. Establecer esta opción en 0 no tiene ningún efecto.
planes
Establece qué planos se procesan. El valor predeterminado es 15, que corresponde a todos los planos disponibles.
11.259 tmix
Mezcla fotogramas de vídeo sucesivos.
A continuación se describen las opciones aceptadas.
frames
El número de fotogramas sucesivos que se mezclan. Si no se especifica, el valor predeterminado es 3.
weights
Especifica el peso de cada fotograma de vídeo de entrada. Los pesos se separan con espacios. Si el número de pesos es menor que el número de fotogramas, el último peso especificado se usará para todos los pesos restantes sin definir.
scale
Especifica la escala; si se establece, se multiplicará por la suma de cada peso multiplicado por los valores de píxel para obtener el valor de píxel final de destino. De forma predeterminada, la escala se ajusta automáticamente a la suma de los pesos.
planes
Establece qué planos se filtran. El valor predeterminado es todos. El rango permitido va de 0 a 15.
11.259.1 Ejemplos
-
Promediar 7 fotogramas sucesivos:
tmix=frames=7:weights="1 1 1 1 1 1 1" -
Aplicar una convolución temporal simple:
tmix=frames=3:weights="-1 3 -1" -
Similar al caso anterior, pero mostrando solo las diferencias temporales:
tmix=frames=3:weights="-1 2 -1":scale=1
11.259.2 Comandos
Este filtro admite los siguientes comandos:
weights scale planes
La sintaxis es la misma que la de la opción homónima.
11.260 tonemap
Aplica mapeo de tonos a los colores procedentes de distintos rangos dinámicos.
Este filtro espera datos en coma flotante de precisión simple, ya que necesita operar con valores fuera de rango (y puede generarlos como salida). Se necesita otro filtro, como zscale, para convertir el fotograma resultante a un formato utilizable.
Los algoritmos de mapeo de tonos implementados solo funcionan con luz lineal, por lo que los datos de entrada deben linealizarse previamente (y, si es posible, etiquetarse correctamente).
ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
11.260.1 Opciones
El filtro admite las siguientes opciones.
tonemap
Establece el algoritmo de mapeo de tonos que se va a utilizar.
Los valores posibles son:
none
No aplica ningún mapeo de tonos; solo reduce la saturación de los píxeles sobreexpuestos.
clip
Recorta (clip) de forma abrupta los valores fuera de rango. Resulta útil para lograr una precisión de color perfecta en los valores dentro de rango, aunque distorsiona los valores fuera de rango.
linear
Estira todo el gamut de referencia a un múltiplo lineal del de la pantalla.
gamma
Ajusta una función de transferencia logarítmica entre las curvas de tono.
reinhard
Conserva el brillo general de la imagen mediante una curva simple que aplica contraste no lineal, lo que aplana los detalles y reduce la precisión del color.
hable
Conserva mejor los detalles tanto oscuros como claros que reinhard, a costa de oscurecer ligeramente toda la imagen. Es preferible cuando conservar el detalle importa más que la precisión del color y del brillo.
mobius
Aplica un mapeo suave a los valores fuera de rango, conservando en la medida de lo posible el contraste y los colores del material dentro de rango. Es preferible cuando la precisión del color importa más que la conservación del detalle.
El valor predeterminado es none.
param
Ajusta los parámetros del algoritmo de mapeo de tonos.
Esto afecta a los siguientes algoritmos:
none
Se ignora.
linear
Especifica el factor de escala que se usará al estirar. El valor predeterminado es 1.0.
gamma
Especifica el exponente de la función. El valor predeterminado es 1.8.
clip
Especifica un coeficiente lineal adicional que se multiplica por la señal antes de recortar. El valor predeterminado es 1.0.
reinhard
Especifica el coeficiente de contraste local en el pico de la pantalla. El valor predeterminado es 0.5, lo que significa que los valores dentro del gamut tendrán aproximadamente la mitad de brillo que al recortar.
hable
Se ignora.
mobius
Especifica el punto de transición de la transformación lineal a la de mobius. Se garantiza que todo valor por debajo de este punto se mapea 1:1. Cuanto más alto sea el valor, más preciso será el resultado, a costa de perder detalles en las zonas claras. El valor predeterminado es 0.3, que gracias a la pendiente inicial pronunciada aún conserva con bastante precisión los colores dentro de rango.
desat
Aplica desaturación a las luces altas que superan este nivel de brillo. Cuanto mayor sea el parámetro, más información de color se conservará. Este ajuste ayuda a evitar colores sobreexpuestos de forma antinatural en las luces muy altas, convirtiéndolos (de forma gradual) en blanco. Esto hace que las imágenes resulten más naturales, a costa de reducir la información sobre los colores fuera de rango.
El valor predeterminado de 2.0 es bastante conservador y, en la práctica, solo suele afectar a cielos o superficies iluminadas directamente por el sol. Un valor de 0.0 desactiva esta opción.
Esta opción solo funciona si el fotograma de entrada tiene una etiqueta de color admitida.
peak
Sustituye el pico de señal/nominal/referencia por este valor. Resulta útil cuando la información de pico incluida en los metadatos de la pantalla no es fiable, o al aplicar mapeo de tonos desde un rango inferior hacia uno superior.
11.261 tpad
Añade relleno temporal a los fotogramas de vídeo.
El filtro admite las siguientes opciones:
start
Especifica el número de fotogramas de retardo antes del flujo de vídeo de entrada. El valor predeterminado es 0.
stop
Especifica el número de fotogramas de relleno después del flujo de vídeo de entrada. Un valor de -1 rellena de forma indefinida. El valor predeterminado es 0.
start_mode
Establece el tipo de fotogramas que se añaden al principio del flujo. Puede ser add o clone. Con add se añaden fotogramas de color sólido. Con clone los fotogramas añadidos son copias del primer fotograma. El valor predeterminado es add.
stop_mode
Establece el tipo de fotogramas que se añaden al final del flujo. Puede ser add o clone. Con add se añaden fotogramas de color sólido. Con clone los fotogramas añadidos son copias del último fotograma. El valor predeterminado es add.
start_duration, stop_duration
Especifica la duración del retardo inicial/final. Véase la sección (ffmpeg-utils)Time duration del manual ffmpeg-utils(1) para conocer la sintaxis admitida. Estas opciones tienen prioridad sobre start y stop. El valor predeterminado es 0.
color
Especifica el color del área de relleno. Para conocer la sintaxis de esta opción, véase la sección (ffmpeg-utils)"Color" del manual ffmpeg-utils.
El valor predeterminado de color es "black".
11.262 transpose
Transpone filas y columnas en el vídeo de entrada y, opcionalmente, lo invierte.
Admite los siguientes parámetros:
dir
Especifica la dirección de la transposición.
Puede tomar los siguientes valores:
‘0, 4, cclock_flip’
Gira 90 grados en sentido antihorario e invierte verticalmente (opción predeterminada), es decir:
L.R L.l
. . -> . .
l.r R.r
‘1, 5, clock’
Gira 90 grados en sentido horario, es decir:
L.R l.L
. . -> . .
l.r r.R
‘2, 6, cclock’
Gira 90 grados en sentido antihorario, es decir:
L.R R.r
. . -> . .
l.r L.l
‘3, 7, clock_flip’
Gira 90 grados en sentido horario e invierte verticalmente, es decir:
L.R r.R
. . -> . .
l.r l.L
Para valores entre 4 y 7, la transposición solo se aplica si la geometría del vídeo de entrada es vertical y no apaisada. Estos valores están obsoletos; en su lugar debería usarse la opción passthrough.
Los valores numéricos están obsoletos y deberían sustituirse por las constantes simbólicas.
passthrough
No aplica la transposición si la geometría de entrada coincide con la especificada por el valor indicado. Admite los siguientes valores:
‘none’
Aplica siempre la transposición.
‘portrait’
Conserva la geometría vertical (cuando la altura es mayor o igual que la anchura).
‘landscape’
Conserva la geometría apaisada (cuando la anchura es mayor o igual que la altura).
El valor predeterminado es none.
Por ejemplo, para girar 90 grados en sentido horario y conservar la disposición vertical:
transpose=dir=1:passthrough=portrait
El comando anterior también puede especificarse como:
transpose=1:portrait
11.263 trim
Recorta la entrada de forma que la salida contenga una única subparte continua de la entrada.
Admite los siguientes parámetros:
start
Especifica el instante de inicio de la sección conservada; es decir, el fotograma con la marca de tiempo start será el primer fotograma de la salida.
end
Especifica el instante del primer fotograma que se descartará; es decir, el fotograma inmediatamente anterior al que tiene la marca de tiempo end será el último fotograma de la salida.
start_pts
Es equivalente a start, salvo que esta opción establece la marca de tiempo inicial en unidades de base de tiempo en lugar de segundos.
end_pts
Es equivalente a end, salvo que esta opción establece la marca de tiempo final en unidades de base de tiempo en lugar de segundos.
duration
La duración máxima de la salida, en segundos.
start_frame
El número del primer fotograma que debe pasarse a la salida.
end_frame
El número del primer fotograma que debe descartarse.
start, end y duration se expresan como especificaciones de duración temporal; véase la sección (ffmpeg-utils)Time duration del manual ffmpeg-utils(1) para conocer la sintaxis admitida.
Cabe señalar que los dos primeros pares de opciones start/end, junto con la opción duration, se basan en la marca de tiempo del fotograma, mientras que las variantes _frame simplemente cuentan los fotogramas que pasan por el filtro. Asimismo, este filtro no modifica las marcas de tiempo. Si se desea que las marcas de tiempo de salida empiecen en cero, debe insertarse un filtro setpts después del filtro trim.
Si se establecen varias opciones start o end, el filtro actúa de forma voraz y conserva todos los fotogramas que cumplan al menos una de las restricciones especificadas. Para conservar únicamente la parte que cumple todas las restricciones a la vez, deben encadenarse varios filtros trim.
Los valores predeterminados están definidos de modo que se conserve toda la entrada. Por ello, es posible, por ejemplo, establecer solo los valores de end para conservar todo lo anterior al instante especificado.
Ejemplos:
-
Descartar todo excepto el segundo minuto de la entrada:
ffmpeg -i INPUT -vf trim=60:120 -
Conservar únicamente el primer segundo:
ffmpeg -i INPUT -vf trim=duration=1
11.264 unpremultiply
Aplica un efecto de desmultiplicación alfa (unpremultiply) al flujo de vídeo de entrada, usando el primer plano del segundo flujo como canal alfa.
Ambos flujos deben tener las mismas dimensiones y el mismo pixel format.
El filtro admite la siguiente opción:
planes
Establece qué planos se procesarán; los planos no procesados se copiarán tal cual. Con el valor predeterminado 0xf se procesan todos los planos.
Si el formato tiene 1 o 2 componentes, el bit 0 corresponde a la luminancia. Si el formato tiene 3 o 4 componentes: en los formatos RGB, el bit 0 es verde, el bit 1 es azul y el bit 2 es rojo; en los formatos YUV, el bit 0 es la luminancia, el bit 1 es la crominancia U y el bit 2 es la crominancia V. Si está presente, el canal alfa ocupa siempre el último bit.
inplace
No requiere una segunda entrada para el procesamiento; en su lugar, usa el plano alfa del propio flujo de entrada.
11.265 unsharp
Enfoca o desenfoca el vídeo de entrada.
Admite los siguientes parámetros:
luma_msize_x, lx
Establece el tamaño horizontal de la matriz de luminancia. Debe ser un entero impar entre 3 y 23. El valor predeterminado es 5.
luma_msize_y, ly
Establece el tamaño vertical de la matriz de luminancia. Debe ser un entero impar entre 3 y 23. El valor predeterminado es 5.
luma_amount, la
Establece la intensidad del efecto sobre la luminancia. Debe ser un número en coma flotante; los valores razonables se sitúan entre -1.5 y 1.5.
Los valores negativos desenfocan el vídeo de entrada, los positivos lo enfocan, y un valor de cero desactiva el efecto.
El valor predeterminado es 1.0.
chroma_msize_x, cx
Establece el tamaño horizontal de la matriz de crominancia. Debe ser un entero impar entre 3 y 23. El valor predeterminado es 5.
chroma_msize_y, cy
Establece el tamaño vertical de la matriz de crominancia. Debe ser un entero impar entre 3 y 23. El valor predeterminado es 5.
chroma_amount, ca
Establece la intensidad del efecto sobre la crominancia. Debe ser un número en coma flotante; los valores razonables se sitúan entre -1.5 y 1.5.
Los valores negativos desenfocan el vídeo de entrada, los positivos lo enfocan, y un valor de cero desactiva el efecto.
El valor predeterminado es 0.0.
alpha_msize_x, ax
Establece el tamaño horizontal de la matriz alfa. Debe ser un entero impar entre 3 y 23. El valor predeterminado es 5.
alpha_msize_y, ay
Establece el tamaño vertical de la matriz alfa. Debe ser un entero impar entre 3 y 23. El valor predeterminado es 5.
alpha_amount, aa
Establece la intensidad del efecto sobre el canal alfa. Debe ser un número en coma flotante; los valores razonables se sitúan entre -1.5 y 1.5.
Los valores negativos desenfocan el vídeo de entrada, los positivos lo enfocan, y un valor de cero desactiva el efecto.
El valor predeterminado es 0.0.
Todos los parámetros son opcionales y su valor predeterminado equivale a la cadena ’5:5:1.0:5:5:0.0’.
11.265.1 Ejemplos
-
Aplicar un fuerte efecto de enfoque sobre la luminancia:
unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5 -
Aplicar un fuerte desenfoque tanto en los parámetros de luminancia como de crominancia:
unsharp=7:7:-2:7:7:-2
11.266 untile
Descompone un vídeo compuesto por imágenes en mosaico en las imágenes individuales que lo forman.
La velocidad de fotogramas del vídeo de salida es la del vídeo de entrada multiplicada por el número de mosaicos.
Este filtro realiza la operación inversa de tile.
El filtro admite las siguientes opciones:
layout
Establece el tamaño de la cuadrícula (es decir, el número de filas y columnas). Para conocer la sintaxis de esta opción, véase la sección (ffmpeg-utils)"Video size" del manual ffmpeg-utils.
11.266.1 Ejemplos
- Generar un vídeo de 1 segundo a partir de un archivo de imagen fija compuesto por 25 fotogramas apilados verticalmente, como un carrete de película analógica:
ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
11.267 uspp
Aplica un filtro de posprocesado ultralento/simple que comprime y descomprime la imagen en varios desplazamientos (o, en el caso del nivel de calidad 8, en todos) y promedia los resultados.
La diferencia con el comportamiento de spp es que uspp codifica y decodifica realmente cada caso con libavcodec Snow, mientras que spp emplea una DCT 8x8 intra simplificada, similar a la de MJPEG.
Este filtro no está disponible en las versiones de ffmpeg comprendidas entre la 5.0 y la 6.0.
El filtro admite las siguientes opciones:
quality
Establece la calidad. Esta opción define el número de niveles usados para el promediado. Admite un entero en el rango 0-8. Con el valor 0 el filtro no tiene ningún efecto. Un valor de 8 corresponde a la máxima calidad. Por cada incremento de este valor, la velocidad se reduce aproximadamente a la mitad. El valor predeterminado es 3.
qp
Fuerza un parámetro de cuantización constante. Si no se establece, el filtro usa el QP del flujo de vídeo (si está disponible).
codec
Usa el codec especificado en lugar de snow.
11.268 v360
Convierte vídeos de 360 grados entre distintos formatos.
El filtro admite las siguientes opciones:
input output
Establece el formato del vídeo de entrada/salida.
Formatos disponibles:
‘e’ ‘equirect’
Proyección equirrectangular.
‘c3x2’ ‘c6x1’ ‘c1x6’
Mapa cúbico (cubemap) con disposición 3x2/6x1/1x6.
Opciones específicas de este formato:
in_pad out_pad
Establece la proporción de relleno del mapa cúbico de entrada/salida. Valores en formato decimal.
Valores de ejemplo:
‘0’
Sin relleno.
‘0.01’
El 1% de la cara es relleno. Por ejemplo, con una resolución de 1920x1280, el tamaño de cada cara sería de 640x640 y el relleno sería de 3 píxeles por cada lado. (640 * 0.01 = 6 píxeles)
El valor predeterminado es ‘ 0’. El valor máximo es ‘ 0.1’.
fin_pad fout_pad
Establece un relleno fijo para el mapa cúbico de entrada/salida. Valores en píxeles.
El valor predeterminado es ‘ 0’. Si es mayor que cero, tiene prioridad sobre las demás opciones de relleno.
in_forder out_forder
Establece el orden de las caras del mapa cúbico de entrada/salida. Debe elegirse una dirección para cada posición.
Designación de las direcciones:
‘r’
derecha
‘l’
izquierda
‘u’
arriba
‘d’
abajo
‘f’
adelante
‘b’
atrás
El valor predeterminado es ‘ rludfb’.
in_frot out_frot
Establece la rotación de las caras del mapa cúbico de entrada/salida. Debe elegirse un ángulo para cada posición.
Designación de los ángulos:
‘0’
0 grados en sentido horario
‘1’
90 grados en sentido horario
‘2’
180 grados en sentido horario
‘3’
270 grados en sentido horario
El valor predeterminado es ‘ 000000’.
‘eac’
Mapa cúbico equiangular (Equi-Angular Cubemap).
‘flat’ ‘gnomonic’ ‘rectilinear’
Vídeo normal (regular).
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘dfisheye’
Ojo de pez dual (dual fisheye).
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘barrel’ ‘fb’ ‘barrelsplit’
Formatos de 360 grados de Facebook.
‘sg’
Formato estereográfico.
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘mercator’
Formato de Mercator.
‘ball’
Formato de bola (ball), que produce una distorsión considerable hacia la parte trasera.
‘hammer’
Formato de proyección cartográfica de Hammer-Aitoff.
‘sinusoidal’
Formato de proyección cartográfica sinusoidal.
‘fisheye’
Proyección de ojo de pez (fisheye).
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘pannini’
Proyección de Pannini.
Opciones específicas de este formato:
h_fov
Establece el parámetro de Pannini de salida.
ih_fov
Establece el parámetro de Pannini de entrada.
‘cylindrical’
Proyección cilíndrica.
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘perspective’
Proyección en perspectiva. (solo salida)
Opciones específicas de este formato:
v_fov
Establece el parámetro de perspectiva.
‘tetrahedron’
Proyección de tetraedro.
‘tsp’
Proyección de pirámide cuadrada truncada.
‘he’ ‘hequirect’
Proyección semiequirrectangular.
‘equisolid’
Formato equisólido (equisolid).
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘og’
Formato ortográfico.
Opciones específicas de este formato:
h_fov v_fov d_fov
Establece el campo de visión horizontal/vertical/diagonal de salida. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
ih_fov iv_fov id_fov
Establece el campo de visión horizontal/vertical/diagonal de entrada. Valores en grados.
Si se establece el campo de visión diagonal, este tiene prioridad sobre los campos de visión horizontal y vertical.
‘octahedron’
Proyección de octaedro.
‘cylindricalea’
Proyección cilíndrica de área equivalente.
interp
Establece el método de interpolación.
Nota: los métodos de interpolación más complejos requieren mucha más memoria para ejecutarse.
Métodos disponibles:
‘near’ ‘nearest’
Vecino más próximo (nearest neighbour).
‘line’ ‘linear’
Interpolación bilineal.
‘lagrange9’
Interpolación Lagrange9.
‘cube’ ‘cubic’
Interpolación bicúbica.
‘lanc’ ‘lanczos’
Interpolación de Lanczos.
‘sp16’ ‘spline16’
Interpolación Spline16.
‘gauss’ ‘gaussian’
Interpolación gaussiana.
‘mitchell’
Interpolación de Mitchell.
El valor predeterminado es ‘ line’.
w h
Establece la resolución del vídeo de salida.
La resolución predeterminada depende de los formatos.
in_stereo out_stereo
Establece el formato estéreo de entrada/salida.
‘2d’
2D monoscópico
‘sbs’
Lado a lado (side by side)
‘tb’
Arriba y abajo (top bottom)
El valor predeterminado es ‘ 2d’ tanto para el formato de entrada como para el de salida.
yaw pitch roll
Establece la rotación del vídeo de salida. Valores en grados.
rorder
Establece el orden de rotación del vídeo de salida. Debe elegirse un elemento para cada posición.
‘y, Y’
yaw
‘p, P’
pitch
‘r, R’
roll
El valor predeterminado es ‘ ypr’.
h_flip v_flip d_flip
Invierte el vídeo de salida horizontalmente (intercambia izquierda-derecha), verticalmente (intercambia arriba-abajo) o en profundidad (intercambia adelante-atrás). Valores booleanos.
ih_flip iv_flip
Establece si el vídeo de entrada está invertido horizontal/verticalmente. Valores booleanos.
in_trans
Establece si el vídeo de entrada está transpuesto. Valor booleano; desactivado de forma predeterminada.
out_trans
Establece si el vídeo de salida debe transponerse. Valor booleano; desactivado de forma predeterminada.
h_offset v_offset
Establece el desplazamiento de eje horizontal/vertical de la salida. El valor predeterminado es 0. El rango permitido va de -1 a 1.
alpha_mask
Genera una máscara en el plano alfa para todos los píxeles no mapeados, marcándolos como totalmente transparentes. Valor booleano; desactivado de forma predeterminada.
reset_rot
Restablece la rotación del vídeo de salida. Valor booleano; desactivado de forma predeterminada.
11.268.1 Ejemplos
-
Convertir un vídeo equirrectangular a cubemap con diseño 3x2 y un 1% de relleno usando interpolación bicúbica:
ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv -
Extraer la vista trasera del Equi-Angular Cubemap:
ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv -
Convertir un Equi-Angular Cubemap transpuesto y volteado horizontalmente en formato estéreo lado a lado a formato equirrectangular estéreo superior-inferior:
v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
11.268.2 Comandos
Este filtro admite un subconjunto de las opciones anteriores como comandos.
11.269 vaguedenoiser
Aplica un eliminador de ruido basado en wavelets.
Transforma cada fotograma del vídeo de entrada al dominio wavelet, usando Cohen-Daubechies-Feauveau 9/7. A continuación aplica cierto filtrado a los coeficientes obtenidos. Después realiza una transformada wavelet inversa. Gracias a las propiedades de las wavelets, debería producir un resultado suavizado agradable y con ruido reducido, sin difuminar los detalles de la imagen.
Este filtro acepta las siguientes opciones:
threshold
La intensidad del filtrado. Cuanto más alto sea, más se filtrará el vídeo. El umbral ‘hard’ puede usar un valor más alto que el umbral ‘soft’ antes de que el vídeo se vea sobrefiltrado. El valor predeterminado es 2.
method
El método de filtrado que usará el filtro.
Acepta los siguientes valores:
‘hard’
Todos los valores por debajo del umbral se pondrán a cero.
‘soft’
Todos los valores por debajo del umbral se pondrán a cero. Los valores por encima se reducirán en la cantidad del umbral.
‘garrote’
Escala o anula coeficientes: un punto intermedio entre un umbral (más) suave y (menos) duro.
El valor predeterminado es garrote.
nsteps
Número de veces que la wavelet descompondrá la imagen. La imagen no puede descomponerse más allá de cierto punto (habitualmente, 8 para un fotograma de 640x480, ya que 2^9 = 512 > 480). Los valores válidos son enteros entre 1 y 32. El valor predeterminado es 6.
percent
Proporción de la eliminación de ruido completa (reducción limitada de coeficientes), de 0 a 100. El valor predeterminado es 85.
planes
Una lista de los planos a procesar. De forma predeterminada se procesan todos los planos.
type
El tipo de umbral que usará el filtro.
Acepta los siguientes valores:
‘universal’
Se usa el mismo umbral para todas las descomposiciones.
‘bayes’
El umbral usado también depende de los coeficientes de cada descomposición.
El valor predeterminado es universal.
11.270 varblur
Aplica un filtro de desenfoque variable usando un segundo flujo de vídeo para establecer el radio de desenfoque. El segundo flujo debe tener las mismas dimensiones.
Este filtro acepta las siguientes opciones:
min_r
Establece el radio mínimo permitido. El rango permitido va de 0 a 254. El valor predeterminado es 0.
max_r
Establece el radio máximo permitido. El rango permitido va de 1 a 255. El valor predeterminado es 8.
planes
Establece qué planos se procesarán. De forma predeterminada se usan todos.
El filtro varblur también admite las opciones de framesync.
11.270.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.271 vectorscope
Muestra 2 valores de componentes de color en un gráfico bidimensional (denominado vectorscopio).
Este filtro acepta las siguientes opciones:
mode, m
Establece el modo del vectorscopio.
Acepta los siguientes valores:
‘gray’ ‘tint’
Se muestran valores de gris en el gráfico; una mayor luminosidad indica que más píxeles comparten el mismo valor de componente de color en esa ubicación del gráfico. Este es el modo predeterminado.
‘color’
Se muestran valores de gris en el gráfico. Los valores de píxeles circundantes que no están presentes en el fotograma de vídeo se dibujan en un degradado de los 2 componentes de color establecidos mediante las opciones x e y. El tercer componente de color es estático.
‘color2’
Se muestran en el gráfico los valores reales de los componentes de color presentes en el fotograma de vídeo.
‘color3’
Similar a color2, pero una mayor frecuencia de los mismos valores x e y en el gráfico incrementa el valor de otro componente de color, que de forma predeterminada es la luminancia de los valores x e y.
‘color4’
Se muestran en el gráfico los colores reales presentes en el fotograma de vídeo. Si dos colores diferentes se corresponden con la misma posición del gráfico, se elige el color con mayor valor del componente no presente en el gráfico.
‘color5’
Se muestran valores de gris en el gráfico. Similar a color, pero con el tercer componente de color tomado de un degradado radial.
x
Establece qué componente de color se representará en el eje X. El valor predeterminado es 1.
y
Establece qué componente de color se representará en el eje Y. El valor predeterminado es 2.
intensity, i
Establece la intensidad, usada por los modos gray, color, color3 y color5 para aumentar el brillo del componente de color que representa la frecuencia de la ubicación (X, Y) en el gráfico.
envelope, e
‘none’
Sin envolvente; este es el valor predeterminado.
‘instant’
Envolvente instantánea: incluso el píxel más oscuro se resaltará claramente.
‘peak’
Mantiene a lo largo del tiempo los valores máximo y mínimo presentados en el gráfico. Así se pueden detectar valores fuera de rango sin tener que observar el vectorscopio constantemente.
‘peak+instant’
Combinación de las envolventes de pico e instantánea.
graticule, g
Establece qué tipo de retícula dibujar.
‘none’ ‘green’ ‘color’ ‘invert’ opacity, o
Establece la opacidad de la retícula.
flags, f
Establece los flags de la retícula.
‘white’
Dibuja la retícula para el punto blanco.
‘black’
Dibuja la retícula para el punto negro.
‘name’
Dibuja los nombres cortos de los puntos de color.
bgopacity, b
Establece la opacidad del fondo.
lthreshold, l
Establece el umbral bajo para el componente de color no representado en el eje X o Y. Los valores inferiores a este se ignorarán. El valor predeterminado es 0. Tenga en cuenta que este valor se multiplica por el valor máximo real que puede tener un componente de píxel. Así, para una entrada de 8 bits y un umbral bajo de 0.1, el umbral real es 0.1 * 255 = 25.
hthreshold, h
Establece el umbral alto para el componente de color no representado en el eje X o Y. Los valores superiores a este se ignorarán. El valor predeterminado es 1. Tenga en cuenta que este valor se multiplica por el valor máximo real que puede tener un componente de píxel. Así, para una entrada de 8 bits y un umbral alto de 0.9, el umbral real es 0.9 * 255 = 230.
colorspace, c
Establece qué espacio de color usar al dibujar la retícula.
‘auto’ ‘601’ ‘709’
El valor predeterminado es auto.
tint0, t0 tint1, t1
Establece el matiz de color para el modo de vectorscopio gray/tint. De forma predeterminada, ambas opciones son cero. Esto significa que no hay matiz y la salida permanecerá en gris.
11.272 vidstabdetect
Analiza la estabilización/desestabilización (deshaking) del vídeo. Realiza el paso 1 de 2; véase vidstabtransform para el paso 2.
Este filtro genera un archivo con información de transformación relativa de traslación y rotación sobre los fotogramas subsiguientes, que después usa el filtro vidstabtransform.
Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-libvidstab.
Este filtro acepta las siguientes opciones:
result
Establece la ruta del archivo donde se escribirá la información de las transformaciones. El valor predeterminado es transforms.trf.
shakiness
Establece cuánto tiembla el vídeo y cuán rápida es la cámara. Acepta un entero en el rango 1-10; un valor de 1 indica poco temblor, y un valor de 10, un temblor intenso. El valor predeterminado es 5.
accuracy
Establece la precisión del proceso de detección. Debe ser un valor en el rango 1-15; un valor de 1 indica baja precisión, y un valor de 15, alta precisión. El valor predeterminado es 15.
stepsize
Establece el tamaño de paso del proceso de búsqueda. La región alrededor del mínimo se explora con una resolución de 1 píxel. El valor predeterminado es 6.
mincontrast
Establece el contraste mínimo. Por debajo de este valor se descarta un campo de medición local. Debe ser un valor en coma flotante en el rango 0-1. El valor predeterminado es 0.3.
tripod
Establece el número de fotograma de referencia para el modo trípode.
Si está habilitado, el movimiento de los fotogramas se compara con un fotograma de referencia del flujo filtrado, identificado por el número especificado. La idea es compensar todos los movimientos en una escena más o menos estática y mantener la vista de la cámara absolutamente fija.
Si se establece en 0, se deshabilita. Los fotogramas se cuentan a partir de 1.
show
Muestra los campos y las transformaciones en los fotogramas resultantes. Acepta un entero en el rango 0-2. El valor predeterminado es 0, que deshabilita cualquier visualización.
fileformat
Formato del archivo de datos de transformaciones que se escribirá. Los valores aceptables son
‘ascii’
Texto plano legible por humanos
‘binary’
Formato binario, aproximadamente un 40% más pequeño que ascii. (predeterminado)
11.272.1 Ejemplos
-
Usar los valores predeterminados:
vidstabdetect -
Analizar una película con temblor intenso y guardar los resultados en el archivo mytransforms.trf:
vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf" -
Visualizar el resultado de las transformaciones internas en el vídeo resultante:
vidstabdetect=show=1 -
Analizar un vídeo con temblor medio usando
ffmpeg:ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
11.273 vidstabtransform
Estabilización/desestabilización de vídeo (deshaking): paso 2 de 2; véase vidstabdetect para el paso 1.
Lee un archivo con información de transformación para cada fotograma y la aplica/compensa. Junto con el filtro vidstabdetect, esto puede usarse para estabilizar (deshake) vídeos. Véase también http://public.hronopik.de/vid.stab. También es importante usar el filtro unsharp; véase más abajo.
Para habilitar la compilación de este filtro es necesario configurar FFmpeg con --enable-libvidstab.
11.273.1 Opciones
input
Establece la ruta del archivo usado para leer las transformaciones. El valor predeterminado es transforms.trf.
smoothing
Establece el número de fotogramas (valor*2 + 1) usados para el filtrado paso bajo de los movimientos de cámara. El valor predeterminado es 10.
Por ejemplo, un valor de 10 significa que se usan 21 fotogramas (10 del pasado y 10 del futuro) para suavizar el movimiento en el vídeo. Un valor mayor produce un vídeo más suave, pero limita la aceleración de la cámara (movimientos de paneo/inclinación). 0 es un caso especial en el que se simula una cámara estática.
optalgo
Establece el algoritmo de optimización de la trayectoria de la cámara.
Los valores aceptados son:
‘gauss’
filtro paso bajo de núcleo gaussiano sobre el movimiento de cámara (predeterminado)
‘avg’
promediado de las transformaciones
maxshift
Establece el número máximo de píxeles para trasladar los fotogramas. El valor predeterminado es -1, lo que significa sin límite.
maxangle
Establece el ángulo máximo en radianes (grados*PI/180) para rotar los fotogramas. El valor predeterminado es -1, lo que significa sin límite.
crop
Especifica cómo tratar los bordes que puedan quedar visibles debido a la compensación de movimiento.
Los valores disponibles son:
‘keep’
conserva la información de imagen del fotograma anterior (predeterminado)
‘black’
rellena el borde de negro
invert
Invierte las transformaciones si se establece en 1. El valor predeterminado es 0.
relative
Considera las transformaciones relativas al fotograma anterior si se establece en 1, o absolutas si se establece en 0. El valor predeterminado es 0.
zoom
Establece el porcentaje de zoom. Un valor positivo produce un efecto de acercamiento, y un valor negativo, un efecto de alejamiento. El valor predeterminado es 0 (sin zoom).
optzoom
Establece un zoom óptimo para evitar bordes.
Los valores aceptados son:
‘0’
deshabilitado
‘1’
se determina un valor de zoom estático óptimo (solo movimientos muy intensos producirán bordes visibles) (predeterminado)
‘2’
se determina un valor de zoom adaptativo óptimo (no se verá ningún borde); véase zoomspeed
Tenga en cuenta que el valor indicado en zoom se suma al calculado aquí.
zoomspeed
Establece el porcentaje máximo de zoom por fotograma (habilitado cuando optzoom se establece en 2). El rango va de 0 a 5; el valor predeterminado es 0.25.
interpol
Especifica el tipo de interpolación.
Los valores disponibles son:
‘no’
sin interpolación
‘linear’
lineal, solo horizontal
‘bilinear’
lineal en ambas direcciones (predeterminado)
‘bicubic’
cúbica en ambas direcciones (lenta)
tripod
Habilita el modo de trípode virtual si se establece en 1, lo cual equivale a relative=0:smoothing=0. El valor predeterminado es 0.
Use también la opción tripod de vidstabdetect.
debug
Aumenta la verbosidad del registro si se establece en 1. Además, los movimientos globales detectados se escriben en el archivo temporal global_motions.trf. El valor predeterminado es 0.
11.273.2 Ejemplos
- Usar
ffmpegpara una estabilización típica con los valores predeterminados:ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
Nótese el uso del filtro unsharp, que siempre es recomendable.
-
Aplicar un poco más de zoom y cargar los datos de transformación desde un archivo dado:
vidstabtransform=zoom=5:input="mytransforms.trf" -
Suavizar el vídeo todavía más:
vidstabtransform=smoothing=30
11.274 vflip
Voltea verticalmente el vídeo de entrada.
Por ejemplo, para voltear verticalmente un vídeo con ffmpeg:
ffmpeg -i in.avi -vf "vflip" out.avi
11.275 vfrdet
Detecta vídeo de velocidad de fotogramas variable.
Este filtro intenta detectar si la entrada tiene velocidad de fotogramas variable o constante.
Al final mostrará el número de fotogramas detectados con delta de pts variable y los detectados con delta de pts constante. Si hubo fotogramas con delta variable, también mostrará el delta mínimo, máximo y promedio encontrado.
11.276 vibrance
Aumenta o altera la saturación.
El filtro acepta las siguientes opciones:
intensity
Establece la intensidad del aumento si el valor es positivo, o la intensidad de la alteración si es negativo. El valor predeterminado es 0. El rango permitido va de -2 a 2.
rbal
Establece el balance de rojo. El valor predeterminado es 1. El rango permitido va de -10 a 10.
gbal
Establece el balance de verde. El valor predeterminado es 1. El rango permitido va de -10 a 10.
bbal
Establece el balance de azul. El valor predeterminado es 1. El rango permitido va de -10 a 10.
rlum
Establece el coeficiente de luma del rojo.
glum
Establece el coeficiente de luma del verde.
blum
Establece el coeficiente de luma del azul.
alternate
Si intensity es negativo y esto se establece en 1, los colores cambiarán; en caso contrario, los colores serán menos saturados, tendiendo más hacia el gris.
11.276.1 Comandos
Este filtro admite todas las opciones anteriores como comandos.
11.277 vif
Obtiene el VIF (Visual Information Fidelity, fidelidad de información visual) promedio entre dos vídeos de entrada.
Este filtro toma dos vídeos de entrada.
Ambos vídeos de entrada deben tener la misma resolución y el mismo pixel format para que este filtro funcione correctamente. Además, se asume que ambas entradas tienen el mismo número de fotogramas, que se comparan uno a uno.
La puntuación VIF promedio obtenida se muestra a través del sistema de registro.
El filtro almacena la puntuación VIF calculada de cada fotograma.
Este filtro también admite las opciones de framesync.
En el siguiente ejemplo, el archivo de entrada main.mpg que se está procesando se compara con el archivo de referencia ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
11.278 vignette
Crea o revierte un efecto de viñeteado natural.
El filtro acepta las siguientes opciones:
angle, a
Establece la expresión del ángulo del objetivo como un número de radianes.
El valor se recorta al rango [0,PI/2].
Valor predeterminado: "PI/5"
x0 y0
Establece las expresiones de las coordenadas del centro. De forma predeterminada son "w/2" y "h/2", respectivamente.
mode
Establece el modo forward/backward.
Los modos disponibles son:
‘forward’
Cuanto mayor es la distancia al punto central, más oscura se vuelve la imagen.
‘backward’
Cuanto mayor es la distancia al punto central, más clara se vuelve la imagen. Esto puede usarse para invertir un efecto de viñeteado, aunque (todavía) no existe detección automática para extraer el ángulo del objetivo y otros ajustes. También puede usarse para crear un efecto de quemado.
El valor predeterminado es ‘forward’.
eval
Establece el modo de evaluación para las expresiones (angle, x0, y0).
Acepta los siguientes valores:
‘init’
Evalúa las expresiones una sola vez durante la inicialización del filtro.
‘frame’
Evalúa las expresiones para cada fotograma entrante. Esto es mucho más lento que el modo ‘init’, ya que requiere recalcular todos los escaladores, pero permite expresiones dinámicas avanzadas.
El valor predeterminado es ‘init’.
dither
Establece el tramado (dithering) para reducir los efectos de bandeo circular. El valor predeterminado es 1 (habilitado).
aspect
Establece el aspecto del viñeteado. Este ajuste permite adaptar la forma del viñeteado. Si se establece este valor al SAR de la entrada, se producirá un viñeteado rectangular que sigue las dimensiones del vídeo.
El valor predeterminado es 1/1.
11.278.1 Expresiones
Las expresiones alpha, x0 e y0 pueden contener los siguientes parámetros.
w h
anchura y altura de la entrada
n
el número de fotograma de entrada, empezando por 0
pts
el instante PTS (Presentation TimeStamp) del fotograma de vídeo filtrado, expresado en unidades TB; NAN si no está definido
r
la velocidad de fotogramas del vídeo de entrada; NAN si se desconoce la velocidad de fotogramas de entrada
t
el PTS (Presentation TimeStamp) del fotograma de vídeo filtrado, expresado en segundos; NAN si no está definido
tb
la base de tiempo del vídeo de entrada
11.278.2 Ejemplos
-
Aplicar un efecto de viñeteado fuerte simple:
vignette=PI/4 -
Crear un viñeteado parpadeante:
vignette='PI/4+random(1)*PI/50':eval=frame
11.279 vmafmotion
Obtiene la puntuación de movimiento VMAF promedio de un vídeo. Es una de las métricas que componen VMAF.
La puntuación de movimiento promedio obtenida se muestra a través del sistema de registro.
El filtro acepta las siguientes opciones:
stats_file
Si se especifica, el filtro usará el archivo indicado para guardar la puntuación de movimiento de cada fotograma respecto al fotograma anterior. Cuando el nombre de archivo es "-", los datos se envían a la salida estándar.
Ejemplo:
ffmpeg -i ref.mpg -vf vmafmotion -f null -
11.280 vpp_amf
Escala (redimensiona) y convierte el espacio de color, las características de transferencia o las primarias de color del vídeo de entrada, usando la biblioteca AMD Advanced Media Framework para aceleración por hardware. Establecer la anchura y la altura de salida funciona igual que en el filtro scale.
El filtro acepta las siguientes opciones:
w h
Establece la expresión de las dimensiones del vídeo de salida. El valor predeterminado es la dimensión de la entrada.
Permite las mismas expresiones que el filtro scale.
scale_type
Establece el algoritmo usado para el escalado:
bilinear
Bilineal
Es el valor predeterminado.
bicubic
Bicúbico
format
Controla el pixel format de salida. De forma predeterminada, o si no se especifica ninguno, se usa el pixel format de la entrada.
force_original_aspect_ratio force_divisible_by
Funcionan igual que las opciones homónimas del filtro scale.
reset_sar
Funciona igual que la opción homónima del filtro scale.
in_color_range
Sobrescribe el rango de color de la entrada.
out_color_range
Especifica el rango de color de la salida.
Los valores aceptados para in_trc y out_trc son:
‘studio’
Rango de color de estudio (o restringido, o MPEG).
‘full’
Rango de color completo (o JPEG).
color_profile
Especifica todas las propiedades de color a la vez.
Los valores aceptados son:
‘bt601’
BT.601
‘bt709’
BT.709
‘bt2020’
BT.2020
in_trc
Sobrescribe las características de transferencia de la entrada.
out_trc
Especifica las características de transferencia de la salida.
Los valores aceptados para in_trc y out_trc son:
‘bt709’
BT.709
‘gamma22’
Gamma constante de 2.2
‘gamma28’
Gamma constante de 2.8
‘smpte170m’
SMPTE-170M
‘smpte240m’
SMPTE-240M
‘linear’
Lineal
‘log’
LOG
‘log-sqrt’
LOG_SQRT
‘iec61966-2-4’
iec61966-2-4
‘bt1361-ecg’
BT1361_ECG
‘iec61966-2-1’
iec61966-2-1
‘bt2020-10’
BT.2020 para contenido de 10 bits
‘bt2020-12’
BT.2020 para contenido de 12 bits
‘smpte2084’
SMPTE2084
‘smpte428’
SMPTE428
‘arib-std-b67’
ARIB_STD_B67
in_primaries
Sobrescribe las primarias de color de la entrada.
out_primaries
Especifica las primarias de color de la salida.
Los valores aceptados para in_primaries y out_primaries son:
‘bt709’
BT.709
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG o BT.601-6 625
‘smpte170m’
SMPTE-170M o BT.601-6 525
‘smpte240m’
SMPTE-240M
‘film’
film
‘bt2020’
BT.2020
‘smpte428’
SMPTE-428
‘smpte431’
SMPTE-431
‘smpte432’
SMPTE-432
‘jedec-p22’
fósforos JEDEC P22
11.280.1 Ejemplos
-
Escalar la entrada a 720p, manteniendo la relación de aspecto y asegurando que la salida sea yuv420p.
vpp_amf=-2:720:format=yuv420p -
Aumentar la resolución a 4K y cambiar el perfil de color a bt2020.
vpp_amf=4096:2160:color_profile=bt2020 -
Sobrescribir los primarios de entrada y las características de transferencia de entrada, cambiando ambos a bt709.
vpp_amf=color_profile=bt2020:in_trc=smpte2084:in_primaries=bt2020:out_trc=bt709:out_primaries=bt709
11.281 vstack
Apila los vídeos de entrada verticalmente.
Todos los flujos deben tener el mismo pixel format y el mismo ancho.
Tenga en cuenta que este filtro es más rápido que usar los filtros overlay y pad para crear la misma salida.
El filtro acepta las siguientes opciones:
inputs
Establece el número de flujos de entrada. El valor predeterminado es 2.
shortest
Si se establece en 1, obliga a que la salida termine cuando termine la entrada más corta. El valor predeterminado es 0.
11.282 w3fdif
Desentrelaza el vídeo de entrada ("w3fdif" son las siglas de "Weston 3 Field Deinterlacing Filter").
Basado en el proceso descrito por Martin Weston para BBC R&D e implementado a partir del algoritmo de desentrelazado escrito por Jim Easterbrook para BBC R&D, el filtro de desentrelazado Weston 3 field usa coeficientes de filtro calculados por BBC R&D.
Este filtro usa la información de dominancia de campo del fotograma para decidir cuál de cada par de campos colocar primero en la salida. Si se equivoca, use el filtro setfield antes del filtro w3fdif.
Existen dos conjuntos de coeficientes de filtro, llamados "simple" y "complex". Qué conjunto de coeficientes se usa puede establecerse pasando un parámetro opcional:
filter
Establece los coeficientes del filtro de entrelazado. Acepta uno de los siguientes valores:
‘simple’
Conjunto de coeficientes de filtro simple.
‘complex’
Conjunto de coeficientes de filtro más complejo.
El valor predeterminado es ‘complex’.
mode
El modo de entrelazado que se adoptará. Acepta uno de los siguientes valores:
frame
Genera un fotograma de salida por cada fotograma.
field
Genera un fotograma de salida por cada campo.
El valor predeterminado es field.
parity
La paridad de campo de imagen asumida para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
tff
Asume que el campo superior es el primero.
bff
Asume que el campo inferior es el primero.
auto
Activa la detección automática de la paridad de campo.
El valor predeterminado es auto. Si se desconoce el entrelazado o el decoder no exporta esta información, se asumirá que el campo superior es el primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
‘all’
Desentrelaza todos los fotogramas,
‘interlaced’
Desentrelaza únicamente los fotogramas marcados como entrelazados.
El valor predeterminado es ‘all’.
11.282.1 Comandos
Este filtro admite los mismos comandos que opciones.
11.283 waveform
Monitor de forma de onda de vídeo.
El monitor de forma de onda representa gráficamente la intensidad de los componentes de color. De forma predeterminada, solo la luma. Cada columna de la forma de onda corresponde a una columna de píxeles del vídeo de origen.
Acepta las siguientes opciones:
mode, m
Puede ser row o column. El valor predeterminado es column. En el modo row, el lado izquierdo del gráfico representa el valor 0 del componente de color y el lado derecho representa el valor 255. En el modo column, la parte superior representa el valor 0 del componente de color y la parte inferior representa el valor 255.
intensity, i
Establece la intensidad. Los valores más pequeños son útiles para averiguar cuántos valores de la misma luminancia se distribuyen a lo largo de las filas/columnas de entrada. El valor predeterminado es 0.04. El rango permitido es [0, 1].
mirror, r
Establece el modo de espejado. 0 significa sin espejar, 1 significa espejado. En el modo espejado, los valores más altos se representarán en el lado izquierdo para el modo row y en la parte superior para el modo column. El valor predeterminado es 1 (espejado).
display, d
Establece el modo de visualización. Acepta los siguientes valores:
‘overlay’
Presenta información idéntica a la de parade, salvo que los gráficos que representan los componentes de color se superponen directamente unos sobre otros.
Este modo de visualización facilita detectar diferencias o similitudes relativas en las áreas superpuestas de los componentes de color que se supone deben ser idénticos, como blancos, grises o negros neutros.
‘stack’
Muestra un gráfico independiente para los componentes de color, uno junto a otro en el modo row o uno debajo del otro en el modo column.
‘parade’
Muestra un gráfico independiente para los componentes de color, uno junto a otro en el modo column o uno debajo del otro en el modo row.
Usar este modo de visualización facilita detectar dominantes de color en las luces y sombras de una imagen, comparando los contornos de los gráficos superior e inferior de cada forma de onda. Dado que los blancos, grises y negros se caracterizan por cantidades exactamente iguales de rojo, verde y azul, las áreas neutras de la imagen deberían mostrar tres formas de onda de anchura/altura aproximadamente iguales. Si no es así, la corrección es fácil de realizar ajustando el nivel de las tres formas de onda.
El valor predeterminado es stack.
components, c
Establece qué componentes de color mostrar. El valor predeterminado es 1, lo que significa solo la luma o el componente de color rojo si la entrada está en espacio de color RGB. Si se establece, por ejemplo, en 7, mostrará los 3 componentes de color disponibles (si los hay).
envelope, e
‘none’
Sin envolvente; es el valor predeterminado.
‘instant’
Envolvente instantánea: los valores mínimo y máximo presentados en el gráfico serán fácilmente visibles incluso con un valor step pequeño.
‘peak’
Mantiene los valores mínimo y máximo presentados en el gráfico a lo largo del tiempo. De este modo se pueden detectar valores fuera de rango sin tener que observar constantemente las formas de onda.
‘peak+instant’
Combina la envolvente de pico y la instantánea.
filter, f
‘lowpass’
Sin filtrado; es el valor predeterminado.
‘flat’
Combina la luma y la crominancia.
‘aflat’
Similar al anterior, pero muestra la diferencia entre la crominancia azul y roja.
‘xflat’
Similar al anterior, pero usa colores diferentes.
‘yflat’
Similar al anterior, pero de nuevo con colores diferentes.
‘chroma’
Muestra solo la crominancia.
‘color’
Muestra el valor de color real en la forma de onda.
‘acolor’
Similar al anterior, pero con la luma mostrando la frecuencia de los valores de crominancia.
graticule, g
Establece qué retícula mostrar.
‘none’
No muestra retícula.
‘green’
Muestra una retícula verde con los rangos legales de difusión.
‘orange’
Muestra una retícula naranja con los rangos legales de difusión.
‘invert’
Muestra una retícula invertida con los rangos legales de difusión.
opacity, o
Establece la opacidad de la retícula.
flags, fl
Establece los flags de la retícula.
‘numbers’
Dibuja números encima de las líneas. Habilitado de forma predeterminada.
‘dots’
Dibuja puntos en lugar de líneas.
scale, s
Establece la escala usada para mostrar la retícula.
‘digital’ ‘millivolts’ ‘ire’
El valor predeterminado es digital.
bgopacity, b
Establece la opacidad del fondo.
tint0, t0 tint1, t1
Establece el tinte para la salida. Solo se usa con el filtro lowpass y cuando la visualización no es overlay y los pixel formats de entrada no son RGB.
fitmode, fm
Establece la relación de aspecto de muestreo de los fotogramas de vídeo de salida. Puede usarse para configurar la forma de onda de modo que no se estire demasiado en una de las direcciones.
‘none’
Establece la relación de aspecto de muestreo en 1/1.
‘size’
Establece la relación de aspecto de muestreo para que coincida con el tamaño de entrada del vídeo
El valor predeterminado es ‘none’.
input
Establece los formatos de entrada entre los que el filtro puede elegir. Puede ser ‘all’, para seleccionar entre todos los formatos disponibles, o ‘first’, para seleccionar el primer formato disponible. El valor predeterminado es ‘first’.
11.284 weave, doubleweave
El filtro weave toma una entrada de vídeo basada en campos y une cada dos campos secuenciales en un único fotograma, produciendo un nuevo clip de doble altura con la mitad de la velocidad de fotogramas y la mitad del número de fotogramas.
El filtro doubleweave funciona igual que weave, pero sin reducir a la mitad la velocidad de fotogramas ni el número de fotogramas.
Acepta la siguiente opción:
first_field
Establece el primer campo. Los valores disponibles son:
‘top, t’
Establece el fotograma como campo superior primero.
‘bottom, b’
Establece el fotograma como campo inferior primero.
11.284.1 Ejemplos
- Entrelazar vídeo usando los filtros select y separatefields:
separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
11.285 xbr
Aplica el filtro de ampliación de alta calidad xBR, diseñado para pixel art. Sigue un conjunto de reglas de detección de bordes; véase https://forums.libretro.com/t/xbr-algorithm-tutorial/123.
Acepta la siguiente opción:
n
Establece la dimensión de escalado: 2 para 2xBR, 3 para 3xBR y 4 para 4xBR. El valor predeterminado es 3.
11.286 xcorrelate
Aplica correlación cruzada normalizada entre el primer y el segundo flujo de vídeo de entrada.
Las dimensiones del segundo flujo de vídeo de entrada deben ser menores que las del primer flujo de vídeo de entrada.
El filtro acepta las siguientes opciones:
planes
Establece qué planos procesar.
secondary
Establece qué fotogramas de vídeo secundarios se procesarán del segundo flujo de vídeo de entrada; puede ser first o all. El valor predeterminado es all.
El filtro xcorrelate también admite las opciones framesync.
11.287 xfade
Aplica una transición cruzada de un flujo de vídeo de entrada a otro. La transición cruzada se aplica durante la duración especificada.
Ambas entradas deben tener velocidad de fotogramas constante y la misma resolución, pixel format, velocidad de fotogramas y base de tiempo.
El filtro acepta las siguientes opciones:
transition
Establece uno de los efectos de transición disponibles:
‘custom’ ‘fade’ ‘wipeleft’ ‘wiperight’ ‘wipeup’ ‘wipedown’ ‘slideleft’ ‘slideright’ ‘slideup’ ‘slidedown’ ‘circlecrop’ ‘rectcrop’ ‘distance’ ‘fadeblack’ ‘fadewhite’ ‘radial’ ‘smoothleft’ ‘smoothright’ ‘smoothup’ ‘smoothdown’ ‘circleopen’ ‘circleclose’ ‘vertopen’ ‘vertclose’ ‘horzopen’ ‘horzclose’ ‘dissolve’ ‘pixelize’ ‘diagtl’ ‘diagtr’ ‘diagbl’ ‘diagbr’ ‘hlslice’ ‘hrslice’ ‘vuslice’ ‘vdslice’ ‘hblur’ ‘fadegrays’ ‘wipetl’ ‘wipetr’ ‘wipebl’ ‘wipebr’ ‘squeezeh’ ‘squeezev’ ‘zoomin’ ‘fadefast’ ‘fadeslow’ ‘hlwind’ ‘hrwind’ ‘vuwind’ ‘vdwind’ ‘coverleft’ ‘coverright’ ‘coverup’ ‘coverdown’ ‘revealleft’ ‘revealright’ ‘revealup’ ‘revealdown’
El efecto de transición predeterminado es fade.
duration
Establece la duración de la transición cruzada en segundos. El rango va de 0 a 60 segundos. La duración predeterminada es 1 segundo.
offset
Establece el inicio de la transición cruzada en segundos, relativo al primer flujo de entrada. El desplazamiento predeterminado es 0.
expr
Establece la expresión para el efecto de transición personalizado.
Las expresiones pueden usar las siguientes variables y funciones:
X Y
Las coordenadas de la muestra actual.
W H
El ancho y el alto de la imagen.
P
Progreso del efecto de transición.
PLANE
Plano procesado actualmente.
A
Devuelve el valor de la primera entrada en la posición y el plano actuales.
B
Devuelve el valor de la segunda entrada en la posición y el plano actuales.
a0(x, y) a1(x, y) a2(x, y) a3(x, y)
Devuelve el valor del píxel en la posición (x,y) del primer/segundo/tercer/cuarto componente de la primera entrada.
b0(x, y) b1(x, y) b2(x, y) b3(x, y)
Devuelve el valor del píxel en la posición (x,y) del primer/segundo/tercer/cuarto componente de la segunda entrada.
11.287.1 Ejemplos
- Transición cruzada de un vídeo de entrada a otro, con transición fade y duración de 2 segundos, comenzando en el desplazamiento de 5 segundos:
ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
11.288 xmedian
Selecciona los píxeles medianos de varios vídeos de entrada.
El filtro acepta las siguientes opciones:
inputs
Establece el número de entradas. El valor predeterminado es 3. El rango permitido va de 3 a 255. Si el número de entradas es un número par, el resultado será el valor medio entre los dos valores medianos.
planes
Establece qué planos filtrar. El valor predeterminado es 15, con el que se procesan todos los planos.
percentile
Establece el percentil de la mediana. El valor predeterminado es 0.5. Con el valor predeterminado de 0.5 siempre se eligen los valores medianos, mientras que con 0 se eligen los valores mínimos y con 1 los máximos.
11.288.1 Comandos
Este filtro admite todas las opciones anteriores como comandos, excluyendo la opción inputs.
11.289 xpsnr
Obtiene la media (a lo largo de todos los fotogramas de entrada) y el mínimo (a lo largo de las medias de todos los planos de color) de la relación señal-ruido de pico ponderada perceptualmente extendida (XPSNR, eXtended Perceptually weighted peak Signal-to-Noise Ratio) entre dos vídeos de entrada.
El XPSNR es un algoritmo de medición de distorsión de baja complejidad, motivado psicovisualmente, para evaluar la diferencia entre dos flujos de vídeo o imágenes. Resulta especialmente útil para cuantificar objetivamente las distorsiones causadas por los codecs de vídeo e imagen, como alternativa a una prueba subjetiva formal. Los valores de salida logarítmicos de XPSNR están en un rango similar a los de las evaluaciones tradicionales de psnr, pero reflejan mejor la impresión humana de la calidad de codificación visual. Puede encontrarse más información sobre la medida XPSNR, que en esencia representa una variante ponderada por bloques de la medida PSNR, en los siguientes artículos disponibles gratuitamente:
- C. R. Helmrich, M. Siekmann, S. Becker, S. Bosse, D. Marpe, and T. Wiegand, "XPSNR: A Low-Complexity Extension of the Perceptually Weighted Peak Signal-to-Noise Ratio for High-Resolution Video Quality Assessment," in Proc. IEEE Int. Conf. Acoustics, Speech, Sig. Process. (ICASSP), virt./online, May 2020. www.ecodis.de/xpsnr.htm
- C. R. Helmrich, S. Bosse, H. Schwarz, D. Marpe, and T. Wiegand, "A Study of the Extended Perceptually Weighted Peak Signal-to-Noise Ratio (XPSNR) for Video Compression with Different Resolutions and Bit Depths," ITU Journal: ICT Discoveries, vol. 3, no. 1, pp. 65 - 72, May 2020. http://handle.itu.int/11.1002/pub/8153d78b-en
Al publicar los resultados de evaluaciones XPSNR obtenidas, por ejemplo, con este filtro de FFmpeg, se recomienda encarecidamente citar los artículos anteriores como documentación. El filtro requiere dos vídeos de entrada. La primera entrada se considera una fuente de referencia (habitualmente sin distorsionar) y se pasa sin cambios a la salida, mientras que la segunda entrada es una señal de prueba (distorsionada). Salvo por la profundidad de bits, ambas entradas de vídeo deben tener el mismo pixel format. Además, para obtener el mejor rendimiento, ambos vídeos de entrada comparados deberían estar en formato de color YCbCr.
Los valores globales de XPSNR obtenidos mencionados anteriormente se muestran a través del sistema de registro. En el caso de entradas con varios planos de color, se recomienda usar como referencia la media mínima de XPSNR.
Se acepta el siguiente parámetro, que se comporta como el del filtro psnr:
stats_file, f
Si se especifica, el filtro usará el archivo indicado para guardar el valor de XPSNR de cada fotograma y plano de color individuales. Cuando el nombre de archivo es "-", esos datos se envían a la salida estándar.
Este filtro también admite las opciones framesync.
11.289.1 Ejemplos
-
Análisis XPSNR de dos vídeos HD 1080p, ref_source.yuv y test_video.yuv, ambos a 24 fotogramas por segundo, con formato de color 4:2:0, profundidad de bits 8, y salida de un archivo de registro llamado "xpsnr.log":
ffmpeg -s 1920x1080 -framerate 24 -pix_fmt yuv420p -i ref_source.yuv -s 1920x1080 -framerate 24 -pix_fmt yuv420p -i test_video.yuv -lavfi xpsnr="stats_file=xpsnr.log" -f null - -
Análisis XPSNR de dos vídeos UHD 2160p, ref_source.yuv con profundidad de bits 8 y test_video.yuv con profundidad de bits 10, ambos a 60 fotogramas por segundo con formato de color 4:2:0, sin salida de archivo de registro:
ffmpeg -s 3840x2160 -framerate 60 -pix_fmt yuv420p -i ref_source.yuv -s 3840x2160 -framerate 60 -pix_fmt yuv420p10le -i test_video.yuv -lavfi xpsnr="stats_file=-" -f null -
11.290 xstack
Apila las entradas de vídeo en una disposición personalizada.
Todos los flujos deben tener el mismo pixel format.
El filtro acepta las siguientes opciones:
inputs
Establece el número de flujos de entrada. El valor predeterminado es 2.
layout
Especifica la disposición de las entradas. Esta opción requiere que el usuario establezca explícitamente la configuración de disposición deseada. Fija la posición de cada entrada de vídeo en la salida. Cada entrada se separa con ’|’. El primer número representa la columna y el segundo número representa la fila. Los números comienzan en 0 y se separan con ’_’. Opcionalmente se pueden usar wX y hX, donde X es la entrada de vídeo de la que se toma el ancho o el alto. Pueden usarse varios valores separados por ’+’; en tal caso, los valores se suman entre sí.
Tenga en cuenta que si las entradas tienen tamaños distintos pueden aparecer huecos, ya que no se rellenará todo el fotograma de vídeo de salida. Del mismo modo, los vídeos pueden superponerse entre sí si su posición no deja suficiente espacio para el fotograma completo de los vídeos adyacentes.
Para 2 entradas, se establece una disposición predeterminada de 0_0|w0_0 (equivalente a grid=2x1). En cualquier otro caso, el usuario debe establecer una disposición o una cuadrícula. Solo puede especificarse grid o layout a la vez. Especificar ambos provocará un error.
grid
Especifica una cuadrícula de tamaño fijo para las entradas. Esta opción se usa para crear una cuadrícula de tamaño fijo con los flujos de entrada. Establece el tamaño de la cuadrícula con la forma COLUMNSxROWS. Debe haber ROWS * COLUMNS flujos de entrada, que se dispondrán en una cuadrícula con ROWS filas y COLUMNS columnas. Al usar esta opción, cada flujo de entrada dentro de una fila debe tener la misma altura, y todas las filas deben tener el mismo ancho.
Si se establece grid, la opción inputs se ignora y se establece implícitamente en ROWS * COLUMNS.
Para 2 entradas, se establece una cuadrícula predeterminada de 2x1 (equivalente a layout=0_0|w0_0). En cualquier otro caso, el usuario debe establecer una disposición o una cuadrícula. Solo puede especificarse grid o layout a la vez. Especificar ambos provocará un error.
shortest
Si se establece en 1, obliga a que la salida termine cuando termine la entrada más corta. El valor predeterminado es 0.
fill
Si se establece en un color válido, todos los píxeles sin usar se rellenarán con ese color. De forma predeterminada, fill se establece en none, por lo que está deshabilitado.
11.290.1 Ejemplos
- Mostrar 4 entradas en una cuadrícula 2x2.
Disposición:
input1(0, 0) | input3(w0, 0)
input2(0, h0) | input4(w0, h0)
xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
Tenga en cuenta que si las entradas tienen tamaños distintos, pueden producirse huecos o solapamientos.
- Mostrar 4 entradas en una cuadrícula 1x4.
Disposición:
input1(0, 0)
input2(0, h0)
input3(0, h0+h1)
input4(0, h0+h1+h2)
xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
Tenga en cuenta que si las entradas tienen anchos distintos, aparecerá espacio sin usar.
- Mostrar 9 entradas en una cuadrícula 3x3.
Disposición:
input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
Tenga en cuenta que si las entradas tienen tamaños distintos, pueden producirse huecos o solapamientos.
- Mostrar 16 entradas en una cuadrícula 4x4.
Disposición:
input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
Tenga en cuenta que si las entradas tienen tamaños distintos, pueden producirse huecos o solapamientos.
11.291 yadif
Desentrelaza el vídeo de entrada ("yadif" significa "yet another deinterlacing filter").
Acepta los siguientes parámetros:
mode
El modo de entrelazado que se adoptará. Acepta uno de los siguientes valores:
0, send_frame
Genera un fotograma de salida por cada fotograma.
1, send_field
Genera un fotograma de salida por cada campo.
2, send_frame_nospatial
Como send_frame, pero omite la comprobación espacial de entrelazado.
3, send_field_nospatial
Como send_field, pero omite la comprobación espacial de entrelazado.
El valor predeterminado es send_frame.
parity
La paridad de campo de imagen asumida para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
0, tff
Asume que el campo superior es el primero.
1, bff
Asume que el campo inferior es el primero.
-1, auto
Activa la detección automática de la paridad de campo.
El valor predeterminado es auto. Si se desconoce el entrelazado o el decoder no exporta esta información, se asumirá que el campo superior es el primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
0, all
Desentrelaza todos los fotogramas.
1, interlaced
Desentrelaza únicamente los fotogramas marcados como entrelazados.
El valor predeterminado es all.
11.292 yaepblur
Aplica un filtro de desenfoque preservando los bordes ("yaepblur" significa "yet another edge preserving blur filter"). El algoritmo se describe en "J. S. Lee, Digital image enhancement and noise filtering by use of local statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
Acepta los siguientes parámetros:
radius, r
Establece el radio de la ventana. El valor predeterminado es 3.
planes, p
Establece qué planos filtrar. De forma predeterminada, solo el primer plano.
sigma, s
Establece la intensidad del desenfoque. El valor predeterminado es 128.
11.292.1 Comandos
Este filtro admite los mismos comandos que opciones.
11.293 zoompan
Aplica el efecto de zoom y panorámica (Zoom & Pan).
Este filtro acepta las siguientes opciones:
zoom, z
Establece la expresión de zoom. El rango es 1-10. El valor predeterminado es 1.
x y
Establece la expresión de x e y. El valor predeterminado es 0.
d
Establece la expresión de duración en número de fotogramas. Esto determina durante cuántos fotogramas durará el efecto para una única imagen de entrada. El valor predeterminado es 90.
s
Establece el tamaño de la imagen de salida; el valor predeterminado es ’hd720’.
fps
Establece la velocidad de fotogramas de salida; el valor predeterminado es ’25’.
Cada expresión puede contener las siguientes constantes:
in_w, iw
Ancho de la entrada.
in_h, ih
Alto de la entrada.
out_w, ow
Ancho de la salida.
out_h, oh
Alto de la salida.
in
Número de fotogramas de entrada.
on
Número de fotogramas de salida.
in_time, it
La marca de tiempo de entrada expresada en segundos. Es NAN si la marca de tiempo de entrada es desconocida.
out_time, time, ot
La marca de tiempo de salida expresada en segundos.
x y
Última posición ’x’ y ’y’ calculada a partir de las expresiones ’x’ y ’y’ para el fotograma de entrada actual.
px py
’x’ y ’y’ del último fotograma de salida del fotograma de entrada anterior, o 0 cuando aún no existía tal fotograma (primer fotograma de entrada).
zoom
Último zoom calculado a partir de la expresión ’z’ para el fotograma de entrada actual.
pzoom
Último zoom calculado del último fotograma de salida del fotograma de entrada anterior.
duration
Número de fotogramas de salida para el fotograma de entrada actual. Se calcula a partir de la expresión ’d’ para cada fotograma de entrada.
pduration
número de fotogramas de salida creados para el fotograma de entrada anterior
a
Número racional: ancho de entrada / alto de entrada
sar
relación de aspecto de muestreo
dar
relación de aspecto de visualización
11.293.1 Ejemplos
-
Ampliar hasta 1.5x y desplazar la panorámica al mismo tiempo hacia un punto cercano al centro de la imagen:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360 -
Ampliar hasta 1.5x y desplazar siempre la panorámica hacia el centro de la imagen:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)' -
Lo mismo que arriba, pero sin pausas:
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)' -
Ampliar 2x hacia el centro de la imagen solo durante el primer segundo del vídeo de entrada:
zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
11.294 zscale
Escala (redimensiona) el vídeo de entrada usando la biblioteca z.lib: https://github.com/sekrit-twc/zimg. Para habilitar la compilación de este filtro, es necesario configurar FFmpeg con --enable-libzimg.
El filtro zscale fuerza que la relación de aspecto de visualización de salida sea igual a la de entrada, modificando la relación de aspecto de muestreo de salida.
Si el formato de la imagen de entrada difiere del formato solicitado por el siguiente filtro, el filtro zscale convertirá la entrada al formato solicitado.
11.294.1 Opciones
El filtro acepta las siguientes opciones.
width, w height, h
Establece la expresión de la dimensión del vídeo de salida. El valor predeterminado es la dimensión de entrada.
Si el valor de width o w es 0, se usa el ancho de entrada para la salida. Si el valor de height o h es 0, se usa el alto de entrada para la salida.
Si uno, y solo uno, de los valores es -n con n >= 1, el filtro zscale usará un valor que mantenga la relación de aspecto de la imagen de entrada, calculado a partir de la otra dimensión especificada. Después de eso, se asegurará de que la dimensión calculada sea divisible por n y ajustará el valor si es necesario.
Si ambos valores son -n con n >= 1, el comportamiento será idéntico al de establecer ambos valores en 0, tal como se detalló anteriormente.
Véase más abajo la lista de constantes aceptadas para su uso en la expresión de la dimensión.
size, s
Establece el tamaño del vídeo. Para conocer la sintaxis de esta opción, consulte la sección "Video size" de (ffmpeg-utils) en el manual de ffmpeg-utils.
dither, d
Establece el tipo de dithering.
Los valores posibles son:
none ordered random error_diffusion
El valor predeterminado es none.
filter, f
Establece el tipo de filtro de redimensionado.
Los valores posibles son:
point bilinear bicubic spline16 spline36 spline64 lanczos
El valor predeterminado es bilinear.
range, r
Establece el rango de color.
Los valores posibles son:
input limited full
El valor predeterminado es el mismo que el de entrada.
primaries, p
Establece los primarios de color.
Los valores posibles son:
input 709 unspecified 170m 240m 2020
El valor predeterminado es el mismo que el de entrada.
transfer, t
Establece las características de transferencia.
Los valores posibles son:
input 709 unspecified 601 linear 2020_10 2020_12 smpte2084 iec61966-2-1 arib-std-b67
El valor predeterminado es el mismo que el de entrada.
matrix, m
Establece la matriz del espacio de color.
Los valores posibles son:
input 709 unspecified 470bg 170m 2020_ncl 2020_cl
El valor predeterminado es el mismo que el de entrada.
rangein, rin
Establece el rango de color de entrada.
Los valores posibles son:
input limited full
El valor predeterminado es el mismo que el de entrada.
primariesin, pin
Establece los primarios de color de entrada.
Los valores posibles son:
input 709 unspecified 170m 240m 2020
El valor predeterminado es el mismo que el de entrada.
transferin, tin
Establece las características de transferencia de entrada.
Los valores posibles son:
input 709 unspecified 601 linear 2020_10 2020_12
El valor predeterminado es el mismo que el de entrada.
matrixin, min
Establece la matriz del espacio de color de entrada.
Los valores posibles son:
input 709 unspecified 470bg 170m 2020_ncl 2020_cl chromal, c
Establece la ubicación de crominancia de salida.
Los valores posibles son:
input left center topleft top bottomleft bottom chromalin, cin
Establece la ubicación de crominancia de entrada.
Los valores posibles son:
input left center topleft top bottomleft bottom npl
Establece la luminancia nominal de pico.
param_a
Parámetro A para los filtros de escalado. Parámetro "b" para bicubic, y el número de taps del filtro para lanczos.
param_b
Parámetro B para los filtros de escalado. Parámetro "c" para bicubic.
Los valores de las opciones w y h son expresiones que contienen las siguientes constantes:
in_w in_h
El ancho y el alto de entrada
iw ih
Son lo mismo que in_w e in_h.
out_w out_h
El ancho y el alto de salida (escalados)
ow oh
Son lo mismo que out_w y out_h
a
Lo mismo que iw / ih
sar
relación de aspecto de muestreo de entrada
dar
La relación de aspecto de visualización de entrada. Calculada a partir de (iw / ih) * sar.
hsub vsub
valores de submuestreo de croma horizontal y vertical de entrada. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
ohsub ovsub
valores de submuestreo de croma horizontal y vertical de salida. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
11.294.2 Comandos
Este filtro admite los siguientes comandos:
width, w height, h
Establece la expresión de la dimensión del vídeo de salida. El comando acepta la misma sintaxis que la opción correspondiente.
Si la expresión especificada no es válida, se mantiene el valor actual.
12 Filtros de vídeo CUDA
A continuación se describen los filtros de vídeo CUDA de Nvidia actualmente disponibles.
Requisitos previos:
- Instalar Nvidia CUDA Toolkit
Nota: Si FFmpeg detecta Nvidia CUDA Toolkit durante la configuración, habilitará los filtros CUDA automáticamente sin necesidad de flags adicionales. Si desea habilitarlos explícitamente, use las siguientes opciones:
- Configure FFmpeg con
--enable-cuda-nvcc --enable-nonfree. - Configure FFmpeg con
--enable-cuda-llvm. Requisito adicional: debe estar instalada la bibliotecallvm.
Para ejecutar filtros CUDA es necesario inicializar un dispositivo de hardware y pasar ese dispositivo a todos los filtros de cualquier grafo de filtros.
-init_hw_device cuda[=name][:device[,key=value...]]
Inicializa un nuevo dispositivo de hardware de tipo cuda llamado name, usando los parámetros de dispositivo especificados.
-filter_hw_device name
Pasa el dispositivo de hardware llamado name a todos los filtros de cualquier grafo de filtros.
Para obtener información más detallada, consulte https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Ejemplo de inicialización del segundo dispositivo CUDA del sistema y ejecución de los filtros scale_cuda y bilateral_cuda.
./ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -init_hw_device cuda:1 -filter_complex \ "[0:v]scale_cuda=format=yuv444p[scaled_video];[scaled_video]bilateral_cuda=window_size=9:sigmaS=3.0:sigmaR=50.0" \ -an -sn -c:v h264_nvenc -cq 20 out.mp4
Dado que los filtros CUDA operan exclusivamente en memoria de GPU, en ocasiones los datos de los fotogramas deben subirse (hwupload) a superficies de hardware asociadas al dispositivo CUDA correspondiente antes del procesamiento, y descargarse (hwdownload) de vuelta a la memoria normal después, si es necesario. Si hwupload o hwdownload son necesarios depende del flujo de trabajo concreto:
- Si los fotogramas de entrada ya están en memoria de GPU (por ejemplo, al usar
-hwaccel cudao-hwaccel_output_format cuda), no es necesario usar hwupload explícitamente, ya que los datos ya se encuentran en el espacio de memoria adecuado. - Si los fotogramas de entrada están en memoria de CPU (por ejemplo, fotogramas decodificados por software o procesados por filtros basados en CPU), es necesario usar hwupload para transferir los datos a la memoria de GPU para su procesamiento con CUDA.
- Si la salida de los filtros CUDA necesita seguir procesándose con filtros basados en software, o guardarse en un formato no compatible con encoders basados en GPU, se requiere hwdownload para transferir los datos de vuelta a la memoria de CPU.
Tenga en cuenta que hwupload sube los datos a una superficie con el mismo formato que el fotograma de software, por lo que puede ser necesario añadir un filtro format justo antes de hwupload para asegurarse de que la entrada tiene el formato correcto. De igual modo, hwdownload puede no admitir todos los formatos de salida, por lo que quizá sea necesario insertar un filtro format adicional justo después de hwdownload en el grafo de filtros para garantizar la compatibilidad.
12.1 bilateral_cuda
Filtro bilateral acelerado por CUDA, un filtro que preserva los bordes. Este filtro es matemáticamente preciso gracias al uso de la aceleración por GPU. Para obtener la mejor calidad de salida, use un submuestreo de croma uno a uno, es decir, formato yuv444p.
El filtro acepta las siguientes opciones:
sigmaS
Establece la sigma de la función gaussiana para calcular el peso espacial, también llamada sigma espacial. El rango permitido es de 0.1 a 512. El valor predeterminado es 0.1.
sigmaR
Establece la sigma de la función gaussiana para calcular el peso del rango de color, también llamada sigma de color. El rango permitido es de 0.1 a 512. El valor predeterminado es 0.1.
window_size
Establece el tamaño de ventana de la función bilateral para determinar el número de vecinos sobre los que iterar. Si el número introducido es par, se le sumará uno automáticamente. El rango permitido es de 1 a 255. El valor predeterminado es 1.
12.1.1 Ejemplos
- Aplicar el filtro bilateral a un vídeo.
./ffmpeg -v verbose \ -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \ -init_hw_device cuda \ -filter_complex \ " \ [0:v]scale_cuda=format=yuv444p[scaled_video]; [scaled_video]bilateral_cuda=window_size=9:sigmaS=3.0:sigmaR=50.0" \ -an -sn -c:v h264_nvenc -cq 20 out.mp4
12.2 bwdif_cuda
Desentrelaza el vídeo de entrada usando el algoritmo bwdif, pero implementado en CUDA para que pueda formar parte de una canalización acelerada por GPU con nvdec o nvenc.
Acepta los siguientes parámetros:
mode
El modo de entrelazado a adoptar. Acepta uno de los siguientes valores:
0, send_frame
Genera un fotograma de salida por cada fotograma.
1, send_field
Genera un fotograma de salida por cada campo.
El valor predeterminado es send_field.
parity
La paridad de campo de imagen asumida para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
0, tff
Asume que el campo superior va primero.
1, bff
Asume que el campo inferior va primero.
-1, auto
Habilita la detección automática de la paridad de campo.
El valor predeterminado es auto. Si se desconoce el entrelazado o el decoder no exporta esta información, se asumirá que el campo superior va primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
0, all
Desentrelaza todos los fotogramas.
1, interlaced
Desentrelaza únicamente los fotogramas marcados como entrelazados.
El valor predeterminado es all.
12.3 chromakey_cuda
Chroma key (recorte por color/croma) en espacio de color YUV, acelerado por CUDA.
Este filtro funciona como el filtro chromakey normal, pero opera sobre fotogramas CUDA. Para más detalles y parámetros, véase chromakey.
12.3.1 Ejemplos
-
Hacer transparentes todos los píxeles verdes del vídeo de entrada y usarlo como superposición sobre otro vídeo:
./ffmpeg \ -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4 \ -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \ -init_hw_device cuda \ -filter_complex \ " \ [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \ [1:v]scale_cuda=format=yuv420p[base]; \ [base][overlay_video]overlay_cuda" \ -an -sn -c:v h264_nvenc -cq 20 output.mp4 -
Procesar dos fuentes por software, subiendo los fotogramas explícitamente:
./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \ -f lavfi -i color=size=800x600:color=white,format=yuv420p \ -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \ -filter_complex \ " \ [0]hwupload[under]; \ [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \ [under][over]overlay_cuda" \ -c:v hevc_nvenc -cq 18 -preset slow output.mp4
12.4 colorspace_cuda
Implementación acelerada por CUDA del filtro colorspace.
No pretende, en absoluto, ofrecer las mismas funciones que el filtro colorspace por software, y por el momento solo admite la conversión de rango de color entre jpeg/full y mpeg/limited.
El filtro acepta las siguientes opciones:
range
Especifica el rango de color de salida.
Los valores aceptados son:
‘tv’
Rango TV (restringido)
‘mpeg’
Rango MPEG (restringido)
‘pc’
Rango PC (completo)
‘jpeg’
Rango JPEG (completo)
12.5 overlay_cuda
Superpone un vídeo sobre otro.
Esta es la variante CUDA del filtro overlay. Solo acepta fotogramas CUDA. Los pixel formats de entrada subyacentes deben coincidir.
Toma dos entradas y produce una salida. La primera entrada es el vídeo "principal" sobre el que se superpone la segunda.
Acepta los siguientes parámetros:
x y
Establece las expresiones para las coordenadas x e y del vídeo superpuesto sobre el vídeo principal.
Pueden contener los siguientes parámetros:
main_w, W main_h, H
El ancho y el alto de la entrada principal.
overlay_w, w overlay_h, h
El ancho y el alto de la entrada superpuesta.
x y
Los valores calculados de x e y. Se evalúan en cada fotograma nuevo.
n
El índice ordinal del fotograma de la entrada principal, empezando desde 0.
pos
La posición en bytes, dentro del archivo, del fotograma de la entrada principal; NAN si se desconoce. Obsoleto, no usar.
t
La marca de tiempo del fotograma de la entrada principal, expresada en segundos; NAN si se desconoce.
El valor predeterminado es "0" para ambas expresiones.
eval
Establece cuándo se evalúan las expresiones de x e y.
Acepta los siguientes valores:
init
Evalúa las expresiones una vez durante la inicialización del filtro o cuando se procesa un comando.
frame
Evalúa las expresiones en cada fotograma entrante
El valor predeterminado es frame.
eof_action
Véase framesync.
shortest
Véase framesync.
repeatlast
Véase framesync.
Este filtro también admite las opciones de framesync.
12.6 pad_cuda
Añade relleno a un flujo de vídeo de entrada usando CUDA.
Este filtro es la versión acelerada por CUDA del filtro pad. Acepta las mismas opciones y expresiones, y ofrece la misma funcionalidad básica. Para una descripción detallada de las opciones disponibles, consulte la documentación del filtro pad.
12.6.1 Ejemplos
-
Añadir un borde negro de 200 píxeles en todos los lados de un fotograma de vídeo:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf "pad_cuda=w=iw+400:h=ih+400:x=200:y=200" -c:v h264_nvenc out.mp4 -
Rellenar el vídeo de entrada hasta una relación de aspecto 16:9, usando el color "blue":
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf "pad_cuda=w=ih*16/9/sar:h=ih:x=(ow-iw)/2:y=(oh-ih)/2:color=blue" -c:v h264_nvenc out.mp4
12.7 scale_cuda
Escala (redimensiona) y convierte (pixel format) el vídeo de entrada usando núcleos CUDA acelerados. Establecer el ancho y el alto de salida funciona igual que en el filtro scale.
El filtro acepta las siguientes opciones:
w h
Establece la expresión de la dimensión del vídeo de salida. El valor predeterminado es la dimensión de entrada.
Admite las mismas expresiones que el filtro scale.
interp_algo
Establece el algoritmo usado para el escalado:
nearest
Vecino más próximo
Se usa de forma predeterminada si los parámetros de entrada coinciden con la salida deseada.
bilinear
Bilineal
bicubic
Bicúbico
Es el valor predeterminado.
lanczos
Lanczos
format
Controla el pixel format de salida. De forma predeterminada, o si no se especifica ninguno, se usa el pixel format de entrada.
El filtro no admite la conversión entre pixel formats YUV y RGB.
passthrough
Si se establece en 0, se procesa cada fotograma, aunque no sea necesaria ninguna conversión. Este modo puede resultar útil para usar el filtro como búfer ante un consumidor de fotogramas posterior que agote el limitado pool de fotogramas del decoder.
Si se establece en 1, los fotogramas se dejan pasar tal cual si coinciden con los parámetros de salida deseados. Este es el comportamiento predeterminado.
use_filters
Si se establece en 1, filtra con una LUT de pesos genérica en lugar de usar núcleos de sombreado de función fija. Puede ser más rápido o más lento según el hardware. Un valor de auto (el predeterminado) lo habilita automáticamente cuando es necesario para un antialiasing correcto al reducir la escala.
param
Parámetro específico del algoritmo.
Afecta a las curvas del algoritmo bicúbico.
force_original_aspect_ratio force_divisible_by
Funcionan igual que las opciones homónimas del filtro scale.
reset_sar
Funciona igual que la opción homónima del filtro scale.
12.7.1 Ejemplos
-
Escalar la entrada a 720p, manteniendo la relación de aspecto y asegurando que la salida sea yuv420p.
scale_cuda=-2:720:format=yuv420p -
Aumentar la escala a 4K usando el algoritmo del vecino más próximo.
scale_cuda=4096:2160:interp_algo=nearest -
No realizar ninguna conversión ni escalado, y copiar todos los fotogramas de entrada en otros recién asignados. Esto puede resultar útil para lidiar con una cadena de filtrado y codificación que, de otro modo, agotaría el pool de fotogramas del decoder.
scale_cuda=passthrough=0
12.8 thumbnail_cuda
Selecciona el fotograma más representativo de una secuencia dada de fotogramas consecutivos usando CUDA.
El filtro acepta las siguientes opciones:
n
Establece el tamaño del lote de fotogramas a analizar; de cada conjunto de n fotogramas, el filtro elegirá uno, y luego procesará el siguiente lote de n fotogramas hasta el final. El valor predeterminado es 100.
Dado que el filtro hace un seguimiento de toda la secuencia de fotogramas, un valor de n mayor supondrá un mayor uso de memoria, por lo que no se recomienda un valor elevado.
12.8.1 Ejemplo
- Se extraen miniaturas de cada lote de n=150 fotogramas, eligiendo una por lote. Los fotogramas elegidos se escalan después con scale_cuda.
./ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i ./input.mp4 -vf "thumbnail_cuda=150,scale_cuda=1920:1080,hwdownload,format=nv12" ./output/out%03d.png
12.9 transpose_cuda
Transpone filas por columnas en el vídeo de entrada y, opcionalmente, lo invierte. Para ejemplos más detallados, véase el filtro de vídeo transpose, con el que comparte casi todas las opciones.
Acepta los siguientes parámetros:
dir
Especifica la dirección de la transposición.
Puede tomar los siguientes valores:
‘cclock_flip’
Gira 90 grados en sentido antihorario y voltea verticalmente. (predeterminado)
‘clock’
Gira 90 grados en sentido horario.
‘cclock’
Gira 90 grados en sentido antihorario.
‘clock_flip’
Gira 90 grados en sentido horario y voltea verticalmente.
‘reversal’
Gira 180 grados.
‘hflip’
Voltea horizontalmente.
‘vflip’
Voltea verticalmente.
passthrough
No aplica la transposición si la geometría de entrada coincide con la especificada por el valor indicado. Acepta los siguientes valores:
‘none’
Aplica siempre la transposición. (predeterminado)
‘portrait’
Conserva la geometría vertical (cuando el alto es >= al ancho).
‘landscape’
Conserva la geometría horizontal (cuando el ancho es >= al alto).
12.10 yadif_cuda
Desentrelaza el vídeo de entrada usando el algoritmo yadif, pero implementado en CUDA para que pueda formar parte de una canalización acelerada por GPU con nvdec o nvenc.
Acepta los siguientes parámetros:
mode
El modo de entrelazado a adoptar. Acepta uno de los siguientes valores:
0, send_frame
Genera un fotograma de salida por cada fotograma.
1, send_field
Genera un fotograma de salida por cada campo.
2, send_frame_nospatial
Como send_frame, pero omite la comprobación espacial de entrelazado.
3, send_field_nospatial
Como send_field, pero omite la comprobación espacial de entrelazado.
El valor predeterminado es send_frame.
parity
La paridad de campo de imagen asumida para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
0, tff
Asume que el campo superior va primero.
1, bff
Asume que el campo inferior va primero.
-1, auto
Habilita la detección automática de la paridad de campo.
El valor predeterminado es auto. Si se desconoce el entrelazado o el decoder no exporta esta información, se asumirá que el campo superior va primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
0, all
Desentrelaza todos los fotogramas.
1, interlaced
Desentrelaza únicamente los fotogramas marcados como entrelazados.
El valor predeterminado es all.
13 Filtros de vídeo OpenCL
A continuación se describen los filtros de vídeo OpenCL actualmente disponibles.
Para habilitar la compilación de estos filtros es necesario configurar FFmpeg con --enable-opencl.
Para ejecutar filtros OpenCL es necesario inicializar un dispositivo de hardware y pasar ese dispositivo a todos los filtros de cualquier grafo de filtros.
-init_hw_device opencl[=name][:device[,key=value...]]
Inicializa un nuevo dispositivo de hardware de tipo opencl llamado name, usando los parámetros de dispositivo especificados.
-filter_hw_device name
Pasa el dispositivo de hardware llamado name a todos los filtros de cualquier grafo de filtros.
Para obtener información más detallada, consulte https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Ejemplo de selección del primer dispositivo en la segunda plataforma y ejecución del filtro avgblur_opencl con sus parámetros predeterminados en él.
-init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
Dado que los filtros OpenCL no pueden acceder a los datos de fotograma en memoria normal, todos los datos de fotograma deben subirse (hwupload) a superficies de hardware conectadas al dispositivo correspondiente antes de usarse, y luego descargarse (hwdownload) de vuelta a la memoria normal. Tenga en cuenta que hwupload sube los datos a una superficie con la misma disposición que el fotograma de software, por lo que puede ser necesario añadir un filtro format justo antes para llevar la entrada al formato correcto, y que hwdownload no admite todos los formatos en la salida, por lo que puede ser necesario insertar un filtro format adicional justo después en el grafo para obtener la salida en un formato compatible.
13.1 avgblur_opencl
Aplica el filtro de desenfoque medio.
El filtro acepta las siguientes opciones:
sizeX
Establece el tamaño del radio horizontal. El rango es [1, 1024] y el valor predeterminado es 1.
planes
Establece qué planos filtrar. El valor predeterminado es 0xf, con el que se procesan todos los planos.
sizeY
Establece el tamaño del radio vertical. El rango es [1, 1024] y el valor predeterminado es 0. Si es cero, se usará el valor de sizeX.
13.1.1 Ejemplo
- Aplica el filtro de desenfoque medio con tamaño horizontal y vertical de 3, estableciendo cada píxel de la salida en el valor medio de la región de 7x7 centrada en él en la entrada. Para los píxeles situados en los bordes de la imagen, la región no se extiende más allá de los límites de la imagen, por lo que las coordenadas fuera de rango no se usan en los cálculos.
-i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
13.2 boxblur_opencl
Aplica un algoritmo boxblur al vídeo de entrada.
Acepta los siguientes parámetros:
luma_radius, lr luma_power, lp chroma_radius, cr chroma_power, cp alpha_radius, ar alpha_power, ap
A continuación se describen las opciones aceptadas.
luma_radius, lr chroma_radius, cr alpha_radius, ar
Establece una expresión para el radio de la caja, en píxeles, usado para desenfocar el plano de entrada correspondiente.
El valor del radio debe ser un número no negativo, y no debe ser mayor que el valor de la expresión min(w,h)/2 para los planos de luma y alfa, ni que min(cw,ch)/2 para los planos de croma.
El valor predeterminado de luma_radius es "2". Si no se especifica, chroma_radius y alpha_radius toman de forma predeterminada el valor correspondiente establecido para luma_radius.
Las expresiones pueden contener las siguientes constantes:
w h
El ancho y el alto de la entrada, en píxeles.
cw ch
El ancho y el alto de la imagen de croma de la entrada, en píxeles.
hsub vsub
Los valores de submuestreo de croma horizontal y vertical. Por ejemplo, para el pixel format "yuv422p", hsub es 2 y vsub es 1.
luma_power, lp chroma_power, cp alpha_power, ap
Especifica cuántas veces se aplica el filtro boxblur al plano correspondiente.
El valor predeterminado de luma_power es 2. Si no se especifica, chroma_power y alpha_power toman de forma predeterminada el valor correspondiente establecido para luma_power.
Un valor de 0 desactivará el efecto.
13.2.1 Ejemplos
Aplica el filtro boxblur, estableciendo cada píxel de la salida en el valor medio de los radios de caja luma_radius, chroma_radius y alpha_radius para cada plano respectivamente. El filtro se aplicará luma_power, chroma_power y alpha_power veces sobre el plano correspondiente. Para los píxeles situados en los bordes de la imagen, el radio no se extiende más allá de los límites de la imagen, por lo que las coordenadas fuera de rango no se usan en los cálculos.
-
Aplica un filtro boxblur con el radio de luma, croma y alfa establecido en 2, y la potencia de luma, croma y alfa establecida en 3. El filtro se ejecutará 3 veces con el radio de caja establecido en 2 para cada plano de la imagen.
-i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT -
Aplica un filtro boxblur con el radio de luma establecido en 2, luma_power en 1, chroma_radius en 4, chroma_power en 5, alpha_radius en 3 y alpha_power en 7.
Para el plano de luma, se ejecutará un radio de caja de 2x2 una vez.
Para el plano de croma, se ejecutará un radio de caja de 4x4 cinco veces.
Para el plano de alfa, se ejecutará un radio de caja de 3x3 siete veces.
-i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
13.3 colorkey_opencl
Recorte de color (color keying) en el espacio de color RGB.
El filtro acepta las siguientes opciones:
color
El color que se reemplazará por transparencia.
similarity
Porcentaje de similitud con el color clave.
0.01 coincide únicamente con el color clave exacto, mientras que 1.0 coincide con todo.
blend
Porcentaje de mezcla.
0.0 hace que los píxeles sean totalmente transparentes o completamente opacos.
Valores más altos dan lugar a píxeles semitransparentes, con una transparencia mayor cuanto más se parezca el color del píxel al color clave.
13.3.1 Ejemplos
- Hace transparente cada píxel semiverde de la entrada con una ligera mezcla:
-i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
13.4 convolution_opencl
Aplica una convolución de matriz 3x3, 5x5 o 7x7.
El filtro acepta las siguientes opciones:
0m 1m 2m 3m
Establece la matriz para cada plano. La matriz es una secuencia de 9, 25 o 49 números con signo. El valor predeterminado para cada plano es 0 0 0 0 1 0 0 0 0.
0rdiv 1rdiv 2rdiv 3rdiv
Establece el multiplicador del valor calculado para cada plano. Si no se establece o es 0, será la suma de todos los elementos de la matriz. El valor de la opción debe ser un número de coma flotante mayor o igual que 0.0. El valor predeterminado es 1.0.
0bias 1bias 2bias 3bias
Establece el sesgo (bias) para cada plano. Este valor se suma al resultado de la multiplicación. Resulta útil para hacer que la imagen en conjunto sea más clara u oscura. El valor de la opción debe ser un número de coma flotante mayor o igual que 0.0. El valor predeterminado es 0.0.
13.4.1 Ejemplos
-
Aplica enfoque (sharpen):
-i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT -
Aplica desenfoque (blur):
-i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT -
Aplica realce de bordes (edge enhance):
-i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT -
Aplica detección de bordes (edge detect):
-i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT -
Aplica un detector de bordes laplaciano que incluye diagonales:
-i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT -
Aplica relieve (emboss):
-i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
13.5 erosion_opencl
Aplica un efecto de erosión al vídeo.
Este filtro sustituye el píxel por el mínimo local (3x3).
Acepta las siguientes opciones:
threshold0 threshold1 threshold2 threshold3
Limita el cambio máximo para cada plano. El rango es [0, 65535] y el valor predeterminado es 65535. Si es 0, el plano permanecerá sin cambios.
coordinates
Flag que especifica el píxel de referencia. El rango es [0, 255] y el valor predeterminado es 255, es decir, se usan los ocho píxeles.
Flags para la región de coordenadas 3x3 local centrada en x:
1 2 3
4 x 5
6 7 8
13.5.1 Ejemplo
- Aplica el filtro de erosión con threshold0 establecido en 30, threshold1 en 40, threshold2 en 50 y coordinates en 231, estableciendo cada píxel de la salida en el mínimo local entre los píxeles 1, 2, 3, 6, 7, 8 de la región 3x3 centrada en él en la entrada. Si la diferencia entre el píxel de entrada y el mínimo local es mayor que el umbral (threshold) del plano correspondiente, el píxel de salida se establecerá en el píxel de entrada menos el umbral del plano correspondiente.
-i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
13.6 deshake_opencl
Filtro de estabilización de vídeo basado en puntos característicos.
El filtro acepta las siguientes opciones:
tripod
Simula un trípode impidiendo cualquier movimiento de cámara respecto al fotograma original. El valor predeterminado es 0.
debug
Indica si se debe mostrar información de depuración adicional, tanto en la salida procesada como en la consola.
Tenga en cuenta que, para ver la salida de depuración en la consola, también deberá pasar -v verbose a ffmpeg.
La visualización de las coincidencias de puntos en el vídeo de salida solo se admite para entradas RGB.
El valor predeterminado es 0.
adaptive_crop
Indica si se debe recortar ligeramente los bordes para reducir la cantidad de píxeles reflejados.
El valor predeterminado es 1.
refine_features
Indica si los puntos característicos deben refinarse a nivel de subpíxel.
Esto se puede desactivar para obtener una ligera ganancia de rendimiento a costa de la precisión.
El valor predeterminado es 1.
smooth_strength
La intensidad del suavizado aplicado a la trayectoria de la cámara, de 0.0 a 1.0.
1.0 es la intensidad de suavizado máxima, mientras que valores inferiores producen menos suavizado.
0.0 hace que el filtro elija de forma adaptativa la intensidad de suavizado fotograma a fotograma.
El valor predeterminado es 0.0.
smooth_window_multiplier
Controla el tamaño de la ventana de suavizado (el número de fotogramas almacenados en búfer a partir de los cuales se determina la información de movimiento).
El tamaño de la ventana de suavizado se determina multiplicando la velocidad de fotogramas del vídeo por este número.
Los valores aceptables van de 0.1 a 10.0.
Valores más altos aumentan la cantidad de datos de movimiento disponibles para determinar cómo suavizar la trayectoria de la cámara, lo que puede mejorar la suavidad, pero también incrementan la latencia y el uso de memoria.
El valor predeterminado es 2.0.
13.6.1 Ejemplos
-
Estabiliza un vídeo con una intensidad de suavizado media y fija:
-i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT -
Estabiliza un vídeo con depuración activada (tanto en la consola como en el vídeo renderizado):
-i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
13.7 dilation_opencl
Aplica un efecto de dilatación al vídeo.
Este filtro sustituye el píxel por el máximo local (3x3).
Acepta las siguientes opciones:
threshold0 threshold1 threshold2 threshold3
Limita el cambio máximo para cada plano. El rango es [0, 65535] y el valor predeterminado es 65535. Si es 0, el plano permanecerá sin cambios.
coordinates
Flag que especifica el píxel de referencia. El rango es [0, 255] y el valor predeterminado es 255, es decir, se usan los ocho píxeles.
Flags para la región de coordenadas 3x3 local centrada en x:
1 2 3
4 x 5
6 7 8
13.7.1 Ejemplo
- Aplica el filtro de dilatación con threshold0 establecido en 30, threshold1 en 40, threshold2 en 50 y coordinates en 231, estableciendo cada píxel de la salida en el máximo local entre los píxeles 1, 2, 3, 6, 7, 8 de la región 3x3 centrada en él en la entrada. Si la diferencia entre el píxel de entrada y el máximo local es mayor que el umbral del plano correspondiente, el píxel de salida se establecerá en el píxel de entrada más el umbral del plano correspondiente.
-i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
13.8 nlmeans_opencl
Filtro de reducción de ruido Non-local Means a través de OpenCL; este filtro acepta las mismas opciones que nlmeans.
13.9 overlay_opencl
Superpone un vídeo sobre otro.
Toma dos entradas y tiene una salida. La primera entrada es el vídeo "principal" sobre el que se superpone la segunda entrada. Este filtro requiere la misma disposición de memoria para todas las entradas, por lo que puede ser necesaria una conversión de formato.
El filtro acepta las siguientes opciones:
x
Establece la coordenada x del vídeo superpuesto sobre el vídeo principal. El valor predeterminado es 0.
y
Establece la coordenada y del vídeo superpuesto sobre el vídeo principal. El valor predeterminado es 0.
13.9.1 Ejemplos
-
Superpone una imagen LOGO en la esquina superior izquierda del vídeo INPUT. Ambas entradas están en formato yuv420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT -
Las entradas tienen la misma disposición de memoria para los canales de color, y la superposición tiene un plano alfa adicional; por ejemplo, INPUT es yuv420p y LOGO es yuva420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
13.10 pad_opencl
Añade relleno (padding) a la imagen de entrada y coloca la entrada original en las coordenadas x, y proporcionadas.
Acepta las siguientes opciones:
width, w height, h
Especifica una expresión para el tamaño de la imagen de salida con el relleno añadido. Si el valor de width o height es 0, se usa para la salida el tamaño de entrada correspondiente.
La expresión de width puede hacer referencia al valor establecido por la expresión de height, y viceversa.
El valor predeterminado de width y height es 0.
x y
Especifica los desplazamientos para colocar la imagen de entrada dentro del área rellenada, con respecto al borde superior/izquierdo de la imagen de salida.
La expresión de x puede hacer referencia al valor establecido por la expresión de y, y viceversa.
El valor predeterminado de x e y es 0.
Si x o y se evalúan como un número negativo, se modificarán de forma que la imagen de entrada quede centrada en el área rellenada.
color
Especifica el color del área rellenada. Para conocer la sintaxis de esta opción, consulte la sección "Color" del manual de ffmpeg-utils (ffmpeg-utils).
aspect
Rellena ajustando a una relación de aspecto en lugar de a una resolución.
El valor de las opciones width, height, x e y son expresiones que contienen las siguientes constantes:
in_w in_h
El ancho y el alto del vídeo de entrada.
iw ih
Son lo mismo que in_w e in_h.
out_w out_h
El ancho y el alto de la salida (el tamaño del área rellenada), según lo especificado por las expresiones width y height.
ow oh
Son lo mismo que out_w y out_h.
x y
Los desplazamientos x e y según lo especificado por las expresiones x e y, o NAN si aún no se han especificado.
a
Lo mismo que iw / ih
sar
relación de aspecto de muestra de la entrada
dar
relación de aspecto de visualización de la entrada; es lo mismo que (iw / ih) * sar
13.11 prewitt_opencl
Aplica el operador de Prewitt (https://en.wikipedia.org/wiki/Prewitt_operator) al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos filtrar. El valor predeterminado es 0xf, con el que se procesan todos los planos.
scale
Establece el valor que se multiplicará por el resultado filtrado. El rango es [0.0, 65535] y el valor predeterminado es 1.0.
delta
Establece el valor que se sumará al resultado filtrado. El rango es [-65535, 65535] y el valor predeterminado es 0.0.
13.11.1 Ejemplo
- Aplica el operador de Prewitt con scale establecido en 2 y delta en 10.
-i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
13.12 program_opencl
Filtra el vídeo usando un programa OpenCL.
source
Archivo fuente del programa OpenCL.
kernel
Nombre del kernel en el programa.
inputs
Número de entradas del filtro. El valor predeterminado es 1.
size, s
Tamaño de los fotogramas de salida. De forma predeterminada, es el mismo que el de la primera entrada.
El filtro program_opencl también admite las opciones de framesync.
El archivo fuente del programa debe contener una función kernel con el nombre indicado, que se ejecutará una vez por cada plano de la salida. Cada ejecución en un plano se encola como un NDRange global 2D independiente, con un elemento de trabajo (work-item) por cada píxel que se vaya a generar. Por tanto, el desplazamiento del ID global de cada elemento de trabajo corresponde a las coordenadas de un píxel en la imagen de destino.
La función kernel debe recibir los siguientes argumentos:
- Imagen de destino, __write_only image2d_t.
Esta imagen se convertirá en la salida; el kernel debe escribirla por completo.
- Índice de fotograma, unsigned int.
Es un contador que empieza en cero y se incrementa en uno por cada fotograma.
- Imágenes fuente, __read_only image2d_t.
Son las imágenes más recientes de cada entrada. El kernel puede leerlas para generar la salida, pero no puede escribir en ellas.
Programas de ejemplo:
-
Copia la entrada en la salida (la salida debe tener el mismo tamaño que la entrada).
__kernel void copy(__write_only image2d_t destination, unsigned int index, __read_only image2d_t source) { const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE; int2 location = (int2)(get_global_id(0), get_global_id(1)); float4 value = read_imagef(source, sampler, location); write_imagef(destination, location, value); } -
Aplica una transformación sencilla, rotando la entrada en una cantidad que aumenta con el contador index. Los valores de los píxeles se interpolan linealmente mediante el sampler, y la salida no tiene por qué tener las mismas dimensiones que la entrada.
__kernel void rotate_image(__write_only image2d_t dst, unsigned int index, __read_only image2d_t src) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); float angle = (float)index / 100.0f; float2 dst_dim = convert_float2(get_image_dim(dst)); float2 src_dim = convert_float2(get_image_dim(src)); float2 dst_cen = dst_dim / 2.0f; float2 src_cen = src_dim / 2.0f; int2 dst_loc = (int2)(get_global_id(0), get_global_id(1)); float2 dst_pos = convert_float2(dst_loc) - dst_cen; float2 src_pos = { cos(angle) * dst_pos.x - sin(angle) * dst_pos.y, sin(angle) * dst_pos.x + cos(angle) * dst_pos.y }; src_pos = src_pos * src_dim / dst_dim; float2 src_loc = src_pos + src_cen; if (src_loc.x < 0.0f || src_loc.y < 0.0f || src_loc.x > src_dim.x || src_loc.y > src_dim.y) write_imagef(dst, dst_loc, 0.5f); else write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc)); } -
Mezcla dos entradas, variando la proporción de cada una según el contador index.
__kernel void blend_images(__write_only image2d_t dst, unsigned int index, __read_only image2d_t src1, __read_only image2d_t src2) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f; int2 dst_loc = (int2)(get_global_id(0), get_global_id(1)); int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst); int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst); float4 val1 = read_imagef(src1, sampler, src1_loc); float4 val2 = read_imagef(src2, sampler, src2_loc); write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend)); }
13.13 remap_opencl
Remapea los píxeles usando el flujo de vídeo de entrada 2.º: Xmap y 3.º: Ymap.
El píxel de destino en la posición (X, Y) se tomará de la posición de origen (x, y), donde x = Xmap(X, Y) e y = Ymap(X, Y). Si los valores de mapeo están fuera de rango, se usará el valor cero para el píxel de destino.
Los flujos de vídeo de entrada Xmap e Ymap deben tener las mismas dimensiones. El flujo de vídeo de salida tendrá las dimensiones de los flujos de vídeo Xmap/Ymap. Los flujos de vídeo de entrada Xmap e Ymap usan un pixel format de coma flotante de 32 bits, de un solo canal.
interp
Especifica la interpolación usada para remapear los píxeles. Los valores permitidos son near y linear. El valor predeterminado es linear.
fill
Especifica el color de los píxeles no mapeados. Para conocer la sintaxis de esta opción, consulte la sección "Color" del manual de ffmpeg-utils (ffmpeg-utils). El color predeterminado es black.
13.14 roberts_opencl
Aplica el operador de cruz de Roberts (https://en.wikipedia.org/wiki/Roberts_cross) al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos filtrar. El valor predeterminado es 0xf, con el que se procesan todos los planos.
scale
Establece el valor que se multiplicará por el resultado filtrado. El rango es [0.0, 65535] y el valor predeterminado es 1.0.
delta
Establece el valor que se sumará al resultado filtrado. El rango es [-65535, 65535] y el valor predeterminado es 0.0.
13.14.1 Ejemplo
- Aplica el operador de cruz de Roberts con scale establecido en 2 y delta en 10
-i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
13.15 sobel_opencl
Aplica el operador de Sobel (https://en.wikipedia.org/wiki/Sobel_operator) al flujo de vídeo de entrada.
El filtro acepta la siguiente opción:
planes
Establece qué planos filtrar. El valor predeterminado es 0xf, con el que se procesan todos los planos.
scale
Establece el valor que se multiplicará por el resultado filtrado. El rango es [0.0, 65535] y el valor predeterminado es 1.0.
delta
Establece el valor que se sumará al resultado filtrado. El rango es [-65535, 65535] y el valor predeterminado es 0.0.
13.15.1 Ejemplo
- Aplica el operador Sobel con scale establecido en 2 y delta en 10
-i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
13.16 tonemap_opencl
Realiza la conversión de HDR(PQ/HLG) a SDR mediante mapeo de tonos (tone-mapping).
Acepta los siguientes parámetros:
tonemap
Especifica el operador de mapeo de tonos que se usará. Igual que la opción tonemap en tonemap.
param
Ajusta el algoritmo de mapeo de tonos. Igual que la opción param en tonemap.
desat
Aplica desaturación a las luces (highlights) que superen este nivel de brillo. Cuanto mayor sea el parámetro, más información de color se conservará. Este ajuste ayuda a evitar colores quemados de forma antinatural en las zonas de brillo extremo, convirtiéndolos (suavemente) en blanco en su lugar. Esto hace que las imágenes resulten más naturales, a costa de reducir la información sobre los colores fuera de rango.
El valor predeterminado es 0.5, y el algoritmo aquí es actualmente un poco distinto de la versión de tonemap para CPU. Un valor de 0.0 desactiva esta opción.
threshold
Los parámetros del algoritmo de mapeo de tonos se ajustan finamente para cada escena. Se usa un umbral (threshold) para detectar si la escena ha cambiado. Si la distancia entre el brillo medio del fotograma actual y la media móvil actual supera un valor de umbral, se recalculan el brillo medio y el brillo máximo de la escena. El valor predeterminado es 0.2.
format
Especifica el pixel format de salida.
Los formatos actualmente admitidos son:
p010 nv12 range, r
Establece el rango de color de la salida.
Los valores posibles son:
tv/mpeg pc/jpeg
El valor predeterminado es el mismo que el de la entrada.
primaries, p
Establece los colores primarios de la salida.
Los valores posibles son:
bt709 bt2020
El valor predeterminado es el mismo que el de la entrada.
transfer, t
Establece las características de transferencia de la salida.
Los valores posibles son:
bt709 bt2020
El valor predeterminado es bt709.
matrix, m
Establece la matriz de espacio de color de la salida.
Los valores posibles son:
bt709 bt2020
El valor predeterminado es el mismo que el de la entrada.
13.16.1 Ejemplo
- Convierte un vídeo HDR(PQ/HLG) al formato p010 con características de transferencia bt2020 usando el operador linear.
-i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
13.17 unsharp_opencl
Enfoca o desenfoca el vídeo de entrada.
Acepta los siguientes parámetros:
luma_msize_x, lx
Establece el tamaño horizontal de la matriz de luma. El rango es [1, 23] y el valor predeterminado es 5.
luma_msize_y, ly
Establece el tamaño vertical de la matriz de luma. El rango es [1, 23] y el valor predeterminado es 5.
luma_amount, la
Establece la intensidad del efecto de luma. El rango es [-10, 10] y el valor predeterminado es 1.0.
Los valores negativos desenfocarán el vídeo de entrada, mientras que los positivos lo enfocarán; un valor de cero desactivará el efecto.
chroma_msize_x, cx
Establece el tamaño horizontal de la matriz de croma. El rango es [1, 23] y el valor predeterminado es 5.
chroma_msize_y, cy
Establece el tamaño vertical de la matriz de croma. El rango es [1, 23] y el valor predeterminado es 5.
chroma_amount, ca
Establece la intensidad del efecto de croma. El rango es [-10, 10] y el valor predeterminado es 0.0.
Los valores negativos desenfocarán el vídeo de entrada, mientras que los positivos lo enfocarán; un valor de cero desactivará el efecto.
Todos los parámetros son opcionales y, de forma predeterminada, equivalen a la cadena ’5:5:1.0:5:5:0.0’.
13.17.1 Ejemplos
-
Aplica un efecto de enfoque de luma intenso:
-i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT -
Aplica un desenfoque intenso en los parámetros de luma y croma:
-i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
13.18 xfade_opencl
Aplica una transición cruzada (fundido cruzado) entre dos vídeos con un efecto de transición personalizado usando OpenCL.
Acepta las siguientes opciones:
transition
Establece uno de los efectos de transición posibles.
custom
Selecciona el efecto de transición personalizado; la descripción real de la transición se tomará de las opciones source y kernel.
fade wipeleft wiperight wipeup wipedown slideleft slideright slideup slidedown
El efecto de transición predeterminado es fade.
source
Archivo fuente del programa OpenCL para la transición personalizada.
kernel
Establece el nombre del kernel que se usará para la transición personalizada, tomado del archivo fuente del programa.
duration
Establece la duración de la transición de vídeo.
offset
Establece el momento de inicio de la transición, relativo al primer vídeo.
El archivo fuente del programa debe contener una función kernel con el nombre indicado, que se ejecutará una vez por cada plano de la salida. Cada ejecución en un plano se encola como un NDRange global 2D independiente, con un elemento de trabajo (work-item) por cada píxel que se vaya a generar. Por tanto, el desplazamiento del ID global de cada elemento de trabajo corresponde a las coordenadas de un píxel en la imagen de destino.
La función kernel debe recibir los siguientes argumentos:
- Imagen de destino, __write_only image2d_t.
Esta imagen se convertirá en la salida; el kernel debe escribirla por completo.
- Primera imagen fuente, __read_only image2d_t. Segunda imagen fuente, __read_only image2d_t.
Son las imágenes más recientes de cada entrada. El kernel puede leerlas para generar la salida, pero no puede escribir en ellas.
- Progreso de la transición, float. Este valor siempre está entre 0 y 1, ambos inclusive.
Programas de ejemplo:
- Aplica el efecto de transición de cortina de puntos:
__kernel void blend_images(__write_only image2d_t dst, __read_only image2d_t src1, __read_only image2d_t src2, float progress) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); int2 p = (int2)(get_global_id(0), get_global_id(1)); float2 rp = (float2)(get_global_id(0), get_global_id(1)); float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y); rp = rp / dim; float2 dots = (float2)(20.0, 20.0); float2 center = (float2)(0,0); float2 unused; float4 val1 = read_imagef(src1, sampler, p); float4 val2 = read_imagef(src2, sampler, p); bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center)); write_imagef(dst, p, next ? val1 : val2); }
14 Filtros de vídeo VAAPI
Los filtros de vídeo VAAPI se usan normalmente junto con un decoder VAAPI y un encoder VAAPI. A continuación se describen los filtros de vídeo VAAPI.
Para habilitar la compilación de estos filtros es necesario configurar FFmpeg con --enable-vaapi.
Para usar los filtros vaapi, es necesario configurar correctamente el dispositivo vaapi. Para más información, consulte https://trac.ffmpeg.org/wiki/Hardware/VAAPI
14.1 overlay_vaapi
Superpone un vídeo sobre otro.
Toma dos entradas y tiene una salida. La primera entrada es el vídeo "principal" (main), sobre el que se superpone la segunda entrada.
El filtro acepta las siguientes opciones:
x y
Define las expresiones para las coordenadas x e y del vídeo superpuesto sobre el vídeo principal.
El valor predeterminado es "0" para ambas expresiones.
w h
Define las expresiones para el ancho y el alto del vídeo superpuesto sobre el vídeo principal.
Los valores predeterminados son ’overlay_iw’ para ’w’ y ’overlay_ih*w/overlay_iw’ para ’h’.
Las expresiones pueden contener los siguientes parámetros:
main_w, W main_h, H
El ancho y el alto de la entrada principal.
overlay_iw overlay_ih
El ancho y el alto de la entrada de superposición.
overlay_w, w overlay_h, h
El ancho y el alto de salida de la superposición.
overlay_x, x overlay_y, y
Posición de la capa de superposición dentro de la principal
alpha
Establece la transparencia del vídeo superpuesto. El rango permitido va de 0.0 a 1.0. Cuanto mayor es el valor, menor es la transparencia. El valor predeterminado es 1.0.
eof_action
Véase framesync.
shortest
Véase framesync.
repeatlast
Véase framesync.
Este filtro también admite las opciones de framesync.
14.1.1 Ejemplos
-
Superpone la imagen LOGO en la esquina superior izquierda del vídeo INPUT. Ambas entradas de este filtro están en formato yuv420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT -
Superpone la imagen LOGO con un desplazamiento de (200, 100) desde la esquina superior izquierda del vídeo INPUT. Las entradas tienen el mismo diseño de memoria para los canales de color; la superposición tiene un plano alfa adicional, ya que INPUT es yuv420p y LOGO es yuva420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
14.2 tonemap_vaapi
Realiza mapeo de tonos de HDR a SDR o de HDR a HDR. Actualmente solo acepta HDR10 como entrada.
Acepta los siguientes parámetros:
format
Especifica el pixel format de salida.
El valor predeterminado es nv12 para el mapeo de tonos de HDR a SDR y p010 para el mapeo de tonos de HDR a HDR.
primaries, p
Establece los primarios de color de salida.
El valor predeterminado es bt709 para el mapeo de tonos de HDR a SDR, e igual que la entrada para el mapeo de tonos de HDR a HDR.
transfer, t
Establece las características de transferencia de salida.
El valor predeterminado es bt709 para el mapeo de tonos de HDR a SDR, e igual que la entrada para el mapeo de tonos de HDR a HDR.
matrix, m
Establece la matriz de color de salida.
El valor predeterminado es bt709 para el mapeo de tonos de HDR a SDR, e igual que la entrada para el mapeo de tonos de HDR a HDR.
display
Establece el volumen de color de la pantalla de masterización de salida (mastering display colour volume). Se proporciona mediante una lista de valores separados por ’|’, donde cada valor son a su vez dos valores separados por un espacio. Define los primarios x e y de la pantalla en el orden G, B, R, seguidos del punto blanco x e y, y las luminancias mínima y máxima nominales de la pantalla.
El mapeo de tonos de HDR a HDR se realizará cuando se establezca esta opción.
light
Establece la información de nivel de luz del contenido de salida. Acepta 2 valores separados por un espacio: el primero es el nivel máximo de luz y el segundo es el nivel medio máximo de luz.
Se ignora en el mapeo de tonos de HDR a SDR, y es opcional en el mapeo de tonos de HDR a HDR.
14.2.1 Ejemplo
-
Convierte un vídeo HDR (HDR10) al formato p010 con características de transferencia bt2020
tonemap_vaapi=format=p010:t=bt2020-10 -
Convierte un vídeo HDR a vídeo HDR
tonemap_vaapi=display=7500\ 3000|34000\ 16000|13250\ 34500|15635\ 16450|500\ 10000000
14.3 hstack_vaapi
Apila los vídeos de entrada horizontalmente.
Esta es la variante VA-API del filtro hstack; cada flujo de entrada puede tener una altura distinta, y este filtro escalará hacia arriba o hacia abajo cada flujo de entrada conservando el aspecto original.
Acepta las siguientes opciones:
inputs
Véase hstack.
shortest
Véase hstack.
height
Establece la altura de la salida. Si se establece en 0, este filtro fijará la altura de salida en la altura del primer flujo de entrada. El valor predeterminado es 0.
14.4 vstack_vaapi
Apila los vídeos de entrada verticalmente.
Esta es la variante VA-API del filtro vstack; cada flujo de entrada puede tener un ancho distinto, y este filtro escalará hacia arriba o hacia abajo cada flujo de entrada conservando el aspecto original.
Acepta las siguientes opciones:
inputs
Véase vstack.
shortest
Véase vstack.
width
Establece el ancho de la salida. Si se establece en 0, este filtro fijará el ancho de salida en el ancho del primer flujo de entrada. El valor predeterminado es 0.
14.5 xstack_vaapi
Apila las entradas de vídeo en una disposición personalizada.
Esta es la variante VA-API del filtro xstack; cada flujo de entrada puede tener un tamaño distinto, y este filtro escalará hacia arriba o hacia abajo cada flujo de entrada hasta el tamaño de salida indicado, o hasta el tamaño del primer flujo de entrada.
Acepta las siguientes opciones:
inputs
Véase xstack.
shortest
Véase xstack.
layout
Véase xstack. Además, esto permite al usuario indicar el tamaño de salida para cada flujo de entrada.
xstack_vaapi=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
grid
Véase xstack.
grid_tile_size
Establece el tamaño de salida para cada flujo de entrada cuando se establece grid. Si esta opción no se establece, este filtro fijará el tamaño de salida de forma predeterminada al tamaño del primer flujo de entrada. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils.
fill
Véase xstack.
14.6 pad_vaapi
Añade relleno a la imagen de entrada y coloca la entrada original en las coordenadas x, y indicadas.
Acepta las siguientes opciones:
width, w height, h
Especifique una expresión para el tamaño de la imagen de salida con el relleno añadido. Si el valor de width o height es 0, se usa el tamaño de entrada correspondiente para la salida.
La expresión de width puede referirse al valor establecido por la expresión de height, y viceversa.
El valor predeterminado de width y height es 0.
x y
Especifique los desplazamientos para colocar la imagen de entrada dentro del área de relleno, con respecto al borde superior/izquierdo de la imagen de salida.
La expresión de x puede referirse al valor establecido por la expresión de y, y viceversa.
El valor predeterminado de x y y es 0.
Si x o y se evalúan como un número negativo, se cambiarán de modo que la imagen de entrada quede centrada en el área de relleno.
color
Especifique el color del área de relleno. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
aspect
Aplica relleno según una relación de aspecto en lugar de una resolución.
El valor de las opciones width, height, x e y son expresiones que contienen las siguientes constantes:
in_w in_h
El ancho y el alto del vídeo de entrada.
iw ih
Son iguales a in_w e in_h.
out_w out_h
El ancho y el alto de salida (el tamaño del área de relleno), según lo especificado por las expresiones width y height.
ow oh
Son iguales a out_w y out_h.
x y
Los desplazamientos x e y según lo especificado por las expresiones x e y, o NAN si aún no se han especificado.
a
igual a iw / ih
sar
relación de aspecto de muestra de la entrada
dar
relación de aspecto de visualización de la entrada; es igual a (iw / ih) * sar
14.7 drawbox_vaapi
Dibuja un cuadro de color sobre la imagen de entrada.
Acepta los siguientes parámetros:
x y
Las expresiones que especifican las coordenadas de la esquina superior izquierda del cuadro. El valor predeterminado es 0.
width, w height, h
Las expresiones que especifican el ancho y el alto del cuadro; si valen 0, se interpretan como el ancho y el alto de la entrada. El valor predeterminado es 0.
color, c
Especifique el color del cuadro que se va a dibujar. Para la sintaxis general de esta opción, consulte la sección (ffmpeg-utils)"Color" del manual de ffmpeg-utils.
thickness, t
La expresión que establece el grosor del borde del cuadro. Un valor de fill creará un cuadro relleno. El valor predeterminado es 3.
Véase más abajo la lista de constantes aceptadas.
replace
Con el valor 1, los píxeles del cuadro pintado sobrescriben los píxeles de color y alfa del vídeo. El valor predeterminado es 0, que compone el cuadro sobre el vídeo de entrada.
Los parámetros x, y, w, h y t son expresiones que contienen las siguientes constantes:
in_h, ih in_w, iw
El ancho y el alto de la entrada.
x y
Las coordenadas de desplazamiento x e y donde se dibuja el cuadro.
w h
El ancho y el alto del cuadro dibujado.
t
El grosor del cuadro dibujado.
14.7.1 Ejemplos
-
Dibuja un cuadro negro alrededor del borde de la imagen de entrada:
drawbox -
Dibuja un cuadro de color rojo con una opacidad del 50%:
drawbox=10:20:200:60:red@0.5
El ejemplo anterior se puede expresar también como:
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
-
Rellena el cuadro con color rosa:
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill -
Dibuja una máscara roja de 2 píxeles con relación 2.40:1:
drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
15 Filtros de vídeo VideoToolbox
A continuación se describen los filtros de vídeo VideoToolbox actualmente disponibles.
El filtro VideoToolbox depende del framework VideoToolbox, y se detecta automáticamente al compilar ffmpeg para una plataforma Apple como macOS. Añada --enable-videotoolbox a configure si la detección automática está deshabilitada.
15.1 scale_vt
Escala y convierte los parámetros de color mediante VTPixelTransferSession.
El filtro acepta las siguientes opciones:
w h
Establece la expresión de las dimensiones del vídeo de salida. El valor predeterminado es la dimensión de la entrada.
color_matrix
Establece la matriz de color de salida.
color_primaries
Establece los primarios de color de salida.
color_transfer
Establece las características de transferencia de salida.
15.1.1 Ejemplos
- Realiza la conversión de HDR a SDR y escala a la mitad del tamaño de la entrada
ffmpeg -hwaccel videotoolbox \ -hwaccel_output_format videotoolbox_vld \ -i hdr.mov \ -c:v hevc_videotoolbox \ -profile:v main \ -b:v 3M \ -vf scale_vt=w=iw/2:h=ih/2:color_matrix=bt709:color_primaries=bt709:color_transfer=bt709 \ -c:a copy \ -tag:v hvc1 \ sdr.mp4
15.2 transpose_vt
Transpone filas y columnas en el vídeo de entrada y, opcionalmente, lo invierte. Para ver ejemplos más detallados, consulte el filtro de vídeo transpose, que comparte la mayoría de las mismas opciones.
Acepta los siguientes parámetros:
dir
Especifica la dirección de la transposición.
Puede tomar los siguientes valores:
‘cclock_flip’
Gira 90 grados en sentido antihorario e invierte verticalmente. (predeterminado)
‘clock’
Gira 90 grados en sentido horario.
‘cclock’
Gira 90 grados en sentido antihorario.
‘clock_flip’
Gira 90 grados en sentido horario e invierte verticalmente.
‘hflip’
Invierte el vídeo de entrada horizontalmente.
‘vflip’
Invierte el vídeo de entrada verticalmente.
passthrough
No aplica la transposición si la geometría de entrada coincide con la especificada por el valor indicado. Admite los siguientes valores:
‘none’
Aplica siempre la transposición. (predeterminado)
‘portrait’
Conserva la geometría vertical (cuando la altura es mayor o igual que la anchura).
‘landscape’
Conserva la geometría apaisada (cuando la anchura es mayor o igual que la altura).
16 Filtros de vídeo Vulkan
A continuación se describen los filtros de vídeo Vulkan actualmente disponibles.
Para habilitar la compilación de estos filtros es necesario configurar FFmpeg con --enable-vulkan y con --enable-libglslang o --enable-libshaderc.
Para ejecutar filtros Vulkan es necesario inicializar un dispositivo de hardware y pasar ese dispositivo a todos los filtros de cualquier grafo de filtros.
-init_hw_device vulkan[=name][:device[,key=value...]]
Inicializa un nuevo dispositivo de hardware de tipo vulkan llamado name, usando los parámetros de dispositivo indicados y las opciones especificadas en key=value. Se admiten las siguientes opciones:
debug
Activa las capas de validación si se establece en 1.
linear_images
Reserva imágenes lineales. No se aplica a la decodificación.
disable_multiplane
Deshabilita las imágenes multiplano. No se aplica a la decodificación.
avoid_host_import
Evita el uso de importaciones dinámicas de memoria del host, en favor de un memcpy() normal a un búfer previamente mapeado.
-filter_hw_device name
Pasa el dispositivo de hardware llamado name a todos los filtros de cualquier grafo de filtros.
Para obtener información más detallada, consulte https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Ejemplo de selección del primer dispositivo y ejecución del filtro nlmeans_vulkan con sus parámetros predeterminados en él.
-init_hw_device vulkan=vk:0 -filter_hw_device vk -i INPUT -vf "hwupload,nlmeans_vulkan,hwdownload" OUTPUT
Dado que los filtros Vulkan no pueden acceder a los datos de fotograma en memoria normal, todos los datos de fotograma deben subirse (hwupload) a superficies de hardware conectadas al dispositivo correspondiente antes de usarse, y luego descargarse (hwdownload) de vuelta a la memoria normal. Tenga en cuenta que hwupload sube los datos a una superficie con la misma disposición que el fotograma de software, por lo que puede ser necesario añadir un filtro format justo antes para llevar la entrada al formato correcto, y que hwdownload no admite todos los formatos en la salida, por lo que puede ser necesario insertar un filtro format adicional justo después en el grafo para obtener la salida en un formato compatible.
16.1 avgblur_vulkan
Aplica un filtro de desenfoque por promedio, implementado en la GPU mediante Vulkan.
El filtro acepta las siguientes opciones:
sizeX
Establece el tamaño del radio horizontal. El rango es [1, 32] y el valor predeterminado es 3.
sizeY
Establece el tamaño del radio vertical. El rango es [1, 32] y el valor predeterminado es 3.
planes
Establece qué planos filtrar. El valor predeterminado es 0xf, con el que se procesan todos los planos.
16.2 blend_vulkan
Combina dos fotogramas de Vulkan entre sí.
El filtro blend toma dos flujos de entrada y produce un único flujo de salida; la primera entrada es la capa "superior" (top) y la segunda entrada es la capa "inferior" (bottom). De forma predeterminada, la salida termina cuando finaliza la entrada más larga.
A continuación se describen las opciones aceptadas.
c0_mode c1_mode c2_mode c3_mode all_mode
Define el modo de mezcla para un componente de píxel específico, o para todos los componentes en el caso de all_mode. El valor predeterminado es normal.
Los valores disponibles para los modos de componente son:
‘normal’ ‘multiply’
16.3 bwdif_vulkan
Desentrelazador que usa bwdif, el algoritmo "Bob Weaver Deinterlacing Filter", implementado en la GPU mediante Vulkan.
Acepta los siguientes parámetros:
mode
El modo de entrelazado que se adoptará. Acepta uno de los siguientes valores:
0, send_frame
Genera un fotograma de salida por cada fotograma.
1, send_field
Genera un fotograma de salida por cada campo.
El valor predeterminado es send_field.
parity
La paridad de campo de imagen asumida para el vídeo entrelazado de entrada. Acepta uno de los siguientes valores:
0, tff
Asume que el campo superior es el primero.
1, bff
Asume que el campo inferior es el primero.
-1, auto
Activa la detección automática de la paridad de campo.
El valor predeterminado es auto. Si se desconoce el entrelazado o el decoder no exporta esta información, se asumirá que el campo superior es el primero.
deint
Especifica qué fotogramas desentrelazar. Acepta uno de los siguientes valores:
0, all
Desentrelaza todos los fotogramas.
1, interlaced
Desentrelaza únicamente los fotogramas marcados como entrelazados.
El valor predeterminado es all.
16.4 chromaber_vulkan
Aplica un efecto que emula la aberración cromática. Funciona mejor con entradas RGB, pero también ofrece un efecto similar con entradas YCbCr.
dist_x
Multiplicador de desplazamiento horizontal. La posición de cada píxel de crominancia se multiplicará por este valor, a partir del centro de la imagen. El valor predeterminado es 0.
dist_y
De forma similar, esto establece el multiplicador de desplazamiento vertical. El valor predeterminado es 0.
16.5 color_vulkan
Fuente de vídeo que crea un fotograma de Vulkan de un color sólido. Útil para pruebas de rendimiento o para superposición.
Acepta los siguientes parámetros:
color
El color que se va a usar. Puede ser un nombre o un valor hexadecimal. El valor predeterminado es black.
size
El tamaño del fotograma de salida. El valor predeterminado es 1920x1080.
rate
La velocidad de fotogramas de salida. El valor predeterminado es 60 fotogramas por segundo.
duration
La duración del vídeo. El valor predeterminado es -0.000001.
sar
La relación de aspecto de la señal de vídeo. El valor predeterminado es 1/1.
format
El pixel format de los fotogramas de Vulkan de salida. El valor predeterminado es yuv444p.
out_range
Establece el rango de muestra YCbCr de salida.
Esto permite anular el valor detectado automáticamente, además de forzar un valor específico usado para la salida y el encoder. Si no se especifica, el rango depende del pixel format. Valores posibles:
‘auto/unknown’
Selecciona automáticamente.
‘jpeg/full/pc’
Establece el rango completo (0-255 en el caso de luma de 8 bits).
‘mpeg/limited/tv’
Establece el rango "MPEG" (16-235 en el caso de luma de 8 bits).
16.6 vflip_vulkan
Voltea una imagen verticalmente.
16.7 hflip_vulkan
Voltea una imagen horizontalmente.
16.8 flip_vulkan
Voltea una imagen a lo largo de los ejes vertical y horizontal.
16.9 gblur_vulkan
Aplica el filtro de desenfoque gaussiano en fotogramas de Vulkan.
El filtro acepta las siguientes opciones:
sigma
Establece sigma horizontal, la desviación estándar del desenfoque gaussiano. El valor predeterminado es 0.5.
sigmaV
Establece sigma vertical; si es negativo, será igual a sigma. El valor predeterminado es -1.
planes
Define qué planos se filtran. De forma predeterminada se filtran todos los planos.
size
Establece el tamaño del kernel a lo largo del eje horizontal. El valor predeterminado es 19.
sizeV
Establece el tamaño del kernel a lo largo del eje vertical. El valor predeterminado es 0, que hace que se use el mismo valor que size.
16.10 nlmeans_vulkan
Elimina el ruido de los fotogramas mediante el algoritmo Non-Local Means, implementado en la GPU mediante Vulkan. Admite más pixel formats que nlmeans o nlmeans_opencl, incluida la compatibilidad con canal alfa.
El filtro acepta las siguientes opciones.
s
Define la intensidad de reducción de ruido para todos los componentes. El valor predeterminado es 1.0. Debe estar en el rango [0.0, 100.0].
p
Define el tamaño de parche para todos los planos. El valor predeterminado es 7. Debe ser un número impar en el rango [0, 99].
r
Define el tamaño de búsqueda. El valor predeterminado es 15. Debe ser un número impar en el rango [0, 99].
t
Define el paralelismo. El valor predeterminado es 8. Debe ser un número en el rango [1, 64]. Valores más altos usan más VRAM, pero no necesariamente producen mayor velocidad. El valor óptimo depende del hardware y de la entrada.
s0 s1 s2 s3
Define la intensidad de reducción de ruido para un componente específico. El valor predeterminado es 1.0, igual que s. Debe estar en el rango [0.0, 100.0]. El valor 0.0 desactiva la reducción de ruido en ese componente.
p0 p1 p2 p3
Define el tamaño de parche para un componente específico. El valor predeterminado es 7, igual que p. Debe ser un número impar en el rango [0, 99].
16.11 overlay_vulkan
Superpone un vídeo sobre otro.
Recibe dos entradas y produce una salida. La primera entrada es el vídeo "principal" sobre el que se superpone la segunda entrada. Este filtro requiere que todas las entradas usen el mismo pixel format, por lo que puede ser necesaria una conversión de formato.
El filtro acepta las siguientes opciones:
x
Define la coordenada x del vídeo superpuesto sobre el vídeo principal. El valor predeterminado es 0.
y
Define la coordenada y del vídeo superpuesto sobre el vídeo principal. El valor predeterminado es 0.
16.12 transpose_vulkan
Transpone filas y columnas en el vídeo de entrada y, opcionalmente, lo invierte. Para ejemplos más detallados, consulte el filtro de vídeo transpose, que comparte casi las mismas opciones.
Acepta los siguientes parámetros:
dir
Especifica la dirección de la transposición.
Puede tomar los siguientes valores:
‘cclock_flip’
Gira 90 grados en sentido antihorario e invierte verticalmente. (predeterminado)
‘clock’
Gira 90 grados en sentido horario.
‘cclock’
Gira 90 grados en sentido antihorario.
‘clock_flip’
Gira 90 grados en sentido horario e invierte verticalmente.
passthrough
No aplica la transposición si la geometría de entrada coincide con la especificada por el valor indicado. Acepta los siguientes valores:
‘none’
Aplica siempre la transposición. (predeterminado)
‘portrait’
Conserva la geometría de retrato (cuando la altura >= el ancho).
‘landscape’
Conserva la geometría de paisaje (cuando el ancho >= la altura).
17 Filtros de vídeo QSV
A continuación se describen los filtros de vídeo QSV actualmente disponibles.
Para habilitar la compilación de estos filtros, debe configurar FFmpeg con --enable-libmfx o --enable-libvpl.
Para usar los filtros QSV, debe configurar correctamente el dispositivo QSV. Para más información, consulte https://trac.ffmpeg.org/wiki/Hardware/QuickSync
17.1 hstack_qsv
Apila los vídeos de entrada horizontalmente.
Esta es la variante QSV del filtro hstack; cada flujo de entrada puede tener una altura distinta, y este filtro escalará hacia arriba o hacia abajo cada flujo de entrada manteniendo la relación de aspecto original.
Acepta las siguientes opciones:
inputs
Consulte hstack.
shortest
Consulte hstack.
height
Define la altura de la salida. Si se establece en 0, este filtro fijará la altura de la salida a la altura del primer flujo de entrada. El valor predeterminado es 0.
17.2 vstack_qsv
Apila los vídeos de entrada verticalmente.
Esta es la variante QSV del filtro vstack; cada flujo de entrada puede tener un ancho distinto, y este filtro escalará hacia arriba o hacia abajo cada flujo de entrada manteniendo la relación de aspecto original.
Acepta las siguientes opciones:
inputs
Consulte vstack.
shortest
Consulte vstack.
width
Define el ancho de la salida. Si se establece en 0, este filtro fijará el ancho de la salida al ancho del primer flujo de entrada. El valor predeterminado es 0.
17.3 xstack_qsv
Apila las entradas de vídeo en una disposición personalizada.
Esta es la variante QSV del filtro xstack.
Acepta las siguientes opciones:
inputs
Consulte xstack.
shortest
Consulte xstack.
layout
Consulte xstack. Además, esto permite al usuario indicar el tamaño de salida para cada flujo de entrada.
xstack_qsv=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
grid
Consulte xstack.
grid_tile_size
Define el tamaño de salida para cada flujo de entrada cuando se establece grid. Si esta opción no se establece, el filtro fijará el tamaño de salida de forma predeterminada al tamaño del primer flujo de entrada. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils) sección "Tamaño de vídeo" del manual ffmpeg-utils.
fill
Consulte xstack.
18 Fuentes de vídeo
A continuación se describen las fuentes de vídeo actualmente disponibles.
18.1 buffer
Almacena en búfer los fotogramas de vídeo y los pone a disposición de la cadena de filtros.
Esta fuente está pensada principalmente para uso programático, en particular a través de la interfaz definida en libavfilter/buffersrc.h.
Acepta los siguientes parámetros:
video_size
Especifica el tamaño (ancho y alto) de los fotogramas de vídeo almacenados en búfer. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils) sección "Tamaño de vídeo" del manual ffmpeg-utils.
width
El ancho del vídeo de entrada.
height
La altura del vídeo de entrada.
pix_fmt
Una cadena que representa el pixel format de los fotogramas de vídeo almacenados en búfer. Puede ser un número correspondiente a un pixel format, o el nombre de un pixel format.
time_base
Especifica la base de tiempo asumida por las marcas de tiempo de los fotogramas almacenados en búfer.
frame_rate
Especifica la velocidad de fotogramas esperada para el flujo de vídeo.
colorspace
Una cadena que representa el espacio de color de los fotogramas de vídeo almacenados en búfer. Puede ser un número correspondiente a un espacio de color, o el nombre de un espacio de color.
range
Una cadena que representa el rango de color de los fotogramas de vídeo almacenados en búfer. Puede ser un número correspondiente a un rango de color, o el nombre de un rango de color.
alpha_mode
Una cadena que representa el modo alfa de los fotogramas de vídeo almacenados en búfer. Puede ser un número correspondiente a un modo alfa, o el nombre de un modo alfa.
pixel_aspect, sar
La relación de aspecto de muestra (píxel) del vídeo de entrada.
hw_frames_ctx
Cuando se usa un pixel format de hardware, esto debe ser una referencia a un AVHWFramesContext que describa los fotogramas de entrada.
Por ejemplo:
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
indicará a la fuente que acepte fotogramas de vídeo con tamaño 320x240 y formato "yuv410p", asumiendo 1/24 como base de tiempo de las marcas de tiempo y píxeles cuadrados (relación de aspecto de muestra 1:1). Dado que el pixel format con nombre "yuv410p" corresponde al número 6 (consulte la definición del enum AVPixelFormat en libavutil/pixfmt.h), este ejemplo equivale a:
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
Como alternativa, las opciones pueden especificarse como una cadena plana, pero esta sintaxis está obsoleta:
width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
18.2 cellauto
Crea un patrón generado por un autómata celular elemental.
El estado inicial del autómata celular puede definirse mediante las opciones filename y pattern. Si no se especifican dichas opciones, se crea un estado inicial de forma aleatoria.
En cada nuevo fotograma se rellena una nueva fila del vídeo con el resultado de la siguiente generación del autómata celular. El comportamiento cuando se ha rellenado todo el fotograma se define mediante la opción scroll.
Esta fuente acepta las siguientes opciones:
filename, f
Lee el estado inicial del autómata celular, es decir, la fila de partida, del archivo especificado. En el archivo, cada carácter que no sea un espacio en blanco se considera una célula viva, un salto de línea termina la fila, y los caracteres restantes del archivo se ignoran.
pattern, p
Lee el estado inicial del autómata celular, es decir, la fila de partida, de la cadena especificada.
Cada carácter que no sea un espacio en blanco en la cadena se considera una célula viva, un salto de línea termina la fila, y los caracteres restantes de la cadena se ignoran.
rate, r
Define la tasa de vídeo, es decir, el número de fotogramas generados por segundo. El valor predeterminado es 25.
random_fill_ratio, ratio
Define la proporción de relleno aleatorio para la fila inicial del autómata celular. Es un valor numérico de coma flotante que va de 0 a 1; el valor predeterminado es 1/PHI.
Esta opción se ignora cuando se especifica un archivo o un patrón.
random_seed, seed
Define la semilla para rellenar aleatoriamente la fila inicial; debe ser un entero comprendido entre 0 y UINT32_MAX. Si no se especifica, o si se establece explícitamente en -1, el filtro intentará usar una buena semilla aleatoria de la mejor manera posible.
rule
Define la regla del autómata celular; es un número que va de 0 a 255. El valor predeterminado es 110.
size, s
Define el tamaño del vídeo de salida. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils) sección "Tamaño de vídeo" del manual ffmpeg-utils.
Si se especifica filename o pattern, el tamaño se establece de forma predeterminada al ancho de la fila del estado inicial especificado, y la altura se establece en ancho * PHI.
Si se establece size, debe contener el ancho de la cadena de patrón especificada, y el patrón especificado se centrará en la fila más grande.
Si no se especifica un archivo o una cadena de patrón, el valor de size se establece de forma predeterminada en "320x518" (usado para un estado inicial generado aleatoriamente).
scroll
Si se establece en 1, desplaza la salida hacia arriba cuando ya se han rellenado todas las filas de la salida. Si se establece en 0, la nueva fila generada se escribirá sobre la fila superior justo después de rellenar la fila inferior. El valor predeterminado es 1.
start_full, full
Si se establece en 1, rellena completamente la salida con filas generadas antes de producir el primer fotograma. Este es el comportamiento predeterminado; para desactivarlo, establezca el valor en 0.
stitch
Si se establece en 1, une los bordes izquierdo y derecho de la fila. Este es el comportamiento predeterminado; para desactivarlo, establezca el valor en 0.
18.2.1 Ejemplos
-
Lee el estado inicial desde pattern y especifica una salida de tamaño 200x400.
cellauto=f=pattern:s=200x400 -
Genera una fila inicial aleatoria con un ancho de 200 celdas, con una proporción de relleno de 2/3:
cellauto=ratio=2/3:s=200x200 -
Crea un patrón generado por la regla 18, comenzando con una única célula viva centrada en una fila inicial de ancho 100:
cellauto=p=@:s=100x400:full=0:rule=18 -
Especifica un patrón inicial más elaborado:
cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
18.3 coreimagesrc
Fuente de vídeo generada en la GPU mediante la API CoreImage de Apple en OSX.
Esta fuente de vídeo es una versión especializada del filtro de vídeo coreimage. Use un generador core image al comienzo de la cadena de filtros aplicada para generar el contenido.
La fuente de vídeo coreimagesrc acepta las siguientes opciones:
list_generators
Enumera todos los generadores disponibles junto con todas sus respectivas opciones, así como los posibles valores mínimo y máximo junto con los valores predeterminados.
list_generators=true
size, s
Especifica el tamaño del vídeo generado. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils) sección "Tamaño de vídeo" del manual ffmpeg-utils. El valor predeterminado es 320x240.
rate, r
Especifica la velocidad de fotogramas del vídeo generado, como el número de fotogramas generados por segundo. Debe ser una cadena con el formato frame_rate_num/frame_rate_den, un número entero, un número de coma flotante o una abreviatura válida de velocidad de fotogramas de vídeo. El valor predeterminado es "25".
sar
Define la relación de aspecto de muestra del vídeo generado.
duration, d
Define la duración del vídeo generado. Consulte la (ffmpeg-utils) sección "Duración de tiempo" del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
Si no se especifica, o si la duración expresada es negativa, se asume que el vídeo se genera indefinidamente.
Además, se aceptan todas las opciones del filtro de vídeo coreimage. Puede usarse una cadena de filtros completa para procesar posteriormente la entrada generada sin transferencia CPU-HOST. Consulte la documentación y los ejemplos de coreimage para más detalles.
18.3.1 Ejemplos
- Use CIQRCodeGenerator para crear un código QR de la página de inicio de FFmpeg, expresado como línea de comandos completa y con los caracteres escapados para el shell bash estándar de Apple:
ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
Este ejemplo equivale al ejemplo QRCode de coreimage sin necesidad de una fuente de vídeo nullsrc.
18.4 ddagrab
Captura el escritorio de Windows mediante la API Desktop Duplication.
El filtro devuelve exclusivamente D3D11 Hardware Frames, para codificación o procesamiento en la GPU. Por ello, se necesita un hwdownload explícito para cualquier tipo de procesamiento por software.
Acepta las siguientes opciones:
output_idx
Índice de salida DXGI a capturar.
Normalmente corresponde al índice que Windows ha asignado a la pantalla menos uno, por lo que empieza en 0.
El valor predeterminado es la salida 0.
draw_mouse
Indica si se dibuja el cursor del ratón.
El valor predeterminado es true.
Solo afecta a los cursores por hardware. Si un juego o una aplicación dibuja su propio cursor, este siempre se capturará.
framerate
Velocidad de fotogramas máxima a la que se capturará el escritorio; el intervalo entre fotogramas sucesivos no será menor que el inverso de la velocidad de fotogramas. Cuando dup_frames es true (el valor predeterminado) y el escritorio no se actualiza con la frecuencia suficiente, el filtro duplicará un fotograma anterior. Tenga en cuenta que no existe ningún almacenamiento en segundo plano, por lo que si el filtro no se sondea con la frecuencia suficiente, el intervalo real entre fotogramas puede ser considerablemente mayor.
El valor predeterminado es 30 FPS.
video_size
Especifica el tamaño del vídeo capturado.
El valor predeterminado es el tamaño completo de la pantalla.
Se recorta desde abajo/derecha si es menor que el tamaño de la pantalla.
offset_x
Desplazamiento horizontal del vídeo capturado.
offset_y
Desplazamiento vertical del vídeo capturado.
output_fmt
Formato de salida deseado del filtro. El valor predeterminado es 8 Bit BGRA.
Acepta los siguientes valores:
‘auto’
Pasa a DDA todos los formatos de salida admitidos y devuelve el que DDA decida usar.
‘8bit’ ‘bgra’
Los formatos de 8 bits siempre funcionan, y DDA convertirá a ellos si es necesario.
‘10bit’ ‘x2bgr10’
La inicialización del filtro fallará si se solicita el formato de 10 bits pero no está disponible.
dup_frames
Cuando esta opción se establece en true (el valor predeterminado), el filtro duplicará fotogramas cuando el escritorio no se haya actualizado, con el fin de mantener una velocidad de fotogramas objetivo aproximadamente constante. Cuando se establece en false, el filtro esperará a que el escritorio se actualice (en este caso, los intervalos entre fotogramas pueden variar de forma considerable).
18.4.1 Ejemplos
Captura la pantalla principal y codifica usando nvenc:
ffmpeg -f lavfi -i ddagrab -c:v h264_nvenc -cq 18 output.mp4
También puede omitir el dispositivo lavfi y usar el filtro directamente. Esto también muestra cómo descargar el fotograma y codificar con libx264. En este caso se requiere especificar explícitamente el formato de salida:
ffmpeg -filter_complex ddagrab=output_idx=1:framerate=60,hwdownload,format=bgra -c:v libx264 -crf 18 output.mp4
Si desea capturar solo una subsección del escritorio, esto puede lograrse especificando un tamaño menor y sus desplazamientos dentro de la pantalla:
ddagrab=video_size=800x600:offset_x=100:offset_y=100
18.5 gfxcapture
Captura ventanas o monitores mediante la API Windows.Graphics.Capture.
Esta fuente ofrece una captura de baja sobrecarga de ventanas de aplicación o de monitores completos. El filtro produce fotogramas de hardware en formato d3d11; use hwdownload,format= si se requieren fotogramas en memoria del sistema.
La ventana a capturar puede seleccionarse mediante expresiones regulares sobre su título, nombre de clase o nombre del ejecutable subyacente, mediante identificadores nativos explícitos, o mediante el índice de monitor o un identificador nativo explícito. Una ventana debe coincidir con todas las expresiones indicadas para ser seleccionada. Se elegirá la primera ventana coincidente, en el orden en que Windows las devuelva.
Los identificadores explícitos (hwnd, hmonitor) tienen prioridad sobre la selección basada en patrones o índices. Si no se proporcionan ni identificadores ni un índice de monitor, se captura la primera ventana que coincida con las expresiones regulares proporcionadas.
Esta fuente NO mantiene una velocidad de fotogramas estable. Devuelve los fotogramas a la velocidad que el compositor los proporcione, limitada únicamente por max_framerate. Si necesita una velocidad estable, debe añadir un filtro fps para descartar o duplicar fotogramas según sea necesario.
Si la fuente de captura desaparece durante la captura (se cierra la ventana, se desconecta el monitor), el filtro devolverá EOF.
Esta fuente acepta las siguientes opciones:
window_title
Expresión regular ECMAScript comparada con el título de la ventana. Admite un prefijo estilo PCRE (?i) para coincidencia sin distinción de mayúsculas y minúsculas.
window_class
Igual que window_title, pero comparado con el nombre de clase de la ventana.
window_exe
Igual que window_title, pero comparado con el nombre del archivo ejecutable del proceso de la ventana.
monitor_idx
Índice del monitor a capturar, comenzando desde 0.
También puede establecerse en window para capturar el monitor en el que se muestra la ventana seleccionada en el momento de inicializar el filtro.
hwnd
Identificador nativo explícito de la ventana (HWND).
hmonitor
Identificador nativo explícito del monitor (HMONITOR).
capture_cursor
Captura el cursor del ratón. Habilitado de forma predeterminada.
capture_border
Captura el área completa de la ventana, incluidas sus decoraciones o bordes. Deshabilitado de forma predeterminada.
display_border
Dibuja un borde de resalte amarillo alrededor de la ventana capturada. Deshabilitado de forma predeterminada.
max_framerate
Velocidad de fotogramas máxima de captura. Acepta una tasa de vídeo (por ejemplo, 30, 60/1, 24000/1001). El valor predeterminado es 60 FPS. La velocidad real es aquella a la que el compositor renderiza la ventana o el monitor, limitada por esta opción.
width
Fuerza el ancho del lienzo de salida. Si es cero (predeterminado), se usa el ancho inicial de la fuente capturada. Si se proporciona un número negativo, el ancho se redondeará hacia abajo al siguiente múltiplo de ese número.
Consulte resize_mode.
height
Fuerza la altura del lienzo de salida. Si es cero (predeterminado), se usa la altura inicial de la fuente capturada. Si se proporciona un número negativo, la altura se redondeará hacia abajo al siguiente múltiplo de ese número.
Consulte resize_mode.
crop_left
Recorta esta cantidad de píxeles del lado izquierdo de los fotogramas capturados.
crop_top
Recorta esta cantidad de píxeles del lado izquierdo de los fotogramas capturados.
crop_right
Recorta esta cantidad de píxeles del lado izquierdo de los fotogramas capturados.
crop_bottom
Recorta esta cantidad de píxeles del lado izquierdo de los fotogramas capturados.
premultiplied
Si se establece en 1, devuelve fotogramas con alfa premultiplicado. El valor predeterminado es 0 (alfa directo).
resize_mode
Define cómo se ajusta el contenido capturado al tamaño del lienzo de salida. Valores posibles:
‘crop’
Recorta (o rellena con negro) hasta el tamaño del lienzo. (predeterminado)
‘scale’
Escala la fuente para llenar el lienzo, lo que puede alterar la relación de aspecto.
‘scale_aspect’
Escala la fuente para que quepa dentro del lienzo conservando la relación de aspecto. El área restante se rellena con negro.
scale_mode
Algoritmo de escalado usado cuando se requiere redimensionar.
Valores posibles:
‘point’
Escalado por vecino más próximo (pixelado).
‘bilinear’
Filtrado bilineal. (predeterminado)
‘bicubic’
Filtrado bicúbico. Puede resultar más difuminado, pero con menos artefactos de escalado según el contenido.
output_fmt
Pixel format de salida deseado dentro de los fotogramas de hardware D3D11.
Valores posibles:
‘bgra’ ‘8bit’
Salida BGRA de 8 bits (predeterminado)
‘x2bgr10’ ‘10bit’
Salida BGR de 10 bits
‘rgbaf16’ ‘16bit’
Salida RGBA de coma flotante de 16 bits
18.5.1 Ejemplos
-
Captura una ventana por título (sin distinguir mayúsculas y minúsculas) a un máximo de 60 fps:
ffmpeg -filter_complex gfxcapture=window_title='(?i)My Application':max_framerate=60,hwdownload,format=bgra,format=yuv420p -c:v libx264 -crf 15 capture.mp4 -
Captura el monitor 1 a su frecuencia de actualización nativa, profundidad de color de 10 bits, escalado a 1920x1080 conservando la relación de aspecto:
ffmpeg -filter_complex gfxcapture=monitor_idx=1:width=1920:height=1080:resize_mode=scale_aspect:output_fmt=10bit -c:v hevc_nvenc -cq 15 capture.mp4 -
Captura una ventana por nombre de ejecutable, dibuja el borde, fuerza el escalado por punto, con 60 fps fijos:
ffmpeg -filter_complex gfxcapture=window_exe='^firefox.exe$':display_border=1:scale_mode=point,fps=60 -rc qvbr -qvbr_quality_level 15 -c:v h264_amf capture.mp4
18.6 gradients
Genera varios degradados.
size, s
Define el tamaño del fotograma. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils) sección "Tamaño de vídeo" del manual ffmpeg-utils. El valor predeterminado es "640x480".
rate, r
Define la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
c0, c1, c2, c3, c4, c5, c6, c7
Define 8 colores. Los valores predeterminados de los colores consisten en elegir uno aleatorio.
x0, y0, y0, y1
Define los puntos de origen y destino de la línea del degradado. Si son negativos o están fuera de rango, se eligen puntos aleatorios.
nb_colors, n
Define el número de colores a usar a la vez. El rango permitido va de 2 a 8. El valor predeterminado es 2.
seed
Define la semilla para elegir los puntos de la línea del degradado.
duration, d
Define la duración del vídeo generado. Consulte la (ffmpeg-utils) sección "Duración de tiempo" del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
Si no se especifica, o si la duración expresada es negativa, se asume que el vídeo se genera indefinidamente.
speed
Define la velocidad de rotación de los degradados.
type, t
Define el tipo de degradados. Los valores disponibles son:
‘linear’ ‘radial’ ‘circular’ ‘spiral’ ‘square’
El tipo predeterminado es linear.
18.6.1 Comandos
Esta fuente admite algunas de las opciones anteriores como comandos.
18.7 mandelbrot
Genera un fractal del conjunto de Mandelbrot y hace zoom progresivamente hacia el punto especificado mediante start_x y start_y.
Esta fuente acepta las siguientes opciones:
end_pts
Define el valor final de pts. El valor predeterminado es 400.
end_scale
Define el valor final de escala. Debe ser un valor de coma flotante. El valor predeterminado es 0.3.
inner
Define el modo de coloreado interior, es decir, el algoritmo usado para dibujar la región interna del fractal de Mandelbrot.
Debe tomar uno de los siguientes valores:
black
Define el modo negro.
convergence
Muestra el tiempo hasta la convergencia.
mincol
Define el color según el punto más cercano al origen de las iteraciones.
period
Define el modo de periodo.
El valor predeterminado es mincol.
bailout
Define el valor de bailout. El valor predeterminado es 10.0.
maxiter
Define el máximo de iteraciones realizadas por el algoritmo de renderizado. El valor predeterminado es 7189.
outer
Define el modo de coloreado exterior. Debe tomar uno de los siguientes valores:
iteration_count
Define el modo de recuento de iteraciones.
normalized_iteration_count
Define el modo de recuento de iteraciones normalizado.
El valor predeterminado es normalized_iteration_count.
rate, r
Define la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
size, s
Define el tamaño del fotograma. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils) sección "Tamaño de vídeo" del manual ffmpeg-utils. El valor predeterminado es "640x480".
start_scale
Define el valor de escala inicial. El valor predeterminado es 3.0.
start_x
Define la posición x inicial. Debe ser un valor de coma flotante entre -100 y 100. El valor predeterminado es -0.743643887037158704752191506114774.
start_y
Define la posición y inicial. Debe ser un valor de coma flotante entre -100 y 100. El valor predeterminado es -0.131825904205311970493132056385139.
18.8 mptestsrc
Genera varios patrones de prueba, tal como los produce el filtro de prueba de MPlayer.
El tamaño del vídeo generado es fijo y es de 512x512. Esta fuente resulta útil, en particular, para probar funciones de codificación.
Esta fuente acepta las siguientes opciones:
rate, r
Especifica la velocidad de fotogramas del vídeo generado, como el número de fotogramas generados por segundo. Debe ser una cadena con el formato frame_rate_num/frame_rate_den, un número entero, un número de coma flotante o una abreviatura válida de velocidad de fotogramas de vídeo. El valor predeterminado es "25".
duration, d
Define la duración del vídeo generado. Consulte la (ffmpeg-utils) sección "Duración de tiempo" del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
Si no se especifica, o si la duración expresada es negativa, se asume que el vídeo se genera indefinidamente.
test, t
Define el número o el nombre de la prueba a realizar. Las pruebas admitidas son:
dc_luma dc_chroma freq_luma freq_chroma amp_luma amp_chroma cbp mv ring1 ring2 all max_frames, m
Define el número máximo de fotogramas generados para cada prueba; el valor predeterminado es 30.
El valor predeterminado es "all", que recorrerá cíclicamente la lista de todas las pruebas.
Algunos ejemplos:
mptestsrc=t=dc_luma
generará un patrón de prueba "dc_luma".
18.9 frei0r_src
Proporciona una fuente frei0r.
Para habilitar la compilación de este filtro es necesario instalar la cabecera de frei0r y configurar FFmpeg con --enable-frei0r.
Esta fuente admite los siguientes parámetros:
size
El tamaño del vídeo que se va a generar. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1).
framerate
La velocidad de fotogramas del vídeo generado. Puede ser una cadena con la forma num/den o una abreviatura de velocidad de fotogramas.
filter_name
El nombre de la fuente frei0r que se va a cargar. Para más información sobre frei0r y cómo establecer los parámetros, consulte la sección frei0r de la documentación de filtros de vídeo.
filter_params
Una lista de parámetros separados por ’|’ que se pasan a la fuente frei0r.
Por ejemplo, para generar una fuente frei0r partik0l con tamaño 200x200 y una velocidad de fotogramas de 10, superpuesta a la entrada principal del filtro overlay:
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
18.10 life
Genera un patrón de vida.
Esta fuente se basa en una generalización del juego de la vida de John Conway.
La entrada generada por la fuente representa una cuadrícula de vida: cada píxel representa una célula que puede estar en uno de dos estados posibles, viva o muerta. Cada célula interactúa con sus ocho vecinas, que son las células adyacentes en horizontal, vertical o diagonal.
En cada interacción, la cuadrícula evoluciona según la regla adoptada, que especifica el número de células vecinas vivas que hará que una célula permanezca viva o nazca. La opción rule permite especificar la regla que se va a adoptar.
Esta fuente admite las siguientes opciones:
filename, f
Establece el archivo del que se leerá el estado inicial de la cuadrícula. En el archivo, cada carácter que no sea un espacio en blanco se considera una célula viva, y el salto de línea se usa para delimitar el final de cada fila.
Si esta opción no se especifica, la cuadrícula inicial se genera de forma aleatoria.
rate, r
Establece la velocidad de vídeo, es decir, el número de fotogramas generados por segundo. El valor predeterminado es 25.
random_fill_ratio, ratio
Establece la proporción de relleno aleatorio para la cuadrícula aleatoria inicial. Es un valor en coma flotante comprendido entre 0 y 1, y su valor predeterminado es 1/PHI. Se ignora cuando se especifica un archivo.
random_seed, seed
Establece la semilla para rellenar la cuadrícula aleatoria inicial; debe ser un entero comprendido entre 0 y UINT32_MAX. Si no se especifica, o si se establece explícitamente en -1, el filtro intentará usar una buena semilla aleatoria dentro de lo posible.
rule
Establece la regla de vida.
Se puede especificar una regla con un código del tipo "SNS/BNB", donde NS y NB son secuencias de números en el intervalo 0-8: NS especifica el número de células vecinas vivas que hará que una célula viva permanezca viva, y NB el número de células vecinas vivas que hará que una célula muerta pase a estar viva (es decir, que "nazca"). Se pueden usar "s" y "b" en lugar de "S" y "B", respectivamente.
Como alternativa, una regla puede especificarse mediante un entero de 18 bits. Los 9 bits de mayor orden se usan para codificar el siguiente estado de la célula si está viva, para cada número de células vecinas vivas; los bits de menor orden especifican la regla para "hacer nacer" nuevas células. Los bits de mayor orden codifican los números más altos de células vecinas. Por ejemplo, el número 6153 = (12<<9)+9 especifica una regla de permanencia viva de 12 y una regla de nacimiento de 9, lo que corresponde a "S23/B03".
El valor predeterminado es "S23/B3", que es la regla original del juego de la vida de Conway, y mantiene viva una célula si tiene 2 o 3 células vecinas vivas, y hace nacer una nueva célula si hay tres células vivas alrededor de una célula muerta.
size, s
Establece el tamaño del vídeo de salida. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1).
Si se especifica filename, el tamaño se establece de forma predeterminada al mismo tamaño del archivo de entrada. Si se establece size, debe contener el tamaño especificado en el archivo de entrada, y la cuadrícula inicial definida en ese archivo se centra en el área resultante, de mayor tamaño.
Si no se especifica filename, el valor de size es "320x240" de forma predeterminada (usado para una cuadrícula inicial generada de forma aleatoria).
stitch
Si se establece en 1, une los bordes izquierdo y derecho de la cuadrícula, y también los bordes superior e inferior. El valor predeterminado es 1.
mold
Establece la velocidad de moho de las células. Si se establece, una célula muerta pasará de death_color a mold_color con un incremento de mold. mold puede tener un valor de 0 a 255.
life_color
Establece el color de las células vivas (o recién nacidas).
death_color
Establece el color de las células muertas. Si se establece mold, este es el primer color usado para representar una célula muerta.
mold_color
Establece el color de moho, para las células definitivamente muertas y enmohecidas.
Para conocer la sintaxis de estas 3 opciones de color, consulte la (ffmpeg-utils)sección Color del manual ffmpeg-utils(1).
18.10.1 Ejemplos
-
Lee una cuadrícula de pattern y la centra en una cuadrícula de tamaño 300x300 píxeles:
life=f=pattern:s=300x300 -
Genera una cuadrícula aleatoria de tamaño 200x200, con una proporción de relleno de 2/3:
life=ratio=2/3:s=200x200 -
Especifica una regla personalizada para hacer evolucionar una cuadrícula generada aleatoriamente:
life=rule=S14/B34 -
Ejemplo completo con efecto de muerte lenta (mold) usando
ffplay:ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
18.11 perlin
Genera ruido Perlin.
El ruido Perlin es un tipo de ruido con continuidad local en el espacio. Puede usarse para generar patrones con continuidad en el espacio y el tiempo, p. ej. para simular humo, fluidos o terreno.
Si se especifica más de una octava mediante la opción octaves, el ruido Perlin se genera como una suma de componentes, cada uno con el doble de frecuencia que el anterior. En este caso, la opción persistence especifica la relación de amplitud respecto al componente anterior. Cuantos más componentes de octava haya, más detalles de alta frecuencia podrán especificarse en el ruido generado (p. ej. pequeñas variaciones de tamaño debidas a rocas en un terreno generado).
18.11.1 Opciones
size, s
Especifica el tamaño (ancho y alto) de los fotogramas de vídeo almacenados en el búfer. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es 320x240.
rate, r
Especifica la velocidad de fotogramas esperada para el flujo de vídeo, expresada como un número de fotogramas por segundo. El valor predeterminado es 25.
octaves
Especifica el número total de componentes que forman el ruido, cada uno con el doble de frecuencia que el anterior. El valor predeterminado es 1.
persistence
Establece la relación usada para calcular la amplitud del siguiente componente de octava respecto a la amplitud del componente anterior. El valor predeterminado es 1.
xscale yscale
Define un factor de escala usado para multiplicar las coordenadas x e y. Puede ser útil para definir un efecto con un patrón estirado a lo largo del eje x o del eje y. El valor predeterminado es 1.
tscale
Define un factor de escala usado para multiplicar la coordenada temporal. Puede ser útil para cambiar la velocidad de variación temporal. El valor predeterminado es 1.
random_mode
Establece el modo aleatorio usado para calcular el patrón inicial.
Los valores admitidos son:
random
Calcula y usa una semilla aleatoria.
ken
Usa el patrón inicial predefinido por Ken Perlin en el artículo original; puede ser útil para comparar la salida con otras fuentes.
seed
Usa el valor especificado por la opción random_seed.
El valor predeterminado es random.
random_seed, seed
Cuando random_mode se establece en random_seed, se usa este valor para calcular el patrón inicial. El valor predeterminado es 0.
18.11.2 Ejemplos
-
Genera un único componente:
perlin -
Usa ruido Perlin con 7 componentes, cada uno con una contribución a la amplitud total reducida a la mitad:
perlin=octaves=7:persistence=0.5 -
Encadena el ruido Perlin con lutyuv para generar un efecto en blanco y negro:
perlin=octaves=3:tscale=0.3,lutyuv=y='if(lt(val\,128)\,255\,0)' -
Estira el ruido a lo largo del eje y, y convierte el nivel de gris en una señal solo de rojo:
perlin=octaves=7:tscale=0.4:yscale=0.3,lutrgb=r=val:b=0:g=0
18.12 qrencodesrc
Genera un código QR usando la biblioteca libqrencode (véase https://fukuchi.org/works/qrencode/).
Para habilitar la compilación de esta fuente es necesario configurar FFmpeg con --enable-libqrencode.
El código QR se genera a partir del texto o patrón de texto proporcionado. El código QR correspondiente se escala y se coloca en la salida de vídeo según las opciones de tamaño de salida especificadas.
Si no se especifica ningún texto, el código QR no se genera, y en su lugar se devuelve una salida coloreada vacía.
Esta fuente admite las siguientes opciones:
qrcode_width, q padded_qrcode_width, Q
Especifica una expresión para el ancho del código QR renderizado, con y sin relleno (padding). La expresión qrcode_width puede referenciar el valor establecido por la expresión padded_qrcode_width, y viceversa. De forma predeterminada, padded_qrcode_width se establece igual a qrcode_width, lo que significa que no hay relleno.
Estas expresiones se evalúan una sola vez, al inicializar la fuente. Véase la sección Expressions de qrencode para más detalles.
Tenga en cuenta que algunas de las constantes no están disponibles para la fuente (por ejemplo, x, t o ¸n), ya que solo tienen sentido al evaluar la expresión en cada fotograma, y no en el momento de la inicialización.
rate, r
Especifica la velocidad de fotogramas del vídeo generado por la fuente, como el número de fotogramas generados por segundo. Debe ser una cadena con el formato frame_rate_num/frame_rate_den, un número entero, un número en coma flotante o una abreviatura válida de velocidad de fotogramas. El valor predeterminado es "25".
case_sensitive, cs
Indica a libqrencode que use una codificación sensible a mayúsculas y minúsculas. Esto está habilitado de forma predeterminada. Puede deshabilitarse para reducir el tamaño de la codificación QR.
level, l
Especifica el nivel de corrección de errores de la codificación QR. Con un nivel de corrección más alto, el tamaño de la codificación aumentará, pero el código será más resistente a la corrupción. El nivel más bajo es L.
Admite los siguientes valores:
‘L’ ‘M’ ‘Q’ ‘H’ expansion
Selecciona cómo se expande el texto de entrada. Puede ser none o normal (valor predeterminado). Véase la sección Text expansion de qrencode para más detalles.
text textfile
Define el texto que se va a renderizar. Si no se especifica ninguno de los dos, no se codifica ningún QR (solo un fotograma coloreado vacío).
Si expansion está habilitada, el texto se trata como una plantilla de texto, usando el mecanismo de expansión de qrencode. Véase la sección Text expansion de qrencode para más detalles.
background_color, bc foreground_color, fc
Establece el color del código QR y el color de fondo. El valor predeterminado de foreground_color es "black", y el valor predeterminado de background_color es "white".
Para conocer la sintaxis de las opciones de color, consulte la (ffmpeg-utils)sección Color del manual ffmpeg-utils(1).
18.12.1 Ejemplos
-
Genera un código QR que codifica el texto especificado con el tamaño predeterminado:
qrencodesrc=text=www.ffmpeg.org -
Igual que el de abajo, pero seleccionando los colores azul sobre rosa:
qrencodesrc=text=www.ffmpeg.org:bc=pink:fc=blue -
Genera un código QR con un ancho de 200 píxeles y relleno, haciendo que el ancho con relleno sea 4/3 del ancho del código QR:
qrencodesrc=text=www.ffmpeg.org:q=200:Q=4/3*q -
Genera un código QR con un ancho con relleno de 200 píxeles y relleno, haciendo que el ancho del código QR sea 3/4 del ancho con relleno:
qrencodesrc=text=www.ffmpeg.org:Q=200:q=3/4*Q -
Genera un código QR que codifica el número de fotograma:
qrencodesrc=text=%{n} -
Genera un código QR que codifica la marca de tiempo GMT:
qrencodesrc=text=%{gmtime} -
Genera un código QR que codifica la marca de tiempo expresada como un valor en coma flotante:
qrencodesrc=text=%{pts}
18.13 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc
La fuente allrgb devuelve fotogramas de tamaño 4096x4096 con todos los colores rgb.
La fuente allyuv devuelve fotogramas de tamaño 4096x4096 con todos los colores yuv.
La fuente color proporciona una entrada de color uniforme.
La fuente colorchart proporciona una carta de referencia de colores.
La fuente colorspectrum proporciona una entrada de espectro de color.
La fuente haldclutsrc proporciona una CLUT Hald de identidad. Véase también el filtro haldclut.
La fuente nullsrc devuelve fotogramas de vídeo sin procesar. Resulta útil principalmente para su empleo en herramientas de análisis o depuración, o como fuente para filtros que ignoran los datos de entrada.
La fuente pal75bars genera un patrón de barras de color, basado en las recomendaciones PAL de la EBU con niveles de color del 75%.
La fuente pal100bars genera un patrón de barras de color, basado en las recomendaciones PAL de la EBU con niveles de color del 100%.
La fuente rgbtestsrc genera un patrón de prueba RGB útil para detectar problemas de RGB frente a BGR. Deberían verse una franja roja, una verde y una azul de arriba a abajo.
La fuente smptebars genera un patrón de barras de color, basado en la guía técnica SMPTE EG 1-1990.
La fuente smptehdbars genera un patrón de barras de color, basado en la norma SMPTE RP 219-2002.
La fuente testsrc genera un patrón de vídeo de prueba que muestra un patrón de color, un degradado en movimiento y una marca de tiempo. Está pensada principalmente para fines de prueba.
La fuente testsrc2 es similar a testsrc, pero admite más pixel formats además de rgb24. Esto permite usarla como entrada para otras pruebas sin necesidad de una conversión de formato.
La fuente yuvtestsrc genera un patrón de prueba YUV. Deberían verse una franja de y, una de cb y una de cr de arriba a abajo.
Las fuentes admiten los siguientes parámetros:
level
Especifica el nivel de la CLUT Hald, disponible solo en la fuente haldclutsrc. Un nivel de N genera una imagen de N*N*N por N*N*N píxeles que se usa como matriz identidad para tablas de búsqueda 3D. Cada componente se codifica en una escala de 1/(N*N).
color, c
Especifica el color de la fuente, disponible solo en la fuente color. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Color del manual ffmpeg-utils(1).
size, s
Especifica el tamaño del vídeo generado por la fuente. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es 320x240.
Esta opción no está disponible con los filtros allrgb, allyuv y haldclutsrc.
rate, r
Especifica la velocidad de fotogramas del vídeo generado por la fuente, como el número de fotogramas generados por segundo. Debe ser una cadena con el formato frame_rate_num/frame_rate_den, un número entero, un número en coma flotante o una abreviatura válida de velocidad de fotogramas. El valor predeterminado es "25".
duration, d
Establece la duración del vídeo generado por la fuente. Véase la (ffmpeg-utils)sección Time duration del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
Si no se especifica, o si la duración expresada es negativa, se entiende que el vídeo se genera indefinidamente.
Dado que la velocidad de fotogramas se usa como base de tiempo, todos los fotogramas, incluido el último, tendrán su duración completa. Si la duración especificada no es un múltiplo de la duración del fotograma, se redondeará hacia arriba.
sar
Establece la relación de aspecto de muestreo del vídeo generado por la fuente.
alpha
Especifica el alfa (opacidad) del fondo, disponible solo en la fuente testsrc2. El valor debe estar entre 0 (totalmente transparente) y 255 (totalmente opaco, el valor predeterminado).
decimals, n
Establece el número de decimales que se mostrarán en la marca de tiempo, disponible solo en la fuente testsrc.
El valor de marca de tiempo mostrado se corresponderá con el valor de marca de tiempo original multiplicado por la potencia de 10 del valor especificado. El valor predeterminado es 0.
type
Establece el tipo de espectro de color, disponible solo en la fuente colorspectrum. Puede ser uno de los siguientes:
‘black’ ‘white’ ‘all’ patch_size
Establece el tamaño de cada parche de color individual, disponible solo en la fuente colorchart. El valor predeterminado es 64x64.
preset
Establece el preajuste de colores del colorchecker, disponible solo en la fuente colorchart.
Los valores disponibles son:
‘reference’ ‘skintones’
El valor predeterminado es reference.
18.13.1 Ejemplos
-
Genera un vídeo con una duración de 5.3 segundos, con tamaño 176x144 y una velocidad de fotogramas de 10 fotogramas por segundo:
testsrc=duration=5.3:size=qcif:rate=10 -
La siguiente descripción de grafo generará una fuente roja con una opacidad de 0.2, con tamaño "qcif" y una velocidad de fotogramas de 10 fotogramas por segundo:
color=c=red@0.2:s=qcif:r=10 -
Si el contenido de entrada debe ignorarse, puede usarse
nullsrc. La siguiente orden genera ruido en el plano de luma empleando el filtrogeq:nullsrc=s=256x256, geq=random(1)*255:128:128
18.13.2 Comandos
La fuente color admite los siguientes comandos:
c, color
Establece el color de la imagen creada. Admite la misma sintaxis que la opción de color correspondiente.
18.14 openclsrc
Genera vídeo usando un programa OpenCL.
source
Archivo fuente del programa OpenCL.
kernel
Nombre del kernel en el programa.
size, s
Tamaño de los fotogramas que se van a generar. Debe establecerse obligatoriamente.
format
Pixel format que se usará para los fotogramas generados. Debe establecerse obligatoriamente.
rate, r
Número de fotogramas generados cada segundo. El valor predeterminado es ’25’.
Para más detalles sobre cómo funciona la carga del programa, véase el filtro program_opencl.
Programas de ejemplo:
-
Genera una rampa de color estableciendo los valores de píxel a partir de la posición del píxel en la imagen de salida. (Tenga en cuenta que esto funcionará con todos los pixel formats, pero la salida generada no será la misma.)
__kernel void ramp(__write_only image2d_t dst, unsigned int index) { int2 loc = (int2)(get_global_id(0), get_global_id(1)); float4 val; val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst)); write_imagef(dst, loc, val); } -
Genera un patrón de alfombra de Sierpinski, desplazándose un único píxel en cada fotograma.
__kernel void sierpinski_carpet(__write_only image2d_t dst, unsigned int index) { int2 loc = (int2)(get_global_id(0), get_global_id(1)); float4 value = 0.0f; int x = loc.x + index; int y = loc.y + index; while (x > 0 || y > 0) { if (x % 3 == 1 && y % 3 == 1) { value = 1.0f; break; } x /= 3; y /= 3; } write_imagef(dst, loc, value); }
18.15 sierpinski
Genera un fractal de alfombra o triángulo de Sierpinski, y se desplaza aleatoriamente por la imagen.
Esta fuente admite las siguientes opciones:
size, s
Establece el tamaño del fotograma. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es "640x480".
rate, r
Establece la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
seed
Establece la semilla usada para el desplazamiento aleatorio.
jump
Establece el salto máximo para cada destino de desplazamiento. El intervalo permitido va de 1 a 10000.
type
Establece el tipo de fractal, puede ser carpet (predeterminado) o triangle.
18.16 zoneplate
Genera un patrón de vídeo de prueba zoneplate.
Esta fuente admite las siguientes opciones:
size, s
Establece el tamaño del fotograma. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es "320x240".
rate, r
Establece la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
duration, d
Establece la duración del vídeo generado por la fuente. Véase la (ffmpeg-utils)sección Time duration del manual ffmpeg-utils(1) para conocer la sintaxis aceptada.
Si no se especifica, o si la duración expresada es negativa, se entiende que el vídeo se genera indefinidamente.
sar
Establece la relación de aspecto de muestreo del vídeo generado por la fuente.
precision
Establece la precisión en bits de la tabla de búsqueda para los cálculos de seno. El valor predeterminado es 10. El intervalo permitido va de 4 a 16.
xo
Establece el desplazamiento del eje horizontal para la señal de salida. El valor predeterminado es 0.
yo
Establece el desplazamiento del eje vertical para la señal de salida. El valor predeterminado es 0.
to
Establece el desplazamiento del eje temporal para la señal de salida. El valor predeterminado es 0.
k0
Establece la constante de orden 0 añadida a la fase de la señal. El valor predeterminado es 0.
kx
Establece el multiplicador del factor de fase de orden 1 para el eje horizontal. El valor predeterminado es 0.
ky
Establece el multiplicador del factor de fase de orden 1 para el eje vertical. El valor predeterminado es 0.
kt
Establece el multiplicador del factor de fase de orden 1 para el eje temporal. El valor predeterminado es 0.
kxt, kyt, kxy
Establece los multiplicadores del factor de fase para la combinación de los ejes espacial y temporal. El valor predeterminado es 0.
kx2
Establece el multiplicador del factor de fase de orden 2 para el eje horizontal. El valor predeterminado es 0.
ky2
Establece el multiplicador del factor de fase de orden 2 para el eje vertical. El valor predeterminado es 0.
kt2
Establece el multiplicador del factor de fase de orden 2 para el eje temporal. El valor predeterminado es 0.
ku
Establece la constante añadida a la fase final para producir la componente de crominancia azul de la señal. El valor predeterminado es 0.
kv
Establece la constante añadida a la fase final para producir la componente de crominancia roja de la señal. El valor predeterminado es 0.
18.16.1 Comandos
Esta fuente admite algunas de las opciones anteriores como comandos.
18.16.2 Ejemplos
-
Genera un barrido senoidal de color horizontal:
zoneplate=ku=512:kv=0:kt2=0:kx2=256:s=wvga:xo=-426:kt=11 -
Genera un barrido senoidal de color vertical:
zoneplate=ku=512:kv=0:kt2=0:ky2=156:s=wvga:yo=-240:kt=11 -
Genera una placa de zona circular:
zoneplate=ku=512:kv=100:kt2=0:ky2=256:kx2=556:s=wvga:yo=0:kt=11
19 Destinos de vídeo
A continuación se describen los destinos de vídeo actualmente disponibles.
19.1 buffersink
Almacena en búfer los fotogramas de vídeo y los pone a disposición al final del grafo de filtros.
Este destino está pensado principalmente para uso programático, en particular a través de la interfaz definida en libavfilter/buffersink.h o del sistema de opciones.
Admite un puntero a una estructura AVBufferSinkContext, que define los formatos de los búferes entrantes, que se pasa como parámetro opaco a avfilter_init_filter para la inicialización.
19.2 nullsink
Destino de vídeo nulo: no hace absolutamente nada con el vídeo de entrada. Resulta útil principalmente como plantilla y para su uso en herramientas de análisis o depuración.
20 Filtros multimedia
A continuación se describen los filtros multimedia actualmente disponibles.
20.1 a3dscope
Convierte el audio de entrada en una salida de vídeo de osciloscopio 3D.
El filtro admite las siguientes opciones:
rate, r
Establece la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
size, s
Especifica el tamaño de vídeo de la salida. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es hd720.
fov
Establece el campo de visión de la cámara. El valor predeterminado es 90 grados. El intervalo permitido va de 40 a 150.
roll
Establece el alabeo (roll) de la cámara.
pitch
Establece el cabeceo (pitch) de la cámara.
yaw
Establece la guiñada (yaw) de la cámara.
xzoom
Establece el zoom de la cámara en el eje X.
yzoom
Establece el zoom de la cámara en el eje Y.
zzoom
Establece el zoom de la cámara en el eje Z.
xpos
Establece la posición de la cámara en el eje X.
ypos
Establece la posición de la cámara en el eje Y.
zpos
Establece la posición de la cámara en el eje Z.
length
Establece la longitud de las ondas de audio mostradas, en número de fotogramas.
20.1.1 Comandos
El filtro admite algunas de las opciones anteriores como comandos.
20.2 abitscope
Convierte el audio de entrada en una salida de vídeo, mostrando el osciloscopio de bits del audio.
El filtro admite las siguientes opciones:
rate, r
Establece la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
size, s
Especifica el tamaño de vídeo de la salida. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es 1024x256.
colors
Especifica una lista de colores separados por espacios o por ’|’ que se usarán para dibujar los canales. Los colores no reconocidos o ausentes se sustituirán por el color blanco.
mode, m
Establece el modo de salida. Puede ser bars o trace. El valor predeterminado es bars.
20.3 adrawgraph
Dibuja un gráfico usando los metadatos del audio de entrada.
Véase drawgraph
20.4 agraphmonitor
Véase graphmonitor.
20.5 ahistogram
Convierte el audio de entrada en una salida de vídeo, mostrando el histograma de volumen.
El filtro admite las siguientes opciones:
dmode
Especifica cómo se calcula el histograma.
Admite los siguientes valores:
‘single’
Usa un único histograma para todos los canales.
‘separate’
Usa un histograma independiente para cada canal.
El valor predeterminado es single.
rate, r
Establece la velocidad de fotogramas, expresada como número de fotogramas por segundo. El valor predeterminado es "25".
size, s
Especifica el tamaño de vídeo de la salida. Para conocer la sintaxis de esta opción, consulte la (ffmpeg-utils)sección Video size del manual ffmpeg-utils(1). El valor predeterminado es hd720.
scale
Establece la escala de visualización.
Admite los siguientes valores:
‘log’
logarítmica
‘sqrt’
raíz cuadrada
‘cbrt’
raíz cúbica
‘lin’
lineal
‘rlog’
logarítmica inversa
El valor predeterminado es log.
ascale
Establece la escala de amplitud.
Admite los siguientes valores:
‘log’
logarítmica
‘lin’
lineal
El valor predeterminado es log.
acount
Establece cuántos fotogramas se acumulan en el histograma. El valor predeterminado es 1. Si se establece en -1, se acumulan todos los fotogramas.
rheight
Establece la proporción del histograma respecto a la altura de la ventana.
slide
Establece el desplazamiento del sonograma.
Admite los siguientes valores:
‘replace’
sustituye las filas antiguas por las nuevas.
‘scroll’
se desplaza de arriba a abajo.
El valor predeterminado es replace.
hmode
Establece el modo del histograma.
Admite los siguientes valores:
‘abs’
Usa los valores absolutos de las muestras.
‘sign’
Usa los valores sin modificar de las muestras.
El valor predeterminado es abs.
20.6 aphasemeter
Mide la fase del audio de entrada, que se exporta como metadato lavfi.aphasemeter.phase y representa la fase media del fotograma de audio actual. También puede generarse una salida de vídeo, activada de forma predeterminada. El audio se transmite sin modificar como primera salida.
El audio se remezclará a estéreo si tiene una disposición de canales distinta. El valor de fase está en el rango [-1, 1], donde -1 significa que los canales izquierdo y derecho están completamente desfasados y 1 significa que los canales están en fase.
El filtro admite las siguientes opciones, todas relacionadas con su salida de vídeo:
rate, r
Establece la velocidad de fotogramas de salida. El valor predeterminado es 25.
size, s
Establece el tamaño de vídeo de la salida. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Tamaño de vídeo" en el manual de ffmpeg-utils. El valor predeterminado es 800x400.
rc gc bc
Especifica el contraste de rojo, verde y azul. Los valores predeterminados son 2, 7 y 1. El rango permitido es [0, 255].
mpc
Establece el color que se usará para dibujar la fase mediana. Si el color es none, el valor predeterminado, no se dibuja ningún valor de fase mediana.
video
Activa la salida de vídeo. Está activada de forma predeterminada.
20.6.1 Detección de desfase
El filtro también detecta secuencias fuera de fase y mono en flujos estéreo. Registra el inicio, el final y la duración de la secuencia cuando esta dura más tiempo o al menos tanto como el mínimo establecido.
El filtro admite las siguientes opciones para esta detección:
phasing
Activa la detección de mono y de fuera de fase. Está desactivada de forma predeterminada.
tolerance, t
Establece la tolerancia de fase para la detección de mono, en relación de amplitud. El valor predeterminado es 0. El rango permitido es [0, 1].
angle, a
Establece el umbral de ángulo para la detección de fuera de fase, en grados. El valor predeterminado es 170. El rango permitido es [90, 180].
duration, d
Establece la duración de mono o de fuera de fase hasta la notificación, expresada en segundos. El valor predeterminado es 2.
20.6.2 Ejemplos
- Ejemplo completo con
ffmpegpara detectar 1 segundo de mono con una tolerancia de fase de 0.001:ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
20.7 avectorscope
Convierte el audio de entrada en una salida de vídeo que representa el vectorscopio de audio.
El filtro se utiliza para medir la diferencia entre los canales de un flujo de audio estéreo. Una señal monoaural, formada por señales izquierda y derecha idénticas, produce una línea vertical recta. Cualquier separación estéreo se aprecia como una desviación de esta línea, lo que genera una figura de Lissajous. Si aparece una línea recta (o una desviación de ella) pero horizontal, esto indica que los canales izquierdo y derecho están fuera de fase.
El filtro admite las siguientes opciones:
mode, m
Establece el modo del vectorscopio.
Los valores disponibles son:
‘lissajous’
Lissajous rotado 45 grados.
‘lissajous_xy’
Igual que el anterior, pero sin rotar.
‘polar’
Forma que se asemeja a medio círculo.
El valor predeterminado es ‘lissajous’.
size, s
Establece el tamaño de vídeo de la salida. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Tamaño de vídeo" en el manual de ffmpeg-utils. El valor predeterminado es 400x400.
rate, r
Establece la velocidad de fotogramas de salida. El valor predeterminado es 25.
rc gc bc ac
Especifica el contraste de rojo, verde, azul y alfa. Los valores predeterminados son 40, 160, 80 y 255. El rango permitido es [0, 255].
rf gf bf af
Especifica el desvanecimiento de rojo, verde, azul y alfa. Los valores predeterminados son 15, 10, 5 y 5. El rango permitido es [0, 255].
zoom
Establece el factor de zoom. El valor predeterminado es 1. El rango permitido es [0, 10]. Los valores menores que 1 ajustan automáticamente el factor de zoom al valor máximo posible.
draw
Establece el modo de dibujo del vectorscopio.
Los valores disponibles son:
‘dot’
Dibuja un punto por cada muestra.
‘line’
Dibuja una línea entre la muestra anterior y la actual.
‘aaline’
Dibuja una línea con antialiasing entre la muestra anterior y la actual.
El valor predeterminado es ‘dot’.
scale
Especifica la escala de amplitud de las muestras de audio.
Los valores disponibles son:
‘lin’
Lineal.
‘sqrt’
Raíz cuadrada.
‘cbrt’
Raíz cúbica.
‘log’
Logarítmica.
swap
Intercambia el eje del canal izquierdo con el del canal derecho.
mirror
Refleja el eje.
‘none’
Sin reflejo.
‘x’
Refleja solo el eje x.
‘y’
Refleja solo el eje y.
‘xy’
Refleja ambos ejes.
20.7.1 Ejemplos
- Ejemplo completo usando
ffplay:ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1]; [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
20.7.2 Comandos
Este filtro admite todas las opciones anteriores como comandos, excepto las opciones size y rate.
20.8 bench, abench
Realiza un benchmark de una parte de un filtergraph.
El filtro admite las siguientes opciones:
action
Inicia o detiene un temporizador.
Los valores disponibles son:
‘start’
Obtiene la hora actual, la establece como metadato del fotograma (usando la clave lavfi.bench.start_time) y reenvía el fotograma al siguiente filtro.
‘stop’
Obtiene la hora actual y recupera el metadato lavfi.bench.start_time del fotograma de entrada para calcular la diferencia de tiempo. A continuación se imprimen la diferencia de tiempo, el promedio, el máximo y el mínimo (t, avg, max y min, respectivamente). Las marcas de tiempo se expresan en segundos.
20.8.1 Ejemplos
- Ejemplo de benchmark del filtro selectivecolor:
bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
20.9 concat
Concatena flujos de audio y vídeo, uniéndolos uno tras otro.
El filtro funciona sobre segmentos de flujos de vídeo y audio sincronizados. Todos los segmentos deben tener el mismo número de flujos de cada tipo, que también será el número de flujos en la salida.
El filtro admite las siguientes opciones:
n
Establece el número de segmentos. El valor predeterminado es 2.
v
Establece el número de flujos de vídeo de salida, que también es el número de flujos de vídeo en cada segmento. El valor predeterminado es 1.
a
Establece el número de flujos de audio de salida, que también es el número de flujos de audio en cada segmento. El valor predeterminado es 0.
unsafe
Activa el modo inseguro: no falla si los segmentos tienen un formato distinto.
El filtro tiene v+a salidas: primero v salidas de vídeo y después a salidas de audio.
Hay nx(v+a) entradas: primero las entradas del primer segmento, en el mismo orden que las salidas, después las entradas del segundo segmento, y así sucesivamente.
Los flujos relacionados no siempre tienen exactamente la misma duración, por diversos motivos, entre ellos el tamaño de fotograma del codec o una autoría poco cuidadosa. Por ese motivo, los flujos sincronizados relacionados (por ejemplo, un vídeo y su pista de audio) deben concatenarse a la vez. El filtro concat usará la duración del flujo más largo de cada segmento (excepto el último) y, si es necesario, rellenará con silencio los flujos de audio más cortos.
Para que este filtro funcione correctamente, todos los segmentos deben empezar en la marca de tiempo 0.
Todos los flujos correspondientes deben tener los mismos parámetros en todos los segmentos; el sistema de filtrado seleccionará automáticamente un pixel format común para los flujos de vídeo, y un sample format, una frecuencia de muestreo y una disposición de canales comunes para los flujos de audio, pero otros ajustes, como la resolución, deben ser convertidos explícitamente por el usuario.
Se aceptan velocidades de fotogramas distintas, pero esto dará lugar a una velocidad de fotogramas variable en la salida; asegúrese de configurar el archivo de salida para gestionarlo.
20.9.1 Ejemplos
-
Concatena una apertura, un episodio y un cierre, todo en versión bilingüe (vídeo en el flujo 0, audio en los flujos 1 y 2):
ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \ '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2] concat=n=3:v=1:a=2 [v] [a1] [a2]' \ -map '[v]' -map '[a1]' -map '[a2]' output.mkv -
Concatena dos partes, tratando el audio y el vídeo por separado, usando las fuentes (a)movie, y ajustando la resolución:
movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ; movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ; [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
Tenga en cuenta que se producirá una desincronización en el punto de unión si los flujos de audio y vídeo no tienen exactamente la misma duración en el primer archivo.
20.9.2 Comandos
Este filtro admite los siguientes comandos:
next
Cierra el segmento actual y pasa al siguiente
20.10 ebur128
Filtro de análisis EBU R128. Este filtro toma un flujo de audio y analiza su nivel de sonoridad (loudness). De forma predeterminada, registra un mensaje con una frecuencia de 10Hz con la sonoridad momentánea (identificada por M), la sonoridad a corto plazo (S), la sonoridad integrada (I) y el rango de sonoridad (LRA).
El filtro solo puede analizar flujos cuyo sample format sea de coma flotante de doble precisión. El flujo de entrada se convertirá a esta especificación si es necesario. Es posible que los usuarios deban insertar los filtros aformat y/o aresample después de este filtro para recuperar los parámetros originales.
El filtro también tiene una salida de vídeo (véase la opción video) con un gráfico en tiempo real para observar la evolución de la sonoridad. El gráfico contiene el mensaje registrado mencionado antes, por lo que deja de imprimirse cuando se activa esta opción, a menos que se active el registro detallado (verbose). El área principal del gráfico contiene la sonoridad a corto plazo (3 segundos de análisis), y el indicador (gauge) de la derecha corresponde a la sonoridad momentánea (400 milisegundos), aunque puede configurarse opcionalmente para mostrar en su lugar la sonoridad a corto plazo (véase gauge).
El área verde marca un rango objetivo de +/- 1LU alrededor de la sonoridad objetivo (-23LUFS de forma predeterminada, a menos que se modifique mediante target).
Más información sobre la Recomendación de Sonoridad EBU R128 en http://tech.ebu.ch/loudness.
El filtro admite las siguientes opciones:
video
Activa la salida de vídeo. El flujo de audio se transmite sin modificar, tanto si esta opción está activada como si no. El flujo de vídeo será el primer flujo de salida si se activa. El valor predeterminado es 0.
size
Establece el tamaño de vídeo. Esta opción es solo para vídeo. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Tamaño de vídeo" en el manual de ffmpeg-utils. La resolución predeterminada y mínima es 640x480.
meter
Establece el medidor de escala EBU. El valor predeterminado es 9. Los valores habituales son 9 y 18, para el medidor de escala EBU +9 y el medidor de escala EBU +18, respectivamente. Se permite cualquier otro valor entero dentro de ese rango.
metadata
Establece la inyección de metadatos. Si se fija en 1, el audio de entrada se segmentará en fotogramas de salida de 100ms, cada uno de los cuales contendrá diversa información de sonoridad en los metadatos. Todas las claves de metadatos llevan el prefijo lavfi.r128..
El valor predeterminado es 0.
framelog
Fuerza el nivel de registro por fotograma.
Los valores disponibles son:
‘quiet’
registro desactivado
‘info’
nivel de registro informativo
‘verbose’
nivel de registro detallado
De forma predeterminada, el nivel de registro se fija en info. Si se activan las opciones video o metadata, cambia a verbose.
peak
Establece el modo o los modos de pico.
Los modos disponibles pueden acumularse (la opción es de tipo flag). Los valores posibles son:
‘none’
Desactiva cualquier modo de pico (opción predeterminada).
‘sample’
Activa el modo de pico por muestra (sample-peak).
Modo de pico simple que busca el valor de muestra más alto. Registra un mensaje para el pico por muestra (identificado por SPK).
‘true’
Activa el modo de pico verdadero (true-peak).
Si está activado, la búsqueda de picos se realiza sobre una versión sobremuestreada del flujo de entrada para obtener mayor precisión de pico. Registra un mensaje para el pico verdadero (identificado por TPK) y para el pico verdadero por fotograma (identificado por FTPK). Este modo requiere una compilación con libswresample.
dualmono
Trata los archivos de entrada mono como "mono dual". Si un archivo mono está pensado para reproducirse en un sistema estéreo, su medición EBU R128 será perceptualmente incorrecta. Si se establece en true, esta opción compensará ese efecto. Los archivos de entrada multicanal no se ven afectados por esta opción.
panlaw
Establece una ley de panorámica (pan law) específica que se usará para la medición de archivos mono duales. Este parámetro es opcional y tiene un valor predeterminado de -3.01dB.
target
Establece un nivel objetivo específico (en LUFS) que se usa como cero relativo en la visualización. Este parámetro es opcional y tiene un valor predeterminado de -23LUFS, según lo especificado por EBU R128. Sin embargo, el material publicado en línea puede preferir un nivel de -16LUFS (por ejemplo, para su uso con pódcast o plataformas de vídeo).
gauge
Establece el valor que muestra el indicador (gauge). Los valores válidos son momentary y s shortterm. De forma predeterminada se usa el valor momentáneo, pero en ciertos escenarios puede ser más útil observar en su lugar el valor a corto plazo (por ejemplo, en mezcla en directo).
scale
Establece la escala de visualización de la sonoridad. Los parámetros válidos son absolute (en LUFS) o relative (en LU) con respecto al objetivo. Esto solo afecta a la salida de vídeo, no al resumen ni al registro continuo.
integrated
Valor exportado de solo lectura para la sonoridad integrada medida, en LUFS.
range
Valor exportado de solo lectura para el rango de sonoridad medido, en LU.
lra_low
Valor exportado de solo lectura para el LRA bajo medido, en LUFS.
lra_high
Valor exportado de solo lectura para el LRA alto medido, en LUFS.
sample_peak
Valor exportado de solo lectura para el pico de muestra medido, en dBFS.
true_peak
Valor exportado de solo lectura para el pico verdadero medido, en dBFS.
20.10.1 Ejemplos
-
Gráfico en tiempo real usando
ffplay, con un medidor de escala EBU +18:ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]" -
Ejecuta un análisis con
ffmpeg:ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
20.11 interleave, ainterleave
Intercala temporalmente fotogramas de varias entradas.
interleave funciona con entradas de vídeo, ainterleave con audio.
Estos filtros leen fotogramas de varias entradas y envían a la salida el fotograma en cola más antiguo.
Los flujos de entrada deben tener valores de marca de tiempo de fotograma bien definidos y monótonamente crecientes.
Para poder enviar un fotograma a la salida, estos filtros necesitan encolar al menos un fotograma de cada entrada, por lo que no pueden funcionar si una entrada aún no ha terminado y no va a recibir más fotogramas.
Por ejemplo, considere el caso en que una de las entradas es un filtro select que siempre descarta los fotogramas de entrada. El filtro interleave seguirá leyendo de esa entrada, pero nunca podrá enviar nuevos fotogramas a la salida hasta que esa entrada envíe una señal de fin de flujo.
Además, dependiendo de la sincronización de las entradas, los filtros descartarán fotogramas si una entrada recibe más fotogramas que las demás y la cola ya está llena.
Estos filtros admiten las siguientes opciones:
nb_inputs, n
Establece el número de entradas distintas. El valor predeterminado es 2.
duration
Cómo determinar el fin de flujo.
longest
La duración de la entrada más larga. (valor predeterminado)
shortest
La duración de la entrada más corta.
first
La duración de la primera entrada.
20.11.1 Ejemplos
-
Intercala fotogramas pertenecientes a distintos flujos usando
ffmpeg:ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi -
Añade un efecto de parpadeo con desenfoque:
select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
20.12 latency, alatency
Mide la latencia de filtrado.
Informa de la latencia de filtrado del filtro anterior: el retardo en número de muestras de audio para los filtros de audio, o en número de fotogramas de vídeo para los filtros de vídeo.
Al final del flujo de entrada, el filtro informará de la latencia mínima y máxima medida para el filtro anterior en ejecución dentro del filtergraph.
20.13 metadata, ametadata
Manipula los metadatos del fotograma.
Este filtro admite las siguientes opciones:
mode
Establece el modo de funcionamiento del filtro.
Puede ser uno de los siguientes:
‘select’
Si se establecen tanto value como key, selecciona los fotogramas que tengan ese metadato. Si solo se establece key, selecciona todos los fotogramas que tengan esa clave en los metadatos.
‘add’
Añade el nuevo metadato key y value. Si la clave ya existe, no hace nada.
‘modify’
Modifica el valor de una clave ya existente.
‘delete’
Si se establece value, elimina solo las claves que tengan ese valor. En caso contrario, elimina la clave. Si no se establece key, elimina todos los valores de metadatos del fotograma.
‘print’
Imprime la clave y su valor si se encuentran metadatos. Si no se establece key, imprime todos los valores de metadatos disponibles en el fotograma.
key
Establece la clave usada en todos los modos. Debe establecerse en todos los modos excepto print y delete.
value
Establece el valor de metadato que se usará. Esta opción es obligatoria para los modos modify y add.
function
Indica qué función usar al comparar el valor de metadato con value.
Puede ser una de las siguientes:
‘same_str’
Los valores se interpretan como cadenas de texto; devuelve verdadero si el valor de metadato es igual a value.
‘starts_with’
Los valores se interpretan como cadenas de texto; devuelve verdadero si el valor de metadato empieza por la cadena de la opción value.
‘less’
Los valores se interpretan como números en coma flotante; devuelve verdadero si el valor de metadato es menor que value.
‘equal’
Los valores se interpretan como números en coma flotante; devuelve verdadero si value es igual al valor de metadato.
‘greater’
Los valores se interpretan como números en coma flotante; devuelve verdadero si el valor de metadato es mayor que value.
‘expr’
Los valores se interpretan como números en coma flotante; devuelve verdadero si la expresión de la opción expr se evalúa como verdadera.
‘ends_with’
Los valores se interpretan como cadenas de texto; devuelve verdadero si el valor de metadato termina con la cadena de la opción value.
expr
Establece la expresión que se usa cuando function se fija en expr. La expresión se evalúa mediante la API eval y puede contener las siguientes constantes:
VALUE1, FRAMEVAL
Representación en coma flotante de value a partir de la clave de metadato.
VALUE2, USERVAL
Representación en coma flotante de value tal como la proporciona el usuario en la opción value.
file
Si se especifica en modo print, la salida se escribe en el archivo indicado. En lugar de un nombre de archivo cualquiera, puede especificarse cualquier url en la que se pueda escribir. El nombre de archivo “-” es un atajo para la salida estándar. Si no se establece la opción file, la salida se escribe en el registro con el nivel AV_LOG_INFO.
direct
Reduce el uso de búfer en el modo print cuando la salida se escribe en una URL establecida mediante file.
20.13.1 Ejemplos
-
Imprime todos los valores de metadatos de los fotogramas con la clave
lavfi.signalstats.YDIFcon valores entre 0 y 1.signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)' -
Imprime la salida de silencedetect en el archivo metadata.txt.
silencedetect,ametadata=mode=print:file=metadata.txt -
Dirige todos los metadatos a una tubería con el descriptor de archivo 4.
metadata=mode=print:file='pipe\:4'
20.14 perms, aperms
Establece los permisos de lectura/escritura de los fotogramas de salida.
Estos filtros están pensados principalmente para que los desarrolladores prueben la ruta directa en el siguiente filtro del filtergraph.
Los filtros admiten las siguientes opciones:
mode
Selecciona el modo de permisos.
Acepta los siguientes valores:
‘none’
No hace nada. Es el valor predeterminado.
‘ro’
Establece todos los fotogramas de salida como de solo lectura.
‘rw’
Establece todos los fotogramas de salida como directamente escribibles.
‘toggle’
Hace que el fotograma sea de solo lectura si es escribible, y escribible si es de solo lectura.
‘random’
Establece cada fotograma de salida como de solo lectura o escribible de forma aleatoria.
seed
Establece la semilla para el modo aleatorio; debe ser un entero comprendido entre 0 y UINT32_MAX. Si no se especifica, o si se establece explícitamente en -1, el filtro intentará usar una buena semilla aleatoria de la mejor forma posible.
Nota: en caso de que se inserte automáticamente un filtro entre el filtro de permisos y el siguiente, es posible que el permiso no se reciba como se espera en ese filtro siguiente. Insertar un filtro format o aformat antes del filtro perms/aperms puede evitar este problema.
20.15 realtime, arealtime
Ralentiza el filtrado para ajustarse aproximadamente al tiempo real.
Estos filtros pausan el filtrado durante un tiempo variable para ajustar la velocidad de salida a las marcas de tiempo de entrada. Son similares a la opción re de ffmpeg.
Admiten las siguientes opciones:
limit
Límite de tiempo para las pausas. Cualquier pausa más larga que ese valor se considerará una discontinuidad de marca de tiempo y reiniciará el temporizador. El valor predeterminado es 2 segundos.
speed
Factor de velocidad para el procesamiento. El valor debe ser un número en coma flotante mayor que cero. Los valores mayores que 1.0 darán como resultado un procesamiento más rápido que en tiempo real; los valores menores lo ralentizarán. El límite se adapta automáticamente en consecuencia. El valor predeterminado es 1.0.
No es posible lograr una velocidad de procesamiento superior a la que resultaría posible sin estos filtros.
20.15.1 Comandos
Ambos filtros admiten todas las opciones anteriores como comandos.
20.16 segment, asegment
Divide un único flujo de entrada en varios flujos.
Este filtro hace lo contrario que los filtros concat.
segment funciona con fotogramas de vídeo, asegment con muestras de audio.
Este filtro admite las siguientes opciones:
timestamps
Marcas de tiempo de los segmentos de salida, separadas por ’|’. El primer segmento se ejecutará desde el principio del flujo de entrada. El último segmento se ejecutará hasta el final del flujo de entrada
frames, samples
Número exacto de fotogramas/muestras para dividir los segmentos.
En todos los casos, anteponer ’+’ a cada segmento hará que sea relativo al segmento anterior.
20.16.1 Ejemplos
- Divide el flujo de audio de entrada en tres flujos de audio de salida: almacena desde el inicio del flujo de audio de entrada en el primer flujo de audio de salida; a continuación, a partir del segundo 60, en el segundo flujo de audio de salida; y, por último, a partir del segundo 150 del flujo de audio de entrada, en el tercer flujo de audio de salida:
asegment=timestamps="60|150"
20.17 select, aselect
Selecciona los fotogramas que pasan a la salida.
Este filtro admite las siguientes opciones:
expr, e
Establece la expresión, que se evalúa para cada fotograma de entrada.
Si la expresión se evalúa a cero, el fotograma se descarta.
Si el resultado de la evaluación es negativo o NaN, el fotograma se envía a la primera salida; en caso contrario, se envía a la salida con índice ceil(val)-1, suponiendo que el índice de entrada empieza en 0.
Por ejemplo, un valor de 1.2 corresponde a la salida con índice ceil(1.2)-1 = 2-1 = 1, es decir, la segunda salida.
outputs, n
Establece el número de salidas. La salida a la que se envía el fotograma seleccionado depende del resultado de la evaluación. El valor predeterminado es 1.
La expresión puede contener las siguientes constantes:
n
El número (secuencial) del fotograma filtrado, empezando en 0.
selected_n
El número (secuencial) del fotograma seleccionado, empezando en 0.
prev_selected_n
El número secuencial del último fotograma seleccionado. Es NAN si no está definido.
TB
La timebase de las marcas de tiempo de entrada.
pts
El PTS, marca de tiempo de presentación (Presentation TimeStamp), del fotograma filtrado, expresado en unidades de TB. Es NAN si no está definido.
t
El PTS del fotograma filtrado, expresado en segundos. Es NAN si no está definido.
prev_pts
El PTS del fotograma filtrado anteriormente. Es NAN si no está definido.
prev_selected_pts
El PTS del último fotograma filtrado anteriormente. Es NAN si no está definido.
prev_selected_t
El PTS del último fotograma seleccionado anteriormente, expresado en segundos. Es NAN si no está definido.
start_pts
El primer PTS del flujo que no sea NAN. Permanece en NAN si no se encuentra.
start_t
El primer PTS, en segundos, del flujo que no sea NAN. Permanece en NAN si no se encuentra.
pict_type (solo vídeo)
El tipo del fotograma filtrado. Puede tomar uno de los siguientes valores:
I P B S SI SP BI interlace_type (solo vídeo)
El tipo de entrelazado del fotograma. Puede tomar uno de los siguientes valores:
PROGRESSIVE
El fotograma es progresivo (no entrelazado).
TOPFIRST
El fotograma es de campo superior primero (top-field-first).
BOTTOMFIRST
El fotograma es de campo inferior primero (bottom-field-first).
consumed_sample_n (solo audio)
el número de muestras seleccionadas antes del fotograma actual
samples_n (solo audio)
el número de muestras en el fotograma actual
sample_rate (solo audio)
la frecuencia de muestreo de entrada
key
Es 1 si el fotograma filtrado es un keyframe (keyframe), 0 en caso contrario.
pos
la posición del fotograma filtrado en el archivo, -1 si la información no está disponible (por ejemplo, para vídeo sintético); obsoleto, no lo use
scene (solo vídeo)
valor entre 0 y 1 que indica una nueva escena; un valor bajo refleja una probabilidad baja de que el fotograma actual introduzca una nueva escena, mientras que un valor más alto significa que es más probable que el fotograma actual sea una (véase el ejemplo siguiente)
concatdec_select
El demuxer concat puede seleccionar solo una parte de un archivo de entrada concat estableciendo un punto de entrada y un punto de salida, pero es posible que los paquetes de salida no estén completamente contenidos en el intervalo seleccionado. Mediante esta variable es posible omitir los fotogramas generados por el demuxer concat que no estén exactamente contenidos en el intervalo seleccionado.
Esto funciona comparando el pts del fotograma con los valores de metadatos de paquete lavf.concat.start_time y lavf.concat.duration, que también están presentes en los fotogramas decodificados.
La variable concatdec_select vale -1 si el pts del fotograma es al menos start_time y, al mismo tiempo, se cumple que falta el metadato duration o que el pts del fotograma es menor que start_time + duration; 0 en caso contrario, y NaN si falta el metadato start_time.
Básicamente, esto significa que un fotograma de entrada se selecciona si su pts está dentro del intervalo establecido por el demuxer concat.
iw (solo vídeo)
Representa el ancho del fotograma de vídeo de entrada.
ih (solo vídeo)
Representa la altura del fotograma de vídeo de entrada.
view (solo vídeo)
ID de vista para vídeo multivista.
El valor predeterminado de la expresión select es "1".
20.17.1 Ejemplos
- Selecciona todos los fotogramas de la entrada:
select
El ejemplo anterior es equivalente a:
select=1
-
Omite todos los fotogramas:
select=0 -
Selecciona únicamente los fotogramas I:
select='eq(pict_type\,I)' -
Selecciona un fotograma de cada 100:
select='not(mod(n\,100))' -
Selecciona únicamente los fotogramas comprendidos en el intervalo de tiempo 10-20:
select=between(t\,10\,20) -
Selecciona únicamente los fotogramas I comprendidos en el intervalo de tiempo 10-20:
select=between(t\,10\,20)*eq(pict_type\,I) -
Selecciona fotogramas con una distancia mínima de 10 segundos:
select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)' -
Usa aselect para seleccionar únicamente los fotogramas de audio cuyo número de muestras sea > 100:
aselect='gt(samples_n\,100)' -
Crea un mosaico de las primeras escenas:
ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
Comparar scene con un valor entre 0.3 y 0.5 suele ser una elección razonable.
-
Envía los fotogramas pares e impares a salidas separadas y los combina:
select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h -
Selecciona los fotogramas útiles de un archivo ffconcat que usa inpoints y outpoints, pero cuyos archivos fuente no son únicamente de fotogramas intra.
ffmpeg -copyts -segment_time_metadata 1 -i input.ffconcat -fps_mode passthrough -vf select=concatdec_select -af aselect=concatdec_select output.avi
20.18 sendcmd, asendcmd
Envía comandos a los filtros del filtergraph.
Estos filtros leen los comandos que se enviarán a otros filtros del filtergraph.
sendcmd debe insertarse entre dos filtros de vídeo, asendcmd debe insertarse entre dos filtros de audio, pero aparte de eso se comportan igual.
La especificación de los comandos puede darse en los argumentos del filtro mediante la opción commands, o en un archivo indicado con la opción filename.
Estos filtros aceptan las siguientes opciones:
commands, c
Establece los comandos que se leerán y enviarán a los otros filtros.
filename, f
Establece el nombre del archivo con los comandos que se leerán y enviarán a los otros filtros.
20.18.1 Sintaxis de los comandos
Una descripción de comandos consiste en una secuencia de especificaciones de intervalo, cada una con una lista de comandos que se ejecutarán cuando ocurra un evento concreto relacionado con ese intervalo. El evento que se produce suele ser que el tiempo del fotograma actual entra o sale de un intervalo de tiempo dado.
Un intervalo se especifica con la siguiente sintaxis:
START[-END] COMMANDS;
El intervalo de tiempo se especifica mediante los tiempos START y END. END es opcional y, de forma predeterminada, toma el tiempo máximo.
El tiempo del fotograma actual se considera dentro del intervalo especificado si está incluido en el intervalo [START, END), es decir, cuando el tiempo es mayor o igual que START y menor que END.
COMMANDS consiste en una secuencia de una o más especificaciones de comando, separadas por ",", relativas a ese intervalo. La sintaxis de una especificación de comando es la siguiente:
[FLAGS] TARGET COMMAND ARG
FLAGS es opcional y especifica el tipo de eventos relativos al intervalo de tiempo que habilitan el envío del comando especificado; debe ser una secuencia no nula de identificadores de flag separados por "+" o "|" y encerrados entre "[" y "]".
Se reconocen los siguientes flags:
enter
El comando se envía cuando la marca de tiempo del fotograma actual entra en el intervalo especificado. Dicho de otro modo, el comando se envía cuando la marca de tiempo del fotograma anterior no estaba en el intervalo dado, y la actual sí lo está.
leave
El comando se envía cuando la marca de tiempo del fotograma actual sale del intervalo especificado. Dicho de otro modo, el comando se envía cuando la marca de tiempo del fotograma anterior estaba en el intervalo dado, y la actual no lo está.
expr
El ARG del comando se interpreta como una expresión, y el resultado de esa expresión se pasa como ARG.
La expresión se evalúa mediante la API eval y puede contener las siguientes constantes:
POS
Posición original del fotograma en el archivo, o indefinida si no está definida para el fotograma actual. Obsoleto, no usar.
PTS
La marca de tiempo de presentación de entrada.
N
El recuento del fotograma de entrada, para vídeo o audio, empezando desde 0.
T
El tiempo en segundos del fotograma actual.
TS
El tiempo de inicio en segundos del intervalo de comando actual.
TE
El tiempo final en segundos del intervalo de comando actual.
TI
El tiempo interpolado del intervalo de comando actual, TI = (T - TS) / (TE - TS).
W
El ancho del fotograma de vídeo.
H
La altura del fotograma de vídeo.
Si no se especifica FLAGS, se asume un valor predeterminado de [enter].
TARGET especifica el destino del comando, normalmente el nombre de la clase de filtro o el nombre de una instancia de filtro concreta.
COMMAND especifica el nombre del comando para el filtro destino.
ARG es opcional y especifica la lista opcional de argumentos del COMMAND dado.
Entre una especificación de intervalo y otra se ignoran los espacios en blanco, así como las secuencias de caracteres que empiezan por # hasta el final de la línea, y pueden usarse para anotar comentarios.
A continuación, una descripción BNF simplificada de la sintaxis de especificación de comandos:
COMMAND_FLAG ::= "enter" | "leave"
COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG]
COMMAND ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG]
COMMANDS ::= COMMAND [,COMMANDS]
INTERVAL ::= START[-END] COMMANDS
INTERVALS ::= INTERVAL[;INTERVALS]
20.18.2 Ejemplos
-
Especifica un cambio de tempo de audio en el segundo 4:
asendcmd=c='4.0 atempo tempo 1.5',atempo -
Apunta a una instancia de filtro concreta:
asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my -
Especifica una lista de comandos drawtext y hue en un archivo.
# show text in the interval 5-10 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world', [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text='; # desaturate the image in the interval 15-20 15.0-20.0 [enter] hue s 0, [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor', [leave] hue s 1, [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color'; # apply an exponential saturation fade-out effect, starting from time 25 25 [enter] hue s exp(25-t)
Un filtergraph capaz de leer y procesar la lista de comandos anterior almacenada en un archivo test.cmd puede especificarse así:
sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
20.19 setpts, asetpts
Cambia el PTS (marca de tiempo de presentación) de los fotogramas de entrada.
setpts actúa sobre fotogramas de vídeo, asetpts sobre fotogramas de audio.
Este filtro acepta las siguientes opciones:
expr
La expresión que se evalúa para cada fotograma con el fin de construir su marca de tiempo.
strip_fps (solo vídeo)
Opción booleana que determina si se eliminan los metadatos originales de velocidad de fotogramas y duración de fotograma. Si se activa, tenga en cuenta que conviene especificar explícitamente una velocidad de fotogramas razonable si la salida se envía a un muxer de velocidad de fotogramas constante. El valor predeterminado es false.
La expresión se evalúa mediante la API eval y puede contener las siguientes constantes:
FRAME_RATE, FR
velocidad de fotogramas; solo está definida para vídeo de velocidad de fotogramas constante
PTS
La marca de tiempo de presentación de entrada
N
El recuento del fotograma de entrada para vídeo, o el número de muestras consumidas —sin incluir el fotograma actual— para audio, empezando desde 0.
NB_CONSUMED_SAMPLES
El número de muestras consumidas, sin incluir el fotograma actual (solo audio)
NB_SAMPLES, S
El número de muestras del fotograma actual (solo audio)
SAMPLE_RATE, SR
La frecuencia de muestreo del audio.
STARTPTS
El PTS del primer fotograma.
STARTT
el tiempo en segundos del primer fotograma
INTERLACED
Indica si el fotograma actual está entrelazado.
T
el tiempo en segundos del fotograma actual
POS
posición original del fotograma en el archivo, o indefinida si no está definida para el fotograma actual; obsoleto, no usar
PREV_INPTS
El PTS de entrada anterior.
PREV_INT
tiempo de entrada anterior en segundos
PREV_OUTPTS
El PTS de salida anterior.
PREV_OUTT
tiempo de salida anterior en segundos
RTCTIME
El tiempo de reloj de pared (RTC) en microsegundos. Está obsoleto; use time(0) en su lugar.
RTCSTART
El tiempo de reloj de pared (RTC) al inicio de la película, en microsegundos.
TB
La base de tiempo de las marcas de tiempo de entrada.
T_CHANGE
Tiempo del primer fotograma después de aplicarse el comando, o tiempo del primer fotograma si no hay comandos.
20.19.1 Ejemplos
-
Empieza a contar el PTS desde cero
setpts=PTS-STARTPTS -
Aplica un efecto de cámara rápida:
setpts=0.5*PTS -
Aplica un efecto de cámara lenta:
setpts=2.0*PTS -
Establece una tasa fija de 25 fotogramas por segundo:
setpts=N/(25*TB) -
Aplica un efecto de jitter aleatorio de +/-100 unidades TB:
setpts=PTS+randomi(0, -100\,100) -
Establece una tasa fija de 25 fps con algo de jitter:
setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))' -
Aplica un desplazamiento de 10 segundos al PTS de entrada:
setpts=PTS+10/TB -
Genera marcas de tiempo a partir de una "fuente en vivo" y las reajusta a la base de tiempo actual:
setpts='(RTCTIME - RTCSTART) / (TB * 1000000)' -
Genera marcas de tiempo contando muestras:
asetpts=N/SR/TB
20.19.2 Comandos
Ambos filtros admiten todas las opciones anteriores como comandos.
20.20 setrange
Fuerza el rango de color del fotograma de vídeo de salida.
El filtro setrange marca la propiedad de rango de color en los fotogramas de salida. No cambia el fotograma de entrada, sino que solo establece la propiedad correspondiente, lo cual afecta a cómo tratan ese fotograma los filtros siguientes.
El filtro acepta las siguientes opciones:
range
Los valores disponibles son:
‘auto’
Conserva la misma propiedad de rango de color.
‘unspecified, unknown’
Marca el rango de color como no especificado.
‘limited, tv, mpeg’
Marca el rango de color como limitado.
‘full, pc, jpeg’
Marca el rango de color como completo.
20.21 settb, asettb
Establece la base de tiempo que se usará para las marcas de tiempo de los fotogramas de salida. Resulta útil sobre todo para probar la configuración de la base de tiempo.
Acepta los siguientes parámetros:
expr, tb
La expresión que se evalúa para obtener la base de tiempo de salida.
El valor de tb es una expresión aritmética que representa un racional. La expresión puede contener las constantes "AVTB" (la base de tiempo predeterminada), "intb" (la base de tiempo de entrada) y "sr" (la frecuencia de muestreo, solo audio). El valor predeterminado es "intb".
20.21.1 Ejemplos
-
Establece la base de tiempo en 1/25:
settb=expr=1/25 -
Establece la base de tiempo en 1/10:
settb=expr=0.1 -
Establece la base de tiempo en 1001/1000:
settb=1+0.001 -
Establece la base de tiempo en 2*intb:
settb=2*intb -
Establece el valor de base de tiempo predeterminado:
settb=AVTB
20.22 showcqt
Convierte el audio de entrada en una salida de vídeo que representa el espectro de frecuencias de forma logarítmica mediante el algoritmo de transformada Q constante de Brown-Puckette, con cálculo directo de los coeficientes en el dominio de la frecuencia (aunque la transformada en sí no es realmente de Q constante, sino que el factor Q es en realidad variable/acotado), con escala de tonos musicales, de E0 a D#10.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño de vídeo de la salida. Debe ser un valor par. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 1920x1080.
fps, rate, r
Establece la velocidad de fotogramas de salida. El valor predeterminado es 25.
bar_h
Establece la altura del gráfico de barras. Debe ser un valor par. El valor predeterminado es -1, que calcula automáticamente la altura del gráfico de barras.
axis_h
Establece la altura del eje. Debe ser un valor par. El valor predeterminado es -1, que calcula automáticamente la altura del eje.
sono_h
Establece la altura del sonograma. Debe ser un valor par. El valor predeterminado es -1, que calcula automáticamente la altura del sonograma.
fullhd
Establece la resolución fullhd. Esta opción está obsoleta; use size, s en su lugar. El valor predeterminado es 1.
sono_v, volume
Especifica la expresión de volumen del sonograma. Puede contener las siguientes variables:
bar_v
la expresión evaluada de bar_v
frequency, freq, f
la frecuencia en la que se evalúa
timeclamp, tc
el valor de la opción timeclamp
y las siguientes funciones:
a_weighting(f)
ponderación A de igual sonoridad
b_weighting(f)
ponderación B de igual sonoridad
c_weighting(f)
ponderación C de igual sonoridad.
El valor predeterminado es 16.
bar_v, volume2
Especifica la expresión de volumen del gráfico de barras. Puede contener las siguientes variables:
sono_v
la expresión evaluada de sono_v
frequency, freq, f
la frecuencia en la que se evalúa
timeclamp, tc
el valor de la opción timeclamp
y las siguientes funciones:
a_weighting(f)
ponderación A de igual sonoridad
b_weighting(f)
ponderación B de igual sonoridad
c_weighting(f)
ponderación C de igual sonoridad.
El valor predeterminado es sono_v.
sono_g, gamma
Especifica la gamma del sonograma. Una gamma más baja aumenta el contraste del espectro, mientras que una gamma más alta amplía el rango del espectro. El valor predeterminado es 3. El rango permitido es [1, 7].
bar_g, gamma2
Especifica la gamma del gráfico de barras. El valor predeterminado es 1. El rango permitido es [1, 7].
bar_t
Especifica el nivel de transparencia del gráfico de barras. Un valor más bajo hace que el gráfico de barras sea más nítido. El valor predeterminado es 1. El rango permitido es [0, 1].
timeclamp, tc
Especifica el timeclamp de la transformada. A frecuencias bajas existe un compromiso entre la precisión en el dominio temporal y en el dominio de la frecuencia. Si timeclamp es más bajo, los eventos en el dominio temporal se representan con mayor precisión (como un bombo rápido), mientras que si es más alto, los eventos en el dominio de la frecuencia se representan con mayor precisión (como un bajo). El rango permitido es [0.002, 1]. El valor predeterminado es 0.17.
attack
Establece el tiempo de attack en segundos. El valor predeterminado es 0 (desactivado). En caso contrario, limita las muestras futuras aplicando un ventaneo asimétrico en el dominio temporal, lo cual resulta útil cuando se requiere baja latencia. El rango permitido es [0, 1].
basefreq
Especifica la frecuencia base de la transformada. El valor predeterminado es 20.01523126408007475, que es la frecuencia 50 cents por debajo de E0. El rango permitido es [10, 100000].
endfreq
Especifica la frecuencia final de la transformada. El valor predeterminado es 20495.59681441799654, que es la frecuencia 50 cents por encima de D#10. El rango permitido es [10, 100000].
coeffclamp
Esta opción está obsoleta y se ignora.
tlength
Especifica la longitud de la transformada en el dominio temporal. Use esta opción para controlar el compromiso de precisión entre el dominio temporal y el dominio de la frecuencia en cada muestra de frecuencia. Puede contener las siguientes variables:
frequency, freq, f
la frecuencia en la que se evalúa
timeclamp, tc
el valor de la opción timeclamp.
El valor predeterminado es 384*tc/(384+tc*f).
count
Especifica el número de transformadas por cada fotograma de vídeo. El valor predeterminado es 6. El rango permitido es [1, 30].
fcount
Especifica el número de transformadas por cada píxel. El valor predeterminado es 0, que hace que se calcule automáticamente. El rango permitido es [0, 10].
fontfile
Especifica el archivo de fuente que usará freetype para dibujar el eje. Si no se especifica, se usa la fuente incrustada. Tenga en cuenta que el dibujo con archivo de fuente o fuente incrustada no está implementado cuando se usan basefreq y endfreq personalizados; en ese caso, use la opción axisfile.
font
Especifica un patrón de fontconfig. Tiene menor prioridad que fontfile. El : del patrón puede sustituirse por | para evitar un escapado innecesario.
fontcolor
Especifica la expresión de color de fuente. Es una expresión aritmética que debe devolver un valor entero 0xRRGGBB. Puede contener las siguientes variables:
frequency, freq, f
la frecuencia en la que se evalúa
timeclamp, tc
el valor de la opción timeclamp
y las siguientes funciones:
midi(f)
número MIDI de la frecuencia f; algunos números MIDI: E0(16), C1(24), C2(36), A4(69)
r(x), g(x), b(x)
valor de rojo, verde y azul de la intensidad x.
El valor predeterminado es st(0, (midi(f)-59.5)/12); st(1, if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) + b(ld(1)).
axisfile
Especifica el archivo de imagen con el que dibujar el eje. Esta opción anula las opciones fontfile y fontcolor.
axis, text
Activa/desactiva el dibujo de texto en el eje. Si se establece en 0, se desactiva el dibujo en el eje, ignorando las opciones fontfile y axisfile. El valor predeterminado es 1.
csp
Establece el espacio de color. Los valores aceptados son:
‘unspecified’
No especificado (predeterminado)
‘bt709’
BT.709
‘fcc’
FCC
‘bt470bg’
BT.470BG o BT.601-6 625
‘smpte170m’
SMPTE-170M o BT.601-6 525
‘smpte240m’
SMPTE-240M
‘bt2020ncl’
BT.2020 con luminancia no constante
cscheme
Establece el esquema de color del espectrograma. Es una lista de valores en coma flotante con el formato left_r|left_g|left_b|right_r|right_g|right_b. El valor predeterminado es 1|0.5|0|0|0.5|1.
20.22.1 Ejemplos
-
Reproduce el audio mientras muestra el espectro:
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]' -
Igual que lo anterior, pero con una velocidad de fotogramas de 30 fps:
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]' -
Reproduce a 1280x720:
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]' -
Desactiva la visualización del sonograma:
sono_h=0 -
A1 y sus armónicos: A1, A2, (cerca de)E3, A3:
ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t), asplit[a][out1]; [a] showcqt [out0]' -
Igual que lo anterior, pero con más precisión en el dominio de la frecuencia:
ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t), asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]' -
Volumen personalizado:
bar_v=10:sono_v=bar_v*a_weighting(f) -
Gamma personalizada; ahora el espectro es lineal respecto a la amplitud.
bar_g=2:sono_g=2 -
Ecuación de tlength personalizada:
tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))' -
fontcolor y fontfile personalizados; la nota C se colorea de verde y el resto de azul:
fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf -
Fuente personalizada usando fontconfig:
font='Courier New,Monospace,mono|bold' -
Rango de frecuencia personalizado con eje personalizado mediante un archivo de imagen:
axisfile=myaxis.png:basefreq=40:endfreq=10000
20.23 showcwt
Convierte el audio de entrada en una salida de vídeo que representa el espectro de frecuencias mediante la Transformada Wavelet Continua (Continuous Wavelet Transform) y la wavelet de Morlet.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño de vídeo de la salida. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 640x512.
rate, r
Establece la velocidad de fotogramas de salida. El valor predeterminado es 25.
scale
Establece la escala de frecuencia utilizada. Los valores permitidos son:
linear log bark mel erbs sqrt cbrt qdrt fm
El valor predeterminado es linear.
iscale
Establece la escala de intensidad utilizada. Los valores permitidos son:
linear log sqrt cbrt qdrt
El valor predeterminado es log.
min
Establece la frecuencia mínima que se usará en la salida. El valor predeterminado es 20 Hz.
max
Establece la frecuencia máxima que se usará en la salida. El valor predeterminado es 20000 Hz. El límite superior real de frecuencia depende de la frecuencia de muestreo del audio de entrada, y se aplicará sobre este valor cuando se establezca en un valor mayor que la frecuencia de Nyquist.
imin
Establece la intensidad mínima que se usará en la salida.
imax
Establece la intensidad máxima que se usará en la salida.
logb
Establece la base logarítmica de la intensidad de brillo al asignar los valores de magnitud calculados a valores de píxel. El rango permitido va de 0 a 1. El valor predeterminado es 0.0001.
deviation
Establece la desviación de frecuencia. Los valores inferiores a 1 están más orientados a la frecuencia, mientras que los valores superiores a 1 están más orientados al tiempo. El rango permitido va de 0 a 10. El valor predeterminado es 1.
pps
Establece el número de píxeles de salida por segundo en una fila. El rango permitido va de 1 a 1024. El valor predeterminado es 64.
mode
Establece el modo visual de salida. Los valores permitidos son:
magnitude
Muestra la magnitud.
phase
Muestra únicamente la fase.
magphase
Muestra la combinación de magnitud y fase. La magnitud se asigna al brillo y la fase al color.
channel
Muestra un color distinto para la magnitud de cada canal.
stereo
Muestra un color distinto para la diferencia estéreo.
El valor predeterminado es magnitude.
slide
Establece el método de desplazamiento (slide) de la salida. Los valores permitidos son:
replace scroll frame direction
Establece el método de dirección del modo de desplazamiento de salida. Los valores permitidos son:
lr
Dirección de izquierda a derecha.
rl
Dirección de derecha a izquierda.
ud
Dirección de arriba abajo.
du
Dirección de abajo arriba.
bar
Establece la proporción de la visualización del gráfico de barras respecto al tamaño de la pantalla. El valor predeterminado es 0.
rotation
Establece la rotación de color; debe estar en el rango [-1.0, 1.0]. El valor predeterminado es 0.
20.24 showfreqs
Convierte el audio de entrada en una salida de vídeo, representando el espectro de potencia del audio. La amplitud está en el eje Y, mientras que la frecuencia está en el eje X.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño del vídeo. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 1024x512.
rate, r
Establece la tasa de vídeo. El valor predeterminado es 25.
mode
Establece el modo de visualización. Esto define cómo se representará cada bin de frecuencia.
Acepta los siguientes valores:
‘line’ ‘bar’ ‘dot’
El valor predeterminado es bar.
ascale
Establece la escala de amplitud.
Acepta los siguientes valores:
‘lin’
Escala lineal.
‘sqrt’
Escala de raíz cuadrada.
‘cbrt’
Escala de raíz cúbica.
‘log’
Escala logarítmica.
El valor predeterminado es log.
fscale
Establece la escala de frecuencia.
Acepta los siguientes valores:
‘lin’
Escala lineal.
‘log’
Escala logarítmica.
‘rlog’
Escala logarítmica inversa.
El valor predeterminado es lin.
win_size
Establece el tamaño de la ventana. El rango permitido va de 16 a 65536.
El valor predeterminado es 2048
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hanning.
overlap
Establece el solapamiento de la ventana. En el rango [0, 1]. El valor predeterminado es 1, lo que significa que se elegirá el solapamiento óptimo para la función de ventana seleccionada.
averaging
Establece el promediado temporal. Si se establece en 0, se mostrarán los picos máximos actuales. El valor predeterminado es 1, lo que significa que el promediado temporal está desactivado.
colors
Especifica una lista de colores separados por espacios o por ’|’ que se usarán para dibujar las frecuencias de cada canal. Los colores no reconocidos o ausentes se sustituirán por el color blanco.
cmode
Establece el modo de visualización de canal.
Acepta los siguientes valores:
‘combined’ ‘separate’
El valor predeterminado es combined.
minamp
Establece la amplitud mínima usada en el escalador de amplitud log.
data
Establece el modo de visualización de datos.
Acepta los siguientes valores:
‘magnitude’ ‘phase’ ‘delay’
El valor predeterminado es magnitude.
channels
Establece los canales que se usarán para procesar el audio. De forma predeterminada, se procesan todos.
20.25 showspatial
Convierte el audio de entrada estéreo en una salida de vídeo, representando la relación espacial entre los dos canales.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño del vídeo para la salida. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 512x512.
win_size
Establece el tamaño de la ventana. El rango permitido va de 1024 a 65536. El tamaño predeterminado es 4096.
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hann’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hann.
rate, r
Establece la velocidad de fotogramas de salida.
20.26 showspectrum
Convierte el audio de entrada en una salida de vídeo, representando el espectro de frecuencias del audio.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño del vídeo para la salida. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 640x512.
slide
Especifica cómo debe desplazarse el espectro a lo largo de la ventana.
Acepta los siguientes valores:
‘replace’
las muestras vuelven a empezar por la izquierda cuando alcanzan la derecha
‘scroll’
las muestras se desplazan de derecha a izquierda
‘fullframe’
los fotogramas solo se generan cuando las muestras alcanzan la derecha
‘rscroll’
las muestras se desplazan de izquierda a derecha
‘lreplace’
las muestras vuelven a empezar por la derecha cuando alcanzan la izquierda
El valor predeterminado es replace.
mode
Especifica el modo de visualización.
Acepta los siguientes valores:
‘combined’
todos los canales se muestran en la misma fila
‘separate’
todos los canales se muestran en filas independientes
El valor predeterminado es ‘combined’.
color
Especifica el modo de color de la visualización.
Acepta los siguientes valores:
‘channel’
cada canal se muestra en un color distinto
‘intensity’
cada canal se muestra usando el mismo esquema de color
‘rainbow’
cada canal se muestra usando el esquema de color arcoíris
‘moreland’
cada canal se muestra usando el esquema de color moreland
‘nebulae’
cada canal se muestra usando el esquema de color nebulae
‘fire’
cada canal se muestra usando el esquema de color fire
‘fiery’
cada canal se muestra usando el esquema de color fiery
‘fruit’
cada canal se muestra usando el esquema de color fruit
‘cool’
cada canal se muestra usando el esquema de color cool
‘magma’
cada canal se muestra usando el esquema de color magma
‘green’
cada canal se muestra usando el esquema de color green
‘viridis’
cada canal se muestra usando el esquema de color viridis
‘plasma’
cada canal se muestra usando el esquema de color plasma
‘cividis’
cada canal se muestra usando el esquema de color cividis
‘terrain’
cada canal se muestra usando el esquema de color terrain
El valor predeterminado es ‘channel’.
scale
Especifica la escala usada para calcular los valores de color de intensidad.
Acepta los siguientes valores:
‘lin’
lineal
‘sqrt’
raíz cuadrada, valor predeterminado
‘cbrt’
raíz cúbica
‘log’
logarítmica
‘4thrt’
raíz cuarta
‘5thrt’
raíz quinta
El valor predeterminado es ‘sqrt’.
fscale
Especifica la escala de frecuencia.
Acepta los siguientes valores:
‘lin’
lineal
‘log’
logarítmica
El valor predeterminado es ‘lin’.
saturation
Establece el modificador de saturación para los colores mostrados. Los valores negativos ofrecen un esquema de color alternativo. 0 significa que no hay saturación en absoluto. La saturación debe estar en el rango [-10.0, 10.0]. El valor predeterminado es 1.
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hann’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hann.
orientation
Establece la orientación del eje de tiempo frente al de frecuencia. Puede ser vertical u horizontal. El valor predeterminado es vertical.
overlap
Establece la proporción de solapamiento de la ventana. El valor predeterminado es 0. Cuando el valor es 1, el solapamiento se ajusta al tamaño recomendado para la función de ventana específica que se esté usando actualmente.
gain
Establece la ganancia de escala para calcular los valores de color de intensidad. El valor predeterminado es 1.
data
Establece qué datos mostrar. Puede ser magnitude, el valor predeterminado, o phase, o fase desenrollada: uphase.
rotation
Establece la rotación de color, debe estar en el rango [-1.0, 1.0]. El valor predeterminado es 0.
start
Establece la frecuencia inicial desde la que se mostrará el espectrograma. El valor predeterminado es 0.
stop
Establece la frecuencia final hasta la que se mostrará el espectrograma. El valor predeterminado es 0.
fps
Establece el límite superior de la velocidad de fotogramas. El valor predeterminado es auto, sin límite.
legend
Dibuja los ejes de tiempo y frecuencia, así como las leyendas. Desactivado de forma predeterminada.
drange
Establece el rango dinámico usado para calcular los valores de color de intensidad. El valor predeterminado es 120 dBFS. El rango permitido va de 10 a 200.
limit
Establece el límite superior del volumen de las muestras de audio de entrada en dBFS. El valor predeterminado es 0 dBFS. El rango permitido va de -100 a 100.
opacity
Establece la intensidad de la opacidad al usar un pixel format de salida con componente alfa.
El uso es muy similar al del filtro showwaves; consulte los ejemplos de esa sección.
20.26.1 Ejemplos
-
Ventana grande con escalado de color logarítmico:
showspectrum=s=1280x480:scale=log -
Ejemplo completo de un espectro deslizante y coloreado por canal usando
ffplay:ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1]; [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
20.27 showspectrumpic
Convierte el audio de entrada en un único fotograma de vídeo, representando el espectro de frecuencias del audio.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño del vídeo para la salida. Para la sintaxis de esta opción, consulte la sección (ffmpeg-utils)"Video size" del manual de ffmpeg-utils. El valor predeterminado es 4096x2048.
mode
Especifica el modo de visualización.
Acepta los siguientes valores:
‘combined’
todos los canales se muestran en la misma fila
‘separate’
todos los canales se muestran en filas independientes
El valor predeterminado es ‘combined’.
color
Especifica el modo de color de la visualización.
Acepta los siguientes valores:
‘channel’
cada canal se muestra en un color distinto
‘intensity’
cada canal se muestra usando el mismo esquema de color
‘rainbow’
cada canal se muestra usando el esquema de color arcoíris
‘moreland’
cada canal se muestra usando el esquema de color moreland
‘nebulae’
cada canal se muestra usando el esquema de color nebulae
‘fire’
cada canal se muestra usando el esquema de color fire
‘fiery’
cada canal se muestra usando el esquema de color fiery
‘fruit’
cada canal se muestra usando el esquema de color fruit
‘cool’
cada canal se muestra usando el esquema de color cool
‘magma’
cada canal se muestra usando el esquema de color magma
‘green’
cada canal se muestra usando el esquema de color green
‘viridis’
cada canal se muestra usando el esquema de color viridis
‘plasma’
cada canal se muestra usando el esquema de color plasma
‘cividis’
cada canal se muestra usando el esquema de color cividis
‘terrain’
cada canal se muestra usando el esquema de color terrain
El valor predeterminado es ‘intensity’.
scale
Especifica la escala usada para calcular los valores de color de intensidad.
Acepta los siguientes valores:
‘lin’
lineal
‘sqrt’
raíz cuadrada, valor predeterminado
‘cbrt’
raíz cúbica
‘log’
logarítmica
‘4thrt’
raíz cuarta
‘5thrt’
raíz quinta
El valor predeterminado es ‘log’.
fscale
Especifica la escala de frecuencia.
Acepta los siguientes valores:
‘lin’
lineal
‘log’
logarítmica
El valor predeterminado es ‘lin’.
saturation
Establece el modificador de saturación para los colores mostrados. Los valores negativos ofrecen un esquema de color alternativo. 0 significa que no hay saturación en absoluto. La saturación debe estar en el rango [-10.0, 10.0]. El valor predeterminado es 1.
win_func
Establece la función de ventana.
Acepta los siguientes valores:
‘rect’ ‘bartlett’ ‘hann’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
El valor predeterminado es hann.
orientation
Establece la orientación del eje de tiempo frente al de frecuencia. Puede ser vertical u horizontal. El valor predeterminado es vertical.
gain
Establece la ganancia de escala para calcular los valores de color de intensidad. El valor predeterminado es 1.
legend
Dibuja los ejes de tiempo y frecuencia, así como las leyendas. Activado de forma predeterminada.
rotation
Establece la rotación de color, debe estar en el rango [-1.0, 1.0]. El valor predeterminado es 0.
start
Establece la frecuencia inicial desde la que se mostrará el espectrograma. El valor predeterminado es 0.
stop
Establece la frecuencia final hasta la que se mostrará el espectrograma. El valor predeterminado es 0.
drange
Establece el rango dinámico usado para calcular los valores de color de intensidad. El valor predeterminado es 120 dBFS. El rango permitido va de 10 a 200.
limit
Establece el límite superior del volumen de las muestras de audio de entrada en dBFS. El valor predeterminado es 0 dBFS. El rango permitido va de -100 a 100.
opacity
Establece la intensidad de la opacidad al usar un pixel format de salida con componente alfa.
20.27.1 Ejemplos
- Extrae un espectrograma de audio de toda una pista de audio en una imagen de 1024x1024 usando
ffmpeg:ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
20.28 showvolume
Convierte el volumen del audio de entrada en una salida de vídeo.
El filtro acepta las siguientes opciones:
rate, r
Establece la tasa de vídeo.
b
Establece el ancho del borde. El rango permitido es [0, 5]. El valor predeterminado es 1.
w
Establece el ancho del canal. El rango permitido es [80, 8192]. El valor predeterminado es 400.
h
Establece la altura del canal. El rango permitido es [1, 900]. El valor predeterminado es 20.
f
Establece el desvanecimiento. El rango permitido es [0, 1]. El valor predeterminado es 0.95.
c
Establece la expresión de color del volumen.
La expresión puede usar las siguientes variables:
VOLUME
Volumen máximo actual del canal, en dB.
PEAK
Pico actual.
CHANNEL
Número del canal actual, empezando desde 0.
t
Si se establece, muestra los nombres de los canales. Está habilitado de forma predeterminada.
v
Si se establece, muestra los valores de volumen. Está habilitado de forma predeterminada.
o
Establece la orientación, puede ser horizontal: h o vertical: v. El valor predeterminado es h.
s
Establece el tamaño del paso. El rango permitido es [0, 5]. El valor predeterminado es 0, lo que significa que el paso está desactivado.
p
Establece la opacidad de fondo. El rango permitido es [0, 1]. El valor predeterminado es 0.
m
Establece el modo de medición, puede ser pico: p o RMS: r. El valor predeterminado es p.
ds
Establece la escala de visualización, puede ser lineal: lin o logarítmica: log, el valor predeterminado es lin.
dm
En segundos. Si se establece a un valor > 0., se mostrará una línea con el nivel máximo de los segundos anteriores. Está desactivado de forma predeterminada: 0.
dmc
El color de la línea de nivel máximo. Se usa cuando la opción dm está establecida a un valor > 0. El valor predeterminado es: orange
20.29 showwaves
Convierte la entrada de audio en una salida de vídeo, representando las ondas de las muestras.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño de vídeo para la salida. Para la sintaxis de esta opción, consulte la sección "Video size" del manual de ffmpeg-utils. El valor predeterminado es 600x240.
mode
Establece el modo de visualización.
Los valores disponibles son:
‘point’
Dibuja un punto por cada muestra.
‘line’
Dibuja una línea vertical por cada muestra.
‘p2p’
Dibuja un punto por cada muestra y una línea entre ellos.
‘cline’
Dibuja una línea vertical centrada por cada muestra.
El valor predeterminado es point.
n
Establece el número de muestras que se representan en la misma columna. Un valor mayor reduce la velocidad de fotogramas. Debe ser un entero positivo. Esta opción solo puede establecerse si el valor de rate no se ha especificado explícitamente.
rate, r
Establece la velocidad de fotogramas de salida (aproximada). Esto se hace ajustando la opción n. El valor predeterminado es "25".
split_channels
Establece si los canales deben dibujarse por separado o superpuestos. El valor predeterminado es 0.
colors
Establece los colores separados por ’|’ que se usarán para dibujar cada canal.
scale
Establece la escala de amplitud.
Los valores disponibles son:
‘lin’
Lineal.
‘log’
Logarítmica.
‘sqrt’
Raíz cuadrada.
‘cbrt’
Raíz cúbica.
El valor predeterminado es lineal.
draw
Establece el modo de dibujo. Resulta útil sobre todo cuando n es alto.
Los valores disponibles son:
‘scale’
Escala los valores de píxel de cada muestra dibujada.
‘full’
Dibuja cada muestra directamente.
El valor predeterminado es scale.
20.29.1 Ejemplos
-
Emitir el audio del archivo de entrada y su representación de vídeo correspondiente al mismo tiempo:
amovie=a.mp3,asplit[out0],showwaves[out1] -
Crear una señal sintética y mostrarla con showwaves, forzando una velocidad de fotogramas de 30 por segundo:
aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
20.30 showwavespic
Convierte la entrada de audio en un único fotograma de vídeo, representando las ondas de las muestras.
El filtro acepta las siguientes opciones:
size, s
Especifica el tamaño de vídeo para la salida. Para la sintaxis de esta opción, consulte la sección "Video size" del manual de ffmpeg-utils. El valor predeterminado es 600x240.
split_channels
Establece si los canales deben dibujarse por separado o superpuestos. El valor predeterminado es 0.
colors
Establece los colores separados por ’|’ que se usarán para dibujar cada canal.
scale
Establece la escala de amplitud.
Los valores disponibles son:
‘lin’
Lineal.
‘log’
Logarítmica.
‘sqrt’
Raíz cuadrada.
‘cbrt’
Raíz cúbica.
El valor predeterminado es lineal.
draw
Establece el modo de dibujo.
Los valores disponibles son:
‘scale’
Escala los valores de píxel de cada muestra dibujada.
‘full’
Dibuja cada muestra directamente.
El valor predeterminado es scale.
filter
Establece el modo de filtrado.
Los valores disponibles son:
‘average’
Usa el valor promedio de las muestras para cada muestra dibujada.
‘peak’
Usa el valor de pico de las muestras para cada muestra dibujada.
El valor predeterminado es average.
20.30.1 Ejemplos
- Extraer una representación por canales de la forma de onda de una pista de audio completa en una imagen de 1024x800 usando
ffmpeg:ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
20.31 sidedata, asidedata
Elimina datos secundarios (side data) de fotograma, o selecciona fotogramas en función de ellos.
Este filtro acepta las siguientes opciones:
mode
Establece el modo de operación del filtro.
Puede ser uno de los siguientes:
‘select’
Selecciona todos los fotogramas con datos secundarios de type.
‘delete’
Elimina los datos secundarios de type. Si type no está establecido, elimina todos los datos secundarios del fotograma.
type
Establece el tipo de datos secundarios usado en todos los modos. Debe establecerse para el modo select.
Los valores posibles son:
‘PANSCAN’ ‘A53_CC’ ‘STEREO3D’ ‘MATRIXENCODING’ ‘DOWNMIX_INFO’ ‘REPLAYGAIN’ ‘DISPLAYMATRIX’ ‘AFD’ ‘MOTION_VECTORS’ ‘SKIP_SAMPLES’ ‘AUDIO_SERVICE_TYPE’ ‘MASTERING_DISPLAY_METADATA’ ‘GOP_TIMECODE’ ‘SPHERICAL’ ‘CONTENT_LIGHT_LEVEL’ ‘ICC_PROFILE’ ‘S12M_TIMECODE’ ‘DYNAMIC_HDR_PLUS’ ‘REGIONS_OF_INTEREST’ ‘VIDEO_ENC_PARAMS’ ‘SEI_UNREGISTERED’ ‘FILM_GRAIN_PARAMS’ ‘DETECTION_BOUNDING_BOXES’ ‘DETECTION_BBOXES’ ‘DOVI_RPU_BUFFER’ ‘DOVI_METADATA’ ‘DYNAMIC_HDR_VIVID’ ‘AMBIENT_VIEWING_ENVIRONMENT’ ‘VIDEO_HINT’
20.32 spectrumsynth
Sintetiza audio a partir de 2 espectros de vídeo de entrada; el primer flujo de entrada representa la magnitud a lo largo del tiempo y el segundo representa la fase a lo largo del tiempo. El filtro transformará del dominio de la frecuencia, tal como se muestra en los vídeos, de vuelta al dominio del tiempo, tal como se presenta en la salida de audio.
Este filtro se creó principalmente para invertir las salidas procesadas del filtro showspectrum, pero también puede sintetizar sonido a partir de otros espectrogramas. En ese caso, sin embargo, los resultados serán deficientes si no se dispone de los datos de fase, ya que estos deben recrearse, y normalmente se recrean a partir de ruido aleatorio. Para obtener los mejores resultados, use una salida solo en escala de grises (modo de color channel en el filtro showspectrum) y escala log para el vídeo de magnitud y escala lin para el vídeo de fase. Para generar la fase, en el segundo vídeo, use la opción data. Los vídeos de entrada deben usar generalmente el modo de deslizamiento fullframe, ya que ahorra los recursos necesarios para decodificar el vídeo.
El filtro acepta las siguientes opciones:
sample_rate
Especifica la frecuencia de muestreo del audio de salida; la frecuencia de muestreo del audio a partir del cual se generó el espectro puede ser diferente.
channels
Establece el número de canales representados en los espectros de vídeo de entrada.
scale
Establece la escala usada al generar el espectro de magnitud de entrada. Puede ser lin o log. El valor predeterminado es log.
slide
Establece el modo de deslizamiento usado al generar los espectros de entrada. Puede ser replace, scroll, fullframe o rscroll. El valor predeterminado es fullframe.
win_func
Establece la función de ventana usada para la resíntesis.
overlap
Establece el solapamiento de ventana. En el rango [0, 1]. El valor predeterminado es 1, lo que significa que se elegirá el solapamiento óptimo para la función de ventana seleccionada.
orientation
Establece la orientación de los vídeos de entrada. Puede ser vertical u horizontal. El valor predeterminado es vertical.
20.32.1 Ejemplos
- Primero cree los vídeos de magnitud y fase a partir del audio, suponiendo que el audio es estéreo con una frecuencia de muestreo de 44100, y después resintetice los vídeos de vuelta a audio con spectrumsynth:
ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
20.33 split, asplit
Divide la entrada en varias salidas idénticas.
asplit funciona con entrada de audio, split con vídeo.
El filtro acepta un único parámetro que especifica el número de salidas. Si no se especifica, el valor predeterminado es 2.
20.33.1 Ejemplos
-
Crear dos salidas separadas a partir de la misma entrada:
[in] split [out0][out1] -
Para crear 3 o más salidas, debe especificar el número de salidas, como en:
[in] asplit=3 [out0][out1][out2] -
Crear dos salidas separadas a partir de la misma entrada, una recortada y otra rellenada:
[in] split [splitout1][splitout2]; [splitout1] crop=100:100:0:0 [cropout]; [splitout2] pad=200:200:100:100 [padout]; -
Crear 5 copias del audio de entrada con
ffmpeg:ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
20.34 zmq, azmq
Recibe comandos enviados a través de un cliente libzmq y los reenvía a los filtros del filtergraph.
zmq y azmq funcionan como filtros de paso (pass-through). zmq debe insertarse entre dos filtros de vídeo, azmq entre dos filtros de audio. Ambos pueden enviar mensajes a cualquier tipo de filtro.
Para habilitar estos filtros necesita instalar la biblioteca y las cabeceras de libzmq, y configurar FFmpeg con --enable-libzmq.
Para más información sobre libzmq, consulte: http://www.zeromq.org/
Los filtros zmq y azmq funcionan como un servidor libzmq, que recibe mensajes enviados a través de una interfaz de red definida por la opción bind_address (o su abreviatura "b"). El valor predeterminado de esta opción es tcp://localhost:5555. Puede que quiera modificar este valor según sus necesidades, pero no olvide escapar los signos ’:’ (véase el escapado en filtergraph).
El mensaje recibido debe tener la forma:
TARGET COMMAND [ARG]
TARGET especifica el destino del comando, normalmente el nombre de la clase del filtro o el nombre de una instancia de filtro concreta. El nombre de instancia de filtro predeterminado sigue el patrón ‘Parsed_
COMMAND especifica el nombre del comando para el filtro de destino.
ARG es opcional y especifica la lista de argumentos opcionales para el COMMAND dado.
Al recibirlo, el mensaje se procesa y el comando correspondiente se inyecta en el filtergraph. Según el resultado, el filtro enviará una respuesta al cliente, adoptando el formato:
ERROR_CODE ERROR_REASON
MESSAGE
MESSAGE es opcional.
20.34.1 Ejemplos
Consulte tools/zmqsend para ver un ejemplo de cliente zmq que puede usarse para enviar comandos procesados por estos filtros.
Considere el siguiente filtergraph generado por ffplay. En este ejemplo, el último filtro overlay tiene un nombre de instancia. Todos los demás filtros tendrán nombres de instancia predeterminados.
ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l] overlay [bg+l];
[bg+l][r] overlay@my=x=100 "
Para cambiar el color del lado izquierdo del vídeo, puede usarse el siguiente comando:
echo Parsed_color_0 c yellow | tools/zmqsend
Para cambiar el lado derecho:
echo Parsed_color_1 c pink | tools/zmqsend
Para cambiar la posición del lado derecho:
echo overlay@my x 150 | tools/zmqsend
21 Fuentes multimedia
A continuación se describen las fuentes multimedia disponibles actualmente.
21.1 amovie
Es igual que la fuente movie, salvo que selecciona un flujo de audio de forma predeterminada.
21.2 avsynctest
Genera una prueba de sincronización de audio y vídeo.
El flujo generado muestra periódicamente un fotograma de vídeo en flash y emite un pitido en el audio. Útil para inspeccionar problemas de sincronización A/V.
Acepta las siguientes opciones:
size, s
Establece el tamaño del vídeo de salida. El valor predeterminado es hd720.
framerate, fr
Establece la velocidad de fotogramas del vídeo de salida. El valor predeterminado es 30.
samplerate, sr
Establece la frecuencia de muestreo del audio de salida. El valor predeterminado es 44100.
amplitude, a
Establece la amplitud del pitido de audio de salida. El valor predeterminado es 0.7.
period, p
Establece el periodo del pitido de audio de salida en segundos. El valor predeterminado es 3.
delay, dl
Establece el retardo del flash de vídeo de salida en número de fotogramas. El valor predeterminado es 0.
cycle, c
Activa el ciclo de retardos de vídeo; deshabilitado de forma predeterminada.
duration, d
Establece la duración de salida del flujo. De forma predeterminada, la duración es ilimitada.
fg, bg, ag
Establece el color de primer plano/fondo/adicional.
21.2.1 Comandos
Esta fuente admite algunas de las opciones anteriores como comandos.
21.3 movie
Lee flujos de audio y/o vídeo de un container de película.
Acepta los siguientes parámetros:
filename
El nombre del recurso a leer (no necesariamente un archivo; también puede ser un dispositivo o un flujo accedido mediante algún protocolo).
format_name, f
Especifica el formato asumido para la película a leer, y puede ser el nombre de un container o de un dispositivo de entrada. Si no se especifica, el formato se deduce a partir de movie_name o mediante sondeo.
seek_point, sp
Especifica el punto de búsqueda en segundos. Los fotogramas se emitirán a partir de este punto de búsqueda. El parámetro se evalúa con av_strtod, por lo que el valor numérico puede llevar un sufijo IS. El valor predeterminado es "0".
streams, s
Especifica los flujos a leer. Pueden especificarse varios flujos, separados por "+". La fuente tendrá entonces tantas salidas, en el mismo orden. La sintaxis se explica en la sección "Especificadores de flujo" del manual de ffmpeg. Dos nombres especiales, "dv" y "da", especifican respectivamente el flujo de vídeo y de audio predeterminado (el más adecuado). El valor predeterminado es "dv", o "da" si el filtro se invoca como "amovie".
stream_index, si
Especifica el índice del flujo de vídeo a leer. Si el valor es -1, se seleccionará automáticamente el flujo de vídeo más adecuado. El valor predeterminado es "-1". Obsoleto. Si el filtro se invoca como "amovie", seleccionará audio en lugar de vídeo.
loop
Especifica cuántas veces se lee el flujo en secuencia. Si el valor es 0, el flujo se repetirá infinitamente. El valor predeterminado es "1".
Tenga en cuenta que cuando la película se repite en bucle, las marcas de tiempo de la fuente no cambian, por lo que generará marcas de tiempo no monótonamente crecientes.
discontinuity
Especifica la diferencia de tiempo entre fotogramas por encima de la cual el punto se considera una discontinuidad de marca de tiempo, la cual se elimina ajustando las marcas de tiempo posteriores.
dec_threads
Especifica el número de hilos para la decodificación.
format_opts
Especifica las opciones de formato para el archivo abierto. Las opciones de formato pueden especificarse como una lista de pares clave=valor separados por ’:’. El siguiente ejemplo muestra cómo añadir las opciones protocol_whitelist y protocol_blacklist:
ffplay -f lavfi
"movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
Permite superponer un segundo vídeo sobre la entrada principal de un filtergraph, como se muestra en este grafo:
input -----------> deltapts0 --> overlay --> output
^
|
movie --> scale--> deltapts1 -------+
21.3.1 Ejemplos
-
Omitir 3.2 segundos desde el inicio del archivo AVI in.avi, y superponerlo sobre la entrada etiquetada como "in":
movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out] -
Leer de un dispositivo video4linux2, y superponerlo sobre la entrada etiquetada como "in":
movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out] -
Leer el primer flujo de vídeo y el flujo de audio con id 0x81 de dvd.vob; el vídeo se conecta al pad llamado "video" y el audio se conecta al pad llamado "audio":
movie=dvd.vob:s=v:0+#0x81 [video] [audio]
21.3.2 Comandos
Tanto movie como amovie admiten los siguientes comandos:
seek
Realiza una búsqueda usando "av_seek_frame". La sintaxis es: seek stream_index|timestamp|flags
- stream_index: si stream_index es -1, se selecciona un flujo predeterminado, y timestamp se convierte automáticamente de unidades AV_TIME_BASE a la base de tiempo específica del flujo.
- timestamp: marca de tiempo en unidades AVStream.time_base o, si no se especifica ningún flujo, en unidades AV_TIME_BASE.
- flags: flags que seleccionan la dirección y el modo de búsqueda.
get_duration
Obtiene la duración de la película en unidades AV_TIME_BASE.
22 Véase también
ffmpeg, ffplay, ffprobe, libavfilter
23 Autores
Los desarrolladores de FFmpeg.
Para más información 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