Documentation des filtres FFmpeg
1 Description
Ce document décrit les filtres, sources et sinks fournis par la bibliothèque libavfilter.
2 Introduction au filtrage
Le filtrage dans FFmpeg est activé par la bibliothèque libavfilter.
Dans libavfilter, un filtre peut avoir plusieurs entrées et plusieurs sorties. Pour illustrer les possibilités, on considère le filtergraph suivant.
[main]
input --> split ---------------------> overlay --> output
| ^
|[tmp] [flip]|
+-----> crop --> vflip -------+
Ce filtergraph divise le flux d'entrée en deux flux, puis envoie l'un d'eux à travers le filtre crop et le filtre vflip, avant de le fusionner avec l'autre flux en le superposant par-dessus. Vous pouvez utiliser la commande suivante pour cela :
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
Le résultat est que la moitié supérieure de la vidéo se retrouve reflétée sur la moitié inférieure de la vidéo de sortie.
Les filtres d'une même chaîne linéaire sont séparés par des virgules, tandis que les chaînes linéaires distinctes sont séparées par des points-virgules. Dans notre exemple, crop,vflip forment une chaîne linéaire, tandis que split et overlay se trouvent chacun dans une autre. Les points où les chaînes linéaires se rejoignent sont désignés par des noms placés entre crochets. Dans l'exemple, le filtre split génère deux sorties associées aux étiquettes [main] et [tmp].
Le flux envoyé vers la deuxième sortie de split, étiquetée [tmp], est traité par le filtre crop, qui rogne la moitié inférieure de la vidéo, puis retourné verticalement. Le filtre overlay prend en entrée la première sortie inchangée du filtre split (étiquetée [main]) et superpose, sur sa moitié inférieure, la sortie générée par le filterchain crop,vflip.
Certains filtres prennent en entrée une liste de paramètres : ceux-ci sont indiqués après le nom du filtre et un signe égal, et sont séparés les uns des autres par un deux-points.
Il existe des filtres dits source, qui n'ont pas d'entrée audio/vidéo, et des filtres sink, qui n'ont pas de sortie audio/vidéo.
3 graph2dot
Le programme graph2dot inclus dans le répertoire tools de FFmpeg permet d'analyser une description de filtergraph et de produire la représentation textuelle correspondante dans le langage dot.
Exécutez la commande :
graph2dot -h
pour voir comment utiliser graph2dot.
Vous pouvez ensuite transmettre la description dot au programme dot (de la suite graphviz) pour obtenir une représentation graphique du filtergraph.
Par exemple, la séquence de commandes :
echo GRAPH_DESCRIPTION | \
tools/graph2dot -o graph.tmp && \
dot -Tpng graph.tmp -o graph.png && \
display graph.png
permet de créer et d'afficher une image représentant le graphe décrit par la chaîne GRAPH_DESCRIPTION. Notez que cette chaîne doit constituer un graphe complet et autonome, avec ses entrées et sorties explicitement définies. Par exemple, si votre ligne de commande est de la forme :
ffmpeg -i infile -vf scale=640:360 outfile
votre chaîne GRAPH_DESCRIPTION devra être de la forme :
nullsrc,scale=640:360,nullsink
il se peut également que vous deviez définir les paramètres de nullsrc et ajouter un filtre format afin de simuler un fichier d'entrée particulier.
4 Description d'un filtergraph
Un filtergraph est un graphe orienté de filtres connectés. Il peut contenir des cycles, et plusieurs liens peuvent exister entre une même paire de filtres. Chaque lien possède, d'un côté, un pad d'entrée qui le relie au filtre dont il tire son entrée, et, de l'autre côté, un pad de sortie qui le relie au filtre acceptant sa sortie.
Chaque filtre d'un filtergraph est une instance d'une classe de filtre enregistrée dans l'application, laquelle définit les fonctionnalités et le nombre de pads d'entrée et de sortie du filtre.
Un filtre sans pad d'entrée est appelé "source", et un filtre sans pad de sortie est appelé "sink".
4.1 Syntaxe d'un filtergraph
Un filtergraph possède une représentation textuelle, reconnue par les options -filter/-vf/-af et -filter_complex de ffmpeg, par -vf/-af de ffplay, ainsi que par la fonction avfilter_graph_parse_ptr() définie dans libavfilter/avfilter.h.
Un filterchain est constitué d'une séquence de filtres connectés, chacun relié au précédent dans la séquence. Un filterchain est représenté par une liste de descriptions de filtres séparées par ",".
Un filtergraph est constitué d'une séquence de filterchains. Une séquence de filterchains est représentée par une liste de descriptions de filterchain séparées par ";".
Un filtre est représenté par une chaîne de la forme : [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
filter_name est le nom de la classe de filtre dont le filtre décrit est une instance ; il doit correspondre au nom de l'une des classes de filtres enregistrées dans le programme, éventuellement suivi de "@id". Le nom de la classe de filtre peut ensuite être suivi d'une chaîne "=arguments".
arguments est une chaîne contenant les paramètres utilisés pour initialiser l'instance du filtre. Elle peut prendre l'une des deux formes suivantes :
- Une liste de paires key=value séparées par ’:’.
- Une liste de valeurs séparées par ’:’. Dans ce cas, les clés sont supposées être les noms d'option dans l'ordre où ils sont déclarés. Par exemple, le filtre
fadedéclare trois options dans cet ordre – type, start_frame et nb_frames. La liste de paramètres in:0:30 signifie alors que la valeur in est assignée à l'option type, 0 à start_frame et 30 à nb_frames. - Une liste mêlant des valeurs directes et des paires key=value longues, séparées par ’:’. La valeur directe doit précéder les paires key=value et respecter le même ordre de contraintes que le point précédent. Les paires key=value qui suivent peuvent être définies dans l'ordre souhaité.
Si la valeur de l'option est elle-même une liste d'éléments (par exemple, le filtre format prend une liste de pixel formats), les éléments de la liste sont généralement séparés par ‘|’.
La liste d'arguments peut être placée entre guillemets en utilisant le caractère ‘'’ comme marque de début et de fin, et le caractère ‘\’ pour échapper les caractères à l'intérieur du texte ainsi délimité ; sinon, la chaîne d'arguments est considérée comme terminée dès que le prochain caractère spécial (appartenant à l'ensemble ‘[]=;,’) est rencontré.
Une syntaxe spéciale, implémentée dans l'outil CLI ffmpeg, permet de charger des valeurs d'option depuis des fichiers. Pour cela, on fait précéder le nom de l'option d'une barre oblique ’/’ ; la valeur fournie est alors interprétée comme un chemin depuis lequel la valeur réelle est chargée. Par exemple :
ffmpeg -i <INPUT> -vf drawtext=/text=/tmp/some_text <OUTPUT>
Cela charge le texte à afficher depuis /tmp/some_text. Les utilisateurs de l'API souhaitant mettre en œuvre une fonctionnalité similaire doivent utiliser les fonctions avfilter_graph_segment_*() conjointement avec du code d'E/S personnalisé.
Le nom et les arguments du filtre peuvent être précédés et suivis d'une liste d'étiquettes de lien. Une étiquette de lien permet de nommer un lien et de l'associer à un pad de sortie ou d'entrée d'un filtre. Les étiquettes précédentes in_link_1 ... in_link_N sont associées aux pads d'entrée du filtre, et les étiquettes suivantes out_link_1 ... out_link_M sont associées aux pads de sortie.
Lorsque deux étiquettes de lien portant le même nom sont trouvées dans le filtergraph, un lien est créé entre le pad d'entrée et le pad de sortie correspondants.
Si un pad de sortie n'est pas étiqueté, il est relié par défaut au premier pad d'entrée non étiqueté du filtre suivant dans le filterchain. Par exemple, dans le filterchain suivant :
nullsrc, split[L1], [L2]overlay, nullsink
l'instance du filtre split possède deux pads de sortie, et l'instance du filtre overlay deux pads d'entrée. Le premier pad de sortie de split est étiqueté "L1", le premier pad d'entrée de overlay est étiqueté "L2", et le deuxième pad de sortie de split est relié au deuxième pad d'entrée de overlay, tous deux non étiquetés.
Dans une description de filtre, si l'étiquette d'entrée du premier filtre n'est pas spécifiée, "in" est présumée ; si l'étiquette de sortie du dernier filtre n'est pas spécifiée, "out" est présumée.
Dans un filterchain complet, tous les pads d'entrée et de sortie non étiquetés doivent être connectés. Un filtergraph est considéré valide si tous les pads d'entrée et de sortie de tous les filterchains sont connectés.
Les espaces en début et fin (espaces, tabulations ou sauts de ligne) séparant les tokens dans la spécification du filtergraph sont ignorés. Le filtergraph peut donc être écrit avec des lignes vides et des espaces afin d'améliorer sa lisibilité.
Par exemple, le filtergraph :
testsrc,split[L1],hflip[L2];[L1][L2] hstack
peut être représenté comme suit :
testsrc,
split [L1], hflip [L2];
[L1][L2] hstack
Libavfilter insère automatiquement des filtres scale lorsqu'une conversion de format est nécessaire. Il est possible de spécifier des indicateurs swscale pour ces filtres scale insérés automatiquement en faisant précéder la description du filtergraph de sws_flags=flags;.
Voici une description BNF de la syntaxe du 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 Remarques sur l'échappement dans un filtergraph
La composition d'une description de filtergraph comporte plusieurs niveaux d'échappement. Pour plus d'informations sur la procédure d'échappement employée, voir (ffmpeg-utils)la section "Quoting and escaping" du manuel ffmpeg-utils(1).
Un premier niveau d'échappement concerne le contenu de la valeur de chaque option de filtre, qui peut contenir le caractère spécial : utilisé pour séparer les valeurs, ou l'un des caractères d'échappement \'.
Un second niveau d'échappement concerne la description du filtre dans son ensemble, qui peut contenir les caractères d'échappement \' ou les caractères spéciaux [],; utilisés par la description du filtergraph.
Enfin, lorsque vous spécifiez un filtergraph sur une ligne de commande shell, vous devez effectuer un troisième niveau d'échappement pour les caractères spéciaux du shell qu'il contient.
Par exemple, considérez la chaîne suivante, à intégrer dans la valeur text de la description du filtre drawtext :
this is a 'string': may contain one, or more, special characters
Cette chaîne contient le caractère spécial d'échappement ' et le caractère spécial :, elle doit donc être échappée ainsi :
text=this is a \'string\'\: may contain one, or more, special characters
Un second niveau d'échappement est nécessaire lors de l'intégration de la description du filtre dans une description de filtergraph, afin d'échapper tous les caractères spéciaux du filtergraph. L'exemple ci-dessus devient donc :
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
(notez qu'en plus des caractères spéciaux d'échappement \', la virgule , doit également être échappée).
Enfin, un niveau d'échappement supplémentaire est nécessaire lors de l'écriture de la description du filtergraph dans une commande shell, niveau qui dépend des règles d'échappement du shell utilisé. Par exemple, si l'on suppose que \ est un caractère spécial devant être échappé par un autre \, la chaîne précédente devient finalement :
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
Afin d'éviter un échappement fastidieux lors de l'utilisation d'un outil en ligne de commande acceptant une spécification de filtre en entrée, il est conseillé d'éviter d'inclure directement la spécification du filtre ou des options dans le shell.
Par exemple, dans le cas du filtre drawtext, vous pourriez préférer utiliser l'option textfile à la place de text pour spécifier le texte à afficher.
5 Édition de la timeline
Certains filtres prennent en charge une option générique enable. Pour les filtres prenant en charge l'édition de la timeline, cette option peut être définie sur une expression qui est évaluée avant l'envoi d'une image au filtre. Si l'évaluation est non nulle, le filtre est activé ; sinon, l'image est transmise inchangée au filtre suivant du filtergraph.
L'expression accepte les valeurs suivantes :
‘t’
horodatage exprimé en secondes, NAN si l'horodatage d'entrée est inconnu
‘n’
numéro séquentiel de l'image d'entrée, à partir de 0
‘pos’
position de l'image d'entrée dans le fichier, NAN si inconnue ; obsolète, à ne pas utiliser
‘w’ ‘h’
largeur et hauteur de l'image d'entrée s'il s'agit de vidéo
De plus, ces filtres prennent en charge une commande enable qui peut être utilisée pour redéfinir l'expression.
Comme toute autre option de filtrage, l'option enable suit les mêmes règles.
Par exemple, pour activer un filtre de flou (smartblur) de 10 secondes à 3 minutes, et un filtre curves à partir de 3 secondes :
smartblur = enable='between(t,10,3*60)',
curves = enable='gte(t,3)' : preset=cross_process
Voir ffmpeg -filters pour connaître les filtres prenant en charge la timeline.
6 Modifier les options à l'exécution avec une commande
Certaines options peuvent être modifiées pendant le fonctionnement du filtre à l'aide d'une commande. Ces options sont marquées ’T’ dans la sortie de ffmpeg -h filter=
7 Options des filtres à plusieurs entrées (framesync)
Certains filtres à plusieurs entrées prennent en charge un jeu d'options commun. Ces options ne peuvent être définies que par leur nom, pas avec la notation courte.
eof_action
Action à effectuer lorsque la fin de fichier (EOF) est rencontrée sur l'entrée secondaire ; accepte l'une des valeurs suivantes :
repeat
Répète la dernière image (comportement par défaut).
endall
Termine les deux flux.
pass
Fait passer l'entrée principale sans modification.
shortest
Si définie sur 1, force la sortie à se terminer lorsque l'entrée la plus courte se termine. Valeur par défaut : 0.
repeatlast
Si définie sur 1, force le filtre à prolonger la dernière image des flux secondaires jusqu'à la fin du flux principal. Une valeur de 0 désactive ce comportement. Valeur par défaut : 1.
ts_sync_mode
Degré de rigueur de la synchronisation des flux à partir des horodatages de l'entrée secondaire ; accepte l'une des valeurs suivantes :
default
Image de l'entrée secondaire dont l'horodatage est le plus proche, inférieur ou égal à celui de l'image de l'entrée principale.
nearest
Image de l'entrée secondaire dont l'horodatage est, en valeur absolue, le plus proche de celui de l'image de l'entrée principale.
8 Filtres audio
Lors de la configuration de votre build FFmpeg, vous pouvez désactiver n'importe lequel des filtres existants avec --disable-filters. La sortie de configure indique les filtres audio inclus dans votre build.
Voici la description des filtres audio disponibles à ce jour.
8.1 aap
Applique l'algorithme Affine Projection au premier flux audio en utilisant le second flux audio.
Ce filtre adaptatif sert à estimer un signal audio inconnu à partir de plusieurs échantillons audio d'entrée. L'algorithme Affine projection permet d'arbitrer entre complexité de calcul et vitesse de convergence.
Voici la description des options acceptées.
order
Définit l'ordre du filtre.
projection
Définit l'ordre de projection.
mu
Définit le mu du filtre.
delta
Définit le coefficient d'initialisation de la matrice de covariance interne.
out_mode
Définit les échantillons de sortie du filtre. Accepte les valeurs suivantes :
i
Fait passer la 1re entrée.
d
Fait passer la 2e entrée.
o
Fait passer la différence entre le signal désiré (2e entrée) et l'estimation du signal d'erreur.
n
Fait passer la différence entre le signal d'entrée (1re entrée) et l'estimation du signal d'erreur.
e
Fait passer les échantillons estimés du signal d'erreur.
Valeur par défaut : o.
precision
Définit la précision à utiliser lors du traitement des échantillons.
auto
Choisit automatiquement le sample format interne selon les autres filtres.
float
Utilise toujours un sample format en simple précision flottante.
double
Utilise toujours un sample format en double précision flottante.
8.2 acompressor
Un compresseur sert principalement à réduire la dynamique d'un signal. La musique moderne, en particulier, est le plus souvent compressée avec un ratio élevé afin d'augmenter le volume perçu global. Le but est de capter au maximum l'attention de l'auditeur, de "grossir" le son et d'apporter plus de "puissance" au morceau. Si un signal est trop compressé, le résultat peut sonner terne ou "mort", ou bien commencer à "pomper" (ce qui peut être un effet intéressant, mais peut aussi détruire complètement un morceau). Une compression bien réglée est la clé d'un son professionnel ; c'est le grand art du mixage et du mastering. En raison de la complexité de ses réglages, il peut falloir beaucoup de temps pour trouver la bonne sensation avec ce type d'effet.
La compression consiste à détecter le volume dépassant un niveau choisi threshold, puis à le diviser par le facteur défini avec ratio. Ainsi, si threshold est réglé sur -12 dB et que le signal atteint -6 dB, un ratio de 2:1 donnera un signal à -9 dB. Comme une manipulation exacte du signal provoquerait une distorsion de la forme d'onde, la réduction peut être lissée dans le temps, ce qui se fait en réglant "Attack" et "Release". attack détermine pendant combien de temps le signal doit rester au-dessus du seuil avant qu'une réduction ne se produise, et release définit le temps pendant lequel le signal doit rester sous le seuil pour que la réduction diminue à nouveau. Les signaux plus courts que le temps d'attaque choisi restent inchangés. La réduction globale du signal peut ensuite être compensée avec le réglage makeup. Ainsi, compresser les crêtes d'un signal d'environ 6 dB et relever makeup à ce niveau produit un signal deux fois plus fort que la source. Pour adoucir l'entrée en compression, knee arrondit l'angle vif du seuil sur la plage de décibels choisie.
Ce filtre accepte les options suivantes :
level_in
Définit le gain d'entrée. Valeur par défaut : 1. Plage : de 0.015625 à 64.
mode
Définit le mode de fonctionnement du compresseur. Peut être upward ou downward. Valeur par défaut : downward.
threshold
Si le signal du flux dépasse ce niveau, il influe sur la réduction de gain. Par défaut : 0.125. Plage : de 0.00097563 à 1.
ratio
Définit le ratio de réduction du signal. 1:2 signifie que si le niveau dépasse le seuil de 4 dB, il ne le dépassera plus que de 2 dB après réduction. Valeur par défaut : 2. Plage : de 1 à 20.
attack
Nombre de millisecondes pendant lesquelles le signal doit rester au-dessus du seuil avant que la réduction de gain ne commence. Valeur par défaut : 20. Plage : de 0.01 à 2000.
release
Nombre de millisecondes pendant lesquelles le signal doit rester sous le seuil avant que la réduction ne diminue à nouveau. Valeur par défaut : 250. Plage : de 0.01 à 9000.
makeup
Définit le niveau d'amplification du signal après traitement. Valeur par défaut : 1. Plage : de 1 à 64.
knee
Arrondit l'angle vif autour du seuil pour entrer plus progressivement dans la réduction de gain. Valeur par défaut : 2.82843. Plage : de 1 à 8.
link
Choisit si c'est le niveau average (moyenne entre tous les canaux du flux d'entrée) ou le canal le plus fort (maximum) du flux d'entrée qui influe sur la réduction. Valeur par défaut : average.
detection
Détermine si l'on prend le signal exact avec peak ou un signal RMS avec rms. Valeur par défaut : rms, généralement plus lisse.
mix
Proportion du signal compressé utilisée en sortie. Valeur par défaut : 1. Plage : de 0 à 1.
8.2.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.3 acontrast
Filtre simple de compression/expansion de la dynamique audio.
Ce filtre accepte les options suivantes :
contrast
Définit le contraste. Valeur par défaut : 33. Plage autorisée : de 0 à 100.
8.4 acopy
Copie la source audio d'entrée vers la sortie sans modification. Principalement utile à des fins de test.
8.5 acrossfade
Applique un fondu enchaîné (cross fade) d'un flux audio d'entrée vers un autre. Le fondu enchaîné est appliqué pendant la durée spécifiée, vers la fin du premier flux.
Ce filtre accepte les options suivantes :
inputs, n
Spécifie le nombre d'entrées à traiter en fondu enchaîné. Lorsque plusieurs entrées sont concernées, chacune est concaténée puis enchaînée en fondu successivement, à la manière du filtre concat. Valeur par défaut : 2.
nb_samples, ns
Spécifie le nombre d'échantillons pendant lesquels l'effet de fondu enchaîné doit durer. À la fin de l'effet, le premier flux audio d'entrée est totalement silencieux. Valeur par défaut : 44100.
duration, d
Spécifie la durée de l'effet de fondu enchaîné. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Par défaut, la durée est déterminée par nb_samples. Si elle est définie, cette option est utilisée à la place de nb_samples.
overlap, o
Indique si la fin du premier flux doit chevaucher le début du second. Activée par défaut.
curve1
Définit la courbe de transition du fondu enchaîné pour le premier flux.
curve2
Définit la courbe de transition du fondu enchaîné pour le second flux.
Pour la description des types de courbe disponibles, voir la description du filtre afade.
8.5.1 Exemples
-
Fondu enchaîné d'une entrée vers une autre :
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac -
Fondu enchaîné d'une entrée vers une autre, mais sans chevauchement :
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
Concatène plusieurs entrées avec un fondu enchaîné entre chacune :
ffmpeg -i first.flac -i second.flac -i third.flac -filter_complex acrossfade=n=3 output.flac
8.6 acrossover
Divise un flux audio en plusieurs bandes.
Ce filtre divise le flux audio en deux plages de fréquences ou plus. Additionner à nouveau tous les flux redonne une sortie plate.
Ce filtre accepte les options suivantes :
split
Définit les fréquences de division. Elles doivent être positives et croissantes.
order
Définit l'ordre du filtre pour chaque division de bande. Ceci contrôle le roll-off du filtre, c'est-à-dire la pente de sa fonction de transfert. Valeurs disponibles :
‘2nd’
12 dB par octave.
‘4th’
24 dB par octave.
‘6th’
36 dB par octave.
‘8th’
48 dB par octave.
‘10th’
60 dB par octave.
‘12th’
72 dB par octave.
‘14th’
84 dB par octave.
‘16th’
96 dB par octave.
‘18th’
108 dB par octave.
‘20th’
120 dB par octave.
Valeur par défaut : 4th.
level
Définit le niveau de gain d'entrée. Plage autorisée : de 0 à 1. Valeur par défaut : 1.
gains
Définit le gain de sortie pour chaque bande. Valeur par défaut : 1 pour toutes les bandes.
precision
Définit la précision à utiliser lors du traitement des échantillons.
auto
Choisit automatiquement le sample format interne selon les autres filtres.
float
Utilise toujours un sample format en simple précision flottante.
double
Utilise toujours un sample format en double précision flottante.
Valeur par défaut : auto.
8.6.1 Exemples
-
Divise le flux audio d'entrée en deux bandes (basse et haute) avec une fréquence de division de 1500 Hz, chaque bande étant dans un flux séparé :
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav -
Identique à l'exemple précédent, mais avec un ordre de filtre plus élevé :
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav -
Identique à l'exemple précédent, mais avec une bande médiane supplémentaire (fréquences entre 1500 et 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
Réduit la résolution en bits du signal audio.
Ce filtre est un bit crusher aux fonctionnalités étendues. Un bit crusher sert à réduire de façon audible le nombre de bits sur lesquels un signal audio est échantillonné. Cela ne change en rien la profondeur de bits réelle, cela ne fait que produire l'effet. Un contenu à la profondeur de bits réduite sonne plus dur et plus "numérique". Ce filtre peut même arrondir vers des valeurs continues plutôt que vers des profondeurs de bits discrètes. Il dispose en outre d'un décalage D/C, qui entraîne un écrasement différent entre la moitié basse et la moitié haute du signal. Un réglage anti-aliasing permet de produire des écrasements au son "plus doux".
Une autre particularité de ce filtre est le mode logarithmique. Ce réglage fait passer les distances entre les bits d'une échelle linéaire à une échelle logarithmique. Le résultat est un écrasement au son beaucoup plus "naturel", qui par exemple ne coupe pas les signaux faibles. L'oreille humaine ayant une perception logarithmique, ce type d'écrasement est bien plus agréable. L'écrasement logarithmique peut lui aussi bénéficier de l'anti-aliasing.
Ce filtre accepte les options suivantes :
level_in
Définit le niveau d'entrée.
level_out
Définit le niveau de sortie.
bits
Définit la réduction de bits.
mix
Définit le taux de mixage.
mode
Peut être linéaire : lin, ou logarithmique : log.
dc
Définit le DC.
aa
Définit l'anti-aliasing.
samples
Définit la réduction d'échantillons.
lfo
Active le LFO. Désactivé par défaut.
lforange
Définit la plage du LFO.
lforate
Définit la fréquence du LFO.
8.7.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.8 acue
Retarde le filtrage audio jusqu'à un horodatage d'horloge murale (wallclock) donné. Voir le filtre cue.
8.9 adeclick
Supprime le bruit impulsif du signal audio d'entrée.
Les échantillons détectés comme bruit impulsif sont remplacés par des échantillons interpolés à l'aide d'une modélisation autorégressive.
window, w
Définit la taille de la fenêtre, en millisecondes. Plage autorisée : de 10 à 100. Valeur par défaut : 55 millisecondes. Ceci définit la taille de la fenêtre traitée en une seule fois.
overlap, o
Définit le chevauchement de fenêtre, en pourcentage de la taille de fenêtre. Plage autorisée : de 50 à 95. Valeur par défaut : 75 pour cent. Une valeur très élevée améliore la suppression du bruit impulsif, mais ralentit considérablement l'ensemble du traitement.
arorder, a
Définit l'ordre d'autorégression, en pourcentage de la taille de fenêtre. Plage autorisée : de 0 à 25. Valeur par défaut : 2 pour cent. Cette option contrôle également la qualité des échantillons interpolés à partir des bons échantillons voisins.
threshold, t
Définit la valeur de seuil. Plage autorisée : de 1 à 100. Valeur par défaut : 2. Ceci contrôle l'intensité du bruit impulsif à supprimer. Plus la valeur est basse, plus d'échantillons sont détectés comme bruit impulsif.
burst, b
Définit la fusion de rafales (burst), en pourcentage de la taille de fenêtre. Plage autorisée : de 0 à 10. Valeur par défaut : 2. Si deux échantillons détectés comme bruit sont espacés de moins que cette valeur, tout échantillon situé entre eux est également détecté comme bruit.
method, m
Définit la méthode de chevauchement.
Accepte les valeurs suivantes :
add, a
Sélectionne la méthode overlap-add. Avec cette méthode, même les échantillons non interpolés sont légèrement modifiés.
save, s
Sélectionne la méthode overlap-save. Les échantillons non interpolés restent inchangés.
Valeur par défaut : a.
8.10 adeclip
Supprime les échantillons écrêtés du signal audio d'entrée.
Les échantillons détectés comme écrêtés sont remplacés par des échantillons interpolés à l'aide d'une modélisation autorégressive.
window, w
Définit la taille de la fenêtre, en millisecondes. Plage autorisée : de 10 à 100. Valeur par défaut : 55 millisecondes. Ceci définit la taille de la fenêtre traitée en une seule fois.
overlap, o
Définit le chevauchement de fenêtre, en pourcentage de la taille de fenêtre. Plage autorisée : de 50 à 95. Valeur par défaut : 75 pour cent.
arorder, a
Définit l'ordre d'autorégression, en pourcentage de la taille de fenêtre. Plage autorisée : de 0 à 25. Valeur par défaut : 8 pour cent. Cette option contrôle également la qualité des échantillons interpolés à partir des bons échantillons voisins.
threshold, t
Définit la valeur de seuil. Plage autorisée : de 1 à 100. Valeur par défaut : 10. Des valeurs plus élevées rendent la détection d'écrêtage moins agressive.
hsize, n
Définit la taille de l'histogramme utilisé pour détecter les écrêtages. Plage autorisée : de 100 à 9999. Valeur par défaut : 1000. Des valeurs plus élevées rendent la détection d'écrêtage moins agressive.
method, m
Définit la méthode de chevauchement.
Accepte les valeurs suivantes :
add, a
Sélectionne la méthode overlap-add. Avec cette méthode, même les échantillons non interpolés sont légèrement modifiés.
save, s
Sélectionne la méthode overlap-save. Les échantillons non interpolés restent inchangés.
Valeur par défaut : a.
8.11 adecorrelate
Applique une décorrélation au flux audio d'entrée.
Ce filtre accepte les options suivantes :
stages
Définit le nombre d'étages de décorrélation du filtrage. Plage autorisée : de 1 à 16. Valeur par défaut : 6.
seed
Définit la graine aléatoire utilisée pour fixer le délai en échantillons entre les canaux.
8.12 adelay
Retarde un ou plusieurs canaux audio.
Les échantillons du canal retardé sont remplis de silence.
Ce filtre accepte l'option suivante :
delays
Définit la liste des délais en millisecondes pour chaque canal, séparés par ’|’. Les délais inutilisés sont ignorés silencieusement. Si le nombre de délais indiqués est inférieur au nombre de canaux, les canaux restants ne sont pas retardés. Pour retarder d'un nombre exact d'échantillons, ajoutez ’S’ au nombre. Pour retarder en secondes à la place, ajoutez ’s’ au nombre.
all
Utilise le dernier délai défini pour tous les canaux restants. Désactivée par défaut. Si elle est activée, cette option modifie la façon dont l'option delays est interprétée.
8.12.1 Exemples
-
Retarde le premier canal de 1.5 seconde, le troisième canal de 0.5 seconde, et laisse le deuxième canal (ainsi que tout autre canal éventuellement présent) inchangé.
adelay=1500|0|500 -
Retarde le deuxième canal de 500 échantillons, le troisième canal de 700 échantillons, et laisse le premier canal (ainsi que tout autre canal éventuellement présent) inchangé.
adelay=0|500S|700S -
Retarde tous les canaux du même nombre d'échantillons :
adelay=delays=64S:all=1
8.13 adenorm
Corrige les denormals du signal audio en ajoutant un bruit de très faible niveau.
Ce filtre doit être placé avant tout filtre susceptible de produire des denormals.
Voici la description des paramètres acceptés.
level
Définit le niveau du bruit ajouté, en dB. Valeur par défaut : -351. Plage autorisée : de -451 à -90.
type
Définit le type de bruit ajouté.
dc
Ajoute un signal DC.
ac
Ajoute un signal AC.
square
Ajoute un signal carré.
pulse
Ajoute un signal en impulsions.
Valeur par défaut : dc.
8.13.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.14 aderivative, aintegral
Calcule la dérivée/l'intégrale du flux audio.
L'application des deux filtres l'un après l'autre restitue l'audio d'origine.
8.15 adrc
Applique un filtre de contrôleur de plage dynamique spectrale au flux audio d'entrée.
Voici la description des options acceptées.
transfer
Définit l'expression de transfert.
L'expression peut contenir les constantes suivantes :
ch
numéro du canal actuel
sn
numéro d'échantillon actuel
nb_channels
nombre de canaux
t
horodatage exprimé en secondes
sr
fréquence d'échantillonnage
p
valeur de puissance de la fréquence actuelle, en dB
f
fréquence actuelle en Hz
La valeur par défaut est p.
attack
Définit l'attaque en millisecondes. La valeur par défaut est 50 millisecondes. La plage autorisée va de 1 à 1000 millisecondes.
release
Définit le relâchement en millisecondes. La valeur par défaut est 100 millisecondes. La plage autorisée va de 5 à 2000 millisecondes.
channels
Définit les canaux à filtrer. Par défaut, tous les canaux (all) du flux audio sont filtrés.
8.15.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.15.2 Exemples
-
Applique une compression spectrale à toutes les fréquences avec un seuil de -50 dB et un ratio de 1:6 :
adrc=transfer='if(gt(p,-50),-50+(p-(-50))/6,p)':attack=50:release=100 -
Comme ci-dessus, mais avec un ratio de 1:2 et en ne filtrant que le canal frontal central :
adrc=transfer='if(gt(p,-50),-50+(p-(-50))/2,p)':attack=50:release=100:channels=FC -
Applique une porte de bruit spectrale à toutes les fréquences avec un seuil de -85 dB, une attaque courte et un relâchement court :
adrc=transfer='if(lte(p,-85),p-800,p)':attack=1:release=5 -
Applique une expansion spectrale à toutes les fréquences avec un seuil de -10 dB et un ratio de 1:2 :
adrc=transfer='if(lt(p,-10),-10+(p-(-10))*2,p)':attack=50:release=100 -
Applique un limiteur à -60 dB maximum sur toutes les fréquences, avec une attaque de 2 ms et un relâchement de 10 ms :
adrc=transfer='min(p,-60)':attack=2:release=10
8.16 adynamicequalizer
Applique une égalisation dynamique au flux audio d'entrée.
Voici la description des options acceptées.
threshold
Définit le seuil de détection utilisé pour déclencher l'égalisation. La détection du seuil utilise un filtre de détection. La valeur par défaut est 0. La plage autorisée va de 0 à 100.
dfrequency
Définit la fréquence de détection en Hz utilisée par le filtre de détection qui déclenche l'égalisation. La valeur par défaut est 1000 Hz. La plage autorisée va de 2 à 1000000 Hz.
dqfactor
Définit le facteur de résonance de détection du filtre de détection qui déclenche l'égalisation. La valeur par défaut est 1. La plage autorisée va de 0.001 à 1000.
tfrequency
Définit la fréquence cible du filtre d'égalisation. La valeur par défaut est 1000 Hz. La plage autorisée va de 2 à 1000000 Hz.
tqfactor
Définit le facteur de résonance cible du filtre d'égalisation cible. La valeur par défaut est 1. La plage autorisée va de 0.001 à 1000.
attack
Définit le nombre de millisecondes pendant lequel le signal de détection doit dépasser le seuil de détection avant que l'égalisation ne commence. La valeur par défaut est 20. La plage autorisée va de 1 à 2000.
release
Définit le nombre de millisecondes pendant lequel le signal de détection doit passer sous le seuil de détection avant que l'égalisation ne se termine. La valeur par défaut est 200. La plage autorisée va de 1 à 2000.
ratio
Définit le ratio selon lequel le gain d'égalisation est augmenté. La valeur par défaut est 1. La plage autorisée va de 0 à 30.
makeup
Définit le décalage de compensation (makeup) selon lequel le gain d'égalisation est augmenté. La valeur par défaut est 0. La plage autorisée va de 0 à 100.
range
Définit le niveau maximal autorisé de coupure/accentuation. La valeur par défaut est 50. La plage autorisée va de 1 à 200.
mode
Définit le mode de fonctionnement du filtre, qui peut être l'une des valeurs suivantes :
‘listen’
Ne produit en sortie que le signal de détection isolé.
‘cutbelow’
Coupe les fréquences en dessous du seuil de détection.
‘cutabove’
Coupe les fréquences au-dessus du seuil de détection.
‘boostbelow’
Accentue les fréquences en dessous du seuil de détection.
‘boostabove’
Accentue les fréquences au-dessus du seuil de détection.
Le mode par défaut est ‘cutbelow’.
dftype
Définit le type de filtre de détection, qui peut être l'une des valeurs suivantes :
‘bandpass’ ‘lowpass’ ‘highpass’ ‘peak’
Le type par défaut est ‘bandpass’.
tftype
Définit le type de filtre cible, qui peut être l'une des valeurs suivantes :
‘bell’ ‘lowshelf’ ‘highshelf’
Le type par défaut est ‘bell’.
auto
Recueille automatiquement le seuil à partir du filtre de détection. Elle est ‘disabled’ par défaut. Cette option est utile pour détecter le seuil sur une certaine plage temporelle du flux audio d'entrée ; dans ce cas, la valeur de l'option est modifiée à l'exécution.
Les valeurs disponibles sont :
‘disabled’
Désactive l'utilisation de la valeur de seuil recueillie automatiquement.
‘off’
Arrête le prélèvement de la valeur de seuil.
‘on’
Démarre le prélèvement de la valeur de seuil.
‘adaptive’
Prélève la valeur de seuil de manière adaptative, en calculant l'entropie d'une fenêtre glissante.
precision
Définit la précision à utiliser lors du traitement des échantillons.
auto
Sélectionne automatiquement le sample format interne en fonction des autres filtres.
float
Utilise toujours un sample format en simple précision flottante.
double
Utilise toujours un sample format en double précision flottante.
8.16.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.17 adynamicsmooth
Applique un lissage dynamique au flux audio d'entrée.
Voici la description des options acceptées.
sensitivity
Définit le niveau de sensibilité aux fluctuations de fréquence. La valeur par défaut est 2. La plage autorisée va de 0 à 1e+06.
basefreq
Définit une fréquence de base pour le lissage. La valeur par défaut est 22050. La plage autorisée va de 2 à 1e+06.
8.17.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.18 aecho
Applique un écho à l'audio d'entrée.
Les échos sont le son réfléchi et peuvent survenir naturellement dans les montagnes (et parfois dans de grands bâtiments) lorsqu'on parle ou qu'on crie ; les effets d'écho numériques imitent ce comportement et servent souvent à étoffer le son d'un instrument seul ou d'une voix. L'écart de temps entre le signal d'origine et la réflexion est le delay, et le niveau sonore du signal réfléchi est le decay. Plusieurs échos peuvent avoir des retards et des atténuations différents.
Voici la description des paramètres acceptés.
in_gain
Définit le gain d'entrée du signal réfléchi. La valeur par défaut est 0.6.
out_gain
Définit le gain de sortie du signal réfléchi. La valeur par défaut est 0.3.
delays
Définit la liste des intervalles de temps en millisecondes entre le signal d'origine et les réflexions, séparés par ’|’. La plage autorisée pour chaque delay est (0 - 90000.0]. La valeur par défaut est 1000.
decays
Définit la liste des niveaux sonores des signaux réfléchis, séparés par ’|’. La plage autorisée pour chaque decay est (0 - 1.0]. La valeur par défaut est 0.5.
8.18.1 Exemples
-
Donne l'impression qu'il y a deux fois plus d'instruments que ceux qui jouent réellement :
aecho=0.8:0.88:60:0.4 -
Si le délai est très court, cela ressemble à un robot (métallique) jouant de la musique :
aecho=0.8:0.88:6:0.4 -
Un délai plus long évoque un concert en plein air dans les montagnes :
aecho=0.8:0.9:1000:0.3 -
Comme ci-dessus, mais avec une montagne de plus :
aecho=0.8:0.9:1000|1800:0.3|0.25
8.19 aemphasis
Le filtre d'emphase audio crée ou restaure des éléments issus directement de disques vinyles ou de CD à emphase, à l'aide de courbes de filtrage différentes. Par exemple, pour enregistrer de la musique sur vinyle, le signal doit d'abord être modifié par un filtre afin de compenser les inconvénients de ce support d'enregistrement. Lors de la lecture, le filtre inverse doit être appliqué pour corriger la distorsion de la réponse en fréquence.
Le filtre accepte les options suivantes :
level_in
Définit le gain d'entrée.
level_out
Définit le gain de sortie.
mode
Définit le mode du filtre. Pour restaurer des éléments, utilisez le mode reproduction ; sinon, utilisez le mode production. Le mode par défaut est reproduction.
type
Définit le type de filtre. Sélectionne le support. Peut être l'une des valeurs suivantes :
col
Sélectionne Columbia.
emi
Sélectionne EMI.
bsi
Sélectionne BSI (78RPM).
riaa
Sélectionne RIAA.
cd
Sélectionne Compact Disc (CD).
50fm
Sélectionne 50µs (FM).
75fm
Sélectionne 75µs (FM).
50kf
Sélectionne 50µs (FM-KF).
75kf
Sélectionne 75µs (FM-KF).
8.19.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.20 aeval
Modifie un signal audio selon les expressions spécifiées.
Ce filtre accepte une ou plusieurs expressions (une par canal), qui sont évaluées et utilisées pour modifier le signal audio correspondant.
Il accepte les paramètres suivants :
exprs
Définit la liste des expressions séparées par ’|’ pour chaque canal. Si le nombre de canaux d'entrée est supérieur au nombre d'expressions, la dernière expression spécifiée est utilisée pour les canaux de sortie restants.
channel_layout, c
Définit la disposition des canaux de sortie. Si elle n'est pas spécifiée, la disposition des canaux est déterminée par le nombre d'expressions. Si elle est définie à ‘same’, la même disposition des canaux que celle de l'entrée est utilisée par défaut.
Chaque expression de exprs peut contenir les constantes et fonctions suivantes :
ch
numéro de canal de l'expression actuelle
n
numéro de l'échantillon évalué, à partir de 0
s
fréquence d'échantillonnage
t
instant de l'échantillon évalué, exprimé en secondes
nb_in_channels nb_out_channels
nombre de canaux d'entrée et de sortie
val(CH)
la valeur du canal d'entrée numéro CH
Remarque : ce filtre est lent. Pour un traitement plus rapide, utilisez un filtre dédié.
8.20.1 Exemples
-
Volume réduit de moitié :
aeval=val(ch)/2:c=same -
Inverse la phase du second canal :
aeval=val(0)|-val(1)
8.21 aexciter
Un exciteur sert à produire des sons aigus absents du signal d'origine. Cela se fait en créant des distorsions harmoniques du signal, limitées en plage et ajoutées au signal d'origine. Un exciteur relève le haut du spectre d'un signal audio sans se contenter, comme le ferait un égaliseur, d'augmenter les fréquences hautes, afin de créer un son plus "précis" ou "brillant".
Le filtre accepte les options suivantes :
level_in
Définit le niveau d'entrée avant le traitement du signal. La plage autorisée va de 0 à 64. La valeur par défaut est 1.
level_out
Définit le niveau de sortie après le traitement du signal. La plage autorisée va de 0 à 64. La valeur par défaut est 1.
amount
Définit la quantité d'harmoniques ajoutée au signal d'origine. La plage autorisée va de 0 à 64. La valeur par défaut est 1.
drive
Définit la quantité d'harmoniques nouvellement créées. La plage autorisée va de 0.1 à 10. La valeur par défaut est 8.5.
blend
Définit l'octave des harmoniques nouvellement créées. La plage autorisée va de -10 à 10. La valeur par défaut est 0.
freq
Définit la limite de fréquence basse pour la production d'harmoniques, en Hz. La plage autorisée va de 2000 à 12000 Hz. La valeur par défaut est 7500 Hz.
ceil
Définit la limite de fréquence haute pour la production d'harmoniques. La plage autorisée va de 9999 à 20000 Hz. Si la valeur est inférieure à 10000 Hz, aucune limite n'est appliquée.
listen
Coupe le signal d'origine et ne produit en sortie que les harmoniques ajoutées. Elle est désactivée par défaut.
8.21.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.22 afade
Applique un effet de fondu (ouverture/fermeture) à l'audio d'entrée.
Voici la description des paramètres acceptés.
type, t
Spécifie le type d'effet : in pour un fondu à l'ouverture, ou out pour un fondu à la fermeture. La valeur par défaut est in.
start_sample, ss
Spécifie le numéro de l'échantillon de départ à partir duquel appliquer l'effet de fondu. La valeur par défaut est 0.
nb_samples, ns
Spécifie le nombre d'échantillons pendant lequel l'effet de fondu doit durer. À la fin du fondu à l'ouverture, l'audio de sortie a le même volume que l'audio d'entrée ; à la fin de la transition de fondu à la fermeture, l'audio de sortie est silencieux. La valeur par défaut est 44100.
start_time, st
Spécifie l'heure de début de l'effet de fondu. La valeur par défaut est 0. La valeur doit être spécifiée comme une durée, voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Si elle est définie, cette option est utilisée à la place de start_sample.
duration, d
Spécifie la durée de l'effet de fondu. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. À la fin du fondu à l'ouverture, l'audio de sortie a le même volume que l'audio d'entrée ; à la fin de la transition de fondu à la fermeture, l'audio de sortie est silencieux. Par défaut, la durée est déterminée par nb_samples. Si elle est définie, cette option est utilisée à la place de nb_samples.
curve
Définit la courbe de la transition de fondu.
Les valeurs acceptées sont les suivantes :
tri
sélectionne une pente triangulaire linéaire (par défaut)
qsin
sélectionne un quart d'onde sinusoïdale
hsin
sélectionne une demi-onde sinusoïdale
esin
sélectionne une onde sinusoïdale exponentielle
log
sélectionne une courbe logarithmique
ipar
sélectionne une parabole inversée
qua
sélectionne une courbe quadratique
cub
sélectionne une courbe cubique
squ
sélectionne une racine carrée
cbr
sélectionne une racine cubique
par
sélectionne une parabole
exp
sélectionne une courbe exponentielle
iqsin
sélectionne un quart d'onde sinusoïdale inversée
ihsin
sélectionne une demi-onde sinusoïdale inversée
dese
sélectionne une assise à double exponentielle
desi
sélectionne une sigmoïde à double exponentielle
losi
sélectionne une sigmoïde logistique
sinc
sélectionne une fonction sinus cardinal
isinc
sélectionne une fonction sinus cardinal inversée
quat
sélectionne une courbe quartique
quatr
sélectionne une racine quartique
qsin2
sélectionne un quart d'onde sinusoïdale au carré
hsin2
sélectionne une demi-onde sinusoïdale au carré
nofade
aucun fondu appliqué
silence
Définit le gain initial pour le fondu à l'ouverture ou le gain final pour le fondu à la fermeture. La valeur par défaut est 0.0.
unity
Définit le gain initial pour le fondu à la fermeture ou le gain final pour le fondu à l'ouverture. La valeur par défaut est 1.0.
8.22.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.22.2 Exemples
-
Fondu en entrée sur les 15 premières secondes du son :
afade=t=in:ss=0:d=15 -
Fondu en sortie sur les 25 dernières secondes d'un son de 900 secondes :
afade=t=out:st=875:d=25
8.23 afftdn
Débruite les échantillons audio avec la FFT.
Voici la description des paramètres acceptés.
noise_reduction, nr
Définit la réduction de bruit en dB ; la plage autorisée va de 0.01 à 97. La valeur par défaut est 12 dB.
noise_floor, nf
Définit le seuil de bruit en dB ; la plage autorisée va de -80 à -20. La valeur par défaut est -50 dB.
noise_type, nt
Définit le type de bruit.
Les valeurs acceptées sont les suivantes :
white, w
Sélectionne le bruit blanc.
vinyl, v
Sélectionne le bruit de vinyle.
shellac, s
Sélectionne le bruit de gomme-laque.
custom, c
Sélectionne un bruit personnalisé, défini par l'option bn.
La valeur par défaut est le bruit blanc.
band_noise, bn
Définit le profil de bruit personnalisé pour chacune des 15 bandes. Les bandes sont séparées par ’ ’ ou ’|’.
residual_floor, rf
Définit le seuil résiduel en dB ; la plage autorisée va de -80 à -20. La valeur par défaut est -38 dB.
track_noise, tn
Active le suivi du seuil de bruit. Elle est désactivée par défaut. Lorsqu'elle est activée, le seuil de bruit est ajusté automatiquement.
track_residual, tr
Active le suivi résiduel. Elle est désactivée par défaut.
output_mode, om
Définit le mode de sortie.
Les valeurs acceptées sont les suivantes :
input, i
Laisse passer l'entrée inchangée.
output, o
Laisse passer le signal débruité.
noise, n
Ne laisse passer que le bruit.
La valeur par défaut est output.
adaptivity, ad
Définit le facteur d'adaptabilité, qui détermine la vitesse d'adaptation des ajustements de gain pour chaque bin de fréquence. La valeur 0 active une adaptation instantanée, tandis que des valeurs plus élevées réagissent beaucoup plus lentement. La plage autorisée va de 0 à 1. La valeur par défaut est 0.5.
floor_offset, fo
Définit le facteur de décalage du seuil de bruit. Cette option sert à ajuster le décalage appliqué au seuil de bruit mesuré. Elle n'a d'effet que lorsque le suivi du seuil de bruit est activé. La plage autorisée va de -2.0 à 2.0. La valeur par défaut est 1.0.
noise_link, nl
Définit le lien de bruit utilisé pour l'audio multicanal.
Les valeurs acceptées sont les suivantes :
none
Utilise le seuil de bruit du canal sans le modifier.
min
Utilise le seuil de bruit minimal mesuré sur tous les canaux.
max
Utilise le seuil de bruit maximal mesuré sur tous les canaux.
average
Utilise le seuil de bruit moyen mesuré sur tous les canaux.
La valeur par défaut est min.
band_multiplier, bm
Définit le facteur multiplicateur de bande, qui détermine sur combien de cases de fréquence chaque bande est répartie. La plage autorisée va de 0.2 à 5. La valeur par défaut est 1.25.
sample_noise, sn
Active ou désactive la capture et la mesure du profil de bruit à partir de l'audio d'entrée.
Les valeurs acceptées sont les suivantes :
start, begin
Démarre la capture de l'échantillon de bruit.
stop, end
Arrête la capture de l'échantillon de bruit et mesure un nouveau profil de bande de bruit.
La valeur par défaut est none.
gain_smooth, gs
Définit le rayon spatial de lissage du gain, utilisé pour lisser les gains appliqués à chaque case de fréquence. Utile pour réduire les artefacts aléatoires de bruit musical. Des valeurs plus élevées augmentent le lissage des gains. La plage autorisée va de 0 à 50. La valeur par défaut est 0.
8.23.1 Commandes
Ce filtre prend en charge certaines des options mentionnées ci-dessus en tant que commandes.
8.23.2 Exemples
-
Réduit le bruit blanc de 10 dB et utilise un seuil de bruit précédemment mesuré de -40 dB :
afftdn=nr=10:nf=-40 -
Réduit le bruit blanc de 10 dB, définit également un seuil de bruit initial de -80 dB et active le suivi automatique du seuil de bruit afin qu'il évolue progressivement pendant le traitement :
afftdn=nr=10:nf=-80:tn=1 -
Réduit le bruit de 20 dB en utilisant un seuil de bruit de -40 dB, et utilise des commandes pour capturer le profil de bruit des 0.4 premières secondes de l'audio d'entrée :
asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
8.24 afftfilt
Applique des expressions arbitraires aux échantillons dans le domaine fréquentiel.
real
Définit l'expression réelle du domaine fréquentiel pour chaque canal séparé par ’|’. La valeur par défaut est "re". Si le nombre de canaux d'entrée est supérieur au nombre d'expressions, la dernière expression indiquée est utilisée pour les canaux de sortie restants.
imag
Définit l'expression imaginaire du domaine fréquentiel pour chaque canal séparé par ’|’. La valeur par défaut est "im".
Chaque expression de real et imag peut contenir les constantes et fonctions suivantes :
sr
fréquence d'échantillonnage
b
numéro du bin de fréquence actuel
nb
nombre de bins disponibles
ch
numéro de canal de l'expression actuelle
chs
nombre de canaux
pts
pts de l'image actuelle
re
partie réelle actuelle du bin de fréquence du canal actuel
im
partie imaginaire actuelle du bin de fréquence du canal actuel
real(b, ch)
Renvoie la valeur de la partie réelle du bin de fréquence à l'emplacement (bin,channel)
imag(b, ch)
Renvoie la valeur de la partie imaginaire du bin de fréquence à l'emplacement (bin,channel)
win_size
Définit la taille de la fenêtre. La plage autorisée va de 16 à 131072. La valeur par défaut est 4096
win_func
Définit la fonction de fenêtrage.
Elle accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hann, hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hann.
overlap
Définit le chevauchement de la fenêtre. Si la valeur est 1, le chevauchement recommandé pour la fonction de fenêtrage sélectionnée est utilisé. La valeur par défaut est 0.75.
8.24.1 Exemples
-
Ne laisse presque que les basses fréquences dans l'audio :
afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'" -
Applique un effet de robotisation :
afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75" -
Applique un effet de chuchotement :
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" -
Applique un décalage de phase :
afftfilt="real=re*cos(1)-im*sin(1):imag=re*sin(1)+im*cos(1)"
8.25 afir
Applique un filtre à réponse impulsionnelle finie (FIR) arbitraire.
Ce filtre est conçu pour appliquer de longs filtres FIR, jusqu'à 60 secondes.
Il peut être utilisé comme composant pour les filtres de répartition de fréquences numériques, l'égalisation de pièce, l'annulation de diaphonie, la synthèse de champ d'ondes, l'auralisation, l'ambiophonie, l'ambisonie et la spatialisation.
Ce filtre utilise les flux suivant le premier comme coefficients FIR. Si un flux autre que le premier ne contient qu'un seul canal, celui-ci est utilisé pour tous les canaux d'entrée du premier flux ; sinon, le nombre de canaux du flux non premier doit être identique au nombre de canaux du premier flux.
Il accepte les paramètres suivants :
dry
Définit le gain dry. Ceci définit le gain d'entrée.
wet
Définit le gain wet. Ceci définit le gain de sortie final.
length
Définit la longueur du filtre à réponse impulsionnelle. La valeur par défaut est 1, ce qui signifie que l'IR est traité dans son intégralité.
gtype
Cette option est obsolète et ne fait rien.
irnorm
Définit la norme à appliquer aux coefficients IR avant le filtrage. La plage autorisée va de -1 à 2. Les coefficients IR sont normalisés avec la norme vectorielle calculée définie par cette option. Pour des valeurs négatives, aucune norme n'est calculée et les coefficients IR ne sont pas du tout modifiés. La valeur par défaut est 1.
irlink
Pour un IR multicanal, si cette option est définie sur true, tous les canaux IR sont normalisés avec le gain maximal mesuré des coefficients de tous les canaux IR, tel que défini par l'option irnorm. Lorsqu'elle est désactivée, tous les coefficients IR de chaque canal IR sont normalisés indépendamment. La valeur par défaut est true.
irgain
Définit le gain à appliquer aux coefficients IR avant le filtrage. La plage autorisée va de 0 à 1. Ce gain est appliqué après tout gain appliqué par l'option irnorm.
irfmt
Définit le format du flux IR. Peut être mono ou input. La valeur par défaut est input.
maxir
Définit la durée maximale autorisée du filtre à réponse impulsionnelle, en secondes. La valeur par défaut est 30 secondes. La plage autorisée va de 0.1 à 60 secondes.
response
Cette option est obsolète et ne fait rien.
channel
Cette option est obsolète et ne fait rien.
size
Cette option est obsolète et ne fait rien.
rate
Cette option est obsolète et ne fait rien.
minp
Définit la taille minimale de partition utilisée pour la convolution. La valeur par défaut est 8192. La plage autorisée va de 1 à 65536. Des valeurs plus faibles réduisent la latence au prix d'une charge CPU plus élevée.
maxp
Définit la taille maximale de partition utilisée pour la convolution. La valeur par défaut est 8192. La plage autorisée va de 8 à 65536. Des valeurs plus faibles peuvent augmenter la charge CPU.
nbirs
Définit le nombre de flux de réponses impulsionnelles d'entrée qui pourront être commutés à l'exécution. La plage autorisée va de 1 à 32. La valeur par défaut est 1.
ir
Définit le flux IR qui sera utilisé pour la convolution, en commençant à 0 ; sa valeur doit toujours être inférieure à celle fournie par l'option nbirs. La valeur par défaut est 0. Cette option peut être modifiée à l'exécution via des commandes.
precision
Définit la précision à utiliser lors du traitement des échantillons.
auto
Choisit automatiquement le sample format interne en fonction des autres filtres.
float
Utilise toujours un sample format en simple précision flottante.
double
Utilise toujours un sample format en double précision flottante.
La valeur par défaut est auto.
irload
Définit le moment où le flux IR est chargé. Peut être init ou access. La première charge et prépare tous les IR à l'initialisation, la seconde le fait une seule fois lors du premier accès à un IR donné. La valeur par défaut est init.
8.25.1 Exemples
-
Applique une réverbération au flux en utilisant un fichier IR mono comme seconde entrée, commande complète avec ffmpeg :
ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav -
Applique un traitement stéréo réel à un flux d'entrée stéréo et à deux réponses impulsionnelles stéréo pour les canaux gauche et droit ; les fichiers de réponse impulsionnelle sont nommés l_ir.wav et r_ir.wav, avec définition de la valeur de l'option 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" -
Similaire à l'exemple précédent, mais avec
irgainexplicitement défini à la valeur estimée et avecirnormdésactivé :"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
Définit les contraintes de format de sortie pour l'audio d'entrée. Le framework négocie le format le plus approprié afin de minimiser les conversions.
Il accepte les paramètres suivants :
sample_fmts, f
Liste des sample formats demandés, séparés par ’|’.
sample_rates, r
Liste des fréquences d'échantillonnage demandées, séparées par ’|’.
channel_layouts, cl
Liste des dispositions de canaux demandées, séparées par ’|’.
Voir (ffmpeg-utils)la section Channel Layout du manuel ffmpeg-utils(1) pour la syntaxe requise.
Si un paramètre est omis, toutes les valeurs sont autorisées.
Force la sortie en stéréo non signée 8 bits ou signée 16 bits
aformat=sample_fmts=u8|s16:channel_layouts=stereo
8.27 afreqshift
Applique un décalage de fréquence aux échantillons audio d'entrée.
Ce filtre accepte les options suivantes :
shift
Indique le décalage de fréquence. La plage autorisée va de -INT_MAX à INT_MAX. La valeur par défaut est 0.0.
level
Définit le gain de sortie appliqué à la sortie finale. La plage autorisée va de 0.0 à 1.0. La valeur par défaut est 1.0.
order
Définit l'ordre du filtre utilisé pour le filtrage. La plage autorisée va de 1 à 16. La valeur par défaut est 8.
8.27.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.28 afwtdn
Réduit le bruit large bande des échantillons d'entrée à l'aide d'ondelettes.
Une description des options acceptées suit.
sigma
Définit le sigma du bruit ; la plage autorisée va de 0 à 1. La valeur par défaut est 0. Cette option contrôle l'intensité du débruitage appliqué aux échantillons d'entrée. La façon la plus pratique de définir cette option est en décibels, par exemple -45dB.
levels
Définit le nombre de niveaux de décomposition en ondelettes. La plage autorisée va de 1 à 12. La valeur par défaut est 10. Une valeur trop basse dégrade fortement la qualité du débruitage.
wavet
Définit le type d'ondelette pour la décomposition de l'image d'entrée. Elles sont classées par nombre de coefficients, du plus faible au plus élevé. Plus de coefficients signifie une vitesse de filtrage plus faible, mais une meilleure qualité globale. Les ondelettes disponibles sont :
‘sym2’ ‘sym4’ ‘rbior68’ ‘deb10’ ‘sym10’ ‘coif5’ ‘bl3’ percent
Définit le pourcentage de débruitage complet. La plage autorisée va de 0 à 100 pour cent. La valeur par défaut est 85 pour cent, soit un débruitage partiel.
profile
Si elle est activée, la première image d'entrée est utilisée comme profil de bruit. Si les échantillons de la première image contiennent autre chose que du bruit, les performances seront très médiocres.
adaptive
Si elle est activée, les images d'entrée sont analysées pour détecter la présence de bruit. Si du bruit est détecté avec une forte probabilité, le profil de l'image d'entrée est utilisé pour traiter les images suivantes, jusqu'à ce qu'une nouvelle image de bruit soit détectée.
samples
Définit la taille d'une image unique en nombre d'échantillons. La plage autorisée va de 512 à 65536. La taille d'image par défaut est de 8192 échantillons.
softness
Définit la douceur appliquée à l'intérieur de la fonction de seuillage. La plage autorisée va de 0 à 10. La douceur par défaut est 1.
8.28.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.29 agate
Un gate sert principalement à réduire les parties faibles d'un signal. Ce type de traitement du signal réduit le bruit gênant entre les signaux utiles.
Le gating consiste à détecter le volume en dessous d'un seuil de niveau choisi et à le diviser par le facteur défini avec ratio. Le plancher de bruit est défini via range. Une manipulation exacte du signal provoquant une distorsion de la forme d'onde, la réduction peut être lissée dans le temps. Cela se fait en définissant attack et release.
attack détermine combien de temps le signal doit rester en dessous du seuil avant qu'une réduction ne se produise, et release définit le temps pendant lequel le signal doit rester au-dessus du seuil pour que la réduction diminue à nouveau. Les signaux plus courts que le temps d'attack choisi restent inchangés.
level_in
Définit le niveau d'entrée avant le filtrage. La valeur par défaut est 1. La plage autorisée va de 0.015625 à 64.
mode
Définit le mode de fonctionnement. Peut être upward ou downward. La valeur par défaut est downward. En mode upward, les parties fortes du signal sont amplifiées, ce qui étend la plage dynamique vers le haut. Sinon, en mode downward, les parties faibles du signal sont réduites.
range
Définit le niveau de réduction de gain lorsque le signal est en dessous du seuil. La valeur par défaut est 0.06125. La plage autorisée va de 0 à 1. Une valeur de 0 désactive la réduction, et le filtre se comporte alors comme un expandeur.
threshold
Si un signal s'élève au-dessus de ce niveau, la réduction de gain est relâchée. La valeur par défaut est 0.125. La plage autorisée va de 0 à 1.
ratio
Définit le rapport selon lequel le signal est réduit. La valeur par défaut est 2. La plage autorisée va de 1 à 9000.
attack
Durée en millisecondes pendant laquelle le signal doit s'élever au-dessus du seuil avant que la réduction de gain ne s'arrête. La valeur par défaut est 20 millisecondes. La plage autorisée va de 0.01 à 9000.
release
Durée en millisecondes pendant laquelle le signal doit descendre en dessous du seuil avant que la réduction n'augmente à nouveau. La valeur par défaut est 250 millisecondes. La plage autorisée va de 0.01 à 9000.
makeup
Définit le niveau d'amplification du signal après traitement. La valeur par défaut est 1. La plage autorisée va de 1 à 64.
knee
Arrondit l'angle vif autour du seuil pour entrer plus progressivement dans la réduction de gain. La valeur par défaut est 2.828427125. La plage autorisée va de 1 à 8.
detection
Choisit si le signal exact doit être utilisé pour la détection, ou un signal de type RMS. La valeur par défaut est rms. Peut être peak ou rms.
link
Choisit si c'est le niveau moyen entre tous les canaux ou le canal le plus fort qui influence la réduction. La valeur par défaut est average. Peut être average ou maximum.
8.29.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.30 aiir
Applique un filtre à réponse impulsionnelle infinie (IIR) arbitraire.
Il accepte les paramètres suivants :
zeros, z
Définit les coefficients B/numérateur/zéros/réflexion.
poles, p
Définit les coefficients A/dénominateur/pôles/échelle.
gains, k
Définit les gains des canaux.
dry_gain
Définit le gain d'entrée.
wet_gain
Définit le gain de sortie.
format, f
Définit le format des coefficients.
‘ll’
fonction treillis-échelle
‘sf’
fonction de transfert analogique
‘tf’
fonction de transfert numérique
‘zp’
zéros/pôles dans le plan Z, coordonnées cartésiennes (par défaut)
‘pr’
zéros/pôles dans le plan Z, coordonnées polaires en radians
‘pd’
zéros/pôles dans le plan Z, coordonnées polaires en degrés
‘sp’
zéros/pôles dans le plan S
process, r
Définit le type de traitement.
‘d’
traitement direct
‘s’
traitement série
‘p’
traitement parallèle
precision, e
Définit la précision de filtrage.
‘dbl’
virgule flottante double précision (par défaut)
‘flt’
virgule flottante simple précision
‘i32’
entiers 32 bits
‘i16’
entiers 16 bits
normalize, n
Normalise les coefficients du filtre ; activée par défaut. L'activer normalise la réponse en amplitude en DC à 0dB.
mix
Détermine la part du signal filtré utilisée dans la sortie. La valeur par défaut est 1. La plage va de 0 à 1.
response
Affiche la réponse en fréquence de l'IR, amplitude(magenta), phase(vert) et délai de groupe(jaune), dans un flux vidéo supplémentaire. Désactivée par défaut.
channel
Définit pour quel canal IR afficher la réponse en fréquence. Par défaut, c'est le premier canal qui est affiché. Cette option n'est utilisée que lorsque response est activée.
size
Définit la taille du flux vidéo. Cette option n'est utilisée que lorsque response est activée.
Les coefficients au format tf et sf sont séparés par des espaces et classés par ordre croissant.
Les coefficients au format zp sont séparés par des espaces et leur ordre n'a pas d'importance. Les coefficients au format zp sont des nombres complexes avec i comme unité imaginaire.
Des coefficients et des gains différents peuvent être fournis pour chaque canal ; dans ce cas, utilisez ’|’ pour séparer les coefficients ou les gains. Les derniers coefficients fournis sont utilisés pour tous les canaux restants.
8.30.1 Exemples
-
Applique un notch elliptique à 2 pôles autour de 5000Hz pour une fréquence d'échantillonnage 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 -
Identique à l'exemple précédent mais au format
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 -
Applique un filtre passe-bas de Butterworth analogique normalisé du 3e ordre, au format fonction de transfert analogique :
aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
8.31 alimiter
Le limiteur empêche un signal d'entrée de dépasser un seuil souhaité. Ce limiteur utilise la technologie de préécoute (lookahead) pour éviter que le signal ne se déforme. Cela signifie qu'un léger délai apparaît après le traitement du signal. Notez que ce délai correspond au temps d'attack défini.
Ce filtre accepte les options suivantes :
level_in
Définit le gain d'entrée. La valeur par défaut est 1.
level_out
Définit le gain de sortie. La valeur par défaut est 1.
limit
Empêche les signaux dépassant ce niveau de traverser le limiteur. La valeur par défaut est 1.
attack
Le limiteur atteint son niveau d'atténuation dans ce délai, exprimé en millisecondes. La valeur par défaut est 5 millisecondes.
release
Revient de la limitation à une atténuation de 1.0 dans ce délai, en millisecondes. La valeur par défaut est 50 millisecondes.
asc
Lorsque la réduction de gain est constamment nécessaire, ASC se charge de revenir à un niveau de réduction moyen plutôt que d'atteindre une réduction de 0 dans le temps de release.
asc_level
Sélectionne dans quelle mesure le temps de release est affecté par ASC ; 0 signifie presque aucun changement du temps de release, tandis que 1 produit des temps de release plus longs.
level
Ajuste automatiquement le niveau du signal de sortie. Activée par défaut. Si elle est activée, cela renormalise l'audio à 0dB.
latency
Compense le délai introduit par l'utilisation du tampon de préécoute défini avec le paramètre attack. Vide également les données audio valides du tampon de préécoute lorsque le flux atteint l'EOF.
Selon le réglage choisi, il est recommandé de suréchantillonner l'entrée 2x ou 4x avec aresample avant d'appliquer ce filtre.
8.32 allpass
Applique un filtre passe-tout à deux pôles avec une fréquence centrale (en Hz) frequency et une largeur de filtre width. Un filtre passe-tout modifie la relation fréquence-phase de l'audio sans modifier sa relation fréquence-amplitude.
Ce filtre accepte les options suivantes :
frequency, f
Définit la fréquence en Hz.
width_type, t
Définit la méthode utilisée pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Indique la largeur de bande du filtre dans les unités de width_type.
mix, m
Détermine la part du signal filtré utilisée dans la sortie. La valeur par défaut est 1. La plage va de 0 à 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivée par défaut. L'activer normalise la réponse en amplitude en DC à 0dB.
order, o
Définit l'ordre du filtre ; peut être 1 ou 2. La valeur par défaut est 2.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format en fonction des filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
8.32.1 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie la fréquence d'allpass. La syntaxe de la commande est : "frequency"
width_type, t
Modifie le width_type d'allpass. La syntaxe de la commande est : "width_type"
width, w
Modifie le width d'allpass. La syntaxe de la commande est : "width"
mix, m
Modifie le mix d'allpass. La syntaxe de la commande est : "mix"
8.33 aloop
Boucle les échantillons audio.
Ce filtre accepte les options suivantes :
loop
Définit le nombre de boucles. Une valeur de -1 entraîne des boucles infinies. La valeur par défaut est 0.
size
Définit le nombre maximal d'échantillons. La valeur par défaut est 0.
start
Définit le premier échantillon de la boucle. La valeur par défaut est 0.
time
Définit l'instant de début de boucle, en secondes. Utilisé uniquement si l'option start est définie sur -1.
8.34 amerge
Fusionne deux flux audio ou plus en un seul flux multicanal.
Toutes les entrées doivent avoir la même fréquence d'échantillonnage et le même format.
Si les entrées n'ont pas la même durée, la sortie s'arrête avec la plus courte.
Ce filtre accepte les options suivantes :
inputs
Définit le nombre d'entrées. La valeur par défaut est 2.
layout_mode
Cette option contrôle la façon dont la disposition des canaux de sortie est déterminée et si les canaux audio sont réordonnés lors de la fusion.
legacy
C'est le mode dans lequel le filtre s'est historiquement comporté ; il s'agit donc du mode par défaut.
Si les dispositions de canaux des entrées sont connues et disjointes, et donc compatibles, la disposition de canaux de la sortie est définie en conséquence et les canaux sont réordonnés si nécessaire. Si les dispositions de canaux des entrées ne sont pas disjointes, si certaines sont inconnues, ou si elles utilisent des dispositions spéciales telles que l'ambisonie, la sortie contient tous les canaux de la première entrée puis tous les canaux de la seconde entrée, dans cet ordre, et la disposition de canaux de la sortie est la valeur par défaut correspondant au nombre total de canaux.
Par exemple, si la première entrée est en 2.1 (FL+FR+LF) et la seconde en FC+BL+BR, la sortie sera en 5.1, avec les canaux dans l'ordre suivant : a1, a2, b1, a3, b2, b3 (a1 est le premier canal de la première entrée, b1 est le premier canal de la seconde entrée).
En revanche, si les deux entrées sont en stéréo, les canaux de sortie suivent l'ordre par défaut : a1, a2, b1, b2, et la disposition de canaux est arbitrairement définie sur 4.0, ce qui peut correspondre ou non à la valeur attendue.
reset
Ce mode ignore les dispositions de canaux des entrées et ne réordonne pas les canaux. La sortie contient tous les canaux de la première entrée, puis tous les canaux de la seconde entrée, dans cet ordre, et ainsi de suite.
La disposition de canaux de sortie indique uniquement le nombre total de canaux.
normal
Ce mode conserve le nom des canaux et les informations de désignation des canaux d'entrée, et ne réordonne pas les canaux. La sortie contient tous les canaux de la première entrée, puis tous les canaux de la seconde entrée, dans cet ordre, et ainsi de suite.
8.34.1 Exemples
-
Fusionne deux fichiers mono en un flux stéréo :
amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge -
Fusions multiples en supposant 1 flux vidéo et 6 flux audio dans 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
Mixe plusieurs entrées audio en une seule sortie.
Notez que ce filtre ne prend en charge que les échantillons flottants (les filtres audio amerge et pan prennent en charge de nombreux formats). Si l'entrée d'amix contient des échantillons entiers, aresample est automatiquement inséré pour effectuer la conversion vers des échantillons flottants.
Il accepte les paramètres suivants :
inputs
Le nombre d'entrées. S'il n'est pas précisé, la valeur par défaut est 2.
duration
Détermine comment calculer la fin de flux.
longest
La durée de l'entrée la plus longue. (par défaut)
shortest
La durée de l'entrée la plus courte.
first
La durée de la première entrée.
dropout_transition
Le temps de transition, en secondes, pour la renormalisation du volume lorsqu'un flux d'entrée se termine. La valeur par défaut est 2 secondes.
weights
Indique le poids de chaque flux audio d'entrée sous la forme d'une suite de nombres séparés par un espace. Si moins de poids sont indiqués que d'entrées, le dernier poids est attribué aux entrées restantes. Le poids par défaut de chaque entrée est 1.
normalize
Met toujours les entrées à l'échelle au lieu de se contenter d'additionner les échantillons. Attention à un écrêtage important si les entrées ne sont pas normalisées avant ou après le filtrage par ce filtre lorsque cette option est désactivée. Activée par défaut.
8.35.1 Exemples
-
Ceci mélange 3 flux audio d'entrée en une seule sortie, avec la même durée que la première entrée et un temps de transition de coupure de 3 secondes :
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT -
Ceci mélange un flux audio d'entrée vocal et un flux audio d'entrée musical en une seule sortie, avec la même durée que la plus longue entrée. La musique aura le quart du poids de la voix, et les entrées ne sont pas normalisées :
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 Commandes
Ce filtre prend en charge les commandes suivantes :
weights normalize
La syntaxe est identique à celle de l'option du même nom.
8.36 amultiply
Multiplie le premier flux audio par le second flux audio et stocke le résultat dans le flux audio de sortie. La multiplication s'effectue en multipliant chaque échantillon du premier flux par l'échantillon situé à la même position dans le second flux.
Cette multiplication élément par élément permet de créer des fondus d'amplitude et des modulations d'amplitude.
8.37 anequalizer
Égaliseur paramétrique multibande d'ordre élevé pour chaque canal.
Il accepte les paramètres suivants :
params
Cette chaîne d'option est au format : "cchn f=cf w=w g=g t=f | ..." Chaque bande de l'égaliseur est séparée par ’|’.
chn
Définit le numéro de canal auquel l'égalisation sera appliquée. Si l'entrée ne comporte pas ce canal, l'entrée est ignorée.
f
Définit la fréquence centrale de la bande. Si l'entrée ne comporte pas cette fréquence, l'entrée est ignorée.
w
Définit la largeur de la bande en hertz.
g
Définit le gain de la bande en dB.
t
Définit le type de filtre de la bande, facultatif, qui peut être :
‘0’
Butterworth, valeur par défaut.
‘1’
Chebyshev de type 1.
‘2’
Chebyshev de type 2.
curves
Lorsque cette option est activée, la réponse en fréquence de l'anequalizer est affichée dans le flux vidéo.
size
Définit la taille du flux vidéo. Utile uniquement si l'option curves est activée.
mgain
Définit le gain maximal qui sera affiché. Utile uniquement si l'option curves est activée. Donner à cette option une valeur raisonnable permet d'afficher le gain qui résulte de bandes voisines trop proches l'une de l'autre et qui produisent donc un gain plus élevé lorsque les deux sont activées.
fscale
Définit l'échelle de fréquence utilisée pour tracer la réponse en fréquence dans la sortie vidéo. Peut être linear ou logarithmic. La valeur par défaut est logarithmic.
colors
Définit la couleur de la courbe de chaque canal qui sera affichée dans le flux vidéo. Il s'agit d'une liste de noms de couleurs séparés par un espace ou par ’|’. Les couleurs non reconnues ou manquantes seront remplacées par du blanc.
8.37.1 Exemples
- Réduit le gain de 10 pour la fréquence centrale 200 Hz et la largeur 100 Hz des 2 premiers canaux à l'aide du filtre Chebyshev de type 1 :
anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
8.37.2 Commandes
Ce filtre prend en charge les commandes suivantes :
change
Modifie les paramètres existants du filtre. La syntaxe des commandes est : "fN|f=freq|w=width|g=gain"
fN est le numéro du filtre existant, à partir de 0 ; si un tel filtre n'existe pas, une erreur est renvoyée. freq définit le nouveau paramètre de fréquence. width définit le nouveau paramètre de largeur en hertz. gain définit le nouveau paramètre de gain en dB.
Un appel complet du filtre avec asendcmd peut ressembler à ceci : asendcmd=c=’4.0 anequalizer change 0|f=200|w=50|g=1’,anequalizer=...
8.38 anlmdn
Réduit le bruit large bande dans les échantillons audio à l'aide de l'algorithme des moyennes non locales (Non-Local Means).
Chaque échantillon est ajusté en recherchant d'autres échantillons présentant des contextes similaires. Cette similarité de contexte est définie en comparant les blocs environnants de taille p. Les blocs sont recherchés dans une zone de rayon r autour de l'échantillon.
Le filtre accepte les options suivantes :
strength, s
Définit la force du débruitage. La plage autorisée va de 0.00001 à 10000. La valeur par défaut est 0.00001.
patch, p
Définit la durée du rayon des blocs. La plage autorisée va de 1 à 100 millisecondes. La valeur par défaut est 2 millisecondes.
research, r
Définit la durée du rayon de recherche. La plage autorisée va de 2 à 300 millisecondes. La valeur par défaut est 6 millisecondes.
output, o
Définit le mode de sortie.
Il accepte les valeurs suivantes :
i
Transmet l'entrée sans modification.
o
Transmet le signal après filtrage du bruit.
n
Transmet uniquement le bruit.
La valeur par défaut est o.
smooth, m
Définit le facteur de lissage. La valeur par défaut est 11. La plage autorisée va de 1 à 1000.
8.38.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.39 anlmf, anlms
Applique l'algorithme Normalized Least-Mean-(Squares|Fourth) au premier flux audio en utilisant le second flux audio.
Ce filtre adaptatif sert à imiter un filtre souhaité en recherchant les coefficients de filtre permettant de produire l'erreur quadratique moyenne minimale du signal d'erreur (différence entre le signal souhaité, le 2e flux audio d'entrée, et le signal réel, le 1er flux audio d'entrée).
Une description des options acceptées suit.
order
Définit l'ordre du filtre.
mu
Définit le mu du filtre.
eps
Définit l'eps du filtre.
leakage
Définit la fuite du filtre.
out_mode
Il accepte les valeurs suivantes :
i
Transmet la 1re entrée.
d
Transmet la 2e entrée.
o
Transmet la différence entre le signal souhaité (2e entrée) et l'estimation du signal d'erreur.
n
Transmet la différence entre le signal d'entrée (1re entrée) et l'estimation du signal d'erreur.
e
Transmet les échantillons estimés du signal d'erreur.
La valeur par défaut est o.
precision
Définit la précision à utiliser lors du traitement des échantillons.
auto
Choisit automatiquement le sample format interne en fonction des autres filtres.
float
Utilise toujours un sample format en simple précision flottante.
double
Utilise toujours un sample format en double précision flottante.
8.39.1 Exemples
- L'un des nombreux usages de ce filtre est la réduction de bruit : l'audio d'entrée est filtré avec les mêmes échantillons retardés d'une quantité fixe ; en voici un exemple pour l'audio stéréo :
asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
8.39.2 Commandes
Ce filtre prend en charge les mêmes commandes que les options, à l'exception de l'option order.
8.40 anull
Transmet la source audio sans modification vers la sortie.
8.41 apad
Complète la fin d'un flux audio avec du silence.
Cela peut être utilisé conjointement avec ffmpeg -shortest pour prolonger les flux audio jusqu'à la même durée que le flux vidéo.
Une description des options acceptées suit.
packet_size
Définit la taille des paquets de silence. La valeur par défaut est 4096.
pad_len
Définit le nombre d'échantillons de silence à ajouter à la fin. Une fois la valeur atteinte, le flux est terminé. Cette option est mutuellement exclusive avec whole_len.
whole_len
Définit le nombre total minimal d'échantillons dans le flux audio de sortie. Si la valeur dépasse la longueur de l'audio d'entrée, du silence est ajouté à la fin jusqu'à ce que la valeur soit atteinte. Cette option est mutuellement exclusive avec pad_len.
pad_dur
Spécifie la durée des échantillons de silence à ajouter. Voir (ffmpeg-utils) la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Utilisé uniquement si la valeur est non négative.
whole_dur
Spécifie la durée totale minimale du flux audio de sortie. Voir (ffmpeg-utils) la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Utilisé uniquement si la valeur est non négative. Si la valeur dépasse la longueur de l'audio d'entrée, du silence est ajouté à la fin jusqu'à ce que la valeur soit atteinte. Cette option est mutuellement exclusive avec pad_dur
Si aucune des options pad_len, whole_len, pad_dur ou whole_dur n'est définie, le filtre ajoute indéfiniment du silence à la fin du flux d'entrée.
Notez que pour ffmpeg 4.4 et les versions antérieures, une valeur pad_dur ou whole_dur égale à zéro entraînait également l'ajout indéfini de silence par le filtre.
8.41.1 Exemples
-
Ajoute 1024 échantillons de silence à la fin de l'entrée :
apad=pad_len=1024 -
S'assure que la sortie audio contient au moins 10000 échantillons, en complétant l'entrée avec du silence si nécessaire :
apad=whole_len=10000 -
Utilise
ffmpegpour compléter l'entrée audio avec du silence, de sorte que le flux vidéo soit toujours le plus court et soit converti jusqu'à la fin dans le fichier de sortie lors de l'utilisation de l'option shortest :ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
8.42 aphaser
Ajoute un effet de phasing à l'audio d'entrée.
Un filtre phaser crée une série de crêtes et de creux dans le spectre de fréquences. La position des crêtes et des creux est modulée de façon à varier dans le temps, créant un effet de balayage.
Une description des paramètres acceptés suit.
in_gain
Définit le gain d'entrée. La valeur par défaut est 0.4.
out_gain
Définit le gain de sortie. La valeur par défaut est 0.74
delay
Définit le délai en millisecondes. La valeur par défaut est 3.0.
decay
Définit la décroissance. La valeur par défaut est 0.4.
speed
Définit la vitesse de modulation en Hz. La valeur par défaut est 0.5.
type
Définit le type de modulation. La valeur par défaut est triangular.
Il accepte les valeurs suivantes :
‘triangular, t’ ‘sinusoidal, s’
8.43 aphaseshift
Applique un déphasage aux échantillons audio d'entrée.
Le filtre accepte les options suivantes :
shift
Spécifie le déphasage. La plage autorisée va de -1.0 à 1.0. La valeur par défaut est 0.0.
level
Définit le gain de sortie appliqué à la sortie finale. La plage autorisée va de 0.0 à 1.0. La valeur par défaut est 1.0.
order
Définit l'ordre du filtre utilisé pour le filtrage. La plage autorisée va de 1 à 16. La valeur par défaut est 8.
8.43.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.44 apsnr
Mesure le rapport signal sur bruit de crête audio.
Ce filtre prend deux flux audio en entrée et restitue le premier flux audio en sortie. Les résultats sont exprimés en dB par canal, à la fin de l'une ou l'autre des entrées.
8.45 apsyclip
Applique un écrêteur psychoacoustique au flux audio d'entrée.
Le filtre accepte les options suivantes :
level_in
Définit le gain d'entrée. Par défaut, il est de 1. La plage est [0.015625 - 64].
level_out
Définit le gain de sortie. Par défaut, il est de 1. La plage est [0.015625 - 64].
clip
Définit la valeur de début d'écrêtage. La valeur par défaut est 0dBFS ou 1.
diff
Ne restitue que les échantillons de différence, utile pour entendre les distorsions introduites. Désactivé par défaut.
adaptive
Définit l'intensité de la distorsion adaptative appliquée. La valeur par défaut est 0.5. La plage autorisée va de 0 à 1.
iterations
Définit le nombre d'itérations de l'écrêteur psychoacoustique. La plage autorisée va de 1 à 20. La valeur par défaut est 10.
level
Ajuste automatiquement le niveau du signal de sortie. Désactivé par défaut. Si activé, cela renormalise l'audio à 0dBFS.
8.45.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.46 apulsator
Audio pulsator se situe entre un autopanoramique et un trémolo. Mais il peut aussi produire des effets stéréo amusants. Pulsator fait varier le volume des canaux gauche et droit à partir d'un LFO (oscillateur basse fréquence) avec des formes d'onde différentes et des phases décalées. Ce filtre permet de définir un décalage entre le canal gauche et le canal droit. Un décalage de 0 signifie que les deux formes du LFO coïncident. Les canaux gauche et droit sont modifiés de façon identique - un trémolo classique. Un décalage de 50 % signifie que la forme du canal droit est exactement décalée en phase (ou reculée d'environ la moitié de la fréquence) - pulsator agit alors comme un autopanoramique. À 1, les deux courbes coïncident de nouveau. Chaque réglage intermédiaire déplace le déphasage sans discontinuité entre tous les stades et produit des sons "de basculement" avec des formes d'onde sinusoïdale et triangulaire. Plus on règle le décalage près de 1 (à partir de 0.5), plus le signal passe rapidement du haut-parleur gauche au haut-parleur droit.
Le filtre accepte les options suivantes :
level_in
Définit le gain d'entrée. Par défaut, il est de 1. La plage est [0.015625 - 64].
level_out
Définit le gain de sortie. Par défaut, il est de 1. La plage est [0.015625 - 64].
mode
Définit la forme d'onde utilisée par le LFO. Peut être l'une des suivantes : sine, triangle, square, sawup ou sawdown. La valeur par défaut est sine.
amount
Définit la modulation. Détermine la part du signal d'origine affectée par le LFO.
offset_l
Définit le décalage du canal gauche. La valeur par défaut est 0. La plage autorisée est [0 - 1].
offset_r
Définit le décalage du canal droit. La valeur par défaut est 0.5. La plage autorisée est [0 - 1].
width
Définit la largeur d'impulsion. La valeur par défaut est 1. La plage autorisée est [0 - 2].
timing
Définit le mode de rythme possible. Peut être l'un des suivants : bpm, ms ou hz. La valeur par défaut est hz.
bpm
Définit le bpm. La valeur par défaut est 120. La plage autorisée est [30 - 300]. Utilisé uniquement si timing est réglé sur bpm.
ms
Définit le ms. La valeur par défaut est 500. La plage autorisée est [10 - 2000]. Utilisé uniquement si timing est réglé sur ms.
hz
Définit la fréquence en Hz. La valeur par défaut est 2. La plage autorisée est [0.01 - 100]. Utilisé uniquement si timing est réglé sur hz.
8.47 aresample
Rééchantillonne l'audio d'entrée selon les paramètres spécifiés, à l'aide de la bibliothèque libswresample. Si aucun n'est spécifié, le filtre effectue automatiquement la conversion entre son entrée et sa sortie.
Ce filtre est également capable d'étirer/compresser les données audio pour qu'elles correspondent aux horodatages, ou d'injecter du silence / de retirer de l'audio pour qu'il corresponde aux horodatages, de combiner les deux ou de ne faire ni l'un ni l'autre.
Le filtre accepte la syntaxe [sample_rate:]resampler_options, où sample_rate exprime une fréquence d'échantillonnage et resampler_options est une liste de paires clé=valeur séparées par ":". Voir (ffmpeg-resampler) la section "Resampler Options" du manuel ffmpeg-resampler(1) pour la liste complète des options prises en charge.
8.47.1 Exemples
-
Rééchantillonne l'audio d'entrée à 44100 Hz :
aresample=44100 -
Étire/compresse les échantillons selon les horodatages donnés, avec une compensation maximale de 1000 échantillons par seconde :
aresample=async=1000
8.48 areverse
Inverse un clip audio.
Avertissement : ce filtre nécessite de la mémoire pour mettre en mémoire tampon l'ensemble du clip ; il est donc conseillé de le découper au préalable.
8.48.1 Exemples
- Prend les 5 premières secondes d'un clip et les inverse.
atrim=end=5,areverse
8.49 arls
Applique l'algorithme des moindres carrés récursifs (Recursive Least Squares) au premier flux audio en utilisant le second flux audio.
Ce filtre adaptatif sert à imiter un filtre souhaité en recherchant de manière récursive les coefficients de filtre permettant de produire la fonction de coût des moindres carrés linéaires pondérés minimale du signal d'erreur (différence entre le signal souhaité, le 2e flux audio d'entrée, et le signal réel, le 1er flux audio d'entrée).
Une description des options acceptées suit.
order
Définit l'ordre du filtre.
lambda
Définit le facteur d'oubli.
delta
Définit le coefficient d'initialisation de la matrice de covariance interne.
out_mode
Définit les échantillons de sortie du filtre. Il accepte les valeurs suivantes :
i
Transmet la 1re entrée.
d
Transmet la 2e entrée.
o
Transmet la différence entre le signal souhaité (2e entrée) et l'estimation du signal d'erreur.
n
Transmet la différence entre le signal d'entrée (1re entrée) et l'estimation du signal d'erreur.
e
Transmet les échantillons estimés du signal d'erreur.
La valeur par défaut est o.
precision
Définit la précision à utiliser lors du traitement des échantillons.
auto
Choisit automatiquement le sample format interne en fonction des autres filtres.
float
Utilise toujours un sample format en simple précision flottante.
double
Utilise toujours un sample format en double précision flottante.
8.50 arnndn
Réduit le bruit de la parole à l'aide de réseaux de neurones récurrents.
Ce filtre accepte les options suivantes :
model, m
Définit le fichier de modèle entraîné à charger. Cette option est toujours obligatoire.
mix
Définit la proportion des échantillons filtrés mélangée à la sortie finale. La plage autorisée va de -1 à 1. La valeur par défaut est 1. Les valeurs négatives sont particulières : elles définissent la quantité de bruit filtré conservée dans la sortie finale du filtre. Réglez cette option sur -1 pour entendre le bruit réellement supprimé du signal d'entrée.
8.50.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.51 asdr
Mesure le rapport signal sur distorsion audio.
Ce filtre prend deux flux audio en entrée et restitue le premier flux audio en sortie. Les résultats sont exprimés en dB par canal, à la fin de l'une ou l'autre des entrées.
8.52 asetnsamples
Définit le nombre d'échantillons par image audio de sortie.
Le dernier paquet de sortie peut contenir un nombre d'échantillons différent, car le filtre vide tous les échantillons restants lorsque l'audio d'entrée signale sa fin.
Le filtre accepte les options suivantes :
nb_out_samples, n
Définit le nombre d'images par image audio de sortie. Le nombre s'entend comme le nombre d'échantillons par canal. La valeur par défaut est 1024.
pad, p
Si la valeur est 1, le filtre complète la dernière image audio avec des zéros, de sorte que la dernière image contienne le même nombre d'échantillons que les précédentes. La valeur par défaut est 1.
Par exemple, pour définir le nombre d'échantillons par image à 1234 et désactiver le remplissage de la dernière image, utilisez :
asetnsamples=n=1234:p=0
8.53 asetrate
Définit la fréquence d'échantillonnage sans modifier les données PCM. Cela entraîne un changement de vitesse et de hauteur.
Le filtre accepte les options suivantes :
sample_rate, r
Définit la fréquence d'échantillonnage de sortie. La valeur par défaut est 44100 Hz.
8.54 ashowinfo
Affiche une ligne contenant diverses informations pour chaque image audio d'entrée. L'audio d'entrée n'est pas modifié.
La ligne affichée contient une séquence de paires clé/valeur de la forme key:value.
Les valeurs suivantes sont affichées dans la sortie :
n
Le numéro (séquentiel) de l'image d'entrée, à partir de 0.
pts
Le presentation timestamp de l'image d'entrée, en unités de base de temps ; la base de temps dépend du pad d'entrée du filtre et vaut généralement 1/sample_rate.
pts_time
Le presentation timestamp de l'image d'entrée, en secondes.
fmt
Le sample format.
chlayout
La disposition des canaux.
rate
La fréquence d'échantillonnage de l'image audio.
nb_samples
Le nombre d'échantillons (par canal) dans l'image.
checksum
La somme de contrôle Adler-32 (affichée en hexadécimal) des données audio. Pour l'audio planaire, les données sont traitées comme si tous les plans étaient concaténés.
plane_checksums
Une liste des sommes de contrôle Adler-32 pour chaque plan de données.
8.55 asisdr
Mesure le rapport signal sur distorsion audio invariant à l'échelle.
Ce filtre prend deux flux audio en entrée et restitue le premier flux audio en sortie. Les résultats sont exprimés en dB par canal, à la fin de l'une ou l'autre des entrées.
8.56 asoftclip
Applique un écrêtage audio progressif.
L'écrêtage progressif est un type d'effet de distorsion où l'amplitude d'un signal est saturée le long d'une courbe lisse, plutôt que selon la forme abrupte de l'écrêtage dur (hard-clipping).
Ce filtre accepte les options suivantes :
type
Définit le type d'écrêtage progressif.
Il accepte les valeurs suivantes :
hard tanh atan cubic exp alg quintic sin erf threshold
Définit le seuil à partir duquel l'écrêtage commence. La valeur par défaut est 0dB ou 1.
output
Définit le gain appliqué à la sortie. La valeur par défaut est 0dB ou 1.
param
Définit le paramètre supplémentaire qui contrôle la fonction sigmoïde.
oversample
Définit le facteur de suréchantillonnage.
8.56.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.57 aspectralstats
Affiche des informations statistiques dans le domaine fréquentiel sur les canaux audio. Les statistiques sont calculées et stockées en tant que métadonnées pour chaque canal audio et pour chaque image audio.
Il accepte l'option suivante :
win_size
Définit la longueur de la fenêtre en échantillons. La valeur par défaut est 2048. La plage autorisée va de 32 à 65536.
win_func
Définit la fonction de fenêtrage.
Il accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hann, hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hann.
overlap
Définit le chevauchement de fenêtre. La plage autorisée va de 0 à 1. La valeur par défaut est 0.5.
measure
Sélectionne les paramètres mesurés. Les clés de métadonnées peuvent être utilisées comme indicateurs ; la valeur par défaut est all, qui mesure tout. none désactive toute mesure.
Une liste de chaque clé de métadonnées suit :
mean variance centroid spread skewness kurtosis entropy flatness crest flux slope decrease rolloff
8.58 asr
Reconnaissance vocale automatique
Ce filtre utilise PocketSphinx pour la reconnaissance vocale. Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-pocketsphinx.
Il accepte les options suivantes :
rate
Définit la fréquence d'échantillonnage de l'audio d'entrée. La valeur par défaut est 16000. Elle doit correspondre aux modèles vocaux, sous peine d'obtenir de mauvais résultats.
hmm
Définit le dictionnaire contenant les fichiers du modèle acoustique.
dict
Définit le dictionnaire de prononciation.
lm
Définit le fichier du modèle de langue.
lmctl
Définit l'ensemble de modèles de langue.
lmname
Définit le modèle de langue à utiliser.
logfn
Définit la sortie des messages du journal.
Le filtre exporte la parole reconnue sous forme de métadonnée d'image lavfi.asr.text.
8.59 astats
Affiche des informations statistiques du domaine temporel sur les canaux audio. Les statistiques sont calculées et affichées pour chaque canal audio et, le cas échéant, une valeur globale est également fournie.
Accepte l'option suivante :
length
Longueur de la fenêtre courte en secondes, utilisée pour la mesure RMS de crête et de creux. La valeur par défaut est 0.05 (50 millisecondes). La plage autorisée est [0 - 10].
metadata
Définit l'injection de métadonnées. Toutes les clés de métadonnées sont préfixées par lavfi.astats.X, où X est le numéro de canal à partir de 1, ou la chaîne Overall. Par défaut, cette option est désactivée.
Les clés disponibles pour chaque canal sont : 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
et pour 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
Par exemple, une clé complète ressemble à lavfi.astats.1.DC_offset ou lavfi.astats.Overall.Peak_count.
Consultez ci-dessous la description des clés.
reset
Définit le nombre d'images sur lequel les statistiques cumulées sont calculées avant d'être réinitialisées. Par défaut, cette option est désactivée.
measure_perchannel
Sélectionne les paramètres mesurés par canal. Les clés de métadonnées peuvent être utilisées comme indicateurs. La valeur par défaut est all, qui mesure tout. none désactive toute mesure par canal.
measure_overall
Sélectionne les paramètres mesurés globalement. Les clés de métadonnées peuvent être utilisées comme indicateurs. La valeur par défaut est all, qui mesure tout. none désactive toute mesure globale.
Voici la description des clés de mesure :
none
aucune mesure
all
toutes les mesures
Bit_depth
profondeur de bits globale de l'audio, c'est-à-dire le nombre de bits utilisés pour chaque échantillon
Crest_factor
rapport standard entre le niveau de crête et le niveau RMS (remarque : pas en dB)
DC_offset
déplacement moyen de l'amplitude par rapport à zéro
Dynamic_range
plage dynamique mesurée de l'audio, en dB
Entropy
entropie mesurée sur l'ensemble de l'audio ; une entropie de valeur proche de 1.0 est typiquement mesurée pour un bruit blanc
Flat_factor
aplatissement (c'est-à-dire des échantillons consécutifs ayant la même valeur) du signal à ses niveaux de crête (c'est-à-dire Min_level ou Max_level)
Max_difference
différence maximale entre deux échantillons consécutifs
Max_level
niveau maximal des échantillons
Mean_difference
différence moyenne entre deux échantillons consécutifs, c'est-à-dire la moyenne de chaque différence entre deux échantillons consécutifs
Min_difference
différence minimale entre deux échantillons consécutifs
Min_level
niveau minimal des échantillons
Noise_floor
crête locale minimale mesurée en dBFS sur une fenêtre courte
Noise_floor_count
nombre d'occurrences (et non le nombre d'échantillons) où le signal a atteint Noise floor
Number_of_Infs
nombre d'échantillons ayant une valeur infinie
Number_of_NaNs
nombre d'échantillons ayant une valeur NaN (pas un nombre)
Number_of_denormals
nombre d'échantillons ayant une valeur sous-normale
Number_of_samples
nombre d'échantillons
Peak_count
nombre d'occurrences (et non le nombre d'échantillons) où le signal a atteint Min_level ou Max_level
Abs_Peak_count
nombre d'occurrences où les échantillons absolus prélevés sur le signal ont atteint la valeur absolue maximale de Min_level et Max_level
Peak_level
niveau de crête standard mesuré en dBFS
RMS_difference
différence quadratique moyenne (RMS) entre deux échantillons consécutifs
RMS_level
niveau RMS standard mesuré en dBFS
RMS_peak RMS_trough
valeurs de crête et de creux du niveau RMS mesurées sur une fenêtre courte, en dBFS.
Zero crossings
nombre de points où la forme d'onde traverse l'axe de niveau zéro
Zero crossings rate
rapport entre le nombre de passages par zéro et le nombre d'échantillons audio
8.60 asubboost
Amplifie les fréquences du caisson de basses.
Le filtre accepte les options suivantes :
dry
Définit le gain dry, c'est-à-dire la part du signal d'origine conservée. La plage autorisée va de 0 à 1. La valeur par défaut est 1.0.
wet
Définit le gain wet, c'est-à-dire la part du signal filtré conservée. La plage autorisée va de 0 à 1. La valeur par défaut est 1.0.
boost
Définit le facteur d'amplification maximal. La plage autorisée va de 1 à 12. La valeur par défaut est 2.
decay
Définit la valeur de gain de décroissance de la ligne à retard. La plage autorisée va de 0 à 1. La valeur par défaut est 0.0.
feedback
Définit la valeur de gain de réinjection de la ligne à retard. La plage autorisée va de 0 à 1. La valeur par défaut est 0.9.
cutoff
Définit la fréquence de coupure en hertz. La plage autorisée va de 50 à 900. La valeur par défaut est 100.
slope
Définit la pente de la fréquence de coupure. La plage autorisée va de 0.0001 à 1. La valeur par défaut est 0.5.
delay
Définit le retard. La plage autorisée va de 1 à 100. La valeur par défaut est 20.
channels
Définit les canaux à traiter. La valeur par défaut correspond à tous les canaux disponibles.
8.60.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.61 asubcut
Coupe les fréquences du caisson de basses.
Ce filtre permet de définir une pente de coupure personnalisée, plus raide que celle d'un filtre passe-haut, et peut ainsi atténuer davantage le contenu fréquentiel dans la bande coupée.
Le filtre accepte les options suivantes :
cutoff
Définit la fréquence de coupure en hertz. La plage autorisée va de 2 à 200. La valeur par défaut est 20.
order
Définit l'ordre du filtre. Les valeurs disponibles vont de 3 à 20. La valeur par défaut est 10.
level
Définit le niveau de gain d'entrée. La plage autorisée va de 0 à 1. La valeur par défaut est 1.
8.61.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.62 asupercut
Coupe les fréquences très élevées.
Le filtre accepte les options suivantes :
cutoff
Définit la fréquence de coupure en hertz. La plage autorisée va de 20000 à 192000. La valeur par défaut est 20000.
order
Définit l'ordre du filtre. Les valeurs disponibles vont de 3 à 20. La valeur par défaut est 10.
level
Définit le niveau de gain d'entrée. La plage autorisée va de 0 à 1. La valeur par défaut est 1.
8.62.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.63 asuperpass
Applique un filtre passe-bande de Butterworth d'ordre élevé.
Le filtre accepte les options suivantes :
centerf
Définit la fréquence centrale en hertz. La plage autorisée va de 2 à 999999. La valeur par défaut est 1000.
order
Définit l'ordre du filtre. Les valeurs disponibles vont de 4 à 20. La valeur par défaut est 4.
qfactor
Définit le facteur Q. La plage autorisée va de 0.01 à 100. La valeur par défaut est 1.
level
Définit le niveau de gain d'entrée. La plage autorisée va de 0 à 2. La valeur par défaut est 1.
8.63.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.64 asuperstop
Applique un filtre coupe-bande de Butterworth d'ordre élevé.
Le filtre accepte les options suivantes :
centerf
Définit la fréquence centrale en hertz. La plage autorisée va de 2 à 999999. La valeur par défaut est 1000.
order
Définit l'ordre du filtre. Les valeurs disponibles vont de 4 à 20. La valeur par défaut est 4.
qfactor
Définit le facteur Q. La plage autorisée va de 0.01 à 100. La valeur par défaut est 1.
level
Définit le niveau de gain d'entrée. La plage autorisée va de 0 à 2. La valeur par défaut est 1.
8.64.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.65 atempo
Ajuste le tempo audio.
Le filtre accepte exactement un paramètre, le tempo audio. S'il n'est pas précisé, le filtre suppose un tempo nominal de 1.0. Le tempo doit être compris dans la plage [0.5, 100.0].
Notez qu'un tempo supérieur à 2 saute certains échantillons au lieu de les mélanger. Si cela pose problème pour une raison quelconque, il est toujours possible de chaîner plusieurs instances d'atempo pour obtenir le tempo produit souhaité.
8.65.1 Exemples
-
Ralentit l'audio à un tempo de 80 % :
atempo=0.8 -
Accélère l'audio à un tempo de 300 % :
atempo=3 -
Accélère l'audio à un tempo de 300 % en chaînant deux instances d'atempo :
atempo=sqrt(3),atempo=sqrt(3)
8.65.2 Commandes
Ce filtre prend en charge les commandes suivantes :
tempo
Modifie le facteur d'échelle de tempo du filtre. La syntaxe de la commande est : "tempo"
8.66 atilt
Applique un filtre d'inclinaison spectrale au flux audio.
Ce filtre applique une pente de roll-off spectral sur n'importe quelle bande de fréquences spécifiée.
Le filtre accepte les options suivantes :
freq
Définit la fréquence centrale de l'inclinaison en Hz. La valeur par défaut est 10000 Hz.
slope
Définit la direction de la pente de l'inclinaison. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
width
Définit la largeur de l'inclinaison. La valeur par défaut est 1000. La plage autorisée va de 100 à 10000.
order
Définit l'ordre du filtre d'inclinaison.
level
Définit le niveau du volume d'entrée. La plage autorisée va de 0 à 4. La valeur par défaut est 1.
8.66.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.67 atrim
Découpe l'entrée de sorte que la sortie contienne une seule sous-partie continue de l'entrée.
Accepte les paramètres suivants :
start
Horodatage (en secondes) du début de la section à conserver. C'est-à-dire que l'échantillon audio dont l'horodatage est start est le premier échantillon de la sortie.
end
Indique l'instant du premier échantillon audio à supprimer, c'est-à-dire que l'échantillon audio précédant immédiatement celui dont l'horodatage est end est le dernier échantillon de la sortie.
start_pts
Identique à start, sauf que cette option définit l'horodatage de début en échantillons plutôt qu'en secondes.
end_pts
Identique à end, sauf que cette option définit l'horodatage de fin en échantillons plutôt qu'en secondes.
duration
Durée maximale de la sortie, en secondes.
start_sample
Numéro du premier échantillon à inclure dans la sortie.
end_sample
Numéro du premier échantillon à supprimer.
start, end et duration s'expriment comme des spécifications de durée ; voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1).
Notez que les deux premières paires d'options start/end ainsi que l'option duration se basent sur l'horodatage de l'image, alors que les options _sample comptent simplement les échantillons qui traversent le filtre. Ainsi, start/end_pts et start/end_sample donnent des résultats différents lorsque les horodatages sont erronés, imprécis ou ne commencent pas à zéro. Notez également que ce filtre ne modifie pas les horodatages. Si vous souhaitez que les horodatages de sortie commencent à zéro, insérez le filtre asetpts après le filtre atrim.
Si plusieurs options start ou end sont définies, ce filtre se comporte de façon gourmande et conserve tous les échantillons correspondant à au moins une des contraintes spécifiées. Pour ne conserver que la partie qui satisfait toutes les contraintes à la fois, chaînez plusieurs filtres atrim.
Les valeurs par défaut sont telles que la totalité de l'entrée est conservée. Il est donc possible de définir, par exemple, uniquement la valeur end pour conserver tout ce qui précède l'instant spécifié.
Exemples :
-
Supprime tout sauf la deuxième minute de l'entrée :
ffmpeg -i INPUT -af atrim=60:120 -
Conserve uniquement les 1000 premiers échantillons :
ffmpeg -i INPUT -af atrim=end_sample=1000
8.68 axcorrelate
Calcule la corrélation croisée normalisée et fenêtrée entre deux flux audio d'entrée.
Les échantillons résultants sont toujours compris entre -1 et 1 inclus. Un résultat de 1 signifie que les deux échantillons d'entrée sont fortement corrélés sur le segment sélectionné. Un résultat de 0 signifie qu'ils ne sont pas du tout corrélés. Un résultat de -1 signifie que les deux échantillons d'entrée sont en opposition de phase, c'est-à-dire qu'ils s'annulent mutuellement.
Le filtre accepte les options suivantes :
size
Définit la taille du segment sur lequel la corrélation croisée est calculée. La valeur par défaut est 256. La plage autorisée va de 2 à 131072.
algo
Définit l'algorithme de corrélation croisée. Peut être slow, fast ou best. La valeur par défaut est best. L'algorithme fast suppose que les valeurs moyennes sur un segment donné sont toujours nulles, ce qui nécessite beaucoup moins de calculs. Ce n'est généralement pas vrai, mais c'est valable pour des flux audio typiques.
8.68.1 Exemples
- Calcule la corrélation entre les canaux d'un flux audio stéréo :
ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
8.69 bandpass
Applique un filtre passe-bande de Butterworth à deux pôles, de fréquence centrale frequency et de largeur de bande (point à 3 dB) width. L'option csg sélectionne un gain de palier constant (gain de crête = Q) au lieu du comportement par défaut : gain de crête constant de 0 dB. Le filtre présente une pente de 6 dB par octave (20 dB par décade).
Le filtre accepte les options suivantes :
frequency, f
Définit la fréquence centrale du filtre. La valeur par défaut est 3000.
csg
Gain de palier constant si réglé sur 1. La valeur par défaut est 0.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Indique la largeur de bande du filtre, dans les unités de width_type.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.69.1 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie frequency de bandpass. La syntaxe de la commande est : "frequency"
width_type, t
Modifie width_type de bandpass. La syntaxe de la commande est : "width_type"
width, w
Modifie width de bandpass. La syntaxe de la commande est : "width"
mix, m
Modifie mix de bandpass. La syntaxe de la commande est : "mix"
8.70 bandreject
Applique un filtre coupe-bande de Butterworth à deux pôles, de fréquence centrale frequency et de largeur de bande (point à 3 dB) width. Le filtre présente une pente de 6 dB par octave (20 dB par décade).
Le filtre accepte les options suivantes :
frequency, f
Définit la fréquence centrale du filtre. La valeur par défaut est 3000.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Indique la largeur de bande du filtre, dans les unités de width_type.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.70.1 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie frequency de bandreject. La syntaxe de la commande est : "frequency"
width_type, t
Modifie width_type de bandreject. La syntaxe de la commande est : "width_type"
width, w
Modifie width de bandreject. La syntaxe de la commande est : "width"
mix, m
Modifie mix de bandreject. La syntaxe de la commande est : "mix"
8.71 bass, lowshelf
Amplifie ou atténue les fréquences graves (basses) de l'audio à l'aide d'un filtre en plateau à deux pôles, avec une réponse similaire à celle des réglages de tonalité d'une chaîne hi-fi classique. On parle aussi d'égalisation en plateau (EQ).
Le filtre accepte les options suivantes :
gain, g
Indique le gain à 0 Hz. Sa plage utile va d'environ -20 (pour une forte atténuation) à +20 (pour une forte amplification). Attention à l'écrêtage lors de l'utilisation d'un gain positif.
frequency, f
Définit la fréquence centrale du filtre, ce qui permet d'étendre ou de réduire la plage de fréquences à amplifier ou à atténuer. La valeur par défaut est 100 Hz.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Détermine la raideur de la transition du plateau du filtre.
poles, p
Définit le nombre de pôles. La valeur par défaut est 2.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.71.1 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie la fréquence de bass. La syntaxe de la commande est : "frequency"
width_type, t
Modifie le width_type de bass. La syntaxe de la commande est : "width_type"
width, w
Modifie la largeur de bass. La syntaxe de la commande est : "width"
gain, g
Modifie le gain de bass. La syntaxe de la commande est : "gain"
mix, m
Modifie le mélange de bass. La syntaxe de la commande est : "mix"
8.72 biquad
Applique un filtre IIR biquad avec les coefficients indiqués. Ici, b0, b1, b2 et a0, a1, a2 sont respectivement les coefficients du numérateur et du dénominateur. Quant à channels, c, il indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
8.72.1 Commandes
Ce filtre prend en charge les commandes suivantes :
a0 a1 a2 b0 b1 b2
Modifie un paramètre de biquad. La syntaxe de la commande est : "value"
mix, m
Indique la proportion de signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage va de 0 à 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients de biquad. Désactivé par défaut. Si activée, cette option normalise la réponse en amplitude en DC à 0dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des échantillons signés 16 bits.
s32
Utilise toujours des échantillons signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.73 bs2b
Transformation stéréo vers binaural de Bauer, qui améliore l'écoute au casque des enregistrements audio stéréo.
Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-libbs2b.
Il accepte les paramètres suivants :
profile
Niveau de crossfeed prédéfini.
default
Niveau par défaut (fcut=700, feed=50).
cmoy
Circuit Chu Moy (fcut=700, feed=60).
jmeier
Circuit Jan Meier (fcut=650, feed=95).
fcut
Fréquence de coupure (en Hz).
feed
Niveau de feed (en Hz).
8.74 channelmap
Réaffecte les canaux d'entrée vers de nouveaux emplacements.
Il accepte les paramètres suivants :
map
Fait correspondre les canaux de l'entrée à ceux de la sortie. L'argument est une liste de correspondances séparées par ’|’, chacune sous la forme in_channel-out_channel ou in_channel. in_channel peut être soit le nom du canal d'entrée (par exemple FL pour front left), soit son index dans la disposition des canaux d'entrée. out_channel est le nom du canal de sortie ou son index dans la disposition des canaux de sortie. Si out_channel n'est pas indiqué, il s'agit alors implicitement d'un index qui commence à zéro et augmente de un à chaque correspondance. Mélanger différents types de correspondances n'est pas autorisé et provoquera une erreur d'analyse.
channel_layout
Disposition des canaux du flux de sortie. Si elle n'est pas spécifiée, le filtre la devine à partir des noms de out_channel ou du nombre de correspondances. Les dispositions devinées ne contiennent pas nécessairement les canaux dans l'ordre des correspondances.
En l'absence de correspondance, le filtre fait implicitement correspondre les canaux d'entrée aux canaux de sortie, en conservant les index.
8.74.1 Exemples
- Par exemple, en supposant un fichier MOV d'entrée 5.1+downmix,
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
créera un fichier WAV de sortie étiqueté comme stéréo à partir des canaux downmix de l'entrée.
- Pour corriger un WAV 5.1 encodé de façon incorrecte dans l'ordre de canaux natif de l'AAC
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
8.75 channelsplit
Divise chaque canal d'un flux audio d'entrée en un flux de sortie distinct.
Il accepte les paramètres suivants :
channel_layout
Disposition des canaux du flux d'entrée. La valeur par défaut est "stereo".
channels
Disposition de canaux décrivant les canaux à extraire sous forme de flux de sortie distincts, ou "all" pour extraire chaque canal d'entrée sous forme de flux distinct. La valeur par défaut est "all".
Choisir des canaux absents de la disposition des canaux de l'entrée provoquera une erreur.
8.75.1 Exemples
- Par exemple, en supposant un fichier MP3 d'entrée stéréo,
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
créera un fichier Matroska de sortie avec deux flux audio, l'un ne contenant que le canal gauche et l'autre le canal droit.
-
Divise un fichier WAV 5.1 en fichiers par 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 -
Extrait uniquement le LFE d'un fichier WAV 5.1 :
ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]' -map '[LFE]' lfe.wav
8.76 chorus
Ajoute un effet de chorus à l'audio.
Peut faire sonner une voix seule comme un chœur, mais peut aussi s'appliquer à de l'instrumentation.
Le chorus ressemble à un effet d'écho avec un court délai, mais alors que le délai de l'écho est constant, celui du chorus varie grâce à une modulation sinusoïdale ou triangulaire. La profondeur de modulation définit l'amplitude selon laquelle le délai modulé est joué avant ou après le délai de base. Le son retardé semblera donc plus lent ou plus rapide, c'est-à-dire que le son retardé oscille autour du son d'origine, comme dans un chœur où certaines voix chantent légèrement faux.
Il accepte les paramètres suivants :
in_gain
Définit le gain d'entrée. La valeur par défaut est 0.4.
out_gain
Définit le gain de sortie. La valeur par défaut est 0.4.
delays
Définit les délais. Un délai typique se situe entre 40ms et 60ms.
decays
Définit les décroissances.
speeds
Définit les vitesses.
depths
Définit les profondeurs.
8.76.1 Exemples
-
Un délai unique :
chorus=0.7:0.9:55:0.4:0.25:2 -
Deux délais :
chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3 -
Chorus au son plus riche avec trois délais :
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 ou étend la dynamique de l'audio.
Il accepte les paramètres suivants :
attacks decays
Une liste de durées en secondes, pour chaque canal, sur laquelle le niveau instantané du signal d'entrée est moyenné pour déterminer son volume. attacks correspond à l'augmentation du volume et decays à sa diminution. Dans la plupart des cas, le temps d'attaque (réponse à l'audio qui devient plus fort) devrait être plus court que le temps de décroissance, car l'oreille humaine est plus sensible à un son fort soudain qu'à un son faible soudain. Une valeur typique pour l'attaque est 0.3 seconde et une valeur typique pour la décroissance est 0.8 seconde. Si le nombre d'attacks et decays spécifiés est inférieur au nombre de canaux, la dernière attaque/décroissance définie est utilisée pour tous les canaux restants.
points
Une liste de points pour la fonction de transfert, spécifiés en dB par rapport à l'amplitude maximale possible du signal. Chaque liste de points clés doit être définie selon la syntaxe suivante : x0/y0|x1/y1|x2/y2|.... ou x0/y0 x1/y1 x2/y2 ....
Les valeurs d'entrée doivent être en ordre strictement croissant, mais la fonction de transfert n'a pas besoin d'être monotone croissante. Le point 0/0 est supposé mais peut être remplacé (par 0/out-dBn). Les valeurs typiques de la fonction de transfert sont -70/-70|-60/-20|1/0.
soft-knee
Définit le rayon de courbure en dB pour toutes les jonctions. La valeur par défaut est 0.01.
gain
Définit le gain supplémentaire en dB à appliquer à tous les points de la fonction de transfert. Cela permet d'ajuster facilement le gain global. La valeur par défaut est 0.
volume
Définit un volume initial, en dB, supposé pour chaque canal au démarrage du filtrage. Cela permet à l'utilisateur de fournir d'emblée un niveau nominal, afin par exemple qu'un gain très élevé ne soit pas appliqué aux niveaux de signal initiaux avant que le companding n'ait commencé à opérer. Une valeur typique pour un audio initialement calme est -90 dB. La valeur par défaut est 0.
delay
Définit un délai, en secondes. L'audio d'entrée est analysé immédiatement, mais l'audio est retardé avant d'être transmis à l'ajusteur de volume. Spécifier un délai à peu près égal aux temps d'attaque/décroissance permet au filtre de fonctionner de façon effectivement prédictive plutôt que réactive. La valeur par défaut est 0.
8.77.1 Exemples
- Crée une musique avec des passages à la fois calmes et forts, adaptée à l'écoute dans un environnement bruyant :
compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
Un autre exemple pour un audio comportant des passages chuchotés et des explosions :
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
-
Une porte de bruit (noise gate) pour quand le bruit est à un niveau inférieur au signal :
compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1 -
Voici une autre porte de bruit, cette fois pour quand le bruit est à un niveau supérieur au signal (ce qui la rend, à certains égards, semblable à un squelch) :
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1 -
Compression 2:1 démarrant à -6dB :
compand=points=-80/-80|-6/-6|0/-3.8|20/3.5 -
Compression 2:1 démarrant à -9dB :
compand=points=-80/-80|-9/-9|0/-5.3|20/2.9 -
Compression 2:1 démarrant à -12dB :
compand=points=-80/-80|-12/-12|0/-6.8|20/1.9 -
Compression 2:1 démarrant à -18dB :
compand=points=-80/-80|-18/-18|0/-9.8|20/0.7 -
Compression 3:1 démarrant à -15dB :
compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2 -
Compresseur/Porte :
compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6 -
Expandeur :
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 -
Limiteur dur à -6dB :
compand=attacks=0:points=-80/-80|-6/-6|20/-6 -
Limiteur dur à -12dB :
compand=attacks=0:points=-80/-80|-12/-12|20/-12 -
Porte de bruit dure à -35 dB :
compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20 -
Limiteur doux :
compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
8.78 compensationdelay
Compensation Delay Line est un délai basé sur une distance métrique, destiné à compenser les différences de position entre microphones ou haut-parleurs.
Par exemple, vous avez enregistré une guitare avec deux microphones placés à des endroits différents. Comme le front de l'onde sonore se déplace à vitesse fixe en conditions normales, la phase des microphones peut varier selon leur emplacement et leur disposition mutuelle. Le meilleur mixage sonore s'obtient lorsque ces microphones sont en phase (synchronisés). Notez qu'une distance d'environ 30 cm entre microphones fait qu'un microphone capte le signal en antiphase par rapport à l'autre. Cela rend le mixage final trouble. Ce filtre aide à résoudre les problèmes de phase en ajoutant des délais différents à chaque piste de microphone et en les synchronisant.
Le meilleur résultat s'obtient en prenant une piste comme référence et en synchronisant les autres pistes avec elle, une par une. N'oubliez pas que la tolérance de synchronisation/délai dépend aussi de la fréquence d'échantillonnage. Des fréquences d'échantillonnage plus élevées offrent plus de tolérance.
Le filtre accepte les paramètres suivants :
mm
Définit la distance en millimètres. Il s'agit de la distance de compensation pour un réglage fin. La valeur par défaut est 0.
cm
Définit la distance en centimètres. Il s'agit de la distance de compensation pour ajuster la configuration de distance. La valeur par défaut est 0.
m
Définit la distance en mètres. Il s'agit de la distance de compensation pour une configuration de distance grossière. La valeur par défaut est 0.
dry
Définit la quantité de dry. Quantité de signal non traité (dry). La valeur par défaut est 0.
wet
Définit la quantité de wet. Quantité de signal traité (wet). La valeur par défaut est 1.
temp
Définit la température en degrés Celsius. Il s'agit de la température de l'environnement. La valeur par défaut est 20.
8.78.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.79 crossfeed
Applique un filtre de crossfeed pour casque.
Le crossfeed consiste à mélanger les canaux gauche et droit d'un enregistrement audio stéréo. Il sert principalement à réduire la séparation stéréo extrême des basses fréquences.
L'objectif est de produire pour l'auditeur un son plus proche de celui d'enceintes.
Le filtre accepte les options suivantes :
strength
Définit l'intensité du crossfeed. La valeur par défaut est 0.2. La plage autorisée va de 0 à 1. Cela définit le gain du filtre low shelf pour la partie latérale de l'image stéréo. La valeur par défaut est -6dB. Le maximum autorisé est -30db lorsque strength est fixé à 1.
range
Définit l'ampleur de la scène sonore. La valeur par défaut est 0.5. La plage autorisée va de 0 à 1. Cela définit la fréquence de coupure du filtre low shelf. Par défaut, la coupure se situe près de 1550 Hz. Avec range fixé à 1, la fréquence de coupure est fixée à 2100 Hz.
slope
Définit la pente de la courbe du filtre low shelf. La valeur par défaut est 0.5. La plage autorisée va de 0.01 à 1.
level_in
Définit le gain d'entrée. La valeur par défaut est 0.9.
level_out
Définit le gain de sortie. La valeur par défaut est 1.
block_size
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.79.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.80 crystalizer
Algorithme simple pour le renforcement du bruit audio (noise sharpening).
Ce filtre augmente linéairement les différences entre chaque échantillon audio.
Le filtre accepte les options suivantes :
i
Définit l'intensité de l'effet (valeur par défaut : 2.0). Doit être comprise entre -10.0 à 0 (son inchangé) et 10.0 (effet maximal). Pour inverser le filtrage, utilisez une valeur négative.
c
Active l'écrêtage (clipping). Activé par défaut.
8.80.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.81 dcshift
Applique un décalage DC (DC shift) à l'audio.
Cela peut être utile pour supprimer de l'audio un offset DC (causé peut-être par un problème matériel dans la chaîne d'enregistrement). L'effet d'un offset DC est une réduction du headroom et donc du volume. Le filtre astats peut être utilisé pour déterminer si un signal présente un offset DC.
shift
Définit le décalage DC ; la plage autorisée est [-1, 1]. Indique l'ampleur du décalage appliqué à l'audio.
limitergain
Optionnel. Doit avoir une valeur bien inférieure à 1 (par exemple 0.05 ou 0.02) et sert à éviter l'écrêtage (clipping).
8.82 deesser
Applique du de-essing aux échantillons audio.
i
Définit l'intensité déclenchant le de-essing. La plage autorisée va de 0 à 1. La valeur par défaut est 0.
m
Définit la quantité de ducking sur la partie aiguë du son. La plage autorisée va de 0 à 1. La valeur par défaut est 0.5.
f
Détermine la part du contenu fréquentiel d'origine conservée lors du de-essing. La plage autorisée va de 0 à 1. La valeur par défaut est 0.5.
s
Définit le mode de sortie.
Il accepte les valeurs suivantes :
i
Laisse passer l'entrée sans modification.
o
Laisse passer le signal débarrassé de l'ess.
e
Laisse passer uniquement l'ess.
La valeur par défaut est o.
8.83 dialoguenhance
Renforce le dialogue dans un audio stéréo.
Ce filtre accepte une entrée stéréo et produit une sortie en canaux surround (3.0). Le canal central avant nouvellement produit contient le dialogue vocal renforcé, initialement présent dans les deux canaux stéréo. Ce filtre restitue les canaux avant gauche et avant droit tels que présents dans l'entrée stéréo.
Le filtre accepte les options suivantes :
original
Définit le facteur de centre d'origine à conserver dans la sortie du canal frontal central. La plage autorisée va de 0 à 1. La valeur par défaut est 1.
enhance
Définit le facteur de renforcement du dialogue à ajouter dans la sortie du canal frontal central. La plage autorisée va de 0 à 3. La valeur par défaut est 1.
voice
Définit le facteur de détection vocale. La plage autorisée va de 2 à 32. La valeur par défaut est 2.
8.83.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.84 drmeter
Mesure la dynamique de l'audio.
Des valeurs de DR de 14 et plus se rencontrent dans un contenu très dynamique. Un DR de 8 à 13 se rencontre dans un contenu de transition. Et tout ce qui est inférieur à 8 présente une dynamique très pauvre et une forte compression.
Le filtre accepte les options suivantes :
length
Définit, en secondes, la longueur de fenêtre utilisée pour diviser l'audio en segments de longueur égale. La valeur par défaut est 3 secondes.
8.85 dynaudnorm
Dynamic Audio Normalizer.
Ce filtre applique une certaine quantité de gain à l'audio d'entrée afin d'amener sa magnitude de crête à un niveau cible (par exemple 0 dBFS). Cependant, contrairement aux algorithmes de normalisation plus "simples", le Dynamic Audio Normalizer réajuste dynamiquement le facteur de gain en fonction de l'audio d'entrée. Cela permet d'appliquer un gain supplémentaire aux sections "silencieuses" de l'audio tout en évitant les distorsions ou l'écrêtage des sections "fortes". Autrement dit : le Dynamic Audio Normalizer "égalise" le volume des sections silencieuses et fortes, en ce sens que le volume de chaque section est amené au même niveau cible. Notez cependant que le Dynamic Audio Normalizer atteint cet objectif sans appliquer de "compression de la dynamique". Il conservera 100 % de la dynamique à l'intérieur de chaque section du fichier audio.
framelen, f
Définit la longueur d'image en millisecondes. Plage de 10 à 8000 millisecondes. La valeur par défaut est 500 millisecondes. Le Dynamic Audio Normalizer traite l'audio d'entrée par petits blocs, appelés images. Cela est nécessaire car une magnitude de crête n'a pas de sens pour une seule valeur d'échantillon. Il faut au contraire déterminer la magnitude de crête sur une séquence contiguë de valeurs d'échantillon. Alors qu'un normalisateur "standard" utiliserait simplement la magnitude de crête du fichier complet, le Dynamic Audio Normalizer détermine la magnitude de crête individuellement pour chaque image. La longueur d'une image est spécifiée en millisecondes. Par défaut, le Dynamic Audio Normalizer utilise une longueur d'image de 500 millisecondes, ce qui s'est révélé donner de bons résultats avec la plupart des fichiers. Notez que la longueur exacte de l'image, en nombre d'échantillons, sera déterminée automatiquement en fonction de la fréquence d'échantillonnage de chaque fichier audio d'entrée.
gausssize, g
Définit la taille de la fenêtre du filtre gaussien. Plage de 3 à 301, doit être un nombre impair. La valeur par défaut est 31. Le paramètre sans doute le plus important du Dynamic Audio Normalizer est la window size (taille de fenêtre) du filtre de lissage gaussien. La taille de fenêtre du filtre est spécifiée en images, centrée autour de l'image actuelle. Par simplicité, ce doit être un nombre impair. Par conséquent, la valeur par défaut de 31 prend en compte l'image actuelle, ainsi que les 15 images précédentes et les 15 images suivantes. Utiliser une fenêtre plus grande produit un effet de lissage plus fort et donc moins de variation de gain, c'est-à-dire une adaptation du gain plus lente. Inversement, utiliser une fenêtre plus petite produit un effet de lissage plus faible et donc plus de variation de gain, c'est-à-dire une adaptation du gain plus rapide. Autrement dit, plus vous augmentez cette valeur, plus le Dynamic Audio Normalizer se comporte comme un filtre de normalisation "traditionnel". À l'inverse, plus vous diminuez cette valeur, plus le Dynamic Audio Normalizer se comporte comme un compresseur de dynamique.
peak, p
Définit la valeur de crête cible. Spécifie le niveau de magnitude le plus élevé autorisé pour l'audio d'entrée normalisé. Ce filtre tentera de s'approcher autant que possible de la magnitude de crête cible, tout en s'assurant que le signal normalisé ne dépasse jamais la magnitude de crête. Le facteur de gain local maximal d'une image est directement imposé par la magnitude de crête cible. La valeur par défaut est 0.95, ce qui laisse un headroom de 5 %*. Il n'est pas recommandé de dépasser cette valeur.
maxgain, m
Définit le facteur de gain maximal. Plage de 1.0 à 100.0. La valeur par défaut est 10.0. Le Dynamic Audio Normalizer détermine, pour chaque image d'entrée, le facteur de gain (local) maximal possible, c'est-à-dire le facteur de gain maximal qui ne produit ni écrêtage ni distorsion. Le facteur de gain maximal est déterminé par l'échantillon de plus forte magnitude de l'image. Cependant, le Dynamic Audio Normalizer borne en outre le facteur de gain maximal de l'image par un facteur de gain maximal (global) prédéterminé. Cela permet d'éviter des facteurs de gain excessifs dans des images "silencieuses" ou presque silencieuses. Par défaut, le facteur de gain maximal est 10.0. Pour la plupart des entrées, la valeur par défaut devrait suffire, et il n'est généralement pas recommandé de l'augmenter. Toutefois, pour une entrée dont le niveau de volume global est extrêmement faible, il peut être nécessaire d'autoriser des facteurs de gain encore plus élevés. Notez cependant que le Dynamic Audio Normalizer n'applique pas simplement un seuil "dur" (c'est-à-dire qui écrête les valeurs au-delà du seuil). Une fonction de seuil "sigmoïde" est appliquée à la place. Ainsi, les facteurs de gain s'approchent en douceur de la valeur de seuil, sans jamais la dépasser.
targetrms, r
Définit le RMS cible. Plage de 0.0 à 1.0. La valeur par défaut est 0.0 - désactivé. Par défaut, le Dynamic Audio Normalizer effectue une normalisation "de crête". Cela signifie que le facteur de gain local maximal de chaque image est défini (uniquement) par l'échantillon de plus forte magnitude de l'image. Ainsi, les échantillons peuvent être amplifiés autant que possible sans dépasser le niveau de signal maximal, c'est-à-dire sans écrêtage. Optionnellement, le Dynamic Audio Normalizer peut aussi tenir compte de la valeur quadratique moyenne de l'image, abrégée RMS. En électrotechnique, le RMS est couramment utilisé pour déterminer la puissance d'un signal variable dans le temps. On considère donc que le RMS est une meilleure approximation de la "sonie perçue" que la seule observation de la magnitude de crête du signal. Par conséquent, en ajustant toutes les images à une valeur RMS constante, on peut établir une "sonie perçue" uniforme. Si une valeur RMS cible a été spécifiée, le facteur de gain local d'une image est défini comme le facteur qui donnerait exactement cette valeur RMS. Notez cependant que le facteur de gain local maximal reste limité par l'échantillon de plus forte magnitude de l'image, afin d'éviter l'écrêtage.
coupling, n
Active le couplage des canaux. Activé par défaut. Par défaut, le Dynamic Audio Normalizer amplifie tous les canaux de la même quantité. Cela signifie que le même facteur de gain sera appliqué à tous les canaux, c'est-à-dire que le facteur de gain maximal possible est déterminé par le canal "le plus fort". Cependant, dans certains enregistrements, il peut arriver que le volume des différents canaux soit inégal, par exemple un canal peut être "plus silencieux" que les autres. Dans ce cas, cette option permet de désactiver le couplage des canaux. Ainsi, le facteur de gain sera déterminé indépendamment pour chaque canal, en fonction uniquement de l'échantillon de plus forte magnitude de ce canal. Cela permet d'harmoniser le volume des différents canaux.
correctdc, c
Active la correction du biais DC. Désactivé par défaut. Un signal audio (dans le domaine temporel) est une séquence de valeurs d'échantillon. Dans le Dynamic Audio Normalizer, ces valeurs d'échantillon sont représentées dans la plage de -1.0 à 1.0, quel que soit le format d'entrée d'origine. Normalement, le signal audio, ou "forme d'onde", devrait être centré autour du point zéro. Cela signifie que si l'on calcule la valeur moyenne de tous les échantillons d'un fichier, ou d'une seule image, le résultat devrait être 0.0, ou du moins très proche de cette valeur. Cependant, s'il existe un écart significatif de la valeur moyenne par rapport à 0.0, dans un sens positif ou négatif, on parle de biais DC ou d'offset DC. Un biais DC étant clairement indésirable, le Dynamic Audio Normalizer propose une correction optionnelle du biais DC. Une fois la correction du biais DC activée, le Dynamic Audio Normalizer détermine la valeur moyenne, ou décalage de "correction DC", de chaque image d'entrée, et la soustrait de toutes les valeurs d'échantillon de l'image, ce qui garantit que ces échantillons redeviennent centrés autour de 0.0. De plus, afin d'éviter des "trous" aux limites des images, les valeurs de décalage de correction DC sont interpolées en douceur entre images voisines.
altboundary, b
Active le mode de limite alternatif. Désactivé par défaut. Le Dynamic Audio Normalizer prend en compte un certain voisinage autour de chaque image. Cela inclut aussi bien les images précédentes que les images suivantes. Cependant, pour les images "limites", situées tout au début et tout à la fin du fichier audio, toutes les images voisines ne sont pas disponibles. En particulier, pour les toutes premières images du fichier audio, les images précédentes sont inconnues. Et, de même, pour les toutes dernières images du fichier audio, les images suivantes sont inconnues. Se pose donc la question de savoir quels facteurs de gain doivent être supposés pour les images manquantes dans la région "limite". Le Dynamic Audio Normalizer met en œuvre deux modes pour traiter cette situation. Le mode de limite par défaut suppose un facteur de gain exactement égal à 1.0 pour les images manquantes, ce qui produit un "fade in" et un "fade out" en douceur respectivement au début et à la fin de l'entrée.
compress, s
Définit le facteur de compression. Plage de 0.0 à 30.0. La valeur par défaut est 0.0. Par défaut, le Dynamic Audio Normalizer n'applique pas de compression "traditionnelle". Cela signifie que les crêtes du signal ne seront pas écrêtées et que la dynamique complète sera donc conservée dans chaque voisinage local. Cependant, dans certains cas, il peut être souhaitable de combiner l'algorithme de normalisation du Dynamic Audio Normalizer avec une compression plus "traditionnelle". Dans ce but, le Dynamic Audio Normalizer propose une fonction optionnelle de compression (seuillage). Si (et seulement si) la fonction de compression est activée, toutes les images d'entrée sont traitées par une fonction de seuillage soft knee avant le processus de normalisation proprement dit. Autrement dit, la fonction de seuillage écrête tous les échantillons dont la magnitude dépasse une certaine valeur de seuil. Cependant, le Dynamic Audio Normalizer n'applique pas simplement une valeur de seuil fixe. Le seuil est au contraire ajusté pour chaque image individuellement. En général, des paramètres plus petits produisent une compression plus forte, et inversement. Les valeurs inférieures à 3.0 ne sont pas recommandées, car une distorsion audible peut apparaître.
threshold, t
Définit la valeur de seuil cible. Spécifie le niveau de magnitude le plus bas autorisé pour que l'audio d'entrée soit normalisé. Si le volume de l'image d'entrée est supérieur à cette valeur, l'image sera normalisée. Sinon, l'image peut ne pas être normalisée du tout. La valeur par défaut est fixée à 0, ce qui signifie que toutes les images d'entrée seront normalisées. Cette option est surtout utile lorsque l'on ne souhaite pas amplifier le bruit numérique.
channels, h
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
overlap, o
Spécifie le chevauchement des images. Si fixé à 0 (valeur par défaut), aucun chevauchement d'images n'est effectué. Utiliser des valeurs >0 et <1 produit des ajustements de gain moins conservateurs, comme lorsque l'option framelen est fixée à une valeur plus petite ; si la valeur de l'option framelen est compensée pour un chevauchement non nul, les ajustements de gain seront plus lisses dans le temps par rapport au cas sans chevauchement.
curve, v
Spécifie l'expression de la courbe de mise en correspondance des crêtes utilisée pour calculer le gain appliqué aux images. Le gain de sortie maximal par image reste limité par les autres options mentionnées précédemment pour ce filtre.
L'expression peut contenir les constantes suivantes :
ch
numéro de canal actuel
sn
numéro d'échantillon actuel
nb_channels
nombre de canaux
t
horodatage exprimé en secondes
sr
fréquence d'échantillonnage
p
valeur de crête de l'image actuelle
8.85.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.86 earwax
Rend l'audio plus facile à écouter au casque.
Ce filtre ajoute des ‘cues’ à l'audio stéréo 44.1kHz (c'est-à-dire au format CD audio) afin que, à l'écoute au casque, l'image stéréo se déplace de l'intérieur de la tête (habituel avec un casque) vers l'extérieur et devant l'auditeur (habituel avec des enceintes).
Porté depuis SoX.
8.87 equalizer
Applique un filtre d'égalisation (EQ) en cloche à deux pôles. Avec ce filtre, le niveau de signal à une fréquence choisie et à proximité peut être augmenté ou réduit, alors que (contrairement aux filtres passe-bande et coupe-bande) celui des autres fréquences reste inchangé.
Pour produire des courbes d'égalisation complexes, ce filtre peut être indiqué plusieurs fois, chacune avec une fréquence centrale différente.
Le filtre accepte les options suivantes :
frequency, f
Définit la fréquence centrale du filtre en Hz.
width_type, t
Définit la méthode de spécification de la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Spécifie la largeur de bande d'un filtre en unités de width_type.
gain, g
Définit le gain ou l'atténuation requis, en dB. Attention à l'écrêtage lors de l'utilisation d'un gain positif.
mix, m
Indique la proportion de signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage va de 0 à 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients de biquad. Désactivé par défaut. Si activée, cette option normalise la réponse en amplitude en DC à 0dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des échantillons signés 16 bits.
s32
Utilise toujours des échantillons signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.87.1 Exemples
-
Atténue 10 dB à 1000 Hz, avec une largeur de bande de 200 Hz :
equalizer=f=1000:t=h:width=200:g=-10 -
Applique un gain de 2 dB à 1000 Hz avec Q 1 et atténuer de 5 dB à 100 Hz avec Q 2 :
equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
8.87.2 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie la fréquence d'equalizer. La syntaxe de la commande est : "frequency"
width_type, t
Modifie le width_type d'equalizer. La syntaxe de la commande est : "width_type"
width, w
Modifie la largeur d'equalizer. La syntaxe de la commande est : "width"
gain, g
Modifie le gain d'equalizer. La syntaxe de la commande est : "gain"
mix, m
Modifie le mélange d'equalizer. La syntaxe de la commande est : "mix"
8.88 extrastereo
Augmente linéairement la différence entre les canaux gauche et droit, ce qui ajoute une sorte d'effet "live" à la lecture.
Le filtre accepte les options suivantes :
m
Définit le coefficient de différence (valeur par défaut : 2.5). 0.0 signifie un son mono (moyenne des deux canaux), avec 1.0 le son reste inchangé, avec -1.0 les canaux gauche et droit sont échangés.
c
Active l'écrêtage (clipping). Activé par défaut.
8.88.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.89 firequalizer
Applique une égalisation FIR à l'aide d'une réponse en fréquence arbitraire.
Le filtre accepte l'option suivante :
gain
Définit l'équation de la courbe de gain (en dB). L'expression peut contenir des variables :
f
la fréquence évaluée
sr
fréquence d'échantillonnage
ch
numéro de canal, réglé sur 0 lorsque l'évaluation multicanal est désactivée
chid
identifiant de canal, voir libavutil/channel_layout.h, réglé sur le premier identifiant de canal lorsque l'évaluation multicanal est désactivée
chs
nombre de canaux
chlayout
channel_layout, voir libavutil/channel_layout.h
et des fonctions :
gain_interpolate(f)
interpole le gain à la fréquence f à partir de gain_entry
cubic_interpolate(f)
identique à gain_interpolate, mais plus lisse
Cette option est également disponible en tant que commande. La valeur par défaut est gain_interpolate(f).
gain_entry
Définit une entrée de gain pour la fonction gain_interpolate. L'expression peut contenir des fonctions :
entry(f, g)
stocke une entrée de gain à la fréquence f avec la valeur g
Cette option est également disponible en tant que commande.
delay
Définit le délai du filtre en secondes. Une valeur plus élevée offre une meilleure précision. La valeur par défaut est 0.01.
accuracy
Définit la précision du filtre en Hz. Une valeur plus faible offre une meilleure précision. La valeur par défaut est 5.
wfunc
Définit la fonction de fenêtrage. Les valeurs acceptées sont :
rectangular
fenêtre rectangulaire, utile lorsque la courbe de gain est déjà lisse
hann
fenêtre de Hann (par défaut)
hamming
fenêtre de Hamming
blackman
fenêtre de Blackman
nuttall3
fenêtre de Nuttall à 3 termes, continue en dérivée première
mnuttall3
fenêtre de Nuttall minimale à 3 termes, discontinue
nuttall
fenêtre de Nuttall à 4 termes, continue en dérivée première
bnuttall
fenêtre de Nuttall minimale à 4 termes, discontinue (Blackman-Nuttall)
bharris
fenêtre de Blackman-Harris
tukey
fenêtre de Tukey
fixed
Si elle est activée, utilise un nombre fixe d'échantillons audio. Cela améliore la vitesse lors d'un filtrage avec un délai important. Désactivé par défaut.
multi
Active l'évaluation multicanal sur le gain. Désactivé par défaut.
zero_phase
Active le mode phase nulle en soustrayant l'horodatage pour compenser le délai. Désactivé par défaut.
scale
Définit l'échelle utilisée par le gain. Les valeurs acceptées sont :
linlin
fréquence linéaire, gain linéaire
linlog
fréquence linéaire, gain logarithmique (en dB) (par défaut)
loglin
fréquence logarithmique (sur une échelle en octaves où 20 Hz correspond à 0), gain linéaire
loglog
fréquence logarithmique, gain logarithmique
dumpfile
Définit le fichier de dump, adapté à gnuplot.
dumpscale
Définit l'échelle pour dumpfile. Les valeurs acceptées sont les mêmes que pour l'option scale. La valeur par défaut est linlog.
fft2
Active la convolution à 2 canaux à l'aide d'une FFT complexe. Cela améliore nettement la vitesse. Désactivé par défaut.
min_phase
Active la réponse impulsionnelle à phase minimale. Désactivé par défaut.
8.89.1 Exemples
-
passe-bas à 1000 Hz :
firequalizer=gain='if(lt(f,1000), 0, -INF)' -
passe-bas à 1000 Hz avec gain_entry :
firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)' -
égalisation personnalisée :
firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)' -
délai plus élevé avec phase nulle pour compenser le délai :
firequalizer=delay=0.1:fixed=on:zero_phase=on -
passe-bas sur le canal gauche, passe-haut sur le canal droit :
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
Applique un effet de flanger à l'audio.
Le filtre accepte les options suivantes :
delay
Définit le délai de base en millisecondes. La plage autorisée va de 0 à 30. La valeur par défaut est 0.
depth
Définit le délai de balayage ajouté en millisecondes. La plage autorisée va de 0 à 10. La valeur par défaut est 2.
regen
Définit le pourcentage de régénération (réinjection du signal retardé). La plage autorisée va de -95 à 95. La valeur par défaut est 0.
width
Définit le pourcentage de signal retardé mélangé au signal d'origine. La plage autorisée va de 0 à 100. La valeur par défaut est 71.
speed
Définit le nombre de balayages par seconde (Hz). La plage autorisée va de 0.1 à 10. La valeur par défaut est 0.5.
shape
Définit la forme de l'onde balayée, triangular ou sinusoidal. La valeur par défaut est sinusoidal.
phase
Définit le décalage en pourcentage de l'onde balayée pour les canaux multiples. La plage autorisée va de 0 à 100. La valeur par défaut est 25.
interp
Définit l'interpolation de la ligne à retard, linear ou quadratic. La valeur par défaut est linear.
8.91 haas
Applique l'effet Haas à l'audio.
Notez qu'il est surtout pertinent de l'appliquer à des signaux mono. Appliqué à des signaux mono, ce filtre leur donne une certaine directionnalité et élargit leur image stéréo.
Le filtre accepte les options suivantes :
level_in
Définit le niveau d'entrée. La valeur par défaut est 1, soit 0 dB
level_out
Définit le niveau de sortie. La valeur par défaut est 1, soit 0 dB.
side_gain
Définit le gain appliqué à la partie side du signal. La valeur par défaut est 1.
middle_source
Définit le type de source médiane. Peut être l'une des valeurs suivantes :
‘left’
Sélectionne le canal gauche.
‘right’
Sélectionne le canal droit.
‘mid’
Sélectionne le signal de la partie médiane de l'image stéréo.
‘side’
Sélectionne le signal de la partie side de l'image stéréo.
middle_phase
Inverse la phase médiane. Désactivé par défaut.
left_delay
Définit le délai du canal gauche. La valeur par défaut est 2.05 millisecondes.
left_balance
Définit la balance du canal gauche. La valeur par défaut est -1.
left_gain
Définit le gain du canal gauche. La valeur par défaut est 1.
left_phase
Inverse la phase gauche. Désactivé par défaut.
right_delay
Définit le délai du canal droit. La valeur par défaut est 2.12 millisecondes.
right_balance
Définit la balance du canal droit. La valeur par défaut est 1.
right_gain
Définit le gain du canal droit. La valeur par défaut est 1.
right_phase
Inverse la phase droite. Activé par défaut.
8.92 hdcd
Décode les données High Definition Compatible Digital (HDCD). Un flux PCM 16 bits contenant des codes HDCD intégrés est étendu en un flux PCM 20 bits.
Ce filtre prend en charge les fonctionnalités Peak Extend et Low-level Gain Adjustment de HDCD, et détecte l'indicateur Transient Filter.
ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
Lors de l'utilisation du filtre avec wav, notez que l'encodage par défaut pour wav est 16 bits ; le flux 20 bits obtenu sera donc tronqué à 16 bits. Utilisez quelque chose comme -acodec pcm_s24le après le filtre pour obtenir une sortie PCM 24 bits.
ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
Le filtre accepte les options suivantes :
disable_autoconvert
Désactive toute conversion de format ou tout rééchantillonnage automatique dans le graphe de filtres.
process_stereo
Traite les canaux stéréo ensemble. Si target_gain ne correspond pas entre les canaux, le considère comme invalide et utilise le dernier target_gain valide.
cdt_ms
Définit la période du minuteur de détection de code, en ms.
force_pe
Étend toujours les pics au-dessus de -3 dBFS, même si PE n'est pas signalé.
analyze_mode
Remplace l'audio par un ton continu et ajuste l'amplitude pour signaler un aspect spécifique du processus de décodage. Le fichier de sortie peut être chargé dans un éditeur audio à côté de l'original pour faciliter l'analyse.
analyze_mode=pe:force_pe=true peut être utilisé pour voir tous les échantillons au-dessus du niveau PE.
Les modes sont :
‘0, off’
Désactivé
‘1, lle’
Niveau d'ajustement de gain à chaque échantillon
‘2, pe’
Échantillons où peak extend se produit
‘3, cdt’
Échantillons où le minuteur de détection de code est actif
‘4, tgm’
Échantillons où le gain cible ne correspond pas entre les canaux
8.93 headphone
Applique des fonctions de transfert relatives à la tête (HRTF) pour créer des haut-parleurs virtuels autour de l'utilisateur, en vue d'une écoute binaurale au casque. Les HRIR sont fournies via des flux supplémentaires ; un flux d'entrée stéréo est nécessaire pour chaque canal.
Le filtre accepte les options suivantes :
map
Définit la correspondance des flux d'entrée pour la convolution. L'argument est une liste de noms de canaux séparés par ’|’, dans l'ordre où ils sont fournis comme flux d'entrée supplémentaires du filtre. Cela indique également le nombre de flux d'entrée. Le nombre de flux d'entrée ne doit pas être inférieur au nombre de canaux du premier flux, plus un.
gain
Définit le gain appliqué à l'audio. La valeur est en dB. La valeur par défaut est 0.
type
Définit le type de traitement. Peut être time ou freq. time traite l'audio dans le domaine temporel, ce qui est lent. freq traite l'audio dans le domaine fréquentiel, ce qui est rapide. La valeur par défaut est freq.
lfe
Définit un gain personnalisé pour les canaux LFE. La valeur est en dB. La valeur par défaut est 0.
size
Définit la taille de l'image en nombre d'échantillons qui seront traités en une fois. La valeur par défaut est 1024. La plage autorisée va de 1024 à 96000.
hrir
Définit le format du flux hrir. La valeur par défaut est stereo. La valeur alternative est multich. Si la valeur est réglée sur stereo, le nombre de flux supplémentaires doit être supérieur ou égal au nombre de canaux d'entrée du premier flux d'entrée. De plus, chaque flux supplémentaire doit comporter un nombre de canaux stéréo. Si la valeur est réglée sur multich, le nombre de flux supplémentaires doit être exactement un. De plus, le nombre de canaux d'entrée du flux supplémentaire doit être égal ou supérieur au double du nombre de canaux du premier flux d'entrée.
8.93.1 Exemples
-
Exemple complet utilisant des fichiers wav comme coefficients avec des filtres amovie pour un downmix 7.1 ; chaque filtre amovie utilise en entrée un fichier stéréo contenant les coefficients IR. Ces fichiers donnent les coefficients pour chaque position de haut-parleur virtuel :
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 -
Exemple complet utilisant des fichiers wav comme coefficients avec des filtres amovie pour un downmix 7.1, mais cette fois au format 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
Applique un filtre passe-haut dont la fréquence de coupure se situe au point à 3 dB. Le filtre peut être soit à un pôle, soit à deux pôles (par défaut). Il présente une pente de 6 dB par pôle et par octave (20 dB par pôle et par décade).
Le filtre accepte les options suivantes :
frequency, f
Définit la fréquence en Hz. La valeur par défaut est 3000.
poles, p
Définit le nombre de pôles. La valeur par défaut est 2.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Indique la largeur de bande du filtre, dans les unités de width_type. S'applique uniquement au filtre à deux pôles. La valeur par défaut est 0.707q, ce qui donne une réponse de Butterworth.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.94.1 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie frequency de highpass. La syntaxe de la commande est : "frequency"
width_type, t
Modifie width_type de highpass. La syntaxe de la commande est : "width_type"
width, w
Modifie width de highpass. La syntaxe de la commande est : "width"
mix, m
Modifie mix de highpass. La syntaxe de la commande est : "mix"
8.95 join
Combine plusieurs flux d'entrée en un seul flux multicanal.
Il accepte les paramètres suivants :
inputs
Le nombre de flux d'entrée. La valeur par défaut est 2.
channel_layout
La disposition des canaux de sortie souhaitée. La valeur par défaut est stereo.
map
Associe les canaux des entrées à la sortie. L'argument est une liste de correspondances séparées par ’|’, chacune sous la forme input_idx.in_channel-out_channel. input_idx est l'index (à partir de 0) du flux d'entrée. in_channel peut être soit le nom du canal d'entrée (par exemple FL pour avant gauche), soit son index dans le flux d'entrée indiqué. out_channel est le nom du canal de sortie.
Si les correspondances ne sont pas indiquées explicitement, le filtre tente de les deviner. Il procède en cherchant d'abord un canal d'entrée correspondant non utilisé ; si cela échoue, il choisit le premier canal d'entrée non utilisé.
Combine 3 entrées (avec des dispositions de canaux correctement définies) :
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
Construit une sortie 5.1 à partir de 6 flux monocanaux :
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
Charge un plugin LADSPA (Linux Audio Developer’s Simple Plugin API).
Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-ladspa.
file, f
Indique le nom de la bibliothèque de plugins LADSPA à charger. Si la variable d'environnement LADSPA_PATH est définie, le plugin LADSPA est recherché dans chacun des répertoires indiqués par la liste séparée par deux-points de LADSPA_PATH ; sinon, dans les chemins LADSPA standard, qui sont, dans cet ordre : HOME/.ladspa/lib/, /usr/local/lib/ladspa/, /usr/lib/ladspa/.
plugin, p
Indique le plugin au sein de la bibliothèque. Certaines bibliothèques ne contiennent qu'un seul plugin, tandis que d'autres en contiennent plusieurs. Si cette option n'est pas définie, le filtre liste tous les plugins disponibles dans la bibliothèque indiquée.
controls, c
Définit la liste des controls séparés par ’|’, qui sont zéro ou plusieurs valeurs à virgule flottante déterminant le comportement du plugin chargé (par exemple delay, threshold ou gain). Les controls doivent être définis avec la syntaxe suivante : c0=value0|c1=value1|c2=value2|..., où valuei est la valeur définie pour le i-ème control. Ils peuvent également être définis avec la syntaxe suivante : value0|value1|value2|..., où valuei est la valeur définie pour le i-ème control. Si controls est réglé sur help, tous les controls disponibles et leurs plages valides sont affichés.
sample_rate, s
Indique la fréquence d'échantillonnage ; la valeur par défaut est 44100. Utilisé uniquement si le plugin n'a aucune entrée.
nb_samples, n
Définit le nombre d'échantillons par canal pour chaque image de sortie ; la valeur par défaut est 1024. Utilisé uniquement si le plugin n'a aucune entrée.
duration, d
Définit la durée minimale de l'audio généré. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Notez que la durée obtenue peut être supérieure à la durée indiquée, car l'audio généré est toujours coupé à la fin d'une image complète. Si elle n'est pas indiquée, ou si la durée exprimée est négative, l'audio est supposé être généré indéfiniment. Utilisé uniquement si le plugin n'a aucune entrée.
latency, l
Active la compensation de latence ; désactivé par défaut. Utilisé uniquement si le plugin a des entrées.
8.96.1 Exemples
-
Liste tous les plugins disponibles dans la bibliothèque amp (plugin d'exemple LADSPA) :
ladspa=file=amp -
Liste tous les controls disponibles et leurs plages valides pour le plugin
vcf_notchde la bibliothèqueVCF:ladspa=f=vcf:p=vcf_notch:c=help -
Simule un équipement audio de basse qualité à l'aide de la bibliothèque de plugins
Computer Music Toolkit(CMT) :ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12 -
Ajoute de la réverbération à l'audio à l'aide de TAP-plugins (Tom’s Audio Processing plugins) :
ladspa=file=tap_reverb:tap_reverb -
Génère un bruit blanc, avec une amplitude de 0.2 :
ladspa=file=cmt:noise_source_white:c=c0=.2 -
Génère des clics à 20 bpm à l'aide du plugin
C* Click - Metronomede la bibliothèqueC* Audio Plugin Suite(CAPS) :ladspa=file=caps:Click:c=c1=20' -
Applique l'effet
C* Eq10X2 - Stereo 10-band equaliser:ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2 -
Augmente le volume de 20 dB à l'aide du fast lookahead limiter de la collection
SWH Pluginsde Steve Harris :ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2 -
Atténue les basses fréquences à l'aide du Multiband EQ de la collection
SWH Pluginsde Steve Harris :ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0 -
Réduit l'image stéréo à l'aide de
Narrower, de la bibliothèqueC* Audio Plugin Suite(CAPS) :ladspa=caps:Narrower -
Un autre bruit blanc, cette fois à l'aide de la bibliothèque
C* Audio Plugin Suite(CAPS) :ladspa=caps:White:.2 -
Un bruit fractal, à l'aide de la bibliothèque
C* Audio Plugin Suite(CAPS) :ladspa=caps:Fractal:c=c1=1 -
Normalisation dynamique du volume à l'aide du plugin
VLevel:ladspa=vlevel-ladspa:vlevel_mono
8.96.2 Commandes
Ce filtre prend en charge les commandes suivantes :
cN
Modifie la valeur du N-ième control.
Si la valeur indiquée n'est pas valide, elle est ignorée et la précédente est conservée.
8.97 loudnorm
Normalisation de loudness EBU R128. Comprend à la fois les modes de normalisation dynamique et linéaire. Prend en charge les modes en une passe (flux en direct, fichiers) et en deux passes (fichiers). Cet algorithme peut cibler l'IL, la LRA et le true peak maximal. En mode dynamique, pour détecter précisément les valeurs de true peak, le flux audio est suréchantillonné à 192 kHz. Utilisez l'option -ar ou le filtre aresample pour définir explicitement une fréquence d'échantillonnage de sortie.
Le filtre accepte les options suivantes :
I, i
Définit la cible de loudness intégrée. La plage autorisée va de -70.0 à -5.0. La valeur par défaut est -24.0.
LRA, lra
Définit la cible de plage de loudness (LRA). La plage autorisée va de 1.0 à 50.0. La valeur par défaut est 7.0.
TP, tp
Définit le true peak maximal. La plage autorisée va de -9.0 à +0.0. La valeur par défaut est -2.0.
measured_I, measured_i
IL mesurée du fichier d'entrée. La plage autorisée va de -99.0 à +0.0.
measured_LRA, measured_lra
LRA mesurée du fichier d'entrée. La plage autorisée va de 0.0 à 99.0.
measured_TP, measured_tp
True peak mesuré du fichier d'entrée. La plage autorisée va de -99.0 à +99.0.
measured_thresh
Seuil mesuré du fichier d'entrée. La plage autorisée va de -99.0 à +0.0.
offset
Définit le gain de décalage. Le gain est appliqué avant le limiteur de true peak. La plage autorisée va de -99.0 à +99.0. La valeur par défaut est +0.0.
linear
Normalise en appliquant une mise à l'échelle linéaire à l'audio source. measured_I, measured_LRA, measured_TP et measured_thresh doivent tous être indiqués. La LRA cible ne doit pas être inférieure à la LRA source, et la variation de loudness intégrée ne doit pas produire un true peak dépassant le TP cible. Si l'une de ces conditions n'est pas remplie, le mode de normalisation revient en dynamique. Les valeurs possibles sont true ou false. La valeur par défaut est true.
dual_mono
Traite les fichiers d'entrée mono comme du "dual-mono". Si un fichier mono est destiné à être lu sur un système stéréo, sa mesure EBU R128 sera perceptuellement incorrecte. Si cette option est réglée sur true, elle compense cet effet. Les fichiers d'entrée multicanaux ne sont pas affectés par cette option. Les valeurs possibles sont true ou false. La valeur par défaut est false.
print_format
Définit le format d'affichage des statistiques. Les valeurs possibles sont summary, json ou none. La valeur par défaut est none.
stats_file
Écrit les statistiques dans le fichier indiqué. Le format est contrôlé par print_format, qui doit être défini. Indique - pour écrire sur la sortie standard. Non défini par défaut.
8.98 lowpass
Applique un filtre passe-bas dont la fréquence de coupure se situe au point à 3 dB. Le filtre peut être soit à un pôle, soit à deux pôles (par défaut). Il présente une pente de 6 dB par pôle et par octave (20 dB par pôle et par décade).
Le filtre accepte les options suivantes :
frequency, f
Définit la fréquence en Hz. La valeur par défaut est 500.
poles, p
Définit le nombre de pôles. La valeur par défaut est 2.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Indique la largeur de bande du filtre, dans les unités de width_type. S'applique uniquement au filtre à deux pôles. La valeur par défaut est 0.707q, ce qui donne une réponse de Butterworth.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.98.1 Exemples
- Applique le filtre passe-bas uniquement au canal LFE ; si le LFE est absent, cela ne fait rien :
lowpass=c=LFE
8.98.2 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie la fréquence de lowpass. La syntaxe de la commande est : "frequency"
width_type, t
Modifie le width_type de lowpass. La syntaxe de la commande est : "width_type"
width, w
Modifie le width de lowpass. La syntaxe de la commande est : "width"
mix, m
Modifie le mix de lowpass. La syntaxe de la commande est : "mix"
8.99 lv2
Charge un plugin LV2 (LADSPA Version 2).
Pour activer la compilation de ce filtre, il est nécessaire de configurer FFmpeg avec --enable-lv2.
plugin, p
Indique l'URI du plugin. Il peut être nécessaire d'échapper ’:’.
controls, c
Définit la liste des controls séparés par ’|’, correspondant à zéro ou plusieurs valeurs à virgule flottante qui déterminent le comportement du plugin chargé (par exemple le délai, le seuil ou le gain). Si controls est réglé sur help, tous les controls disponibles ainsi que leurs plages valides sont affichés.
sample_rate, s
Indique la fréquence d'échantillonnage ; la valeur par défaut est 44100. Utilisé uniquement si le plugin ne comporte aucune entrée.
nb_samples, n
Définit le nombre d'échantillons par canal et par image de sortie ; la valeur par défaut est 1024. Utilisé uniquement si le plugin ne comporte aucune entrée.
duration, d
Définit la durée minimale de l'audio source. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Notez que la durée obtenue peut être supérieure à la durée indiquée, l'audio généré étant toujours coupé à la fin d'une image complète. Si elle n'est pas indiquée, ou si la durée exprimée est négative, l'audio est censé être généré indéfiniment. Utilisé uniquement si le plugin ne comporte aucune entrée.
8.99.1 Exemples
-
Applique le plugin bass enhancer de Calf :
lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2 -
Applique le plugin vinyl de Calf :
lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5 -
Applique le plugin bit crusher d'ArtyFX :
lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
8.99.2 Commandes
Ce filtre prend en charge toutes les options exportées par le plugin en tant que commandes.
8.100 mcompand
Comprime ou étend la plage dynamique de l'audio de façon multibande.
L'audio d'entrée est divisé en bandes à l'aide de filtres IIR de Linkwitz-Riley du 4e ordre. Cela s'apparente au crossover d'un haut-parleur et permet d'obtenir une réponse en fréquence plate en l'absence d'action du compandeur.
Il accepte les paramètres suivants :
args
La syntaxe de cette option est : attack,decay,[attack,decay..] soft-knee points crossover_frequency [delay [initial_volume [gain]]] | attack,decay ... Pour l'explication de chaque élément, se reporter à la documentation du filtre compand.
8.101 pan
Mélange les canaux avec des niveaux de gain spécifiques. Le filtre accepte la disposition des canaux de sortie suivie d'un ensemble de définitions de canaux.
Ce filtre est également conçu pour réaffecter efficacement les canaux d'un flux audio.
Le filtre accepte des paramètres de la forme : "l|outdef|outdef|..."
l
disposition des canaux de sortie ou nombre de canaux
outdef
spécification du canal de sortie, de la forme : "out_name=[gain]in_name[(+-)[gain]in_name...]"
out_name
canal de sortie à définir, sous la forme d'un nom de canal (FL, FR, etc.) ou d'un numéro de canal (c0, c1, etc.)
gain
coefficient multiplicatif appliqué au canal ; la valeur 1 laisse le volume inchangé
in_name
canal d'entrée à utiliser, voir out_name pour plus de détails ; il n'est pas possible de mélanger des canaux d'entrée nommés et numérotés
Si le ‘=’ d'une spécification de canal est remplacé par ‘<’, les gains de cette spécification sont renormalisés de sorte que leur somme soit égale à 1, ce qui évite le bruit d'écrêtage.
8.101.1 Exemples de mixage
Par exemple, si vous souhaitez effectuer un sous-mixage de la stéréo vers le mono, mais avec un facteur plus important pour le canal gauche :
pan=1c|c0=0.9*c0+0.1*c1
Un sous-mixage personnalisé vers la stéréo qui fonctionne automatiquement pour le surround 3, 4, 5 et 7 canaux :
pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
Notez que ffmpeg intègre un système de sous-mixage (et de sur-mixage) par défaut qu'il convient de privilégier (voir l'option "-ac"), sauf besoins très spécifiques.
8.101.2 Exemples de réaffectation
La réaffectation des canaux sera effective si, et seulement si :
- les coefficients de gain valent zéro ou un,
- il n'y a qu'une seule entrée par canal de sortie,
Si toutes ces conditions sont réunies, le filtre en informe l'utilisateur ("Pure channel mapping detected") et utilise une méthode optimisée et sans perte pour effectuer la réaffectation.
Par exemple, si vous disposez d'une source 5.1 et souhaitez obtenir un flux audio stéréo en supprimant les canaux supplémentaires :
pan="stereo| c0=FL | c1=FR"
Avec cette même source, vous pouvez également permuter les canaux avant gauche et avant droit tout en conservant la disposition des canaux d'entrée :
pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
Si l'entrée est un flux audio stéréo, vous pouvez couper le canal avant gauche (tout en conservant la disposition stéréo) avec :
pan="stereo|c1=c1"
Toujours avec une entrée en flux audio stéréo, vous pouvez copier le canal droit à la fois vers l'avant gauche et l'avant droit :
pan="stereo| c0=FR | c1=FR"
8.102 replaygain
Filtre d'analyse ReplayGain. Ce filtre prend un flux audio en entrée et le restitue inchangé en sortie. À la fin du filtrage, il affiche track_gain et track_peak.
Le filtre accepte les options exportées suivantes, en lecture seule :
track_gain
Gain de piste exporté, en dB, à la fin du flux.
track_peak
Crête de piste exportée à la fin du flux.
8.103 resample
Convertit le sample format audio, la fréquence d'échantillonnage et la disposition des canaux. Il n'est pas destiné à être utilisé directement.
8.104 rubberband
Applique un étirement temporel et une transposition de hauteur à l'aide de librubberband.
Pour activer la compilation de ce filtre, il est nécessaire de configurer FFmpeg avec --enable-librubberband.
Le filtre accepte les options suivantes :
tempo
Définit le facteur d'échelle du tempo.
pitch
Définit le facteur d'échelle de la hauteur.
transients
Définit le détecteur de transitoires. Les valeurs possibles sont :
crisp mixed smooth detector
Définit le détecteur. Les valeurs possibles sont :
compound percussive soft phase
Définit la phase. Les valeurs possibles sont :
laminar independent window
Définit la taille de la fenêtre de traitement. Les valeurs possibles sont :
standard short long smoothing
Définit le lissage. Les valeurs possibles sont :
off on formant
Active la préservation des formants lors de la transposition de hauteur. Les valeurs possibles sont :
shifted preserved pitchq
Définit la qualité de la hauteur. Les valeurs possibles sont :
quality speed consistency channels
Définit les canaux. Les valeurs possibles sont :
apart together
8.104.1 Commandes
Ce filtre prend en charge les commandes suivantes :
tempo
Modifie le facteur d'échelle du tempo du filtre. La syntaxe de la commande est : "tempo"
pitch
Modifie le facteur d'échelle de la hauteur du filtre. La syntaxe de la commande est : "pitch"
8.105 sidechaincompress
Ce filtre se comporte comme un compresseur classique, mais a la particularité de pouvoir compresser le signal détecté à l'aide d'un second signal d'entrée. Il nécessite deux flux d'entrée et renvoie un seul flux de sortie. Le premier flux d'entrée est traité en fonction du signal du second flux. Le signal ainsi filtré peut ensuite être retraité par d'autres filtres dans les étapes ultérieures du traitement. Voir les filtres pan et amerge.
Le filtre accepte les options suivantes :
level_in
Définit le gain d'entrée. La valeur par défaut est 1. La plage se situe entre 0.015625 et 64.
mode
Définit le mode de fonctionnement du compresseur. Peut être upward ou downward. La valeur par défaut est downward.
threshold
Si le signal du second flux dépasse ce niveau, cela affecte la réduction de gain du premier flux. La valeur par défaut est 0.125. La plage se situe entre 0.00097563 et 1.
ratio
Définit le ratio de réduction du signal. 1:2 signifie que si le niveau dépasse le seuil de 4dB, il ne sera plus que de 2dB au-dessus après la réduction. La valeur par défaut est 2. La plage se situe entre 1 et 20.
attack
Nombre de millisecondes pendant lesquelles le signal doit dépasser le seuil avant que la réduction de gain ne démarre. La valeur par défaut est 20. La plage se situe entre 0.01 et 2000.
release
Nombre de millisecondes pendant lesquelles le signal doit repasser sous le seuil avant que la réduction ne diminue à nouveau. La valeur par défaut est 250. La plage se situe entre 0.01 et 9000.
makeup
Définit l'ampleur de l'amplification du signal après traitement. La valeur par défaut est 1. La plage va de 1 à 64.
knee
Adoucit le coude prononcé autour du seuil afin d'amorcer la réduction de gain plus progressivement. La valeur par défaut est 2.82843. La plage se situe entre 1 et 8.
link
Choisit si c'est le niveau average (moyenne entre tous les canaux du flux de side-chain) ou le canal le plus fort (maximum) du flux de side-chain qui affecte la réduction. La valeur par défaut est average.
detection
Indique s'il faut prendre le signal exact en mode peak, ou un signal RMS en mode rms. La valeur par défaut est rms, généralement plus lisse.
level_sc
Définit le gain de side-chain. La valeur par défaut est 1. La plage se situe entre 0.015625 et 64.
mix
Détermine la proportion de signal compressé utilisée en sortie. La valeur par défaut est 1. La plage se situe entre 0 et 1.
8.105.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.105.2 Exemples
- Exemple ffmpeg complet prenant 2 entrées audio ; la première entrée est compressée en fonction du signal de la seconde, puis le signal compressé est fusionné avec la seconde entrée :
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 gate à side-chain se comporte comme un gate classique (large bande), mais a la particularité de pouvoir filtrer le signal détecté avant de l'envoyer à l'étage de réduction de gain. Normalement, un gate utilise le signal sur toute la plage pour détecter un niveau dépassant le seuil. Par exemple : si vous supprimez toutes les basses fréquences de votre signal de side-chain, le gate ne réduira le volume de votre piste que si les aigus ne sont pas assez présents. Cette technique permet de réduire la résonance d'une batterie acoustique ou de supprimer le "grondement" des coups étouffés d'une guitare fortement saturée. Il nécessite deux flux d'entrée et renvoie un seul flux de sortie. Le premier flux d'entrée est traité en fonction du signal du second flux.
Le filtre accepte les options suivantes :
level_in
Définit le niveau d'entrée avant filtrage. La valeur par défaut est 1. La plage autorisée va de 0.015625 à 64.
mode
Définit le mode de fonctionnement. Peut être upward ou downward. La valeur par défaut est downward. En mode upward, les parties les plus fortes du signal sont amplifiées, ce qui étend la plage dynamique vers le haut. Dans le cas contraire, en mode downward, les parties les plus faibles du signal sont réduites.
range
Définit le niveau de réduction de gain lorsque le signal est en dessous du seuil. La valeur par défaut est 0.06125. La plage autorisée va de 0 à 1. Une valeur de 0 désactive la réduction et le filtre se comporte alors comme un expandeur.
threshold
Si un signal dépasse ce niveau, la réduction de gain est relâchée. La valeur par défaut est 0.125. La plage autorisée va de 0 à 1.
ratio
Définit le ratio de réduction du signal. La valeur par défaut est 2. La plage autorisée va de 1 à 9000.
attack
Nombre de millisecondes pendant lesquelles le signal doit dépasser le seuil avant que la réduction de gain ne s'arrête. La valeur par défaut est 20 millisecondes. La plage autorisée va de 0.01 à 9000.
release
Nombre de millisecondes pendant lesquelles le signal doit repasser sous le seuil avant que la réduction n'augmente à nouveau. La valeur par défaut est 250 millisecondes. La plage autorisée va de 0.01 à 9000.
makeup
Définit l'ampleur de l'amplification du signal après traitement. La valeur par défaut est 1. La plage autorisée va de 1 à 64.
knee
Adoucit le coude prononcé autour du seuil afin d'amorcer la réduction de gain plus progressivement. La valeur par défaut est 2.828427125. La plage autorisée va de 1 à 8.
detection
Choisit si le signal exact doit être pris en compte pour la détection ou un signal de type RMS. La valeur par défaut est rms. Peut être peak ou rms.
link
Choisit si c'est le niveau moyen entre tous les canaux ou le canal le plus fort qui affecte la réduction. La valeur par défaut est average. Peut être average ou maximum.
level_sc
Définit le gain de side-chain. La valeur par défaut est 1. La plage va de 0.015625 à 64.
8.106.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.107 silencedetect
Détecte le silence dans un flux audio.
Ce filtre journalise un message lorsqu'il détecte que le volume audio d'entrée est inférieur ou égal à une valeur de tolérance de bruit pendant une durée supérieure ou égale à la durée minimale de bruit détectée.
Les temps et durées affichés sont exprimés en secondes. La clé de métadonnée lavfi.silence_start ou lavfi.silence_start.X est définie sur la première image dont l'horodatage égale ou dépasse la durée de détection, et elle contient l'horodatage de la première image du silence.
Les clés de métadonnées lavfi.silence_duration ou lavfi.silence_duration.X, ainsi que lavfi.silence_end ou lavfi.silence_end.X, sont définies sur la première image suivant le silence. Si mono est activé et que chaque canal est évalué séparément, les clés suffixées par .X sont utilisées, X correspondant au numéro du canal.
Le filtre accepte les options suivantes :
noise, n
Définit la tolérance de bruit. Peut être indiquée en dB (si "dB" est ajouté à la valeur spécifiée) ou en rapport d'amplitude. La valeur par défaut est -60dB, soit 0.001.
duration, d
Définit la durée de silence avant notification (la valeur par défaut est 2 secondes). Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée.
mono, m
Traite chaque canal séparément, plutôt que combinés. Désactivé par défaut.
8.107.1 Exemples
-
Détecte 5 secondes de silence avec une tolérance de bruit de -50dB :
silencedetect=n=-50dB:d=5 -
Exemple complet avec
ffmpegpour détecter le silence avec une tolérance de bruit de 0.0001 dans silence.mp3 :ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
8.108 silenceremove
Supprime le silence au début, au milieu ou à la fin de l'audio.
Le filtre accepte les options suivantes :
start_periods
Cette valeur indique si l'audio doit être tronqué au début. Une valeur de zéro indique qu'aucun silence ne doit être tronqué au début. Si une valeur non nulle est indiquée, l'audio est tronqué jusqu'à ce qu'un passage non silencieux soit trouvé. En général, pour tronquer le silence en début d'audio, start_periods vaut 1, mais cette valeur peut être augmentée pour tronquer tout l'audio jusqu'à un nombre donné de passages non silencieux. La valeur par défaut est 0.
start_duration
Indique la durée pendant laquelle un passage non silencieux doit être détecté avant que le rognage de l'audio ne s'arrête. En augmentant cette durée, de brèves salves de bruit peuvent être traitées comme du silence et supprimées. La valeur par défaut est 0.
start_threshold
Indique la valeur d'échantillon à partir de laquelle un passage est considéré comme silencieux. Pour l'audio numérique, une valeur de 0 peut convenir, mais pour l'audio enregistré depuis une source analogique, il peut être utile d'augmenter cette valeur afin de tenir compte du bruit de fond. Peut être indiquée en dB (si "dB" est ajouté à la valeur spécifiée) ou en rapport d'amplitude. La valeur par défaut est 0.
start_silence
Indique la durée maximale de silence conservée au début après le rognage. La valeur par défaut est 0, ce qui revient à tronquer tous les échantillons détectés comme silence.
start_mode
Indique le mode de détection de la fin du silence au début d'un audio multicanal. Peut être any ou all. La valeur par défaut est any. Avec any, tout échantillon d'un canal quelconque détecté comme non silencieux déclenche la fin du rognage du silence au début du flux audio. Avec all, seul le cas où tous les échantillons de tous les canaux sont détectés comme non silencieux déclenche cette fin de rognage ; usage limité.
stop_periods
Définit le nombre de passages de silence à tronquer depuis la fin de l'audio. Avec une valeur positive, l'audio est tronqué après que la période de silence indiquée a été trouvée. Pour supprimer le silence au milieu d'un fichier, indiquer une valeur négative pour stop_periods. Cette valeur est alors traitée comme une valeur positive et indique que le traitement doit redémarrer autant de fois que spécifié par stop_periods, ce qui permet de supprimer des périodes de silence au milieu de l'audio. La valeur par défaut est 0.
stop_duration
Indique la durée de silence qui doit être constatée avant que l'audio ne soit plus copié. En indiquant une durée plus longue, du silence voulu peut être laissé dans l'audio. La valeur par défaut est 0.
stop_threshold
Fonctionne comme start_threshold, mais pour le rognage du silence en fin d'audio. Peut être indiquée en dB (si "dB" est ajouté à la valeur spécifiée) ou en rapport d'amplitude. La valeur par défaut est 0.
stop_silence
Indique la durée maximale de silence conservée à la fin après le rognage. La valeur par défaut est 0, ce qui revient à tronquer tous les échantillons détectés comme silence.
stop_mode
Indique le mode de détection du début du silence après le début d'un audio multicanal. Peut être any ou all. La valeur par défaut est all. Avec any, tout échantillon d'un canal quelconque détecté comme silencieux déclenche le début du rognage du silence après le début du flux audio ; usage limité. Avec all, seul le cas où tous les échantillons de tous les canaux sont détectés comme silencieux déclenche ce début de rognage après le début du flux audio.
detection
Définit la manière dont le silence est détecté.
avg
Moyenne des valeurs absolues des échantillons dans la fenêtre glissante.
rms
Racine carrée de la moyenne des carrés des valeurs absolues des échantillons dans la fenêtre glissante.
peak
Maximum des valeurs absolues des échantillons dans la fenêtre glissante.
median
Médiane des valeurs absolues des échantillons dans la fenêtre glissante.
ptp
Valeur absolue de la différence entre le pic maximal et le pic minimal des échantillons dans la fenêtre glissante.
dev
Écart type des valeurs des échantillons dans la fenêtre glissante.
La valeur par défaut est rms.
window
Définit, en secondes, la durée utilisée pour calculer la taille de la fenêtre (en nombre d'échantillons) servant à la détection du silence. Utiliser 0 désactive de fait tout fenêtrage et n'utilise plus qu'un seul échantillon par canal pour la détection du silence. Dans ce cas, il peut être nécessaire de régler également start_silence et/ou stop_silence sur des valeurs non nulles, ainsi que start_duration et/ou stop_duration. La valeur par défaut est 0.02. La plage autorisée va de 0 à 10.
timestamp
Définit le mode de traitement de l'horodatage de chaque image audio en sortie.
write
Réécrit entièrement les horodatages, en ne conservant que l'heure de début pour la première image de sortie.
copy
Les images non abandonnées conservent le même horodatage que l'image audio d'entrée.
La valeur par défaut est write.
8.108.1 Exemples
-
L'exemple suivant montre comment ce filtre peut être utilisé pour démarrer un enregistrement sans le délai initial qui survient habituellement entre l'appui sur le bouton d'enregistrement et le début de la prestation :
silenceremove=start_periods=1:start_duration=5:start_threshold=0.02 -
Tronque, du début à la fin, tout silence rencontré dès lors qu'il dépasse 1 seconde dans l'audio :
silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB -
Tronque, du début à la fin et à l'aide de la détection de pic, tous les échantillons de silence numérique dès lors qu'il y a plus de 0 échantillon de silence numérique dans l'audio et que ce silence numérique est détecté sur tous les canaux aux mêmes positions dans le flux :
silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0 -
Tronque, du début à la fin, une période de silence rencontrée sur deux, dès lors que chaque période dépasse 1 seconde de silence dans l'audio :
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB -
Comme ci-dessus, mais en conservant au maximum 0.5 seconde de silence pour chaque période tronquée :
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5 -
Comme ci-dessus, mais en conservant au maximum 1.5 seconde de silence au début de l'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 Commandes
Ce filtre prend en charge certaines des options ci-dessus en tant que commandes.
8.109 sofalizer
SOFAlizer utilise des fonctions de transfert relatives à la tête (HRTF) pour créer des haut-parleurs virtuels autour de l'utilisateur, pour une écoute binaurale au casque (formats audio jusqu'à 9 canaux pris en charge). Les HRTF sont stockées dans des fichiers SOFA (voir http://www.sofacoustics.org/ pour une base de données). SOFAlizer est développé à l'Acoustics Research Institute (ARI) de l'Académie autrichienne des sciences.
Pour activer la compilation de ce filtre, il est nécessaire de configurer FFmpeg avec --enable-libmysofa.
Le filtre accepte les options suivantes :
sofa
Définit le fichier SOFA utilisé pour le rendu.
gain
Définit le gain appliqué à l'audio. La valeur est en dB. La valeur par défaut est 0.
rotation
Définit la rotation des haut-parleurs virtuels, en degrés. La valeur par défaut est 0.
elevation
Définit l'élévation des haut-parleurs virtuels, en degrés. La valeur par défaut est 0.
radius
Définit la distance, en mètres, entre les haut-parleurs et l'auditeur pour les HRTF en champ proche. La valeur par défaut est 1.
type
Définit le type de traitement. Peut être time ou freq. time traite l'audio dans le domaine temporel, ce qui est lent. freq traite l'audio dans le domaine fréquentiel, ce qui est rapide. La valeur par défaut est freq.
speakers
Définit des positions personnalisées pour les haut-parleurs virtuels. La syntaxe de cette option est :
lfegain
Définit un gain personnalisé pour les canaux LFE. La valeur est en dB. La valeur par défaut est 0.
framesize
Définit une taille d'image personnalisée, en nombre d'échantillons. La valeur par défaut est 1024. La plage autorisée va de 1024 à 96000. Utilisé uniquement si l'option ‘type’ est réglée sur freq.
normalize
Indique si toutes les IR doivent être normalisées lors de l'importation du fichier SOFA. Activé par défaut.
interpolate
Indique si les IR les plus proches doivent être interpolées avec les IR voisines lorsque la position exacte ne correspond pas. Désactivé par défaut.
minphase
Applique une phase minimale à toutes les IR lors du chargement du fichier SOFA. Désactivé par défaut.
anglestep
Définit le pas angulaire de recherche des voisins. Utilisé uniquement si l'option interpolate est activée.
radstep
Définit le pas de rayon de recherche des voisins. Utilisé uniquement si l'option interpolate est activée.
8.109.1 Exemples
-
Utilisation du fichier sofa ClubFritz6 :
sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1 -
Utilisation du fichier sofa ClubFritz12 avec un rayon plus grand et une légère rotation :
sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5 -
Comme ci-dessus, mais avec des positions de haut-parleurs personnalisées pour l'avant gauche, l'avant droit, l'arrière gauche et l'arrière droit, ainsi qu'un gain personnalisé :
"sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
8.110 speechnorm
Normaliseur de parole.
Ce filtre étend ou compresse chaque demi-cycle d'échantillons audio (ensemble local d'échantillons tous supérieurs ou tous inférieurs à zéro, situé entre les deux passages par zéro les plus proches) en fonction de la valeur du seuil, de sorte que l'audio atteigne la valeur de crête cible dans les conditions définies par les options ci-dessous.
Le filtre accepte les options suivantes :
peak, p
Définit la valeur de crête cible pour l'expansion. Elle indique le niveau d'amplitude absolue maximal autorisé pour l'audio normalisé en entrée. La valeur par défaut est 0.95. La plage autorisée va de 0.0 à 1.0.
expansion, e
Définit le facteur d'expansion maximal. La plage autorisée va de 1.0 à 50.0. La valeur par défaut est 2.0. Cette option contrôle l'expansion maximale d'un demi-cycle local d'échantillons. L'expansion maximale est telle que la valeur de crête locale atteint la valeur de crête cible sans jamais la dépasser, et que le ratio entre la nouvelle et l'ancienne valeur de crête ne dépasse pas la valeur de cette option.
compression, c
Définit le facteur de compression maximal. La plage autorisée va de 1.0 à 50.0. La valeur par défaut est 2.0. Cette option contrôle la compression maximale d'un demi-cycle local d'échantillons. Elle n'est utilisée que si l'option threshold est réglée sur une valeur supérieure à 0.0 ; dans ce cas, lorsque la crête locale est inférieure ou égale à la valeur définie par threshold, tous les échantillons appartenant au demi-cycle de cette crête sont compressés selon le facteur de compression actuel.
threshold, t
Définit la valeur de seuil. La valeur par défaut est 0.0. La plage autorisée va de 0.0 à 1.0. Cette option indique quels demi-cycles d'échantillons seront compressés et lesquels seront étendus. Tout demi-cycle d'échantillons dont la valeur de crête locale est inférieure ou égale à cette valeur est compressé selon le facteur de compression actuel ; dans le cas contraire, s'il dépasse la valeur du seuil, il est étendu selon le facteur d'expansion, de sorte qu'il puisse atteindre la valeur de crête cible sans jamais la dépasser.
raise, r
Définit l'incrément d'expansion appliqué à chaque demi-cycle d'échantillons. La valeur par défaut est 0.001. La plage autorisée va de 0.0 à 1.0. Ceci contrôle la vitesse à laquelle le facteur d'expansion augmente à chaque nouveau demi-cycle jusqu'à atteindre la valeur d'expansion. Régler cette option trop haut peut entraîner des distorsions.
fall, f
Définit l'incrément de compression appliqué à chaque demi-cycle d'échantillons. La valeur par défaut est 0.001. La plage autorisée va de 0.0 à 1.0. Ceci contrôle la vitesse à laquelle le facteur de compression augmente à chaque nouveau demi-cycle jusqu'à atteindre la valeur de compression.
channels, h
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
invert, i
Active le filtrage inversé ; désactivé par défaut. Cela inverse l'interprétation de l'option threshold. Une fois activé, tout demi-cycle d'échantillons dont la valeur de crête locale est inférieure ou égale à l'option threshold est étendu, sinon il est compressé.
link, l
Lie les canaux lors du calcul du gain appliqué à chaque échantillon de canal filtré ; désactivé par défaut. Lorsque cette option est désactivée, le calcul de gain de chaque canal filtré est indépendant, alors que lorsqu'elle est activée, le minimum de tous les gains possibles pour chaque canal filtré est utilisé.
rms, m
Définit la valeur RMS cible pour l'expansion. Elle indique le niveau RMS maximal autorisé pour l'audio normalisé en entrée. La valeur par défaut est 0.0, ce qui la désactive. La plage autorisée va de 0.0 à 1.0.
8.110.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.110.2 Exemples
-
Amplification faible et lente :
speechnorm=e=3:r=0.00001:l=1 -
Amplification modérée et lente :
speechnorm=e=6.25:r=0.00001:l=1 -
Amplification forte et rapide :
speechnorm=e=12.5:r=0.0001:l=1 -
Amplification très forte et rapide :
speechnorm=e=25:r=0.0001:l=1 -
Amplification extrême et rapide :
speechnorm=e=50:r=0.0001:l=1
8.111 stereotools
Ce filtre propose divers utilitaires pratiques pour gérer les signaux stéréo, permettant de convertir des enregistrements stéréo M/S en signal L/R tout en gardant le contrôle des paramètres, ou d'élargir l'image stéréo de la piste maîtresse.
Le filtre accepte les options suivantes :
level_in
Définit le niveau d'entrée avant filtrage pour les deux canaux. La valeur par défaut est 1. La plage autorisée va de 0.015625 à 64.
level_out
Définit le niveau de sortie après filtrage pour les deux canaux. La valeur par défaut est 1. La plage autorisée va de 0.015625 à 64.
balance_in
Définit la balance d'entrée entre les deux canaux. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
balance_out
Définit la balance de sortie entre les deux canaux. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
softclip
Active l'écrêtage doux. Produit une distorsion de type analogique au lieu d'un écrêtage numérique brutal à 0 dB. Désactivé par défaut.
mutel
Coupe le canal gauche. Désactivé par défaut.
muter
Coupe le canal droit. Désactivé par défaut.
phasel
Inverse la phase du canal gauche. Désactivé par défaut.
phaser
Inverse la phase du canal droit. Désactivé par défaut.
mode
Définit le mode stéréo. Les valeurs disponibles sont :
‘lr>lr’
Gauche/Droite vers Gauche/Droite ; c'est la valeur par défaut.
‘lr>ms’
Gauche/Droite vers Mid/Side.
‘ms>lr’
Mid/Side vers Gauche/Droite.
‘lr>ll’
Gauche/Droite vers Gauche/Gauche.
‘lr>rr’
Gauche/Droite vers Droite/Droite.
‘lr>l+r’
Gauche/Droite vers Gauche + Droite.
‘lr>rl’
Gauche/Droite vers Droite/Gauche.
‘ms>ll’
Mid/Side vers Gauche/Gauche.
‘ms>rr’
Mid/Side vers Droite/Droite.
‘ms>rl’
Mid/Side vers Droite/Gauche.
‘lr>l-r’
Gauche/Droite vers Gauche - Droite.
slev
Définit le niveau du signal Side. La valeur par défaut est 1. La plage autorisée va de 0.015625 à 64.
sbal
Définit la balance du signal Side. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
mlev
Définit le niveau du signal Mid. La valeur par défaut est 1. La plage autorisée va de 0.015625 à 64.
mpan
Définit le panoramique du signal Mid. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
base
Définit la base stéréo entre canaux mono et canaux inversés. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
delay
Définit, en millisecondes, le délai du canal gauche par rapport au canal droit et inversement. La valeur par défaut est 0. La plage autorisée va de -20 à 20.
sclevel
Définit le niveau S/C. La valeur par défaut est 1. La plage autorisée va de 1 à 100.
phase
Définit la phase stéréo, en degrés. La valeur par défaut est 0. La plage autorisée va de 0 à 360.
bmode_in, bmode_out
Définit le mode de balance pour l'option balance_in/balance_out.
Peut être l'une des valeurs suivantes :
‘balance’
Mode de balance classique. Atténue un canal à la fois. Le gain est augmenté jusqu'à 1.
‘amplitude’
Similaire au mode classique ci-dessus, mais le gain est augmenté jusqu'à 2.
‘power’
Répartition à puissance égale, sur une plage de -6dB à +6dB.
8.111.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
8.111.2 Exemples
-
Applique un effet de type karaoké :
stereotools=mlev=0.015625 -
Convertit le signal M/S en L/R :
"stereotools=mode=ms>lr"
8.112 stereowiden
Ce filtre renforce l'effet stéréo en supprimant le signal commun aux deux canaux et en retardant le signal du canal gauche vers le droit et inversement, ce qui élargit l'effet stéréo.
Le filtre accepte les options suivantes :
delay
Durée en millisecondes du retard du signal gauche vers le droit et inversement. La valeur par défaut est 20 millisecondes.
feedback
Quantité de gain appliquée au signal retardé vers le droit et inversement. Cela donne un effet de retard du signal gauche dans la sortie droite et inversement, ce qui produit un effet d'élargissement. La valeur par défaut est 0.3.
crossfeed
Réinjection croisée du canal gauche vers le droit avec phase inversée. Cela aide à supprimer le mono. Si la valeur est 1, tout le signal commun aux deux canaux est annulé. La valeur par défaut est 0.3.
drymix
Définit le niveau du signal d'entrée du canal d'origine. La valeur par défaut est 0.8.
8.112.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus, à l'exception de delay, en tant que commandes.
8.113 superequalizer
Applique un égaliseur 18 bandes.
Le filtre accepte les options suivantes :
1b
Définit le gain de la bande 65Hz.
2b
Définit le gain de la bande 92Hz.
3b
Définit le gain de la bande 131Hz.
4b
Définit le gain de la bande 185Hz.
5b
Définit le gain de la bande 262Hz.
6b
Définit le gain de la bande 370Hz.
7b
Définit le gain de la bande 523Hz.
8b
Définit le gain de la bande 740Hz.
9b
Définit le gain de la bande 1047Hz.
10b
Définit le gain de la bande 1480Hz.
11b
Définit le gain de la bande 2093Hz.
12b
Définit le gain de la bande 2960Hz.
13b
Définit le gain de la bande 4186Hz.
14b
Définit le gain de la bande 5920Hz.
15b
Définit le gain de la bande 8372Hz.
16b
Définit le gain de la bande 11840Hz.
17b
Définit le gain de la bande 16744Hz.
18b
Définit le gain de la bande 20000Hz.
8.114 surround
Applique un filtre de montée en canaux (upmix) audio surround.
Ce filtre permet de produire une sortie multicanal à partir d'un flux audio.
Le filtre accepte les options suivantes :
chl_out
Définit la disposition des canaux de sortie. Par défaut, elle est de 5.1.
Voir (ffmpeg-utils) la section Channel Layout du manuel ffmpeg-utils(1) pour la syntaxe requise.
chl_in
Définit la disposition des canaux d'entrée. Par défaut, elle est stéréo.
Voir (ffmpeg-utils) la section Channel Layout du manuel ffmpeg-utils(1) pour la syntaxe requise.
level_in
Définit le niveau de volume d'entrée. Par défaut, il est de 1.
level_out
Définit le niveau de volume de sortie. Par défaut, il est de 1.
lfe
Active la sortie du canal LFE si la disposition des canaux de sortie en comporte un. Cette option est activée par défaut.
lfe_low
Définit la fréquence de coupure basse du LFE. Par défaut, elle est de 128 Hz.
lfe_high
Définit la fréquence de coupure haute du LFE. Par défaut, elle est de 256 Hz.
lfe_mode
Définit le mode LFE, qui peut être add ou sub. La valeur par défaut est add. En mode add, le canal LFE est créé à partir de l'audio d'entrée et ajouté à la sortie. En mode sub, le canal LFE est également créé à partir de l'audio d'entrée et ajouté à la sortie, mais tous les canaux de sortie autres que LFE ont en plus le canal LFE de sortie soustrait.
smooth
Définit la force du lissage temporel, utilisée pour faire varier progressivement les facteurs lors de la transformation du son stéréo dans le temps. La plage autorisée va de 0.0 à 1.0. Utile pour améliorer la qualité de sortie avec des valeurs de l'option focus supérieures à 0.0. La valeur par défaut est 0.0. Seules les valeurs strictement comprises dans cette plage, bornes exclues, sont effectives.
angle
Définit l'angle de la transformation stéréo surround. La plage autorisée va de 0 à 360. La valeur par défaut est 90.
focus
Définit le focus de la transformation stéréo surround. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
fc_in
Définit le volume d'entrée du canal frontal central. Par défaut, il est de 1.
fc_out
Définit le volume de sortie du canal frontal central. Par défaut, il est de 1.
fl_in
Définit le volume d'entrée du canal avant gauche. Par défaut, il est de 1.
fl_out
Définit le volume de sortie du canal avant gauche. Par défaut, il est de 1.
fr_in
Définit le volume d'entrée du canal avant droit. Par défaut, il est de 1.
fr_out
Définit le volume de sortie du canal avant droit. Par défaut, il est de 1.
sl_in
Définit le volume d'entrée du canal latéral gauche. Par défaut, il est de 1.
sl_out
Définit le volume de sortie du canal latéral gauche. Par défaut, il est de 1.
sr_in
Définit le volume d'entrée du canal latéral droit. Par défaut, il est de 1.
sr_out
Définit le volume de sortie du canal latéral droit. Par défaut, il est de 1.
bl_in
Définit le volume d'entrée du canal arrière gauche. Par défaut, il est de 1.
bl_out
Définit le volume de sortie du canal arrière gauche. Par défaut, il est de 1.
br_in
Définit le volume d'entrée du canal arrière droit. Par défaut, il est de 1.
br_out
Définit le volume de sortie du canal arrière droit. Par défaut, il est de 1.
bc_in
Définit le volume d'entrée du canal arrière central. Par défaut, il est de 1.
bc_out
Définit le volume de sortie du canal arrière central. Par défaut, il est de 1.
lfe_in
Définit le volume d'entrée du LFE. Par défaut, il est de 1.
lfe_out
Définit le volume de sortie du LFE. Par défaut, il est de 1.
allx
Définit l'étendue de l'image stéréo utilisée sur l'axe X pour tous les canaux. La plage autorisée va de -1 à 15. Par défaut, cette valeur est négative (-1) et n'est donc pas utilisée.
ally
Définit l'étendue de l'image stéréo utilisée sur l'axe Y pour tous les canaux. La plage autorisée va de -1 à 15. Par défaut, cette valeur est négative (-1) et n'est donc pas utilisée.
fcx, flx, frx, blx, brx, slx, srx, bcx
Définit l'étendue de l'image stéréo utilisée sur l'axe X pour chaque canal. La plage autorisée va de 0.06 à 15. La valeur par défaut est 0.5.
fcy, fly, fry, bly, bry, sly, sry, bcy
Définit l'étendue de l'image stéréo utilisée sur l'axe Y pour chaque canal. La plage autorisée va de 0.06 à 15. La valeur par défaut est 0.5.
win_size
Définit la taille de la fenêtre. La plage autorisée va de 1024 à 65536. La taille par défaut est 4096.
win_func
Définit la fonction de fenêtrage.
Il accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hann, hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hann.
overlap
Définit le chevauchement de fenêtre. Si la valeur est définie à 1, le chevauchement recommandé pour la fonction de fenêtrage sélectionnée est choisi. La valeur par défaut est 0.5.
8.115 tiltshelf
Amplifie ou atténue les basses fréquences et atténue ou amplifie les fréquences plus élevées de l'audio à l'aide d'un filtre en plateau à deux pôles, avec une réponse similaire à celle des réglages de tonalité d'une chaîne hi-fi classique. On parle aussi d'égalisation en plateau (EQ).
Le filtre accepte les options suivantes :
gain, g
Indique le gain à 0 Hz. Sa plage utile va d'environ -20 (pour une forte atténuation) à +20 (pour une forte amplification). Attention à l'écrêtage lors de l'utilisation d'un gain positif.
frequency, f
Définit la fréquence centrale du filtre, ce qui permet d'étendre ou de réduire la plage de fréquences à amplifier ou à atténuer. La valeur par défaut est 3000 Hz.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Détermine la raideur de la transition du plateau du filtre.
poles, p
Définit le nombre de pôles. La valeur par défaut est 2.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.115.1 Commandes
Ce filtre prend en charge certaines des options ci-dessus en tant que commandes.
8.116 treble, highshelf
Amplifie ou atténue les fréquences aiguës (treble) de l'audio à l'aide d'un filtre en plateau à deux pôles, avec une réponse similaire à celle des réglages de tonalité d'une chaîne hi-fi classique. On parle aussi d'égalisation en plateau (EQ).
Le filtre accepte les options suivantes :
gain, g
Indique le gain à la plus basse des deux fréquences entre ~22 kHz et la fréquence de Nyquist. Sa plage utile va d'environ -20 (pour une forte atténuation) à +20 (pour une forte amplification). Attention à l'écrêtage lors de l'utilisation d'un gain positif.
frequency, f
Définit la fréquence centrale du filtre, ce qui permet d'étendre ou de réduire la plage de fréquences à amplifier ou à atténuer. La valeur par défaut est 3000 Hz.
width_type, t
Définit la méthode pour indiquer la largeur de bande du filtre.
h
Hz
q
Facteur Q
o
octave
s
pente
k
kHz
width, w
Détermine la raideur de la transition du plateau du filtre.
poles, p
Définit le nombre de pôles. La valeur par défaut est 2.
mix, m
Indique la proportion du signal filtré à utiliser dans la sortie. La valeur par défaut est 1. La plage est comprise entre 0 et 1.
channels, c
Indique les canaux à filtrer ; par défaut, tous les canaux disponibles sont filtrés.
normalize, n
Normalise les coefficients biquad ; désactivé par défaut. Son activation normalise la réponse en amplitude au niveau continu (DC) à 0 dB.
transform, a
Définit le type de transformation du filtre IIR.
di dii tdi tdii latt svf zdf precision, r
Définit la précision du filtrage.
auto
Choisit automatiquement le sample format selon les filtres surround.
s16
Utilise toujours des entiers signés 16 bits.
s32
Utilise toujours des entiers signés 32 bits.
f32
Utilise toujours des flottants 32 bits.
f64
Utilise toujours des flottants 64 bits.
block_size, b
Définit la taille de bloc utilisée pour le traitement IIR inverse. Si cette valeur est suffisamment élevée (supérieure à la longueur de la réponse impulsionnelle tronquée lorsqu'elle atteint des valeurs proches de zéro), le filtrage devient à phase linéaire ; sinon, si elle n'est pas assez grande, cela produit simplement des artefacts désagréables.
Notez que le retard du filtre correspond alors exactement à ce nombre d'échantillons lorsque cette valeur est non nulle.
8.116.1 Commandes
Ce filtre prend en charge les commandes suivantes :
frequency, f
Modifie frequency de treble. La syntaxe de la commande est : "frequency"
width_type, t
Modifie width_type de treble. La syntaxe de la commande est : "width_type"
width, w
Modifie width de treble. La syntaxe de la commande est : "width"
gain, g
Modifie gain de treble. La syntaxe de la commande est : "gain"
mix, m
Modifie mix de treble. La syntaxe de la commande est : "mix"
8.117 tremolo
Modulation d'amplitude sinusoïdale.
Le filtre accepte les options suivantes :
f
Fréquence de modulation en hertz. Des fréquences de modulation dans la plage subharmonique (20 Hz ou moins) produisent un effet de trémolo. Ce filtre peut aussi être utilisé comme modulateur en anneau en indiquant une fréquence de modulation supérieure à 20 Hz. La plage est 0.1 - 20000.0. La valeur par défaut est 5.0 Hz.
d
Profondeur de la modulation, exprimée en pourcentage. La plage est 0.0 - 1.0. La valeur par défaut est 0.5.
8.118 vibrato
Modulation de phase sinusoïdale.
Le filtre accepte les options suivantes :
f
Fréquence de modulation en hertz. La plage est 0.1 - 20000.0. La valeur par défaut est 5.0 Hz.
d
Profondeur de la modulation, exprimée en pourcentage. La plage est 0.0 - 1.0. La valeur par défaut est 0.5.
8.119 virtualbass
Applique le filtre Virtual Bass à l'audio.
Ce filtre accepte une entrée stéréo et produit une sortie stéréo avec canal LFE (2.1). Le canal LFE ainsi généré contient un renforcement de basses virtuelles obtenu à partir des deux canaux stéréo d'origine. Ce filtre restitue les canaux avant gauche et avant droit inchangés, tels que présents dans l'entrée stéréo.
Le filtre accepte les options suivantes :
cutoff
Définit la fréquence de coupure des basses virtuelles. La valeur par défaut est 250 Hz. La plage autorisée va de 100 à 500 Hz.
strength
Définit l'intensité des basses virtuelles. La plage autorisée va de 0.5 à 3. La valeur par défaut est 3.
8.120 volume
Ajuste le volume de l'audio d'entrée.
Il accepte les paramètres suivants :
volume
Définit l'expression du volume audio.
Les valeurs de sortie sont écrêtées à la valeur maximale.
Le volume audio de sortie est donné par la relation suivante :
output_volume = volume * input_volume
La valeur par défaut de volume est "1.0".
precision
Ce paramètre représente la précision mathématique.
Il détermine quels sample formats d'entrée seront autorisés, ce qui affecte la précision de la mise à l'échelle du volume.
fixed
Point fixe 8 bits ; cela limite le sample format d'entrée à U8, S16 et S32.
float
Virgule flottante 32 bits ; cela limite le sample format d'entrée à FLT. (par défaut)
double
Virgule flottante 64 bits ; cela limite le sample format d'entrée à DBL.
replaygain
Choisit le comportement à adopter en cas de présence de données annexes ReplayGain dans les images d'entrée.
drop
Supprime les données annexes ReplayGain, en ignorant leur contenu (valeur par défaut).
ignore
Ignore les données annexes ReplayGain, mais les laisse dans l'image.
track
Privilégie le gain de piste, s'il est présent.
album
Privilégie le gain d'album, s'il est présent.
replaygain_preamp
Gain de préamplification, en dB, à appliquer au gain replaygain sélectionné.
La valeur par défaut de replaygain_preamp est 0.0.
replaygain_noclip
Empêche l'écrêtage en limitant le gain appliqué.
La valeur par défaut de replaygain_noclip est 1.
eval
Définit le moment où l'expression du volume est évaluée.
Il accepte les valeurs suivantes :
‘once’
évalue l'expression une seule fois lors de l'initialisation du filtre, ou lorsque la commande ‘volume’ est envoyée
‘frame’
évalue l'expression pour chaque image entrante
La valeur par défaut est ‘once’.
L'expression volume peut contenir les paramètres suivants.
n
numéro d'image (à partir de zéro)
nb_channels
nombre de canaux
nb_consumed_samples
nombre d'échantillons consommés par le filtre
nb_samples
nombre d'échantillons dans l'image actuelle
pos
position d'origine de l'image dans le fichier ; obsolète, à ne pas utiliser
pts
PTS de l'image
sample_rate
fréquence d'échantillonnage
startpts
PTS au début du flux
startt
temps au début du flux
t
temps de l'image
tb
base de temps de l'horodatage
volume
dernière valeur de volume définie
Notez que lorsque eval est défini sur ‘once’, seules les variables sample_rate et tb sont disponibles ; toutes les autres variables sont évaluées à NAN.
8.120.1 Commandes
Ce filtre prend en charge les commandes suivantes :
volume
Modifie l'expression du volume. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
8.120.2 Exemples
- Divise par deux le volume de l'audio d'entrée :
volume=volume=0.5 volume=volume=1/2 volume=volume=-6.0206dB
Dans tous les exemples ci-dessus, la clé nommée volume peut être omise, comme dans :
volume=0.5
-
Augmente la puissance de l'audio d'entrée de 6 décibels en utilisant la précision en virgule fixe :
volume=volume=6dB:precision=fixed -
Fait un fondu du volume après l'instant 10 avec une période d'annihilation de 5 secondes :
volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
8.121 volumedetect
Détecte le volume de la vidéo d'entrée.
Le filtre n'a aucun paramètre. Il ne prend en charge que les échantillons entiers signés 16 bits ; l'entrée est donc convertie si nécessaire. Des statistiques sur le volume sont affichées dans le journal lorsque la fin du flux d'entrée est atteinte.
Il affiche notamment le volume moyen (racine carrée de la moyenne des carrés), le volume maximal (par échantillon), ainsi que le début d'un histogramme des valeurs de volume enregistrées (de la valeur maximale jusqu'à un cumul de 1/1000 des échantillons).
Tous les volumes sont exprimés en décibels par rapport à la valeur PCM maximale.
8.121.1 Exemples
Voici un extrait de la sortie :
[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
Cela signifie :
- L'énergie quadratique moyenne est d'environ -27 dB, soit 10^-2.7.
- Le plus grand échantillon se situe à -4 dB, ou plus précisément entre -4 dB et -5 dB.
- Il y a 6 échantillons à -4 dB, 62 à -5 dB, 286 à -6 dB, etc.
Autrement dit, augmenter le volume de +4 dB ne provoque aucun écrêtage, l'augmenter de +5 dB provoque un écrêtage sur 6 échantillons, etc.
8.122 whisper
Il exécute une reconnaissance vocale automatique à l'aide du modèle Whisper d'OpenAI.
Il nécessite la bibliothèque whisper.cpp (https://github.com/ggml-org/whisper.cpp) comme prérequis. Une fois la bibliothèque installée, il peut être activé à l'aide de : ./configure --enable-whisper.
Le filtre propose les options suivantes :
model
Chemin du fichier du modèle whisper.cpp téléchargé (obligatoire).
language
Langue à utiliser pour la transcription (’auto’ pour la détection automatique). Valeur par défaut : "auto"
translate
Si elle est activée, cette option traduit la transcription de la langue source vers l'anglais. Un modèle multilingue est nécessaire pour activer cette option. Valeur par défaut : "false"
queue
Taille maximale mise en file d'attente dans le filtre avant le traitement de l'audio par whisper. Avec une petite valeur, le flux audio est traité plus souvent, mais la qualité de la transcription est plus faible et la puissance de traitement requise est plus élevée. Avec une valeur élevée (par exemple 10 à 20 s), les résultats sont plus précis pour une charge CPU moindre (comme avec l'outil whisper-cli), mais la latence de la transcription est plus élevée, ce qui la rend inadaptée au traitement des flux en temps réel. Envisagez d'utiliser l'option vad_model associée à une valeur de queue élevée. Valeur par défaut : "3"
use_gpu
Indique si la prise en charge du GPU doit être activée. Valeur par défaut : "true"
gpu_device
Index du périphérique GPU à utiliser. Valeur par défaut : "0"
destination
Si elle est définie, la sortie de la transcription est envoyée vers le fichier ou l'URL indiqué (utilisez l'un des protocoles AVIO de FFmpeg) ; sinon, la sortie est journalisée sous forme de messages d'information. Elle est également placée dans les métadonnées d'image "lavfi.whisper.text". Si la destination est un fichier qui existe déjà, il est écrasé.
format
Chaîne de format de la destination ; elle peut être "text" (seul le texte transcrit est envoyé vers la destination), "srt" (format de sous-titres) ou "json". Valeur par défaut : "text"
max_len
Longueur maximale du segment en caractères. Si la valeur définie est supérieure à 0, les segments de transcription sont découpés mot par mot pour ne pas dépasser cette longueur. Ceci est utile pour générer des sous-titres avec des lignes plus courtes. Valeur par défaut : "0"
vad_model
Chemin du fichier de modèle VAD. Si elle est définie, le filtre charge un module supplémentaire de détection d'activité vocale (voice activity detection, https://github.com/snakers4/silero-vad) utilisé pour fragmenter la file d'attente audio ; pour cette option, indiquez un chemin valide obtenu depuis le dépôt whisper.cpp (par exemple "../whisper.cpp/models/ggml-silero-v5.1.2.bin") et augmentez le paramètre queue à une valeur plus élevée (par exemple 20).
vad_threshold
Seuil de VAD à utiliser. Valeur par défaut : "0.5"
vad_min_speech_duration
Durée de parole minimale pour le VAD. Valeur par défaut : "0.1"
vad_min_silence_duration
Durée de silence minimale pour le VAD. Valeur par défaut : "0.5"
8.122.1 Exemples
-
Effectue une transcription avec génération d'un fichier 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 - -
Effectue une transcription et envoie la sortie au format JSON vers un service 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 - -
Transcrit l'entrée du microphone en utilisant l'option 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 Sources audio
Voici la description des sources audio disponibles à ce jour.
9.1 abuffer
Met en mémoire tampon des images audio et les rend disponibles pour la chaîne de filtres.
Cette source est principalement destinée à un usage programmatique, notamment via l'interface définie dans libavfilter/buffersrc.h.
Elle accepte les paramètres suivants :
time_base
Base de temps utilisée pour l'horodatage des images soumises. Elle doit être un nombre à virgule flottante ou être exprimée sous la forme numérateur/dénominateur.
sample_rate
Fréquence d'échantillonnage des tampons audio entrants.
sample_fmt
Le sample format des tampons audio entrants. Il s'agit soit d'un nom de sample format, soit de la représentation entière correspondante de l'énumération AVSampleFormat dans libavutil/samplefmt.h
channel_layout
Disposition des canaux des tampons audio entrants. Il s'agit soit d'un nom de disposition des canaux tiré de channel_layout_map dans libavutil/channel_layout.c, soit de la représentation entière correspondante des macros AV_CH_LAYOUT_* dans libavutil/channel_layout.h
channels
Nombre de canaux des tampons audio entrants. Si channels et channel_layout sont tous deux spécifiés, ils doivent être cohérents.
9.1.1 Exemples
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
Ceci indique à la source d'accepter du 16 bits signé stéréo planaire à 44100Hz. Le nom de sample format "s16p" correspondant au nombre 6 et la disposition de canaux "stereo" correspondant à la valeur 0x3, cela équivaut à :
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
9.2 aevalsrc
Génère un signal audio défini par une expression.
Cette source accepte en entrée une ou plusieurs expressions (une par canal), qui sont évaluées et utilisées pour générer le signal audio correspondant.
Cette source accepte les options suivantes :
exprs
Définit la liste d'expressions séparées par ’|’ pour chaque canal. Si l'option channel_layout n'est pas spécifiée, la disposition des canaux sélectionnée dépend du nombre d'expressions fournies. Sinon, la dernière expression spécifiée est appliquée aux canaux de sortie restants.
channel_layout, c
Définit la disposition des canaux. Le nombre de canaux de la disposition spécifiée doit être égal au nombre d'expressions spécifiées.
duration, d
Définit la durée minimale de l'audio source. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Notez que la durée résultante peut être supérieure à la durée spécifiée, car l'audio généré est toujours coupé à la fin d'une image complète.
Si elle n'est pas spécifiée, ou si la durée exprimée est négative, l'audio est censé être généré indéfiniment.
nb_samples, n
Définit le nombre d'échantillons par canal pour chaque image de sortie, la valeur par défaut étant 1024.
sample_rate, s
Spécifie la fréquence d'échantillonnage, la valeur par défaut étant 44100.
Chaque expression de exprs peut contenir les constantes suivantes :
n
numéro de l'échantillon évalué, à partir de 0
t
temps de l'échantillon évalué, exprimé en secondes, à partir de 0
s
fréquence d'échantillonnage
9.2.1 Exemples
-
Génère du silence :
aevalsrc=0 -
Génère un signal sinusoïdal d'une fréquence de 440 Hz, avec une fréquence d'échantillonnage réglée à 8000 Hz :
aevalsrc="sin(440*2*PI*t):s=8000" -
Génère un signal à deux canaux, en spécifiant explicitement la disposition des canaux (Front Center + Back Center) :
aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC" -
Génère du bruit blanc :
aevalsrc="-2+random(0)" -
Génère un signal modulé en amplitude :
aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)" -
Génère des battements binauraux de 2.5 Hz sur une porteuse 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
Génère des coefficients FIR à retard fractionnaire.
Le flux résultant peut être utilisé avec le filtre afir pour filtrer le signal audio.
Le filtre accepte les options suivantes :
delay, d
Définit le retard fractionnaire. La valeur par défaut est 0.
sample_rate, r
Définit la fréquence d'échantillonnage, la valeur par défaut étant 44100.
nb_samples, n
Définit le nombre d'échantillons par image. La valeur par défaut est 1024.
taps, t
Définit le nombre de coefficients du filtre dans le flux audio de sortie. La valeur par défaut est 0.
channel_layout, c
Spécifie la disposition des canaux ; il peut s'agir d'une chaîne représentant une disposition de canaux. La valeur par défaut de channel_layout est "stereo".
9.4 afireqsrc
Génère des coefficients d'égaliseur FIR.
Le flux résultant peut être utilisé avec le filtre afir pour filtrer le signal audio.
Le filtre accepte les options suivantes :
preset, p
Définit le préréglage de l'égaliseur. Le préréglage par défaut est flat.
Préréglages disponibles :
‘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
Définit les gains personnalisés pour chaque bande. Utilisé uniquement si l'option preset est réglée sur custom. Les gains sont séparés par des espaces et chaque gain est exprimé en dBFS. La valeur par défaut est 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.
bands, b
Définit les bandes personnalisées à partir desquelles les gains personnalisés de l'égaliseur sont réglés. L'ordre doit être strictement croissant. Utilisé uniquement si l'option preset est réglée sur custom. Les bandes sont séparées par des espaces et chaque bande représente une fréquence en Hz. La valeur par défaut est 25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000.
taps, t
Définit le nombre de coefficients du filtre dans le flux audio de sortie. La valeur par défaut est 4096.
sample_rate, r
Définit la fréquence d'échantillonnage du flux audio de sortie, la valeur par défaut étant 44100.
nb_samples, n
Définit le nombre d'échantillons par image dans le flux audio de sortie. La valeur par défaut est 1024.
interp, i
Définit la méthode d'interpolation des coefficients de l'égaliseur FIR. Peut valoir linear ou cubic.
phase, h
Définit le type de phase du filtre FIR. Peut valoir linear ou min : phase minimale. Le filtre à phase minimale est utilisé par défaut.
9.5 afirsrc
Génère des coefficients FIR à l'aide de la méthode d'échantillonnage fréquentiel.
Le flux résultant peut être utilisé avec le filtre afir pour filtrer le signal audio.
Le filtre accepte les options suivantes :
taps, t
Définit le nombre de coefficients du filtre dans le flux audio de sortie. La valeur par défaut est 1025.
frequency, f
Définit les points de fréquence à partir desquels l'amplitude et la phase sont réglées. L'ordre doit être non décroissant, le premier élément devant être 0 et le dernier élément devant être 1. Les éléments sont séparés par des espaces.
magnitude, m
Définit la valeur d'amplitude pour chaque point de fréquence défini par frequency. Le nombre de valeurs doit être égal au nombre de points de fréquence. Les valeurs sont séparées par des espaces.
phase, p
Définit la valeur de phase pour chaque point de fréquence défini par frequency. Le nombre de valeurs doit être égal au nombre de points de fréquence. Les valeurs sont séparées par des espaces.
sample_rate, r
Définit la fréquence d'échantillonnage, la valeur par défaut étant 44100.
nb_samples, n
Définit le nombre d'échantillons par image. La valeur par défaut est 1024.
win_func, w
Définit la fonction de fenêtrage. La valeur par défaut est blackman.
9.6 anullsrc
Source audio nulle qui renvoie des images audio non traitées. Elle est surtout utile comme modèle, pour être employée dans des outils d'analyse/débogage, ou comme source pour les filtres qui ignorent les données d'entrée (par exemple le filtre synth de sox).
Cette source accepte les options suivantes :
channel_layout, cl
Spécifie la disposition des canaux ; il peut s'agir soit d'un entier, soit d'une chaîne représentant une disposition de canaux. La valeur par défaut de channel_layout est "stereo".
Pour la correspondance entre les chaînes et les valeurs de disposition des canaux, consultez la définition de channel_layout_map dans libavutil/channel_layout.c.
sample_rate, r
Spécifie la fréquence d'échantillonnage ; la valeur par défaut est 44100.
nb_samples, n
Définit le nombre d'échantillons par image demandée.
duration, d
Définit la durée de l'audio source. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée.
Si elle n'est pas spécifiée, ou si la durée exprimée est négative, l'audio est censé être généré indéfiniment.
9.6.1 Exemples
-
Règle la fréquence d'échantillonnage sur 48000 Hz et la disposition des canaux sur AV_CH_LAYOUT_MONO.
anullsrc=r=48000:cl=4 -
Effectue la même opération avec une syntaxe plus explicite :
anullsrc=r=48000:cl=mono
Tous les paramètres doivent être définis explicitement.
9.7 flite
Synthétise un énoncé vocal à l'aide de la bibliothèque libflite.
Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-libflite.
Notez que les versions de la bibliothèque flite antérieures à 2.0 ne sont pas thread-safe.
Le filtre accepte les options suivantes :
list_voices
Si elle est réglée sur 1, affiche les noms des voix disponibles puis quitte immédiatement. La valeur par défaut est 0.
nb_samples, n
Définit le nombre maximal d'échantillons par image. La valeur par défaut est 512.
textfile
Définit le nom du fichier contenant le texte à énoncer.
text
Définit le texte à énoncer.
voice, v
Définit la voix à utiliser pour la synthèse vocale. La valeur par défaut est kal. Voir aussi l'option list_voices.
9.7.1 Exemples
-
Lit le fichier speech.txt et synthétise le texte avec la voix flite standard :
flite=textfile=speech.txt -
Lit le texte indiqué en sélectionnant la voix
slt:flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt -
Fournit le texte en entrée à ffmpeg :
ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt -
Fait énoncer le texte indiqué par ffplay, à l'aide de
fliteet du périphériquelavfi:ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
Pour plus d'informations sur libflite, consultez : http://www.festvox.org/flite/
9.8 anoisesrc
Génère un signal de bruit audio.
Le filtre accepte les options suivantes :
sample_rate, r
Spécifie la fréquence d'échantillonnage. La valeur par défaut est 48000 Hz.
amplitude, a
Spécifie l'amplitude (0.0 - 1.0) du flux audio généré. La valeur par défaut est 1.0.
duration, d
Spécifie la durée du flux audio généré. Si cette option n'est pas spécifiée, le bruit généré a une durée infinie.
color, colour, c
Spécifie la couleur du bruit. Les couleurs de bruit disponibles sont white, pink, brown, blue, violet et velvet. La couleur par défaut est white.
seed, s
Spécifie une valeur utilisée pour initialiser le PRNG.
nb_samples, n
Définit le nombre d'échantillons par image de sortie, la valeur par défaut étant 1024.
density
Définit la densité (0.0 - 1.0) pour le générateur de bruit velvet, la valeur par défaut étant 0.05.
9.8.1 Exemples
- Génère 60 secondes de bruit pink, avec une fréquence d'échantillonnage de 44.1 kHz et une amplitude de 0.5 :
anoisesrc=d=60:c=pink:r=44100:a=0.5
9.9 hilbert
Génère des coefficients FIR de transformée de Hilbert à nombre de coefficients impair.
Le flux résultant peut être utilisé avec le filtre afir pour déphaser le signal de 90 degrés.
Ceci est utilisé dans de nombreux schémas de codage matriciel et pour la génération de signal analytique. Le procédé s'écrit souvent comme une multiplication par i (ou j), l'unité imaginaire.
Le filtre accepte les options suivantes :
sample_rate, s
Définit la fréquence d'échantillonnage, la valeur par défaut étant 44100.
taps, t
Définit la longueur du filtre FIR, la valeur par défaut étant 22051.
nb_samples, n
Définit le nombre d'échantillons par image.
win_func, w
Définit la fonction de fenêtrage à utiliser lors de la génération des coefficients FIR.
9.10 sinc
Génère des coefficients FIR sinc fenêtrés par une fenêtre de Kaiser, de type passe-bas, passe-haut, passe-bande ou coupe-bande.
Le flux résultant peut être utilisé avec le filtre afir pour filtrer le signal audio.
Le filtre accepte les options suivantes :
sample_rate, r
Définit la fréquence d'échantillonnage, la valeur par défaut étant 44100.
nb_samples, n
Définit le nombre d'échantillons par image. La valeur par défaut est 1024.
hp
Définit la fréquence de coupure passe-haut. La valeur par défaut est 0.
lp
Définit la fréquence de coupure passe-bas. La valeur par défaut est 0. Si la fréquence passe-haut est inférieure à la fréquence passe-bas et que celle-ci est supérieure à 0, le filtre crée des coefficients de type passe-bande, sinon des coefficients de type coupe-bande.
phase
Définit la réponse en phase du filtre. La valeur par défaut est 50. La plage autorisée va de 0 à 100.
beta
Définit le bêta de la fenêtre de Kaiser.
att
Définit l'atténuation en bande coupée. La valeur par défaut est 120dB, la plage autorisée va de 40 à 180 dB.
round
Active l'arrondi ; désactivé par défaut.
hptaps
Définit le nombre de coefficients pour le filtre passe-haut.
lptaps
Définit le nombre de coefficients pour le filtre passe-bas.
9.11 sine
Génère un signal audio constitué d'une onde sinusoïdale d'amplitude 1/8.
Le signal audio est bit-exact.
Le filtre accepte les options suivantes :
frequency, f
Définit la fréquence porteuse. La valeur par défaut est 440 Hz.
beep_factor, b
Active un bip périodique chaque seconde, à une fréquence égale à beep_factor fois la fréquence porteuse. La valeur par défaut est 0, ce qui désactive le bip.
sample_rate, r
Spécifie la fréquence d'échantillonnage, la valeur par défaut étant 44100.
duration, d
Spécifie la durée du flux audio généré.
samples_per_frame
Définit le nombre d'échantillons par image de sortie.
L'expression peut contenir les constantes suivantes :
n
Numéro (séquentiel) de l'image audio de sortie, à partir de 0.
pts
PTS (Presentation TimeStamp) de l'image audio de sortie, exprimé en unités TB.
t
PTS de l'image audio de sortie, exprimé en secondes.
TB
Base de temps des images audio de sortie.
La valeur par défaut est 1024.
9.11.1 Exemples
-
Génère une simple onde sinusoïdale de 440 Hz :
sine -
Génère une onde sinusoïdale de 220 Hz avec un bip de 880 Hz chaque seconde, pendant 5 secondes :
sine=220:4:d=5 sine=f=220:b=4:d=5 sine=frequency=220:beep_factor=4:duration=5 -
Génère une onde sinusoïdale de 1 kHz suivant le motif 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 Sinks audio
Voici la description des sinks audio disponibles à ce jour.
10.1 abuffersink
Met en mémoire tampon des images audio et les rend disponibles à la fin de la chaîne de filtres.
Ce sink est principalement destiné à un usage programmatique, notamment via l'interface définie dans libavfilter/buffersink.h ou via le système d'options.
Il accepte un pointeur vers une structure AVABufferSinkContext, qui définit les formats des tampons entrants, à passer comme paramètre opaque à avfilter_init_filter pour l'initialisation.
10.2 anullsink
Sink audio nul ; ne fait absolument rien avec l'audio d'entrée. Il est surtout utile comme modèle et pour une utilisation dans des outils d'analyse/débogage.
11 Filtres vidéo
Lors de la configuration de votre build FFmpeg, vous pouvez désactiver n'importe lequel des filtres existants avec --disable-filters. La sortie de configure indique les filtres vidéo inclus dans votre build.
Voici la description des filtres vidéo disponibles à ce jour.
11.1 addroi
Marque une région d'intérêt dans une image vidéo.
Les données de l'image sont transmises inchangées, mais des métadonnées indiquant les régions d'intérêt sont attachées à l'image, ce qui peut affecter le comportement d'un encodage ultérieur. Il est possible de marquer plusieurs régions en appliquant le filtre plusieurs fois.
x
Distance de la région en pixels par rapport au bord gauche de l'image.
y
Distance de la région en pixels par rapport au bord supérieur de l'image.
w
Largeur de la région en pixels.
h
Hauteur de la région en pixels.
Les paramètres x, y, w et h sont des expressions, et peuvent contenir les variables suivantes :
iw
Largeur de l'image d'entrée.
ih
Hauteur de l'image d'entrée.
qoffset
Décalage de quantification à appliquer dans la région.
Il doit s'agir d'une valeur réelle comprise entre -1 et +1. Une valeur nulle n'indique aucun changement de qualité. Une valeur négative demande une meilleure qualité (moins de quantification), tandis qu'une valeur positive demande une qualité inférieure (davantage de quantification).
La plage est calibrée de telle sorte que les valeurs extrêmes indiquent le décalage maximal possible - si le reste de l'image est encodé avec la pire qualité possible, un décalage de -1 indique que cette région doit malgré tout être encodée avec la meilleure qualité possible. Les valeurs intermédiaires sont ensuite interpolées d'une manière qui dépend du codec.
Par exemple, en H.264 10 bits, le paramètre de quantification varie entre -12 et 51. Une valeur qoffset typique de -1/10 indique donc que cette région doit être encodée avec un QP inférieur d'environ un dixième de la plage totale par rapport au reste de l'image. Ainsi, si la majeure partie de l'image était encodée avec un QP d'environ 30, cette région obtiendrait un QP d'environ 24 (un décalage d'environ -1/10 * (51 - -12) = -6.3). Une valeur extrême de -1 indiquerait que cette région doit être encodée avec la meilleure qualité possible, indépendamment du traitement du reste de l'image - c'est-à-dire qu'elle doit être encodée à un QP de -12.
clear
Si elle est réglée sur true, supprime toute région d'intérêt déjà marquée sur l'image avant d'ajouter la nouvelle.
11.1.1 Exemples
-
Marque le quart central de l'image comme intéressant.
addroi=iw/4:ih/4:iw/2:ih/2:-1/10 -
Marque la région large de 100 pixels sur le bord gauche de l'image comme très peu intéressante (à encoder avec une qualité bien plus faible que le reste de l'image).
addroi=0:0:100:ih:+1/5
11.2 alphaextract
Extrait la composante alpha de l'entrée sous forme de vidéo en niveaux de gris. Ceci est particulièrement utile avec le filtre alphamerge.
11.3 alphamerge
Ajoute ou remplace la composante alpha de l'entrée principale par la valeur en niveaux de gris d'une seconde entrée. Ceci est destiné à être utilisé avec alphaextract, afin de permettre la transmission ou le stockage de séquences d'images comportant un canal alpha dans un format qui ne le prend pas en charge.
Par exemple, pour reconstruire des images complètes à partir d'une vidéo encodée en YUV classique et d'une vidéo séparée créée avec alphaextract, vous pouvez utiliser :
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
11.4 amplify
Amplifie les différences entre le pixel courant et les pixels des images adjacentes situés au même emplacement.
Ce filtre accepte les options suivantes :
radius
Définit le rayon en images. La valeur par défaut est 2. La plage autorisée va de 1 à 63. Par exemple, un rayon de 3 indique au filtre de calculer la moyenne de 7 images.
factor
Définit le facteur d'amplification de la différence. La valeur par défaut est 2. La plage autorisée va de 0 à 65535.
threshold
Définit le seuil d'amplification de la différence. Toute différence supérieure ou égale à cette valeur ne modifie pas le pixel source. La valeur par défaut est 10. La plage autorisée va de 0 à 65535.
tolerance
Définit la tolérance d'amplification de la différence. Toute différence inférieure à cette valeur ne modifie pas le pixel source. La valeur par défaut est 0. La plage autorisée va de 0 à 65535.
low
Définit la limite inférieure pour la modification du pixel source. La valeur par défaut est 65535. La plage autorisée va de 0 à 65535. Cette option détermine la valeur maximale possible qui diminuera la valeur du pixel source.
high
Définit la limite supérieure pour la modification du pixel source. La valeur par défaut est 65535. La plage autorisée va de 0 à 65535. Cette option détermine la valeur maximale possible qui augmentera la valeur du pixel source.
planes
Définit les plans à filtrer. La valeur par défaut est all. La plage autorisée va de 0 à 15.
11.4.1 Commandes
Ce filtre prend en charge les commandes suivantes, qui correspondent aux options de même nom :
factor threshold tolerance low high planes
11.5 ass
Identique au filtre subtitles, si ce n'est qu'il ne nécessite pas libavcodec et libavformat pour fonctionner. En revanche, il est limité aux fichiers de sous-titres ASS (Advanced Substation Alpha).
Ce filtre accepte filename/f, original_size, fontsdir et alpha du filtre subtitles, ainsi que l'option suivante :
shaping
Définit le moteur de mise en forme.
Valeurs disponibles :
‘auto’
Moteur de mise en forme par défaut de libass, le meilleur disponible.
‘simple’
Moteur rapide, indépendant de la police, capable uniquement d'effectuer des substitutions.
‘complex’
Moteur plus lent utilisant OpenType pour les substitutions et le positionnement. Nécessaire pour un rendu correct des écritures complexes telles que l'arabe, l'hébreu, le devanagari et le thaï. Nécessite que libass soit compilé avec HarfBuzz.
La valeur par défaut est auto.
11.6 atadenoise
Applique un débruiteur temporel adaptatif par moyennage (Adaptive Temporal Averaging Denoiser) à l'entrée vidéo.
Le filtre accepte les options suivantes :
0a
Définit le seuil A pour le 1er plan. La valeur par défaut est 0.02. La plage valide va de 0 à 0.3.
0b
Définit le seuil B pour le 1er plan. La valeur par défaut est 0.04. La plage valide va de 0 à 5.
1a
Définit le seuil A pour le 2e plan. La valeur par défaut est 0.02. La plage valide va de 0 à 0.3.
1b
Définit le seuil B pour le 2e plan. La valeur par défaut est 0.04. La plage valide va de 0 à 5.
2a
Définit le seuil A pour le 3e plan. La valeur par défaut est 0.02. La plage valide va de 0 à 0.3.
2b
Définit le seuil B pour le 3e plan. La valeur par défaut est 0.04. La plage valide va de 0 à 5.
Le seuil A est conçu pour réagir aux changements brusques du signal d'entrée, et le seuil B est conçu pour réagir aux changements continus du signal d'entrée.
s
Définit le nombre d'images que le filtre utilise pour le moyennage. La valeur par défaut est 9. Doit être un nombre impair compris dans la plage [5, 129].
p
Définit les plans de l'image que le filtre utilise pour le moyennage. La valeur par défaut est all.
a
Définit la variante de l'algorithme que le filtre utilise pour le moyennage. La valeur par défaut est p, parallèle. On peut aussi la définir sur s, série.
Le mode parallèle peut être plus rapide que le mode série, l'inverse n'étant jamais vrai. Le mode parallèle abandonne tôt dès le premier changement supérieur aux seuils, tandis que le mode série continue de traiter l'autre côté des images si celles-ci sont égales ou inférieures aux seuils.
0s 1s 2s
Définit le sigma pour le 1er plan, le 2e plan ou le 3e plan. La valeur par défaut est 32767. La plage valide va de 0 à 32767. Cette option contrôle le poids de chaque pixel dans le rayon défini par size. La valeur par défaut signifie que chaque pixel a le même poids. Définir cette option à 0 désactive de fait le filtrage.
11.6.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options, à l'exception de l'option s. La commande accepte la même syntaxe que l'option correspondante.
11.7 avgblur
Applique un filtre de flou moyen.
Le filtre accepte les options suivantes :
sizeX
Définit le rayon horizontal.
planes
Définit les plans à filtrer. Par défaut, tous les plans sont filtrés.
sizeY
Définit le rayon vertical ; s'il est nul, il sera identique à sizeX. La valeur par défaut est 0.
11.7.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.8 backgroundkey
Transforme un arrière-plan statique en transparence.
Le filtre accepte l'option suivante :
threshold
Seuil de détection de changement de scène.
similarity
Pourcentage de similarité avec l'arrière-plan.
blend
Définit le taux de mélange pour les pixels qui ne sont pas similaires.
11.8.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.9 bbox
Calcule la boîte englobante des pixels non noirs dans le plan de luminance de l'image d'entrée.
Ce filtre calcule la boîte englobante contenant tous les pixels dont la valeur de luminance est supérieure à la valeur minimale autorisée. Les paramètres décrivant la boîte englobante sont affichés dans le journal du filtre.
Le filtre accepte l'option suivante :
min_val
Définit la valeur minimale de luminance. La valeur par défaut est 16.
11.9.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.10 bilateral
Applique un filtre bilatéral, un lissage spatial préservant les contours.
Le filtre accepte les options suivantes :
sigmaS
Définit le sigma de la fonction gaussienne servant à calculer le poids spatial. La plage autorisée va de 0 à 512. La valeur par défaut est 0.1.
sigmaR
Définit le sigma de la fonction gaussienne servant à calculer le poids de plage. La plage autorisée va de 0 à 1. La valeur par défaut est 0.1.
planes
Définit les plans à filtrer. La valeur par défaut est le premier uniquement.
11.10.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.11 bitplanenoise
Affiche et mesure le bruit des plans binaires (bit plane).
Le filtre accepte les options suivantes :
bitplane
Définit le plan à analyser. La valeur par défaut est 1.
filter
Filtre les pixels bruités du plan binaire défini par bitplane ci-dessus. Désactivé par défaut.
11.12 blackdetect, blackdetect_vulkan
Détecte les intervalles vidéo (presque) totalement noirs. Peut être utile pour détecter les transitions de chapitre, les publicités ou les enregistrements invalides.
Le filtre envoie son analyse de détection à la fois vers le journal et vers les métadonnées d'image. Si un segment noir d'une durée au moins égale à la durée minimale indiquée est trouvé, une ligne avec les horodatages de début et de fin ainsi que la durée est affichée dans le journal au niveau info. De plus, une ligne de journal de niveau debug est affichée par image, montrant la quantité de noir détectée pour cette image.
Le filtre associe également des métadonnées à la première image d'un segment noir, avec la clé lavfi.black_start, et à la première image après la fin du segment noir, avec la clé lavfi.black_end. La valeur est l'horodatage de l'image. Ces métadonnées sont ajoutées quelle que soit la durée minimale indiquée.
Le filtre accepte les options suivantes :
black_min_duration, d
Définit la durée minimale de noir détectée, exprimée en secondes. Doit être un nombre à virgule flottante non négatif.
La valeur par défaut est 2.0.
picture_black_ratio_th, pic_th
Définit le seuil à partir duquel une image est considérée comme "noire". Exprime la valeur minimale du rapport :
nb_black_pixels / nb_pixels
pour lequel une image est considérée comme noire. La valeur par défaut est 0.98.
pixel_black_th, pix_th
Définit le seuil à partir duquel un pixel est considéré comme "noir".
Le seuil exprime la valeur de luminance maximale d'un pixel pour laquelle celui-ci est considéré comme "noir". La valeur indiquée est mise à l'échelle selon l'équation suivante :
absolute_threshold = luma_minimum_value + pixel_black_th * luma_range_size
luma_range_size et luma_minimum_value dépendent du format vidéo d'entrée ; la plage est [0-255] pour les formats YUV pleine plage et [16-235] pour les formats YUV non pleine plage.
La valeur par défaut est 0.10.
alpha
Si activé, vérifie le canal alpha au lieu du canal de luminance. Détecte les images (presque) transparentes, au lieu des images presque noires.
Désactivé par défaut.
L'exemple suivant fixe le seuil de pixel maximal à la valeur minimale, et détecte uniquement les intervalles noirs de 2 secondes ou plus :
blackdetect=d=2:pix_th=0.00
11.13 blackframe
Détecte les images (presque) totalement noires. Peut être utile pour détecter les transitions de chapitre ou les publicités. Les lignes de sortie contiennent le numéro de l'image détectée, le pourcentage de noir, la position dans le fichier si elle est connue (sinon -1) et l'horodatage en secondes.
Pour afficher les lignes de sortie, vous devez définir le niveau de journalisation au moins à la valeur AV_LOG_INFO.
Ce filtre exporte la métadonnée d'image lavfi.blackframe.pblack. La valeur représente le pourcentage de pixels de l'image situés en dessous de la valeur de seuil.
Il accepte les paramètres suivants :
amount
Le pourcentage de pixels devant être en dessous du seuil ; la valeur par défaut est 98.
threshold, thresh
Le seuil en dessous duquel une valeur de pixel est considérée comme noire ; la valeur par défaut est 32.
11.14 blend
Fusionne deux images vidéo l'une avec l'autre.
Le filtre blend prend deux flux d'entrée et produit un flux de sortie ; la première entrée est la couche "top" et la seconde est la couche "bottom". Par défaut, la sortie se termine lorsque l'entrée la plus longue se termine.
Le filtre tblend (time blend) prend deux images consécutives d'un seul et même flux, et produit le résultat obtenu en fusionnant la nouvelle image au-dessus de l'ancienne.
Voici une description des options acceptées.
c0_mode c1_mode c2_mode c3_mode all_mode
Définit le mode de fusion pour une composante de pixel donnée, ou pour toutes les composantes de pixel dans le cas de all_mode. La valeur par défaut est normal.
Les valeurs disponibles pour les modes par composante sont :
‘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
Définit l'opacité de fusion pour une composante de pixel donnée, ou pour toutes les composantes de pixel dans le cas de all_opacity. Utilisé uniquement en combinaison avec les modes de fusion par composante de pixel.
c0_expr c1_expr c2_expr c3_expr all_expr
Définit l'expression de fusion pour une composante de pixel donnée, ou pour toutes les composantes de pixel dans le cas de all_expr. Notez que les options de mode associées seront ignorées si celles-ci sont définies.
Les expressions peuvent utiliser les variables suivantes :
N
Le numéro séquentiel de l'image filtrée, à partir de 0.
X Y
les coordonnées de l'échantillon courant
W H
la largeur et la hauteur du plan en cours de filtrage
SW SH
L'échelle de largeur et de hauteur pour le plan filtré. C'est le rapport entre les dimensions du plan courant et celles du plan de luminance ; par exemple, pour une image yuv420p, les valeurs sont 1,1 pour le plan de luminance et 0.5,0.5 pour les plans de chrominance.
T
Temps de l'image courante, exprimé en secondes.
TOP, A
Valeur de la composante de pixel à l'emplacement courant pour la première image vidéo (couche du dessus).
BOTTOM, B
Valeur de la composante de pixel à l'emplacement courant pour la seconde image vidéo (couche du dessous).
Le filtre blend prend également en charge les options framesync.
11.14.1 Exemples
-
Applique une transition de la couche du dessous vers la couche du dessus au cours des 10 premières secondes :
blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))' -
Appliquer une transition horizontale linéaire de la couche du dessus vers la couche du dessous :
blend=all_expr='A*(X/W)+B*(1-X/W)' -
Appliquer un effet de damier 1x1 :
blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)' -
Appliquer un effet de découverte par la gauche :
blend=all_expr='if(gte(N*SW+X,W),A,B)' -
Appliquer un effet de découverte par le bas :
blend=all_expr='if(gte(Y-N*SH,0),A,B)' -
Appliquer un effet de découverte par le haut-gauche :
blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)' -
Diviser la vidéo en diagonale et afficher la couche du dessus et la couche du dessous de chaque côté :
blend=all_expr='if(gt(X,Y*(W/H)),A,B)' -
Afficher les différences entre l'image courante et l'image précédente :
tblend=all_mode=grainextract
11.14.2 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.15 blockdetect
Détermine le degré de "blocking" des images sans altérer les images d'entrée.
D'après Remco Muijs et Ihor Kirenko : "A no-reference blocking artifact measure for adaptive video processing." 2005 13th European signal processing conference.
Le filtre accepte les options suivantes :
period_min period_max
Définit les valeurs minimale et maximale pour la détermination des grilles de pixels (périodes). Les valeurs par défaut sont [3,24].
planes
Définit les plans à filtrer. La valeur par défaut est le premier uniquement.
11.15.1 Exemples
- Déterminer le degré de blocking pour le premier plan et rechercher des périodes dans [8,32] :
blockdetect=period_min=8:period_max=32:planes=1
11.16 blurdetect
Détermine le flou des images sans altérer les images d'entrée.
D'après Marziliano, Pina, et al. "A no-reference perceptual blur metric." Permet une abréviation par blocs.
Le filtre accepte les options suivantes :
low high
Définit les valeurs de seuil bas et haut utilisées par l'algorithme de seuillage de Canny.
Le seuil haut sélectionne les pixels de contour "forts", qui sont ensuite reliés par 8-connexité aux pixels de contour "faibles" sélectionnés par le seuil bas.
Les valeurs des seuils bas et haut doivent être choisies dans la plage [0,1], et le seuil bas doit être inférieur ou égal au seuil haut.
La valeur par défaut de low est 20/255, et celle de high est 50/255.
radius
Définit le rayon de recherche autour d'un pixel de contour pour les maxima locaux.
block_pct
Détermine le flou uniquement pour les blocs les plus significatifs, exprimé en pourcentage.
block_width
Détermine le flou pour des blocs de largeur block_width. Si la valeur est inférieure à 1, aucun bloc n'est utilisé et l'image entière est traitée comme un tout, quelle que soit block_height.
block_height
Détermine le flou pour des blocs de hauteur block_height. Si la valeur est inférieure à 1, aucun bloc n'est utilisé et l'image entière est traitée comme un tout, quelle que soit block_width.
planes
Définit les plans à filtrer. La valeur par défaut est le premier uniquement.
11.16.1 Exemples
- Déterminer le flou pour 80 % des blocs 32x32 les plus significatifs :
blurdetect=block_width=32:block_height=32:block_pct=80
11.17 bm3d
Débruite les images à l'aide de l'algorithme Block-Matching 3D.
Le filtre accepte les options suivantes.
sigma
Définit l'intensité du débruitage. La valeur par défaut est 1. La plage autorisée va de 0 à 999.9. L'algorithme de débruitage est très sensible à sigma, ajustez-le donc en fonction de la source.
block
Définit la taille du patch local. Ceci fixe les dimensions en 2D.
bstep
Définit le pas de déplacement pour le traitement des blocs. La valeur par défaut est 4. La plage autorisée va de 1 à 64. Des valeurs plus petites permettent de traiter davantage de blocs de référence et sont plus lentes.
group
Définit le nombre maximal de blocs similaires pour la 3e dimension. La valeur par défaut est 1. Lorsqu'elle est fixée à 1, aucune mise en correspondance de blocs n'est effectuée. Des valeurs plus grandes autorisent davantage de blocs dans un même groupe. La plage autorisée va de 1 à 256.
range
Définit le rayon de recherche pour la mise en correspondance de blocs. La valeur par défaut est 9. La plage autorisée va de 1 à INT32_MAX.
mstep
Définit le pas entre deux emplacements de recherche pour la mise en correspondance de blocs. La valeur par défaut est 1. La plage autorisée va de 1 à 64. Plus la valeur est petite, plus le traitement est lent.
thmse
Définit le seuil d'erreur quadratique moyenne pour la mise en correspondance de blocs. La plage valide va de 0 à INT32_MAX.
hdthr
Définit le paramètre de seuillage pour le seuillage dur dans le domaine transformé en 3D. Des valeurs plus grandes se traduisent par un filtrage de seuillage dur plus fort dans le domaine fréquentiel.
estim
Définit le mode d'estimation du filtrage. Peut être basic ou final. La valeur par défaut est basic.
ref
Si activé, le filtre utilise le 2e flux pour la mise en correspondance de blocs. Désactivé par défaut pour la valeur basic de l'option estim, et toujours activé si la valeur d'estim est final.
planes
Définit les plans à filtrer. La valeur par défaut est tous les plans disponibles sauf l'alpha.
11.17.1 Exemples
-
Filtrage de base avec bm3d :
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic -
Identique à ci-dessus, mais en filtrant uniquement la luminance :
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1 -
Identique à ci-dessus, mais avec les deux modes d'estimation :
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 -
Identique à ci-dessus, mais en préfiltrant avec le filtre nlmeans à la place :
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
Applique un algorithme de flou par boîte (boxblur) à la vidéo d'entrée.
Il accepte les paramètres suivants :
luma_radius, lr luma_power, lp chroma_radius, cr chroma_power, cp alpha_radius, ar alpha_power, ap
Voici une description des options acceptées.
luma_radius, lr chroma_radius, cr alpha_radius, ar
Définit une expression pour le rayon de la boîte, en pixels, utilisé pour flouter le plan d'entrée correspondant.
La valeur du rayon doit être un nombre non négatif, et ne doit pas être supérieure à la valeur de l'expression min(w,h)/2 pour les plans de luminance et alpha, et de min(cw,ch)/2 pour les plans de chrominance.
La valeur par défaut de luma_radius est "2". Si elle n'est pas indiquée, chroma_radius et alpha_radius prennent par défaut la valeur définie pour luma_radius.
Les expressions peuvent contenir les constantes suivantes :
w h
La largeur et la hauteur de l'entrée en pixels.
cw ch
La largeur et la hauteur de l'image de chrominance d'entrée en pixels.
hsub vsub
Les valeurs de sous-échantillonnage horizontal et vertical de chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
luma_power, lp chroma_power, cp alpha_power, ap
Indique combien de fois le filtre boxblur est appliqué au plan correspondant.
La valeur par défaut de luma_power est 2. Si elle n'est pas indiquée, chroma_power et alpha_power prennent par défaut la valeur définie pour luma_power.
Une valeur de 0 désactive l'effet.
11.18.1 Exemples
-
Appliquer un filtre boxblur avec les rayons de luminance, de chrominance et alpha fixés à 2 :
boxblur=luma_radius=2:luma_power=1 boxblur=2:1 -
Fixer le rayon de luminance à 2, et les rayons alpha et de chrominance à 0 :
boxblur=2:1:cr=0:ar=0 -
Fixer les rayons de luminance et de chrominance à une fraction de la dimension vidéo :
boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
11.19 bwdif
Désentrelace la vidéo d'entrée ("bwdif" signifie "Bob Weaver Deinterlacing Filter").
Désentrelacement adaptatif au mouvement basé sur yadif, utilisant les algorithmes w3fdif et d'interpolation cubique. Il accepte les paramètres suivants :
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
0, send_frame
Produit une image en sortie pour chaque image.
1, send_field
Produit une image en sortie pour chaque champ.
La valeur par défaut est send_field.
parity
La parité de champ d'image supposée pour la vidéo entrelacée d'entrée. Elle accepte l'une des valeurs suivantes :
0, tff
Suppose que le champ du haut est le premier.
1, bff
Suppose que le champ du bas est le premier.
-1, auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ du haut est supposé être le premier.
deint
Indique quelles images désentrelacer. Accepte l'une des valeurs suivantes :
0, all
Désentrelace toutes les images.
1, interlaced
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est all.
11.20 ccrepack
Réempaquette les données annexes de sous-titrage codé CEA-708
Ce filtre corrige divers problèmes observés avec les encoders commerciaux liés à des charges utiles CEA-708 mal formées en amont, notamment un nombre incorrect de tuples (cc_count erroné pour le FPS cible) et un ordre incorrect des tuples (c'est-à-dire que les tuples CEA-608 ne sont pas dans les premières entrées de la charge utile).
11.21 cas
Applique un filtre de netteté adaptative au contraste (Contrast Adaptive Sharpen) au flux vidéo.
Le filtre accepte les options suivantes :
strength
Définit l'intensité de la netteté. La valeur par défaut est 0.
planes
Définit les plans à filtrer. La valeur par défaut consiste à filtrer tous les plans sauf le plan alpha.
11.21.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.22 chromahold
Supprime toute information de couleur pour toutes les couleurs sauf une.
Le filtre accepte les options suivantes :
color
La couleur qui ne sera pas remplacée par une chrominance neutre.
similarity
Pourcentage de similarité avec la couleur ci-dessus. 0.01 ne correspond qu'à la couleur clé exacte, tandis que 1.0 correspond à tout.
blend
Pourcentage de mélange. 0.0 rend les pixels soit entièrement gris, soit pas gris du tout. Des valeurs plus élevées préservent davantage la couleur.
yuv
Signale que la couleur transmise est déjà en YUV et non en RGB.
Les couleurs littérales comme "green" ou "red" n'ont alors plus de sens avec cette option activée. Cela permet de transmettre des valeurs YUV exactes sous forme de nombres hexadécimaux.
11.22.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.23 chromakey
Incrustation de couleur/chrominance dans l'espace colorimétrique YUV.
Le filtre accepte les options suivantes :
color
La couleur qui sera remplacée par de la transparence.
similarity
Pourcentage de similarité avec la couleur clé.
0.01 ne correspond qu'à la couleur clé exacte, tandis que 1.0 correspond à tout.
blend
Pourcentage de mélange.
0.0 rend les pixels soit entièrement transparents, soit pas transparents du tout.
Des valeurs plus élevées produisent des pixels semi-transparents, avec une transparence d'autant plus forte que la couleur du pixel est proche de la couleur clé.
yuv
Signale que la couleur transmise est déjà en YUV et non en RGB.
Les couleurs littérales comme "green" ou "red" n'ont alors plus de sens avec cette option activée. Cela permet de transmettre des valeurs YUV exactes sous forme de nombres hexadécimaux.
11.23.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.23.2 Exemples
-
Rendre transparent chaque pixel vert de l'image d'entrée :
ffmpeg -i input.png -vf chromakey=green out.png -
Superposer une vidéo en fond vert sur un arrière-plan noir statique.
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
Réduit le bruit de chrominance.
Le filtre accepte les options suivantes :
thres
Définit le seuil de moyennage des valeurs de chrominance. La somme des différences absolues des composantes Y, U et V du pixel courant et des pixels voisins, si elle est inférieure à ce seuil, sera utilisée dans le moyennage. La composante de luminance reste inchangée et est copiée telle quelle en sortie. La valeur par défaut est 30. La plage autorisée va de 1 à 200.
sizew
Définit le rayon horizontal du rectangle utilisé pour le moyennage. La plage autorisée va de 1 à 100. La valeur par défaut est 5.
sizeh
Définit le rayon vertical du rectangle utilisé pour le moyennage. La plage autorisée va de 1 à 100. La valeur par défaut est 5.
stepw
Définit le pas horizontal lors du moyennage. La valeur par défaut est 1. La plage autorisée va de 1 à 50. Surtout utile pour accélérer le filtrage.
steph
Définit le pas vertical lors du moyennage. La valeur par défaut est 1. La plage autorisée va de 1 à 50. Surtout utile pour accélérer le filtrage.
threy
Définit le seuil Y pour le moyennage des valeurs de chrominance. Permet un contrôle plus fin de l'écart maximal autorisé entre les composantes Y du pixel courant et des pixels voisins. La valeur par défaut est 200. La plage autorisée va de 1 à 200.
threu
Définit le seuil U pour le moyennage des valeurs de chrominance. Permet un contrôle plus fin de l'écart maximal autorisé entre les composantes U du pixel courant et des pixels voisins. La valeur par défaut est 200. La plage autorisée va de 1 à 200.
threv
Définit le seuil V pour le moyennage des valeurs de chrominance. Permet un contrôle plus fin de l'écart maximal autorisé entre les composantes V du pixel courant et des pixels voisins. La valeur par défaut est 200. La plage autorisée va de 1 à 200.
distance
Définit le type de distance utilisé dans les calculs.
‘manhattan’
Différence absolue.
‘euclidean’
Différence au carré.
Le type de distance par défaut est manhattan.
11.24.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
11.25 chromashift
Décale les pixels de chrominance horizontalement et/ou verticalement.
Le filtre accepte les options suivantes :
cbh
Définit le valeur du décalage horizontal du bleu de chrominance.
cbv
Définit le valeur du décalage vertical du bleu de chrominance.
crh
Définit le valeur du décalage horizontal du rouge de chrominance.
crv
Définit le valeur du décalage vertical du rouge de chrominance.
edge
Définit le mode de bord, qui peut être smear, default ou warp.
11.25.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.26 ciescope
Affiche le diagramme colorimétrique CIE avec les pixels superposés.
Le filtre accepte les options suivantes :
system
Définit le système de couleurs.
‘ntsc, 470m’ ‘ebu, 470bg’ ‘smpte’ ‘240m’ ‘apple’ ‘widergb’ ‘cie1931’ ‘rec709, hdtv’ ‘uhdtv, rec2020’ ‘dcip3’ cie
Définit le système CIE.
‘xyy’ ‘ucs’ ‘luv’ gamuts
Définit les gammes de couleurs à tracer.
Voir l'option system pour les valeurs disponibles.
size, s
Définit la taille de ciescope, par défaut réglée à 512.
intensity, i
Définit l'intensité utilisée pour associer les valeurs des pixels d'entrée au diagramme CIE.
contrast
Définit le contraste utilisé pour tracer les couleurs de la zone en forme de langue qui sortent de la gamme du système de couleurs actif.
corrgamma
Corrige le gamma affiché sur le scope. Activé par défaut.
showwhite
Affiche le point blanc sur le diagramme CIE. Désactivé par défaut.
gamma
Définit le gamma d'entrée. Utilisé uniquement avec l'espace colorimétrique d'entrée XYZ.
fill
Remplit avec les couleurs CIE. Activé par défaut.
11.27 codecview
Visualise les informations exportées par certains codecs.
Certains codecs peuvent exporter des informations à travers les images à l'aide de données annexes ou d'autres moyens. Par exemple, certains codecs basés sur MPEG exportent les vecteurs de mouvement via l'indicateur export_mvs de l'option flags2 du codec.
Le filtre accepte l'option suivante :
block
Affiche la structure de partition en blocs à l'aide du plan de luminance.
mv
Définit les vecteurs de mouvement à visualiser.
Les indicateurs disponibles pour mv sont :
‘pf’
MV prédits en avant pour les images P
‘bf’
MV prédits en avant pour les images B
‘bb’
MV prédits en arrière pour les images B
qp
Affiche les paramètres de quantification à l'aide des plans de chrominance.
mv_type, mvt
Définit le type de vecteurs de mouvement à visualiser. Inclut les MV de toutes les images sauf indication contraire via l'option frame_type.
Les indicateurs disponibles pour mv_type sont :
‘fp’
MV prédits en avant
‘bp’
MV prédits en arrière
frame_type, ft
Définit le type d'image dont il faut visualiser les vecteurs de mouvement.
Les indicateurs disponibles pour frame_type sont :
‘if’
images à codage intra (images I)
‘pf’
images prédites (images P)
‘bf’
images prédites de façon bidirectionnelle (images B)
11.27.1 Exemples
-
Visualiser les MV prédits en avant de toutes les images avec
ffplay:ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp -
Visualiser les MV multidirectionnels des images P et B avec
ffplay:ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
11.28 colorbalance
Modifie l'intensité des couleurs primaires (rouge, vert et bleu) des images d'entrée.
Le filtre permet d'ajuster une image d'entrée dans les zones d'ombres, de tons moyens ou de hautes lumières, pour l'équilibre rouge-cyan, vert-magenta ou bleu-jaune.
Une valeur d'ajustement positive déplace l'équilibre vers la couleur primaire, une valeur négative vers la couleur complémentaire.
Le filtre accepte les options suivantes :
rs gs bs
Ajuste les ombres rouge, verte et bleue (pixels les plus sombres).
rm gm bm
Ajuste les tons moyens rouge, vert et bleu (pixels de valeur moyenne).
rh gh bh
Ajuste les hautes lumières rouge, verte et bleue (pixels les plus clairs).
Les plages autorisées pour les options sont [-1.0, 1.0]. Les valeurs par défaut sont 0.
pl
Préserve la luminosité lors du changement de balance des couleurs. Désactivé par défaut.
11.28.1 Exemples
- Ajouter une dominante rouge aux ombres :
colorbalance=rs=.3
11.28.2 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.29 colorcontrast
Ajuste le contraste de couleur entre les composantes RGB.
Le filtre accepte les options suivantes :
rc
Définit le contraste rouge-cyan. La valeur par défaut est 0.0. La plage autorisée va de -1.0 à 1.0.
gm
Définit le contraste vert-magenta. La valeur par défaut est 0.0. La plage autorisée va de -1.0 à 1.0.
by
Définit le contraste bleu-jaune. La valeur par défaut est 0.0. La plage autorisée va de -1.0 à 1.0.
rcw gmw byw
Définit le poids de chaque valeur des options rc, gm, by. La valeur par défaut est 0.0. La plage autorisée va de 0.0 à 1.0. Si tous les poids sont à 0.0, le filtrage est désactivé.
pl
Définit le degré de préservation de la luminosité. La valeur par défaut est 0.0. La plage autorisée va de 0.0 à 1.0.
11.29.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.30 colorcorrect
Ajuste sélectivement la balance des blancs pour les noirs et les blancs. Ce filtre fonctionne dans l'espace colorimétrique YUV.
Le filtre accepte les options suivantes :
rl
Définit le point d'ombre rouge. La plage autorisée va de -1.0 à 1.0. La valeur par défaut est 0.
bl
Définit le point d'ombre bleu. La plage autorisée va de -1.0 à 1.0. La valeur par défaut est 0.
rh
Définit le point de haute lumière rouge. La plage autorisée va de -1.0 à 1.0. La valeur par défaut est 0.
bh
Définit le point de haute lumière bleu. La plage autorisée va de -1.0 à 1.0. La valeur par défaut est 0.
saturation
Définit le degré de saturation. La plage autorisée va de -3.0 à 3.0. La valeur par défaut est 1.
analyze
Si la valeur diffère de manual, chaque image est analysée et les paramètres dérivés sont utilisés pour filtrer l'image de sortie.
Les valeurs possibles sont :
‘manual’ ‘average’ ‘minmax’ ‘median’
La valeur par défaut est manual.
11.30.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.31 colorchannelmixer
Ajuste les images vidéo d'entrée en remixant les canaux de couleur.
Ce filtre modifie un canal de couleur en ajoutant les valeurs associées aux autres canaux des mêmes pixels. Par exemple, si la valeur à modifier est le rouge, la valeur de sortie sera :
red=red*rr + blue*rb + green*rg + alpha*ra
Le filtre accepte les options suivantes :
rr rg rb ra
Ajuste la contribution des canaux d'entrée rouge, vert, bleu et alpha pour le canal de sortie rouge. La valeur par défaut est 1 pour rr, et 0 pour rg, rb et ra.
gr gg gb ga
Ajuste la contribution des canaux d'entrée rouge, vert, bleu et alpha pour le canal de sortie vert. La valeur par défaut est 1 pour gg, et 0 pour gr, gb et ga.
br bg bb ba
Ajuste la contribution des canaux d'entrée rouge, vert, bleu et alpha pour le canal de sortie bleu. La valeur par défaut est 1 pour bb, et 0 pour br, bg et ba.
ar ag ab aa
Ajuste la contribution des canaux d'entrée rouge, vert, bleu et alpha pour le canal de sortie alpha. La valeur par défaut est 1 pour aa, et 0 pour ar, ag et ab.
Les plages autorisées pour les options sont [-2.0, 2.0].
pc
Définit le mode de préservation des couleurs. Les valeurs acceptées sont :
‘none’
Désactive la préservation des couleurs. C'est la valeur par défaut.
‘lum’
Préserve la luminance.
‘max’
Préserve la valeur maximale du triplet RGB.
‘avg’
Préserve la valeur moyenne du triplet RGB.
‘sum’
Préserve la somme des valeurs du triplet RGB.
‘nrm’
Préserve la valeur normalisée du triplet RGB.
‘pwr’
Préserve la valeur de puissance du triplet RGB.
pa
Définit le degré de préservation des couleurs lors du changement de couleurs. La plage autorisée va de [0.0, 1.0]. La valeur par défaut est 0.0, donc désactivée.
11.31.1 Exemples
-
Convertir la source en niveaux de gris :
colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3 -
Simuler des tons sépia :
colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
11.31.2 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.32 colordetect
Analyse les images vidéo pour déterminer la plage de valeurs effective et le mode alpha.
Le filtre accepte les options suivantes :
mode
Ensemble des propriétés à détecter. Les propriétés indisponibles, telles que le mode alpha pour une image d'entrée dépourvue de canal alpha, sont ignorées automatiquement.
Accepte une combinaison des indicateurs suivants :
‘color_range’
Détecte si la source contient des pixels de luminance en dehors de la plage limitée (MPEG), ce qui indique qu'il s'agit d'une source YUV en pleine plage.
‘alpha_mode’
Détecte si la source contient des valeurs de couleur supérieures au canal alpha, ce qui indique que le canal alpha est indépendant (straight) plutôt que prémultiplié. Détecte également si le plan alpha est entièrement opaque ou non.
‘all’
Active la détection de toutes les propriétés ci-dessus. C'est la valeur par défaut.
11.33 colorize
Superpose une couleur unie au flux vidéo.
Le filtre accepte les options suivantes :
hue
Définit la teinte de la couleur. La plage autorisée va de 0 à 360. La valeur par défaut est 0.
saturation
Définit la saturation de la couleur. La plage autorisée va de 0 à 1. La valeur par défaut est 0.5.
lightness
Définit la luminosité de la couleur. La plage autorisée va de 0 à 1. La valeur par défaut est 0.5.
mix
Définit le mélange avec la luminosité de la source. La valeur par défaut est 1.0. La plage autorisée va de 0.0 à 1.0.
11.33.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.34 colorkey
Incrustation par couleur dans l'espace colorimétrique RGB. Ce filtre opère sur des images au format RGB 8 bits en réglant à 0 la composante alpha de chaque pixel qui se situe dans le rayon de similarité de la couleur clé. La valeur alpha des pixels situés hors de ce rayon de similarité dépend de la valeur de l'option blend.
Le filtre accepte les options suivantes :
color
Définit la couleur pour laquelle l'alpha sera réglé à 0 (transparence totale). Voir la section "Color" du manuel ffmpeg-utils. La valeur par défaut est black.
similarity
Définit le rayon autour de la couleur clé à l'intérieur duquel les autres couleurs bénéficient également d'une transparence totale. La distance calculée correspond à la distance fractionnaire unitaire dans l'espace 3D entre les valeurs RGB de la couleur clé et celles du pixel. La plage va de 0.01 à 1.0. La valeur 0.01 ne correspond qu'à un très petit rayon autour de la couleur clé exacte, tandis que 1.0 correspond à tout. La valeur par défaut est 0.01.
blend
Définit comment la valeur alpha des pixels situés hors du rayon de similarité est calculée. La valeur 0.0 rend les pixels soit entièrement transparents, soit entièrement opaques. Des valeurs plus élevées produisent des pixels semi-transparents, avec une transparence d'autant plus grande que la couleur du pixel se rapproche de la couleur clé. La plage va de 0.0 à 1.0. La valeur par défaut est 0.0.
11.34.1 Exemples
-
Rendre transparent chaque pixel vert de l'image d'entrée :
ffmpeg -i input.png -vf colorkey=green out.png -
Superposer une vidéo en fond vert par-dessus une image d'arrière-plan statique.
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 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.35 colorhold
Supprime toutes les informations de couleur pour toutes les couleurs RGB, à l'exception d'une seule.
Le filtre accepte les options suivantes :
color
La couleur qui ne sera pas remplacée par du gris neutre.
similarity
Pourcentage de similarité avec la couleur ci-dessus. 0.01 ne correspond qu'à la couleur clé exacte, tandis que 1.0 correspond à tout.
blend
Pourcentage de mélange. La valeur 0.0 rend les pixels entièrement gris. Des valeurs plus élevées préservent davantage la couleur.
11.35.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.36 colorlevels
Ajuste les images vidéo d'entrée à l'aide de niveaux.
Le filtre accepte les options suivantes :
rimin gimin bimin aimin
Ajuste le point noir d'entrée du rouge, du vert, du bleu et de l'alpha. Les plages autorisées pour les options sont [-1.0, 1.0]. Les valeurs par défaut sont 0.
rimax gimax bimax aimax
Ajuste le point blanc d'entrée du rouge, du vert, du bleu et de l'alpha. Les plages autorisées pour les options sont [-1.0, 1.0]. Les valeurs par défaut sont 1.
Les niveaux d'entrée servent à éclaircir les hautes lumières (tons clairs), assombrir les ombres (tons foncés) et modifier l'équilibre entre tons clairs et tons foncés.
romin gomin bomin aomin
Ajuste le point noir de sortie du rouge, du vert, du bleu et de l'alpha. Les plages autorisées pour les options sont [0, 1.0]. Les valeurs par défaut sont 0.
romax gomax bomax aomax
Ajuste le point blanc de sortie du rouge, du vert, du bleu et de l'alpha. Les plages autorisées pour les options sont [0, 1.0]. Les valeurs par défaut sont 1.
Les niveaux de sortie permettent de sélectionner manuellement une plage de niveaux de sortie restreinte.
preserve
Définit le mode de préservation des couleurs. Les valeurs acceptées sont :
‘none’
Désactive la préservation des couleurs. C'est la valeur par défaut.
‘lum’
Préserve la luminance.
‘max’
Préserve la valeur maximale du triplet RGB.
‘avg’
Préserve la valeur moyenne du triplet RGB.
‘sum’
Préserve la somme des valeurs du triplet RGB.
‘nrm’
Préserve la valeur normalisée du triplet RGB.
‘pwr’
Préserve la valeur de puissance du triplet RGB.
11.36.1 Exemples
-
Assombrir la sortie vidéo :
colorlevels=rimin=0.058:gimin=0.058:bimin=0.058 -
Augmenter le contraste :
colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96 -
Éclaircir la sortie vidéo :
colorlevels=rimax=0.902:gimax=0.902:bimax=0.902 -
Augmenter la luminosité :
colorlevels=romin=0.5:gomin=0.5:bomin=0.5
11.36.2 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.37 colormap
Applique des cartes de couleurs personnalisées au flux vidéo.
Ce filtre nécessite trois flux vidéo en entrée. Le premier flux est le flux vidéo qui sera filtré. Les deuxième et troisième flux vidéo indiquent les échantillons de couleur pour la correspondance entre la couleur source et la couleur cible.
Le filtre accepte les options suivantes :
patch_size
Définit la taille en pixels des échantillons des flux vidéo source et cible.
nb_patches
Définit le nombre maximal d'échantillons utilisés à partir des flux vidéo source et cible. La valeur par défaut correspond au nombre d'échantillons disponibles dans les flux vidéo supplémentaires. Le nombre maximal d'échantillons autorisé est 64.
type
Définit les ajustements utilisés pour les couleurs cibles. Peut être relative ou absolute. La valeur par défaut est absolute.
kernel
Définit le noyau utilisé pour mesurer les différences de couleur entre les couleurs mises en correspondance.
Les valeurs acceptées sont :
‘euclidean’ ‘weuclidean’
La valeur par défaut est euclidean.
11.38 colormatrix
Convertit la matrice de couleurs.
Le filtre accepte les options suivantes :
src dst
Indique la matrice de couleurs source et de destination. Les deux valeurs doivent être précisées.
Les valeurs acceptées sont :
‘bt709’
BT.709
‘fcc’
FCC
‘bt601’
BT.601
‘bt470’
BT.470
‘bt470bg’
BT.470BG
‘smpte170m’
SMPTE-170M
‘smpte240m’
SMPTE-240M
‘bt2020’
BT.2020
Par exemple, pour convertir de BT.601 vers SMPTE-240M, utilisez la commande :
colormatrix=bt601:smpte240m
11.39 colorspace
Convertit l'espace colorimétrique, les caractéristiques de transfert ou les primaires de couleur. La vidéo d'entrée doit avoir une taille paire.
Le filtre accepte les options suivantes :
all
Indique toutes les propriétés de couleur en une seule fois.
Les valeurs acceptées sont :
‘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
Indique l'espace colorimétrique de sortie.
Les valeurs acceptées sont :
‘bt709’
BT.709
‘fcc’
FCC
‘bt470bg’
BT.470BG ou BT.601-6 625
‘smpte170m’
SMPTE-170M ou BT.601-6 525
‘smpte240m’
SMPTE-240M
‘ycgco’
YCgCo
‘bt2020ncl’
BT.2020 avec luminance non constante
trc
Indique les caractéristiques de transfert de sortie.
Les valeurs acceptées sont :
‘bt709’
BT.709
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG
‘gamma22’
Gamma constant de 2.2
‘gamma28’
Gamma constant de 2.8
‘smpte170m’
SMPTE-170M, BT.601-6 625 ou 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 pour contenu 10 bits
‘bt2020-12’
BT.2020 pour contenu 12 bits
primaries
Indique les primaires de couleur de sortie.
Les valeurs acceptées sont :
‘bt709’
BT.709
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG ou BT.601-6 625
‘smpte170m’
SMPTE-170M ou BT.601-6 525
‘smpte240m’
SMPTE-240M
‘film’
film
‘smpte431’
SMPTE-431
‘smpte432’
SMPTE-432
‘bt2020’
BT.2020
‘jedec-p22’
phosphores JEDEC P22
range
Indique la plage de couleurs de sortie.
Les valeurs acceptées sont :
‘tv’
Plage TV (restreinte)
‘mpeg’
Plage MPEG (restreinte)
‘pc’
Plage PC (complète)
‘jpeg’
Plage JPEG (complète)
format
Indique le format de couleur de sortie.
Les valeurs acceptées sont :
‘yuv420p’
YUV 4:2:0 planaire 8 bits
‘yuv420p10’
YUV 4:2:0 planaire 10 bits
‘yuv420p12’
YUV 4:2:0 planaire 12 bits
‘yuv422p’
YUV 4:2:2 planaire 8 bits
‘yuv422p10’
YUV 4:2:2 planaire 10 bits
‘yuv422p12’
YUV 4:2:2 planaire 12 bits
‘yuv444p’
YUV 4:4:4 planaire 8 bits
‘yuv444p10’
YUV 4:4:4 planaire 10 bits
‘yuv444p12’
YUV 4:4:4 planaire 12 bits
fast
Effectue une conversion rapide, qui saute la correction du gamma et des primaires. Cela consomme nettement moins de CPU, mais donne un résultat mathématiquement incorrect. Pour obtenir une sortie compatible avec celle produite par le filtre colormatrix, utilisez fast=1.
dither
Indique le mode de tramage.
Les valeurs acceptées sont :
‘none’
Aucun tramage
‘fsb’
Tramage de Floyd-Steinberg
wpadapt
Mode d'adaptation du point blanc.
Les valeurs acceptées sont :
‘bradford’
adaptation du point blanc de Bradford
‘vonkries’
adaptation du point blanc de von Kries
‘identity’
adaptation du point blanc identité (c'est-à-dire aucune adaptation du point blanc)
clipgamut
Contrôle la façon d'écrêter les couleurs hors gamut qui résultent de la conversion d'espace colorimétrique.
Les valeurs acceptées sont :
‘none’
Aucun écrêtage des couleurs hors gamut.
‘rgb’
Écrête les valeurs RGB à la plage [0, 1] lors de la construction des LUT de transfert gamma.
iall
Remplace toutes les propriétés d'entrée en une seule fois. Mêmes valeurs acceptées que all.
ispace
Remplace l'espace colorimétrique d'entrée. Mêmes valeurs acceptées que space.
iprimaries
Remplace les primaires de couleur d'entrée. Mêmes valeurs acceptées que primaries.
itrc
Remplace les caractéristiques de transfert d'entrée. Mêmes valeurs acceptées que trc.
irange
Remplace la plage de couleurs d'entrée. Mêmes valeurs acceptées que range.
Le filtre convertit les caractéristiques de transfert, l'espace colorimétrique et les primaires de couleur aux valeurs spécifiées par l'utilisateur. La valeur de sortie, si elle n'est pas spécifiée, est définie sur une valeur par défaut basée sur la propriété "all". Si cette propriété n'est pas non plus spécifiée, le filtre consigne une erreur. La plage de couleurs et le format de sortie prennent par défaut la même valeur que la plage de couleurs et le format d'entrée. Les caractéristiques de transfert, l'espace colorimétrique, les primaires de couleur et la plage de couleurs d'entrée doivent être définis sur les données d'entrée. Si l'un de ces éléments est manquant, le filtre consigne une erreur et aucune conversion n'a lieu.
Par exemple, pour convertir l'entrée en SMPTE-240M, utilisez la commande :
colorspace=smpte240m
11.40 colortemperature
Ajuste la température de couleur dans la vidéo afin de simuler des variations de température de couleur ambiante.
Le filtre accepte les options suivantes :
temperature
Définit la température en kelvins. La plage autorisée va de 1000 à 40000. La valeur par défaut est 6500 K.
mix
Définit le mélange avec la sortie filtrée. La plage autorisée va de 0 à 1. La valeur par défaut est 1.
pl
Définit le degré de préservation de la luminosité. La plage autorisée va de 0 à 1. La valeur par défaut est 0.
11.40.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.41 convolution
Applique une convolution 3x3, 5x5, 7x7 ou horizontale/verticale jusqu'à 49 éléments.
Le filtre accepte les options suivantes :
0m 1m 2m 3m
Définit la matrice pour chaque plan. La matrice est une séquence de 9, 25 ou 49 entiers signés en mode square, et d'un nombre impair d'entiers signés compris entre 1 et 49 en mode row.
0rdiv 1rdiv 2rdiv 3rdiv
Définit le multiplicateur de la valeur calculée pour chaque plan. Si non défini ou égal à 0, il correspond à 1 divisé par la somme de tous les éléments de la matrice.
0bias 1bias 2bias 3bias
Définit le biais pour chaque plan. Cette valeur est ajoutée au résultat de la multiplication. Utile pour rendre l'image globale plus claire ou plus sombre. La valeur par défaut est 0.0.
0mode 1mode 2mode 3mode
Définit le mode de matrice pour chaque plan. Peut être square, row ou column. La valeur par défaut est square.
11.41.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.41.2 Exemples
-
Applique un renforcement de netteté :
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" -
Applique un flou :
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" -
Applique un renforcement des contours :
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" -
Applique une détection de contours :
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" -
Applique un détecteur de contours laplacien incluant les 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" -
Applique un effet de relief :
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
Applique une convolution 2D du flux vidéo dans le domaine fréquentiel en utilisant le second flux comme impulsion.
Le filtre accepte les options suivantes :
planes
Définit les plans à traiter.
impulse
Définit les images vidéo d'impulsion à traiter. Peut valoir first ou all. La valeur par défaut est all.
Le filtre convolve prend également en charge les options framesync.
11.43 copy
Copie la source vidéo d'entrée sans modification vers la sortie. Ceci est principalement utile à des fins de test.
11.44 coreimage
Filtrage vidéo sur GPU à l'aide de l'API CoreImage d'Apple sous OSX.
L'accélération matérielle repose sur un contexte OpenGL. Cela signifie généralement que le traitement est effectué par le matériel vidéo. Cependant, il existe des implémentations OpenGL logicielles, ce qui signifie qu'aucune garantie de traitement matériel n'est donnée. Cela dépend de la version d'OSX utilisée.
Apple fournit de nombreux filtres et générateurs d'images accompagnés d'une grande variété d'options. Le filtre doit être référencé par son nom ainsi que par ses options.
Le filtre coreimage accepte les options suivantes :
list_filters
Liste tous les filtres et générateurs disponibles, avec leurs options respectives ainsi que les valeurs minimales et maximales possibles et les valeurs par défaut.
list_filters=true
filter
Indique tous les filtres par leur nom et leurs options respectifs. Utilisez list_filters pour déterminer tous les noms de filtres et options valides. Les options numériques sont indiquées par une valeur float et sont automatiquement bornées à leur plage de valeurs respective. Les options de type vecteur et couleur doivent être indiquées par une liste de valeurs float séparées par des espaces. L'échappement des caractères doit être effectué. Un nom d'option spécial, default, permet d'utiliser les options par défaut d'un filtre.
Il est nécessaire d'indiquer soit default, soit au moins une des options du filtre. Toutes les options omises sont utilisées avec leurs valeurs par défaut. La syntaxe de la chaîne de filtre est la suivante :
filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
output_rect
Indique un rectangle dans lequel la sortie de la chaîne de filtres est copiée dans l'image d'entrée. Il est donné par une liste de valeurs float séparées par des espaces :
output_rect=x\ y\ width\ height
Si non indiqué, le rectangle de sortie est égal aux dimensions de l'image d'entrée. Le rectangle de sortie est automatiquement rogné aux bords de l'image d'entrée. Des valeurs négatives sont valides pour chaque composante.
output_rect=25\ 25\ 100\ 100
Plusieurs filtres peuvent être chaînés pour un traitement successif sans transferts GPU-HOST, ce qui permet un traitement rapide de chaînes de filtres complexes. Pour l'instant, seuls les filtres ayant zéro image d'entrée (générateurs) ou exactement une image d'entrée (filtres), et une image de sortie, sont pris en charge. De plus, les filtres de transition ne sont pas encore utilisables comme prévu.
Certains filtres génèrent des images de sortie avec un remplissage supplémentaire selon le noyau du filtre concerné. Ce remplissage est automatiquement supprimé afin que la sortie du filtre ait la même taille que l'image d'entrée.
Pour les générateurs d'images, la taille de l'image de sortie est déterminée respectivement par l'image de sortie précédente de la chaîne de filtres ou par l'image d'entrée de l'ensemble de la chaîne de filtres. Les générateurs n'utilisent pas les informations de pixels de cette image pour générer leur sortie. Cependant, la sortie générée est mélangée à cette image, ce qui entraîne une couverture partielle ou totale de l'image de sortie.
La source vidéo coreimagesrc peut être utilisée pour générer des images d'entrée directement injectées dans la chaîne de filtres. Grâce à elle, il n'est pas nécessaire de fournir des images d'entrée via une autre source vidéo ou une vidéo d'entrée.
11.44.1 Exemples
-
Liste tous les filtres disponibles :
coreimage=list_filters=true -
Utilise le filtre CIBoxBlur avec les options par défaut pour flouter une image :
coreimage=filter=CIBoxBlur@default -
Utilise une chaîne de filtres avec CISepiaTone aux valeurs par défaut et CIVignetteEffect avec son centre en 100x100 et un rayon de 50 pixels :
coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50 -
Utilise nullsrc et CIQRCodeGenerator pour créer un QR code pour la page d'accueil de FFmpeg, donné comme ligne de commande complète et échappée pour le shell bash standard d'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
Obtient la corrélation entre deux vidéos d'entrée.
Ce filtre prend deux vidéos en entrée.
Les deux vidéos d'entrée doivent avoir la même résolution et le même pixel format pour que ce filtre fonctionne correctement. Il suppose aussi que les deux entrées ont le même nombre d'images, comparées une par une.
La corrélation obtenue par composante, ainsi que la moyenne, le minimum et le maximum, est affichée via le système de journalisation.
Ce filtre stocke la corrélation calculée de chaque image dans les métadonnées de l'image.
Ce filtre prend également en charge les options framesync.
Dans l'exemple ci-dessous, le fichier d'entrée main.mpg traité est comparé au fichier de référence ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi corr -f null -
11.46 cover_rect
Recouvre un objet rectangulaire.
Accepte les options suivantes :
cover
Chemin de l'image de recouvrement facultative, qui doit être au format yuv420.
mode
Définit le mode de recouvrement.
Accepte les valeurs suivantes :
‘cover’
le recouvre avec l'image fournie
‘blur’
le recouvre en interpolant les pixels environnants
La valeur par défaut est blur.
11.46.1 Exemples
- Recouvre un objet rectangulaire d'une vidéo donnée par l'image fournie, à l'aide de
ffmpeg:ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
11.47 crop
Rogne la vidéo d'entrée selon les dimensions indiquées.
Accepte les paramètres suivants :
w, out_w
La largeur de la vidéo de sortie. La valeur par défaut est iw. Cette expression est évaluée une seule fois lors de la configuration du filtre, ou lorsque la commande ‘w’ ou ‘out_w’ est envoyée.
h, out_h
La hauteur de la vidéo de sortie. La valeur par défaut est ih. Cette expression est évaluée une seule fois lors de la configuration du filtre, ou lorsque la commande ‘h’ ou ‘out_h’ est envoyée.
x
La position horizontale, dans la vidéo d'entrée, du bord gauche de la vidéo de sortie. La valeur par défaut est (in_w-out_w)/2. Cette expression est évaluée pour chaque image.
y
La position verticale, dans la vidéo d'entrée, du bord supérieur de la vidéo de sortie. La valeur par défaut est (in_h-out_h)/2. Cette expression est évaluée pour chaque image.
keep_aspect
Si définie à 1, force le rapport d'aspect d'affichage de la sortie à être identique à celui de l'entrée, en modifiant le rapport d'aspect d'échantillon de sortie. La valeur par défaut est 0.
exact
Active le rognage exact. Si activée, les vidéos sous-échantillonnées sont rognées exactement aux largeur/hauteur/x/y indiqués et ne sont pas arrondies à la valeur inférieure la plus proche. La valeur par défaut est 0.
Les paramètres out_w, out_h, x, y sont des expressions contenant les constantes suivantes :
x y
Les valeurs calculées de x et y. Elles sont évaluées pour chaque nouvelle image.
in_w in_h
La largeur et la hauteur d'entrée.
iw ih
Identiques à in_w et in_h.
out_w out_h
La largeur et la hauteur de sortie (après rognage).
ow oh
Identiques à out_w et out_h.
a
identique à iw / ih
sar
rapport d'aspect d'échantillon d'entrée
dar
rapport d'aspect d'affichage d'entrée ; identique à (iw / ih) * sar
hsub vsub
Valeurs de sous-échantillonnage chroma horizontal et vertical. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
n
Le numéro de l'image d'entrée, à partir de 0.
pos
la position dans le fichier de l'image d'entrée, NAN si inconnue ; obsolète, à ne pas utiliser
t
L'horodatage exprimé en secondes. Vaut NAN si l'horodatage d'entrée est inconnu.
L'expression de out_w peut dépendre de la valeur de out_h, et l'expression de out_h peut dépendre de out_w, mais elles ne peuvent pas dépendre de x et y, car x et y sont évalués après out_w et out_h.
Les paramètres x et y indiquent les expressions de la position du coin supérieur gauche de la zone de sortie (non rognée). Elles sont évaluées pour chaque image. Si la valeur évaluée n'est pas valide, elle est approximée à la valeur valide la plus proche.
L'expression de x peut dépendre de y, et l'expression de y peut dépendre de x.
11.47.1 Exemples
- Rogne une zone de taille 100x100 à la position (12,34).
crop=100:100:12:34
Avec les options nommées, l'exemple ci-dessus devient :
crop=w=100:h=100:x=12:y=34
-
Rogne la zone d'entrée centrale à la taille 100x100 :
crop=100:100 -
Rogne la zone d'entrée centrale aux 2/3 de la taille de la vidéo d'entrée :
crop=2/3*in_w:2/3*in_h -
Rogne le carré central de la vidéo d'entrée :
crop=out_w=in_h crop=in_h -
Délimite le rectangle dont le coin supérieur gauche est placé à la position 100:100 et dont le coin inférieur droit correspond au coin inférieur droit de l'image d'entrée.
crop=in_w-100:in_h-100:100:100 -
Rogne 10 pixels sur les bords gauche et droit, et 20 pixels sur les bords haut et bas.
crop=in_w-2*10:in_h-2*20 -
Ne conserve que le quart inférieur droit de l'image d'entrée :
crop=in_w/2:in_h/2:in_w/2:in_h/2 -
Rogne la hauteur pour obtenir le nombre d'or (harmonie grecque) :
crop=in_w:1/PHI*in_w -
Applique un effet de tremblement :
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) -
Applique un effet de caméra erratique en fonction de l'horodatage :
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) -
Définit x en fonction de la valeur de y :
crop=in_w/2:in_h/2:y:10+10*sin(n/10)
11.47.2 Commandes
Ce filtre prend en charge les commandes suivantes :
w, out_w h, out_h x y
Définit la largeur/hauteur de la vidéo de sortie et la position horizontale/verticale dans la vidéo d'entrée. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, elle conserve sa valeur actuelle.
11.48 cropdetect
Détecte automatiquement la taille de rognage.
Calcule les paramètres de rognage nécessaires et affiche les paramètres recommandés via le système de journalisation. Les dimensions détectées correspondent à la zone non noire ou à la zone vidéo de l'entrée, selon mode.
Accepte les paramètres suivants :
mode
Selon mode, la détection de rognage se base soit sur la simple valeur de noir des pixels environnants, soit sur une combinaison de vecteurs de mouvement et de pixels de contour.
‘black’
Détecte les pixels noirs entourant la vidéo en cours de lecture. Pour un contrôle fin, utilisez l'option limit.
‘mvedges’
Détecte la vidéo en cours de lecture à l'aide des vecteurs de mouvement à l'intérieur de la vidéo et en recherchant les pixels de contour formant typiquement le bord d'une vidéo en cours de lecture.
limit
Définit le seuil de valeur de noir supérieur, qui peut être indiqué de rien (0) à tout (255 pour les formats en 8 bits). Une valeur d'intensité supérieure à la valeur définie est considérée comme non noire. La valeur par défaut est 24. Vous pouvez aussi indiquer une valeur entre 0.0 et 1.0, qui est mise à l'échelle selon la profondeur de bits du pixel format.
round
La valeur par laquelle la largeur/hauteur doit être divisible. La valeur par défaut est 16. Le décalage est automatiquement ajusté pour centrer la vidéo. Utilisez 2 pour n'obtenir que des dimensions paires (nécessaire pour la vidéo 4:2:2). 16 est optimal pour l'encodage vers la plupart des codecs vidéo.
skip
Définit le nombre d'images initiales pour lesquelles l'évaluation est ignorée. La valeur par défaut est 2. La plage va de 0 à INT_MAX.
reset_count, reset
Définit le compteur qui détermine, après combien d'images, cropdetect réinitialise la plus grande zone vidéo détectée précédemment et recommence à détecter la zone de rognage optimale actuelle. La valeur par défaut est 0.
Cela peut être utile lorsque des logos de chaîne déforment la zone vidéo. 0 signifie ’ne jamais réinitialiser’, et renvoie la plus grande zone rencontrée pendant la lecture.
mv_threshold
Définit le mouvement en unités de pixels comme seuil de détection de mouvement. La valeur par défaut est 8.
low high
Définit les seuils bas et haut utilisés par l'algorithme de seuillage de Canny.
Le seuil haut sélectionne les pixels de contour "forts", qui sont ensuite reliés par 8-connexité aux pixels de contour "faibles" sélectionnés par le seuil bas.
Les valeurs des seuils low et high doivent être choisies dans la plage [0,1], et low doit être inférieur ou égal à high.
La valeur par défaut de low est 5/255, et celle de high est 15/255.
11.48.1 Exemples
-
Trouve une zone vidéo entourée de bords noirs :
ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null - -
Trouve une zone vidéo intégrée, en générant au préalable des vecteurs de mouvement :
ffmpeg -i file.mp4 -vf mestimate,cropdetect=mode=mvedges,metadata=mode=print -f null - -
Trouve une zone vidéo intégrée, en utilisant les vecteurs de mouvement du decoder :
ffmpeg -flags2 +export_mvs -i file.mp4 -vf cropdetect=mode=mvedges,metadata=mode=print -f null -
11.48.2 Commandes
Ce filtre prend en charge les commandes suivantes :
limit
La commande accepte la même syntaxe que l'option correspondante. Si l'expression indiquée n'est pas valide, elle conserve sa valeur actuelle.
11.49 cue
Retarde le filtrage vidéo jusqu'à un horodatage d'horloge murale (wallclock) donné. Le filtre laisse d'abord passer un nombre d'images égal à preroll, puis met en tampon au maximum un nombre d'images égal à buffer et attend le cue. Une fois le cue atteint, il transmet les images mises en tampon ainsi que toutes les images suivantes arrivant en entrée.
Ce filtre peut être utilisé pour synchroniser la sortie de plusieurs processus ffmpeg destinés à des périphériques de sortie temps réel comme decklink. En plaçant le délai dans la chaîne de filtrage et en mettant les images en tampon à l'avance, le processus peut transmettre les données à la sortie presque immédiatement après avoir atteint l'horodatage d'horloge murale cible.
Une précision d'image parfaite ne peut pas être garantie, mais le résultat est suffisant pour certains cas d'usage.
cue
L'horodatage du cue, exprimé en horodatage UNIX en microsecondes. La valeur par défaut est 0.
preroll
La durée du contenu à transmettre en tant que preroll, exprimée en secondes. La valeur par défaut est 0.
buffer
La durée maximale du contenu à mettre en tampon avant d'attendre le cue, exprimée en secondes. La valeur par défaut est 0.
11.50 curves
Applique des ajustements de couleur à l'aide de courbes.
Ce filtre est similaire aux outils de courbes d'Adobe Photoshop et de GIMP. Chaque composante (rouge, verte et bleue) a ses valeurs définies par N points clés reliés entre eux à l'aide d'une courbe lisse. L'axe des x représente les valeurs de pixel de l'image d'entrée, et l'axe des y les nouvelles valeurs de pixel à définir pour l'image de sortie.
Par défaut, une courbe de composante est définie par les deux points (0;0) et (1;1). Cela crée une droite où chaque valeur de pixel d'origine est "ajustée" à sa propre valeur, c'est-à-dire sans changement de l'image.
Le filtre permet de redéfinir ces deux points et d'en ajouter d'autres. Une nouvelle courbe est définie pour passer en douceur par toutes ces nouvelles coordonnées. Les nouveaux points définis doivent être strictement croissants sur l'axe des x, et leurs valeurs x et y doivent se situer dans l'intervalle [0;1]. La courbe est formée à l'aide d'une interpolation par spline cubique naturelle ou monotone, selon l'option interp (par défaut : natural). La spline natural produit en général une courbe plus lisse, tandis que la spline monotone (pchip) garantit que les transitions entre les points indiqués sont monotones. Si les courbes calculées sortent de l'espace vectoriel, les valeurs sont écrêtées en conséquence.
Le filtre accepte les options suivantes :
preset
Sélectionne l'un des préréglages de couleur disponibles. Cette option peut être utilisée en complément des paramètres r, g, b ; dans ce cas, les options ultérieures sont prioritaires sur les valeurs du préréglage. Les préréglages disponibles sont :
‘none’ ‘color_negative’ ‘cross_process’ ‘darker’ ‘increase_contrast’ ‘lighter’ ‘linear_contrast’ ‘medium_contrast’ ‘negative’ ‘strong_contrast’ ‘vintage’
La valeur par défaut est none.
master, m
Définit les points clés master. Ces points définissent une correspondance de second passage. On l'appelle parfois un mappage de "luminance" ou de "valeur". Il peut être utilisé avec r, g, b ou all car il agit comme un LUT de post-traitement.
red, r
Définit les points clés de la composante rouge.
green, g
Définit les points clés de la composante verte.
blue, b
Définit les points clés de la composante bleue.
all
Définit les points clés pour toutes les composantes (à l'exclusion de master). Peut être utilisée en complément des autres options de composante de points clés. Dans ce cas, la ou les composantes non définies se rabattent sur ce réglage all.
psfile
Indique un fichier de courbes Photoshop (.acv) depuis lequel importer les réglages.
plot
Enregistre un script Gnuplot des courbes dans le fichier indiqué.
interp
Indique le type d'interpolation. Les algorithmes disponibles sont :
‘natural’
Spline cubique naturelle utilisant un polynôme cubique par morceaux deux fois continûment dérivable.
‘pchip’
Spline cubique monotone utilisant un polynôme d'interpolation cubique d'Hermite par morceaux (PCHIP).
Pour éviter certains conflits de syntaxe de filtergraph, chaque liste de points clés doit être définie avec la syntaxe suivante : x0/y0 x1/y1 x2/y2 ....
11.50.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.50.2 Exemples
-
Augmente légèrement le niveau moyen de bleu :
curves=blue='0/0 0.5/0.58 1/1' -
Effet 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'
On obtient ici les coordonnées suivantes pour chaque composante :
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)
-
L'exemple précédent peut aussi être obtenu avec le préréglage intégré associé :
curves=preset=vintage -
Ou tout simplement :
curves=vintage -
Utilise un préréglage Photoshop et redéfinit les points de la composante verte :
curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1' -
Vérifie les courbes du profil
cross_processà l'aide deffmpeget degnuplot: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
Filtre d'analyse de données vidéo.
Ce filtre affiche les valeurs de pixel hexadécimales d'une partie de la vidéo.
Le filtre accepte les options suivantes :
size, s
Définit la taille de la vidéo de sortie.
x
Définit le décalage x à partir duquel prélever les pixels.
y
Définit le décalage y à partir duquel prélever les pixels.
mode
Définit le mode du scope. Peut être l'un des suivants :
‘mono’
Dessine les valeurs de pixel hexadécimales en blanc sur fond noir.
‘color’
Dessine les valeurs de pixel hexadécimales avec la couleur de pixel de la vidéo d'entrée sur fond noir.
‘color2’
Dessine les valeurs de pixel hexadécimales sur un fond de couleur prélevé dans la vidéo d'entrée ; la couleur du texte est choisie de manière à rester toujours visible.
axis
Dessine les numéros de ligne et de colonne à gauche et en haut de la vidéo.
opacity
Définit l'opacité du fond.
format
Définit le format d'affichage des nombres. Peut être hex ou dec. La valeur par défaut est hex.
components
Définit les composantes de pixel à afficher. Par défaut, toutes les composantes de pixel sont affichées.
11.51.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options, à l'exception de l'option size.
11.52 dblur
Applique un filtre de flou directionnel.
Le filtre accepte les options suivantes :
angle
Définit l'angle du flou directionnel. La valeur par défaut est 45.
radius
Définit le rayon du flou directionnel. La valeur par défaut est 5.
planes
Définit les plans à filtrer. Par défaut, tous les plans sont filtrés.
11.52.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, elle conserve sa valeur actuelle.
11.53 dctdnoiz
Débruite les images à l'aide d'une DCT 2D (filtrage dans le domaine fréquentiel).
Ce filtre n'est pas conçu pour le temps réel.
Le filtre accepte les options suivantes :
sigma, s
Définit la constante sigma du bruit.
Ce sigma définit un seuil strict de 3 * sigma ; tout coefficient DCT (en valeur absolue) inférieur à ce seuil est écarté.
Pour un filtrage plus avancé, consultez expr.
La valeur par défaut est 0.
overlap
Définit le nombre de pixels de chevauchement pour chaque bloc. Comme ce filtre peut être lent, vous voudrez peut-être réduire cette valeur, au prix d'un filtre moins efficace et d'un risque d'artefacts divers.
Si la valeur de chevauchement ne permet pas de traiter toute la largeur ou la hauteur d'entrée, un avertissement s'affiche et les bords concernés ne sont pas débruités.
La valeur par défaut est blocksize-1, ce qui constitue le meilleur réglage possible.
expr, e
Définit l'expression du facteur de coefficient.
Pour chaque coefficient d'un bloc DCT, cette expression est évaluée comme une valeur multiplicative pour le coefficient.
Si cette option est définie, l'option sigma est ignorée.
La valeur absolue du coefficient est accessible via la variable c.
n
Définit la taille de bloc à l'aide du nombre de bits. 1<<n définit la taille de bloc, c'est-à-dire la largeur et la hauteur des blocs traités.
La valeur par défaut est 3 (8x8), et peut être portée à 4 pour une taille de bloc de 16x16. Notez que la modification de ce réglage a des conséquences importantes sur la vitesse de traitement. De plus, une taille de bloc plus grande ne signifie pas nécessairement un meilleur débruitage.
11.53.1 Exemples
Applique une réduction de bruit avec un sigma de 4.5 :
dctdnoiz=4.5
La même opération peut être obtenue avec le système d'expressions :
dctdnoiz=e='gte(c, 4.5*3)'
Réduction de bruit violente avec une taille de bloc de 16x16 :
dctdnoiz=15:n=4
11.54 deband
Supprime les artefacts de banding de la vidéo d'entrée. Il fonctionne en remplaçant les pixels concernés par la valeur moyenne des pixels de référence.
Le filtre accepte les options suivantes :
1thr 2thr 3thr 4thr
Définit le seuil de détection du banding pour chaque plan. La valeur par défaut est 0.02. La plage valide va de 0.00003 à 0.5. Si la différence entre le pixel courant et le pixel de référence est inférieure au seuil, il est considéré comme concerné par le banding.
range, r
Plage de détection du banding en pixels. La valeur par défaut est 16. Si la valeur est positive, un nombre aléatoire compris entre 0 et la valeur définie est utilisé. Si elle est négative, la valeur absolue exacte est utilisée. Cette plage définit un carré de quatre pixels autour du pixel courant.
direction, d
Définit en radians la direction à partir de laquelle les quatre pixels sont comparés. Si la valeur est positive, une direction aléatoire comprise entre 0 et la direction définie est choisie. Si elle est négative, la valeur absolue exacte est choisie. Par exemple, une direction de 0, -PI ou -2*PI radians ne retient que les pixels de la même ligne, et -PI/2 ne retient que les pixels de la même colonne.
blur, b
Si l'option est activée, le pixel courant est comparé à la valeur moyenne des quatre pixels environnants. Elle est activée par défaut. Si elle est désactivée, le pixel courant est comparé individuellement à chacun des quatre pixels environnants. Le pixel est considéré comme concerné par le banding uniquement si les quatre différences avec les pixels environnants sont toutes inférieures au seuil.
coupling, c
Si l'option est activée, le pixel courant n'est modifié que si toutes ses composantes sont concernées par le banding, c'est-à-dire que le seuil de détection du banding est atteint pour toutes les composantes de couleur. Elle est désactivée par défaut.
11.54.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.55 deblock
Supprime les artefacts de blocs de la vidéo d'entrée.
Le filtre accepte les options suivantes :
filter
Définit le type de filtrage, weak ou strong. La valeur par défaut est strong. Cela contrôle le type de déblocage appliqué.
block
Définit la taille du bloc. La plage autorisée va de 4 à 512. La valeur par défaut est 8.
alpha beta gamma delta
Définit les seuils de détection du blocking. La plage autorisée va de 0 à 1. Les valeurs par défaut sont : 0.098 pour alpha et 0.05 pour les autres. Un seuil plus élevé augmente l'intensité du déblocage. Le réglage d'alpha contrôle la détection du seuil exactement au bord du bloc. Les autres options contrôlent la détection du seuil à proximité du bord, chacune pour le dessous/dessus ou la gauche/droite. Régler l'une d'entre elles à 0 désactive le déblocage.
planes
Définit les plans à filtrer. Par défaut, tous les plans disponibles sont filtrés.
11.55.1 Exemples
-
Déblocage avec le filtre weak et une taille de bloc de 4 pixels.
deblock=filter=weak:block=4 -
Déblocage avec le filtre strong, une taille de bloc de 4 pixels et des seuils personnalisés pour débloquer davantage de bords.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05 -
Identique à ci-dessus, mais en filtrant uniquement le premier plan.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1 -
Identique à ci-dessus, mais en filtrant uniquement les deuxième et troisième plans.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
11.55.2 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.56 decimate
Supprime les images dupliquées à intervalles réguliers.
Le filtre accepte les options suivantes :
cycle
Définit le nombre d'images parmi lesquelles une sera supprimée. Régler cette valeur sur N signifie qu'une image sur chaque lot de N images sera supprimée. La valeur par défaut est 5.
dupthresh
Définit le seuil de détection des doublons. Si la métrique de différence d'une image est inférieure ou égale à cette valeur, elle est déclarée comme doublon. La valeur par défaut est 1.1
scthresh
Définit le seuil de changement de scène. La valeur par défaut est 15.
blockx blocky
Définit la taille des blocs selon les axes x et y utilisés lors du calcul des métriques. Des blocs plus grands offrent une meilleure suppression du bruit, mais aussi une moins bonne détection des petits mouvements. Doit être une puissance de deux. La valeur par défaut est 32.
ppsrc
Marque l'entrée principale comme une entrée pré-traitée et active le flux d'entrée de source propre. Cela permet de pré-traiter l'entrée avec divers filtres pour faciliter le calcul des métriques, tout en conservant une sélection d'images sans perte. Réglée sur 1, le premier flux correspond à l'entrée pré-traitée et le second flux à la source propre à partir de laquelle les images conservées sont choisies. La valeur par défaut est 0.
chroma
Définit si la chrominance est prise en compte dans le calcul des métriques. La valeur par défaut est 1.
mixed
Définit si l'entrée ne contient que partiellement du contenu à décimer. La valeur par défaut est false. Si elle est activée, le flux vidéo de sortie sera à fréquence d'images variable.
11.57 deconvolve
Applique une déconvolution 2D du flux vidéo dans le domaine fréquentiel en utilisant le second flux comme impulsion.
Le filtre accepte les options suivantes :
planes
Définit les plans à traiter.
impulse
Définit les images vidéo de l'impulsion à traiter : first ou all. La valeur par défaut est all.
noise
Définit le bruit lors des divisions. La valeur par défaut est 0.0000001. Utile lorsque la largeur et la hauteur diffèrent et ne sont pas une puissance de 2, ou si le flux contenait du bruit avant la convolution.
Le filtre deconvolve prend également en charge les options framesync.
11.58 dedot
Réduit la luminance croisée (dot-crawl) et la chrominance croisée (arcs-en-ciel) de la vidéo.
Il accepte les options suivantes :
m
Définit le mode de fonctionnement. Peut être une combinaison de dotcrawl pour la réduction de la luminance croisée et/ou de rainbows pour la réduction de la chrominance croisée.
lt
Définit le seuil spatial de luminance. Des valeurs plus faibles augmentent la réduction de la luminance croisée.
tl
Définit la tolérance temporelle de luminance. Des valeurs plus élevées augmentent la réduction de la luminance croisée.
tc
Définit la tolérance de variation temporelle de la chrominance. Des valeurs plus élevées augmentent la réduction de la chrominance croisée.
ct
Définit le seuil temporel de chrominance. Des valeurs plus faibles augmentent la réduction de la chrominance croisée.
11.59 deflate
Applique un effet deflate (érosion) à la vidéo.
Ce filtre remplace le pixel par la moyenne locale (3x3) en ne prenant en compte que les valeurs inférieures au pixel.
Il accepte les options suivantes :
threshold0 threshold1 threshold2 threshold3
Limite le changement maximal pour chaque plan. La valeur par défaut est 65535. Si elle vaut 0, le plan reste inchangé.
11.59.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.60 deflicker
Supprime les variations temporelles de la luminance des images.
Il accepte les options suivantes :
size, s
Définit la taille du filtre de moyenne mobile en nombre d'images. La valeur par défaut est 5. La plage autorisée est 2 - 129.
mode, m
Définit le mode de moyennage pour lisser les variations temporelles de luminance.
Les valeurs disponibles sont :
‘am’
Moyenne arithmétique
‘gm’
Moyenne géométrique
‘hm’
Moyenne harmonique
‘qm’
Moyenne quadratique
‘cm’
Moyenne cubique
‘pm’
Moyenne de puissance
‘median’
Médiane
bypass
Ne modifie pas réellement l'image. Utile lorsque seules les métadonnées sont souhaitées.
11.61 deinterlace_d3d12
Désentrelace la vidéo d'entrée à l'aide du traitement vidéo accéléré par matériel D3D12.
Ce filtre utilise le DirectX 12 Video Processor pour effectuer le désentrelacement sur le GPU, en prenant en charge à la fois le bob simple et les algorithmes avancés définis par le pilote (adaptatifs au mouvement). Il requiert que l'entrée soit au pixel format matériel d3d12.
Le filtre interroge automatiquement le matériel pour connaître le nombre requis d'images de référence temporelles (si nécessaire) et gère une file d'attente d'images pour les fournir.
Il accepte les options suivantes :
method
La méthode de désentrelacement. Elle accepte l'une des valeurs suivantes :
‘default’
Sélectionne la meilleure méthode de désentrelacement disponible sur le matériel. Si le pilote prend en charge custom, cette méthode est utilisée ; sinon, un repli sur bob est effectué. C'est la valeur par défaut.
‘bob’
Désentrelacement bob. Chaque champ est mis à l'échelle indépendamment jusqu'à la pleine hauteur de l'image. Simple et rapide, mais peut produire des artefacts de bob visibles sur un contenu en mouvement.
‘custom’
Désentrelacement avancé défini par le pilote. L'algorithme exact dépend du matériel et emploie généralement des techniques adaptatives au mouvement avec des images de référence temporelles pour une meilleure qualité.
La valeur par défaut est default.
mode
Spécifie le mode d'entrelacement. Il accepte l'une des valeurs suivantes :
‘frame’
Envoie une image pour chaque image. La fréquence d'images de sortie est égale à la fréquence d'images d'entrée. C'est la valeur par défaut.
‘field’
Envoie une image pour chaque champ. La fréquence d'images de sortie est le double de la fréquence d'images d'entrée.
La valeur par défaut est frame.
deint
Spécifie quelles images désentrelacer. Il accepte l'une des valeurs suivantes :
‘all’
Désentrelace toutes les images. C'est la valeur par défaut.
‘interlaced’
Désentrelace uniquement les images marquées comme entrelacées ; les images progressives sont transmises telles quelles.
La valeur par défaut est all.
11.61.1 Exemples
-
Désentrelace une vidéo entrelacée avec un décodage logiciel et la meilleure méthode de désentrelacement matériel 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 -
Désentrelace à la fréquence de champ (le double de la fréquence d'images) avec la méthode bob et un décodage matériel (pipeline d3d12 complet) :
ffmpeg -hwaccel d3d12va -hwaccel_output_format d3d12 -i input.ts \ -vf "deinterlace_d3d12=method=bob:mode=field" \ -c:v h264_d3d12va output.mp4 -
Désentrelace uniquement les images entrelacées, en laissant passer les images progressives :
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
Supprime le judder produit par un contenu partiellement entrelacé et issu d'un télécinéma.
Le judder peut être introduit, par exemple, par le filtre pullup. Si la source d'origine était un contenu partiellement issu d'un télécinéma, la sortie de pullup,dejudder aura une fréquence d'images variable. Cela peut modifier la fréquence d'images enregistrée dans le container. En dehors de ce changement, ce filtre n'affecte pas la vidéo à fréquence d'images constante.
L'option disponible dans ce filtre est :
cycle
Spécifie la longueur de la fenêtre sur laquelle le judder se répète.
Accepte tout entier supérieur à 1. Les valeurs utiles sont :
‘4’
Si l'original a été transféré par télécinéma de 24 à 30 fps (film vers NTSC).
‘5’
Si l'original a été transféré par télécinéma de 25 à 30 fps (PAL vers NTSC).
‘20’
En cas de mélange des deux.
La valeur par défaut est ‘4’.
11.63 delogo
Supprime le logo d'une chaîne de télévision par une simple interpolation des pixels environnants. Il suffit de définir un rectangle recouvrant le logo pour le voir disparaître (et parfois de voir apparaître quelque chose d'encore plus vilain, les résultats pouvant varier).
Il accepte les paramètres suivants :
x y
Spécifie les coordonnées du coin supérieur gauche du logo. Elles doivent être spécifiées.
w h
Spécifie la largeur et la hauteur du logo à effacer. Elles doivent être spécifiées.
show
Avec la valeur 1, un rectangle vert est dessiné à l'écran pour faciliter la recherche des bons paramètres x, y, w et h. La valeur par défaut est 0.
Le rectangle est dessiné sur les pixels les plus externes, qui seront (partiellement) remplacés par des valeurs interpolées. Les valeurs des pixels suivants, immédiatement à l'extérieur de ce rectangle dans chaque direction, sont utilisées pour calculer les valeurs de pixels interpolées à l'intérieur du rectangle.
11.63.1 Exemples
- Définit un rectangle recouvrant la zone dont le coin supérieur gauche a pour coordonnées 0,0 et dont la taille est 100x77 :
delogo=x=0:y=0:w=100:h=77
11.64 derain
Supprime la pluie de l'image ou de la vidéo d'entrée en appliquant des méthodes de derain basées sur des réseaux de neurones convolutifs. Modèles pris en charge :
- Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN). Voir http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf.
Les scripts d'entraînement ainsi que les scripts de génération de modèles sont fournis dans le dépôt à l'adresse https://github.com/XueweiMeng/derain_filter.git.
Le filtre accepte les options suivantes :
filter_type
Spécifie le filtre à utiliser. Cette option accepte les valeurs suivantes :
‘derain’
Filtre derain. Pour effectuer le filtrage derain, il est nécessaire d'utiliser un modèle derain.
‘dehaze’
Filtre dehaze. Pour effectuer le filtrage dehaze, il est nécessaire d'utiliser un modèle dehaze.
La valeur par défaut est ‘derain’.
dnn_backend
Spécifie le backend DNN à utiliser pour le chargement et l'exécution du modèle. Cette option accepte les valeurs suivantes :
‘tensorflow’
Backend TensorFlow. Pour activer ce backend, il est nécessaire d'installer la bibliothèque TensorFlow pour C (voir https://www.tensorflow.org/install/lang_c) et de configurer FFmpeg avec --enable-libtensorflow
model
Définit le chemin du fichier de modèle spécifiant l'architecture du réseau et ses paramètres. Notez que les différents backends utilisent des formats de fichiers différents. TensorFlow ne peut charger que les fichiers de son propre format.
Pour bénéficier de toutes les fonctionnalités (comme l'exécution asynchrone), veuillez utiliser le filtre dnn_processing.
11.65 deshake
Tente de corriger les petites variations de décalage horizontal et/ou vertical. Ce filtre aide à supprimer les tremblements de caméra dus à une prise en main, à un choc sur un trépied, à un déplacement en véhicule, etc.
Le filtre accepte les options suivantes :
x y w h
Spécifie une zone rectangulaire à laquelle limiter la recherche des vecteurs de mouvement. Si souhaité, la recherche des vecteurs de mouvement peut être limitée à une zone rectangulaire de l'image définie par son coin supérieur gauche, sa largeur et sa hauteur. Ces paramètres ont la même signification que dans le filtre drawbox, qui peut être utilisé pour visualiser la position de la boîte englobante.
Cela est utile lorsque le mouvement simultané de sujets dans l'image risque d'être confondu avec un mouvement de caméra par la recherche de vecteurs de mouvement.
Si l'un ou la totalité de x, y, w et h est réglé sur -1, l'image entière est utilisée. Cela permet de régler les options suivantes sans spécifier la boîte englobante pour la recherche de vecteurs de mouvement.
Par défaut - recherche dans l'image entière.
rx ry
Spécifie l'étendue maximale du mouvement dans les directions x et y, dans la plage 0-64 pixels. Par défaut 16.
edge
Spécifie comment générer les pixels pour combler les vides au bord de l'image. Les valeurs disponibles sont :
‘blank, 0’
Remplit les emplacements vides avec des zéros
‘original, 1’
Image d'origine aux emplacements vides
‘clamp, 2’
Valeur du bord étirée aux emplacements vides
‘mirror, 3’
Bord en miroir aux emplacements vides
La valeur par défaut est ‘mirror’.
blocksize
Spécifie la taille de bloc à utiliser pour la recherche de mouvement. Plage 4-128 pixels, valeur par défaut 8.
contrast
Spécifie le seuil de contraste pour les blocs. Seuls les blocs dont le contraste (différence entre le pixel le plus sombre et le pixel le plus clair) dépasse la valeur spécifiée sont pris en compte. Plage 1-255, valeur par défaut 125.
search
Spécifie la stratégie de recherche. Les valeurs disponibles sont :
‘exhaustive, 0’
Définit une recherche exhaustive
‘less, 1’
Définit une recherche moins exhaustive.
La valeur par défaut est ‘exhaustive’.
filename
Si elle est définie, un journal détaillé de la recherche de mouvement est écrit dans le fichier spécifié.
11.66 despill
Supprime la contamination indésirable des couleurs de premier plan causée par la couleur réfléchie d'un fond vert ou d'un fond bleu.
Ce filtre accepte les options suivantes :
type
Définit le type de despill à utiliser.
mix
Définit comment la spillmap est générée.
expand
Définit la quantité de spill résiduel à éliminer.
red
Contrôle la quantité de rouge dans la zone de spill.
green
Contrôle la quantité de vert dans la zone de spill. Doit être -1 pour un fond vert.
blue
Contrôle la quantité de bleu dans la zone de spill. Doit être -1 pour un fond bleu.
brightness
Contrôle la luminosité de la zone de spill, en préservant les couleurs.
alpha
Modifie le canal alpha à partir de la spillmap générée.
11.66.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.67 detelecine
Applique l'inverse exact de l'opération de télécinéma. Elle nécessite un motif prédéfini spécifié via l'option pattern, qui doit être identique à celui transmis au filtre telecine.
Ce filtre accepte les options suivantes :
first_field
‘top, t’
champ du haut en premier
‘bottom, b’
champ du bas en premier. La valeur par défaut est top.
pattern
Chaîne de chiffres représentant le motif de pulldown à appliquer. La valeur par défaut est 23.
start_frame
Nombre représentant la position de la première image par rapport au motif de télécinéma. Elle doit être utilisée si le flux est coupé. La valeur par défaut est 0.
11.68 dilation
Applique un effet dilation (dilatation) à la vidéo.
Ce filtre remplace le pixel par le maximum local (3x3).
Il accepte les options suivantes :
threshold0 threshold1 threshold2 threshold3
Limite le changement maximal pour chaque plan. La valeur par défaut est 65535. Si elle vaut 0, le plan reste inchangé.
coordinates
Indicateur qui spécifie le pixel de référence. La valeur par défaut est 255, c'est-à-dire que les huit pixels sont utilisés.
La correspondance entre les indicateurs et les coordonnées locales 3x3 est la suivante :
1 2 3 4 5 6 7 8
11.68.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.69 displace
Déplace les pixels selon les indications des deuxième et troisième flux d'entrée.
Il prend trois flux d'entrée et produit un flux en sortie : la première entrée est la source, et les deuxième et troisième entrées sont les cartes de déplacement.
La deuxième entrée spécifie de combien déplacer les pixels le long de l'axe x, tandis que la troisième entrée spécifie de combien les déplacer le long de l'axe y. Si l'un des flux de carte de déplacement se termine, la dernière image de cette carte de déplacement est utilisée.
Notez qu'une fois générées, les cartes de déplacement peuvent être réutilisées indéfiniment.
Une description des options acceptées suit.
edge
Définit le comportement de displace pour les pixels hors plage.
Les valeurs disponibles sont :
‘blank’
Les pixels manquants sont remplacés par des pixels noirs.
‘smear’
Les pixels adjacents s'étendent pour remplacer les pixels manquants.
‘wrap’
Les pixels hors plage sont repliés de manière à pointer vers les pixels du côté opposé.
‘mirror’
Les pixels hors plage sont remplacés par des pixels en miroir.
La valeur par défaut est ‘smear’.
11.69.1 Exemples
-
Ajoute un effet d'ondulation à une entrée rgb de taille vidé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 -
Ajoute un effet de vague à une entrée rgb de taille vidé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
Effectue une classification avec des réseaux de neurones profonds à partir de boîtes englobantes.
Le filtre accepte les options suivantes :
dnn_backend
Spécifie le backend DNN à utiliser pour le chargement et l'exécution du modèle. Cette option n'accepte pour l'instant que openvino ; le backend tensorflow sera ajouté ultérieurement.
model
Définit le chemin du fichier de modèle spécifiant l'architecture du réseau et ses paramètres. Notez que les différents backends utilisent des formats de fichiers différents.
input
Définit le nom d'entrée du réseau dnn.
output
Définit le nom de sortie du réseau dnn.
confidence
Définit le seuil de confiance (par défaut : 0.5).
labels
Définit le chemin du fichier d'étiquettes spécifiant la correspondance entre l'identifiant et le nom de chaque étiquette. Chaque nom d'étiquette est écrit sur une ligne ; les espaces de fin et les lignes vides sont ignorés. La première ligne correspond au nom de l'étiquette d'identifiant 0, la deuxième ligne au nom de l'étiquette d'identifiant 1, et ainsi de suite. Si le fichier d'étiquettes n'est pas fourni, l'identifiant est utilisé directement comme nom.
backend_configs
Définit les configurations à transmettre au backend
Pour le backend tensorflow, vous pouvez définir sa configuration avec les options sess_config ; veuillez utiliser tools/python/tf_sess_config.py pour obtenir la configuration adaptée à votre système.
11.71 dnn_detect
Effectue une détection d'objets avec des réseaux de neurones profonds.
Le filtre accepte les options suivantes :
dnn_backend
Spécifie le backend DNN à utiliser pour le chargement et l'exécution du modèle. Cette option n'accepte pour l'instant que openvino ; le backend tensorflow sera ajouté ultérieurement.
model
Définit le chemin du fichier de modèle spécifiant l'architecture du réseau et ses paramètres. Notez que les différents backends utilisent des formats de fichiers différents.
input
Définit le nom d'entrée du réseau dnn.
output
Définit le nom de sortie du réseau dnn.
confidence
Définit le seuil de confiance (par défaut : 0.5).
labels
Définit le chemin du fichier d'étiquettes spécifiant la correspondance entre l'identifiant et le nom de chaque étiquette. Chaque nom d'étiquette est écrit sur une ligne ; les espaces de fin et les lignes vides sont ignorés. La première ligne correspond au nom de l'étiquette d'identifiant 0 (généralement ’background’), la deuxième ligne au nom de l'étiquette d'identifiant 1, et ainsi de suite. Si le fichier d'étiquettes n'est pas fourni, l'identifiant est utilisé directement comme nom.
backend_configs
Définit la configuration à transmettre au backend. Pour utiliser l'exécution asynchrone, réglez async (par défaut : set). Si le backend ne prend pas en charge l'exécution asynchrone, un repli sur l'exécution synchrone est effectué.
11.72 dnn_processing
Effectue un traitement d'image avec des réseaux de neurones profonds. Il fonctionne avec un autre filtre qui convertit le pixel format de l'image dans le format requis par le réseau dnn.
Le filtre accepte les options suivantes :
dnn_backend
Spécifie le backend DNN à utiliser pour le chargement et l'exécution du modèle. Cette option accepte les valeurs suivantes :
‘tensorflow’
Backend TensorFlow. Pour activer ce backend, il est nécessaire d'installer la bibliothèque TensorFlow pour C (voir https://www.tensorflow.org/install/lang_c) et de configurer FFmpeg avec --enable-libtensorflow
‘openvino’
Backend OpenVINO. Pour activer ce backend, il est nécessaire de compiler et d'installer la bibliothèque OpenVINO pour C (voir https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md) et de configurer FFmpeg avec --enable-libopenvino (–extra-cflags=-I... –extra-ldflags=-L... peuvent être nécessaires si les fichiers d'en-tête et les bibliothèques ne sont pas installés dans le chemin système)
‘torch’
Backend Libtorch. Pour activer ce backend, il est nécessaire de compiler et d'installer la bibliothèque Libtroch pour C++. Veuillez télécharger la version ABI cxx11 (voir https://pytorch.org/get-started/locally) et configurer FFmpeg avec --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. Pour activer ce backend, il est nécessaire d'installer la bibliothèque ONNX Runtime (voir https://onnxruntime.ai/) et de configurer FFmpeg avec --enable-libonnxruntime.
Le backend ONNX Runtime actuel attend des tenseurs d'entrée et de sortie en 4 dimensions avec une disposition NCHW et un type d'élément à virgule flottante 32 bits (ONNX FLOAT) ; les modèles utilisant des types entiers ou autres (par exemple UINT8) ne sont pas pris en charge et sont rejetés au chargement. Les modèles utilisant une disposition NHWC ou d'autres rangs ne sont pas encore pris en charge. Seuls les modèles à entrée unique sont pris en charge ; le backend associe exactement un tenseur d'entrée lors de l'exécution du modèle.
Les options input et output sont facultatives pour le backend ONNX Runtime ; lorsqu'elles sont omises, le backend résout les noms des tenseurs à partir de la session.
Le backend ONNX Runtime exécute l'inférence de manière synchrone à l'aide d'une seule requête d'inférence. Les options partagées async et nireq n'ont donc aucun effet pour dnn_backend=onnx ; l'inférence s'exécute toujours de manière synchrone, quelles que soient leurs valeurs.
model
Définit le chemin du fichier de modèle spécifiant l'architecture du réseau et ses paramètres. Notez que les différents backends utilisent des formats de fichiers différents. Les backends TensorFlow, OpenVINO, Libtorch et ONNX Runtime ne peuvent charger que des fichiers dans leur propre format respectif.
input
Définit le nom d'entrée du réseau dnn. Obligatoire pour le backend TensorFlow ; facultatif pour le backend ONNX Runtime.
output
Définit le nom de sortie du réseau dnn. Obligatoire pour le backend TensorFlow ; facultatif pour le backend ONNX Runtime.
backend_configs
Définit la configuration à transmettre au backend. Pour utiliser l'exécution asynchrone, réglez async (par défaut : set). Si le backend ne prend pas en charge l'exécution asynchrone, un repli sur l'exécution synchrone est effectué.
Pour le backend tensorflow, vous pouvez définir sa configuration avec les options sess_config ; veuillez utiliser tools/python/tf_sess_config.py pour obtenir la configuration du backend TensorFlow adaptée à votre système.
device
Définit le périphérique sur lequel exécuter le modèle. Pour le backend ONNX Runtime, cela sélectionne le fournisseur d'exécution : cpu (par défaut), cuda (GPU NVIDIA), dml (DirectML, Windows uniquement) ou vitisai (NPU AMD Ryzen AI).
device_id
Définit l'index de périphérique utilisé par les fournisseurs d'exécution GPU (par exemple cuda ou dml) pour le backend ONNX Runtime. La valeur par défaut est 0.
threads_per_operation
Uniquement pour le backend ONNX Runtime. Définit le nombre de threads CPU utilisés par opérateur ONNX Runtime lors de l'exécution avec device=cpu. La valeur par défaut est 0 (laisser ONNX Runtime choisir automatiquement). Sans effet pour les fournisseurs GPU/NPU.
11.72.1 Exemples
-
Supprime la pluie dans une image rgb24 avec can.pb (voir le filtre derain) :
./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg -
Traite le canal Y avec srcnn.pb (voir le filtre sr) pour une image en yuv420p (formats YUV planaires pris en charge) :
./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 -
Traite le canal Y avec espcn.pb (voir le filtre sr), qui modifie la taille de l'image, pour le format yuv420p (formats YUV planaires pris en charge) ; veuillez utiliser tools/python/tf_sess_config.py pour obtenir la configuration du backend TensorFlow adaptée à votre système.
./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
Dessine un rectangle coloré sur l'image d'entrée.
Il accepte les paramètres suivants :
x y
Les expressions qui indiquent les coordonnées du coin supérieur gauche du rectangle. La valeur par défaut est 0.
width, w height, h
Les expressions qui indiquent la largeur et la hauteur du rectangle ; si elles valent 0, elles sont interprétées comme la largeur et la hauteur de l'entrée. La valeur par défaut est 0.
color, c
Indique la couleur du rectangle à tracer. Pour la syntaxe générale de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils. Si la valeur spéciale invert est utilisée, la couleur du bord du rectangle correspond à celle de la vidéo avec la luminance inversée.
thickness, t
L'expression qui définit l'épaisseur du bord du rectangle. La valeur fill crée un rectangle rempli. La valeur par défaut est 3.
Voir plus bas la liste des constantes acceptées.
replace
S'applique si l'entrée possède un canal alpha. Avec la valeur 1, les pixels du rectangle peint écrasent les pixels de couleur et d'alpha de la vidéo. La valeur par défaut est 0, auquel cas le rectangle est composé avec l'entrée en laissant l'alpha de la vidéo intact.
Les paramètres x, y, w, h et t sont des expressions contenant les constantes suivantes :
dar
Le rapport d'aspect d'affichage de l'entrée, identique à (w / h) * sar.
hsub vsub
valeurs de sous-échantillonnage horizontal et vertical de la chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
in_h, ih in_w, iw
La largeur et la hauteur de l'entrée.
sar
Le rapport d'aspect d'échantillon de l'entrée.
x y
Les coordonnées de décalage x et y où le rectangle est dessiné.
w h
La largeur et la hauteur du rectangle dessiné.
box_source
La source du rectangle peut être définie à side_data_detection_bboxes si vous voulez utiliser des données de rectangle dans les bboxes de détection des side data.
Si box_source est défini, x, y, width et height sont ignorés ; ce sont les données de rectangle des bboxes de détection des side data qui sont utilisées à la place. Veuillez donc ne pas utiliser ce paramètre en cas de doute sur la source du rectangle.
t
L'épaisseur du rectangle dessiné.
Ces constantes permettent aux expressions x, y, w, h et t de se référer les unes aux autres ; vous pouvez ainsi par exemple spécifier y=x/dar ou h=w/dar.
11.73.1 Exemples
-
Dessine un rectangle noir autour du bord de l'image d'entrée :
drawbox -
Dessine un rectangle de couleur rouge avec une opacité de 50 % :
drawbox=10:20:200:60:red@0.5
L'exemple précédent peut aussi s'écrire :
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
-
Remplit le rectangle de couleur rose :
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill -
Dessine un masque rouge de 2 pixels au format 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 Commandes
Ce filtre prend en charge les mêmes commandes que ses options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, la valeur actuelle est conservée.
11.74 drawgraph
Dessine un graphique à partir des métadonnées vidéo d'entrée.
Il accepte les paramètres suivants :
m1
Définit la 1re clé de métadonnée d'image à partir de laquelle les valeurs de métadonnées seront utilisées pour tracer un graphique.
fg1
Définit la 1re expression de couleur de premier plan.
m2
Définit la 2e clé de métadonnée d'image à partir de laquelle les valeurs de métadonnées seront utilisées pour tracer un graphique.
fg2
Définit la 2e expression de couleur de premier plan.
m3
Définit la 3e clé de métadonnée d'image à partir de laquelle les valeurs de métadonnées seront utilisées pour tracer un graphique.
fg3
Définit la 3e expression de couleur de premier plan.
m4
Définit la 4e clé de métadonnée d'image à partir de laquelle les valeurs de métadonnées seront utilisées pour tracer un graphique.
fg4
Définit la 4e expression de couleur de premier plan.
min
Définit la valeur minimale de la métadonnée.
max
Définit la valeur maximale de la métadonnée.
bg
Définit la couleur de fond du graphique. La valeur par défaut est blanc.
mode
Définit le mode du graphique.
Les valeurs disponibles pour mode sont :
‘bar’ ‘dot’ ‘line’
La valeur par défaut est line.
slide
Définit le mode de défilement.
Les valeurs disponibles pour slide sont :
‘frame’
Dessine une nouvelle image lorsque le bord droit est atteint.
‘replace’
Remplace les anciennes colonnes par de nouvelles.
‘scroll’
Défile de droite à gauche.
‘rscroll’
Défile de gauche à droite.
‘picture’
Dessine une image unique.
La valeur par défaut est frame.
size
Définit la taille de la vidéo du graphique. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Video size" du manuel ffmpeg-utils. La valeur par défaut est 900x256.
rate, r
Définit la fréquence d'images de sortie. La valeur par défaut est 25.
Les expressions de couleur de premier plan peuvent utiliser les variables suivantes :
MIN
Valeur minimale de la métadonnée.
MAX
Valeur maximale de la métadonnée.
VAL
Valeur actuelle de la clé de métadonnée.
La couleur est définie au format 0xAABBGGRR.
Exemple utilisant les métadonnées du filtre signalstats :
signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
Exemple utilisant les métadonnées du filtre ebur128 :
ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
11.75 drawgrid
Dessine une grille sur l'image d'entrée.
Il accepte les paramètres suivants :
x y
Les expressions qui indiquent les coordonnées d'un point d'intersection de la grille (destinées à configurer le décalage). Les deux valent 0 par défaut.
width, w height, h
Les expressions qui indiquent la largeur et la hauteur de la cellule de la grille ; si elles valent 0, elles sont respectivement interprétées comme la largeur et la hauteur de l'entrée moins thickness, de sorte que l'image se retrouve encadrée. La valeur par défaut est 0.
color, c
Indique la couleur de la grille. Pour la syntaxe générale de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils. Si la valeur spéciale invert est utilisée, la couleur de la grille correspond à celle de la vidéo avec la luminance inversée.
thickness, t
L'expression qui définit l'épaisseur des lignes de la grille. La valeur par défaut est 1.
Voir plus bas la liste des constantes acceptées.
replace
S'applique si l'entrée possède un canal alpha. Avec 1, les pixels de la grille peinte écrasent les pixels de couleur et d'alpha de la vidéo. La valeur par défaut est 0, auquel cas la grille est composée avec l'entrée en laissant l'alpha de la vidéo intact.
Les paramètres x, y, w, h et t sont des expressions contenant les constantes suivantes :
dar
Le rapport d'aspect d'affichage de l'entrée, identique à (w / h) * sar.
hsub vsub
valeurs de sous-échantillonnage horizontal et vertical de la chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
in_h, ih in_w, iw
La largeur et la hauteur de la cellule de la grille en entrée.
sar
Le rapport d'aspect d'échantillon de l'entrée.
x y
Les coordonnées x et y d'un point d'intersection de la grille (destinées à configurer le décalage).
w h
La largeur et la hauteur de la cellule dessinée.
t
L'épaisseur de la cellule dessinée.
Ces constantes permettent aux expressions x, y, w, h et t de se référer les unes aux autres ; vous pouvez ainsi par exemple spécifier y=x/dar ou h=w/dar.
11.75.1 Exemples
-
Dessine une grille avec des cellules de 100x100 pixels, une épaisseur de 2 pixels, de couleur rouge et une opacité de 50 % :
drawgrid=width=100:height=100:thickness=2:color=red@0.5 -
Dessine une grille blanche 3x3 avec une opacité de 50 % :
drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
11.75.2 Commandes
Ce filtre prend en charge les mêmes commandes que ses options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, la valeur actuelle est conservée.
11.76 drawtext
Dessine une chaîne de texte, ou le texte d'un fichier indiqué, par-dessus une vidéo, à l'aide de la bibliothèque libfreetype.
Pour activer la compilation de ce filtre, il faut configurer FFmpeg avec --enable-libfreetype et --enable-libharfbuzz. Pour activer le repli de police par défaut et l'option font, il faut configurer FFmpeg avec --enable-libfontconfig. Pour activer l'option text_shaping, il faut configurer FFmpeg avec --enable-libfribidi.
11.76.1 Syntaxe
Il accepte les paramètres suivants :
box
Utilisée pour dessiner un rectangle autour du texte avec la couleur de fond. La valeur doit être 1 (activé) ou 0 (désactivé). La valeur par défaut de box est 0.
boxborderw
Définit la largeur de la bordure à dessiner autour du rectangle, avec la couleur boxcolor. La valeur doit être indiquée selon l'un des formats suivants :
boxborderw=10définit la largeur de toutes les bordures à 10boxborderw=10|20définit la largeur des bordures du haut et du bas à 10, et celle des bordures gauche et droite à 20boxborderw=10|20|30définit la largeur de la bordure du haut à 10, celle de la bordure du bas à 30, et celle des bordures gauche et droite à 20boxborderw=10|20|30|40définit la largeur des bordures à 10 (haut), 20 (droite), 30 (bas), 40 (gauche)
La valeur par défaut de boxborderw est "0".
boxcolor
Couleur à utiliser pour dessiner le rectangle autour du texte. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
La valeur par défaut de boxcolor est "white".
line_spacing
Définit l'interligne en pixels. La valeur par défaut de line_spacing est 0.
text_align
Définit l'alignement vertical et horizontal du texte par rapport aux limites du rectangle. La valeur est une combinaison d'indicateurs, l'un pour l'alignement vertical (T=haut, M=milieu, B=bas) et l'autre pour l'alignement horizontal (L=gauche, C=centre, R=droite). Notez que les caractères de tabulation ne sont pris en charge qu'avec l'alignement horizontal à gauche.
y_align
Indique le référentiel de la valeur y. Les valeurs possibles sont :
textle sommet du plus haut glyphe de la première ligne de texte est placé à ybaselinela ligne de base de la première ligne de texte est placée à yfontla ligne de base de la première ligne de texte est placée à y plus l'ascendant (en pixels) défini par les métriques de la police
La valeur par défaut de y_align est "text", pour des raisons de compatibilité ascendante.
borderw
Définit la largeur de la bordure à dessiner autour du texte, avec la couleur bordercolor. La valeur par défaut de borderw est 0.
bordercolor
Définit la couleur à utiliser pour dessiner la bordure autour du texte. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
La valeur par défaut de bordercolor est "black".
expansion
Sélectionne le mode d'expansion du texte. Peut être none, strftime (obsolète) ou normal (par défaut). Voir la section Expansion du texte plus bas pour plus de détails.
basetime
Définit une heure de départ pour le comptage. La valeur est en microsecondes. Ne s'applique qu'au mode de développement strftime, obsolète. Pour reproduire ce comportement en mode de développement normal, utilisez la fonction pts en fournissant l'heure de départ (en secondes) comme second argument.
fix_bounds
Si true, vérifie et corrige les coordonnées du texte afin d'éviter tout rognage.
fontcolor
Couleur à utiliser pour dessiner les polices. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
La valeur par défaut de fontcolor est "black".
fontcolor_expr
Chaîne développée de la même façon que text, afin d'obtenir une valeur fontcolor dynamique. Par défaut, cette option a une valeur vide et n'est pas traitée. Lorsqu'elle est définie, elle prend le pas sur l'option fontcolor.
font
Famille de police à utiliser pour dessiner le texte. Par défaut, Sans.
fontfile
Fichier de police à utiliser pour dessiner le texte. Le chemin doit être inclus. Ce paramètre est obligatoire si la prise en charge de fontconfig est désactivée.
alpha
Dessine le texte en appliquant un mélange alpha. La valeur peut être un nombre entre 0.0 et 1.0. L'expression accepte également les mêmes variables x, y. La valeur par défaut est 1. Voir aussi fontcolor_expr.
fontsize
Taille de police à utiliser pour dessiner le texte. La valeur par défaut de fontsize est 16.
text_shaping
Si la valeur est 1, tente de mettre en forme le texte (par exemple, inverser l'ordre du texte s'écrivant de droite à gauche et joindre les caractères arabes) avant de le dessiner. Sinon, dessine simplement le texte tel quel. Par défaut, 1 (si pris en charge).
ft_load_flags
Indicateurs à utiliser pour charger les polices.
Ces indicateurs correspondent à ceux pris en charge par libfreetype et sont une combinaison des valeurs suivantes :
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
La valeur par défaut est "default".
Pour plus d'informations, consultez la documentation des indicateurs FT_LOAD_* de libfreetype.
shadowcolor
Couleur à utiliser pour dessiner une ombre derrière le texte dessiné. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
La valeur par défaut de shadowcolor est "black".
boxw
Définit la largeur du rectangle à dessiner autour du texte. La valeur par défaut de boxw est calculée automatiquement pour correspondre à la largeur du texte
boxh
Définit la hauteur du rectangle à dessiner autour du texte. La valeur par défaut de boxh est calculée automatiquement pour correspondre à la hauteur du texte
shadowx shadowy
Décalages x et y de la position de l'ombre du texte par rapport à la position du texte. Ils peuvent être positifs ou négatifs. La valeur par défaut pour les deux est "0".
start_number
Numéro d'image de départ pour la variable n/frame_num. La valeur par défaut est "0".
tabsize
Taille, en nombre d'espaces, à utiliser pour le rendu des tabulations. La valeur par défaut est 4.
timecode
Définit la représentation du timecode initial au format "hh:mm:ss[:;.]ff". Elle peut être utilisée avec ou sans le paramètre text. L'option timecode_rate doit être spécifiée.
timecode_rate, rate, r
Définit la fréquence d'images du timecode (timecode uniquement). La valeur est arrondie à l'entier le plus proche. La valeur minimale est "1". Le timecode drop-frame est pris en charge pour les fréquences d'images 30 et 60.
tc24hmax
Si la valeur est 1, la sortie de l'option timecode boucle après 24 heures. La valeur par défaut est 0 (désactivé).
text
Chaîne de texte à dessiner. Le texte doit être une séquence de caractères encodés en UTF-8. Ce paramètre est obligatoire si aucun fichier n'est indiqué avec le paramètre textfile.
textfile
Fichier texte contenant le texte à dessiner. Le texte doit être une séquence de caractères encodés en UTF-8.
Ce paramètre est obligatoire si aucune chaîne de texte n'est indiquée avec le paramètre text.
Si text et textfile sont spécifiés tous les deux, une erreur est levée.
text_source
La source du texte doit être définie à side_data_detection_bboxes si vous voulez utiliser des données de texte dans les bboxes de détection des side data.
Si la source du texte est définie, text et textfile sont ignorés ; ce sont les données de texte des bboxes de détection des side data qui sont utilisées à la place. Veuillez donc ne pas utiliser ce paramètre en cas de doute sur la source du texte.
reload
Le fichier textfile est rechargé à l'intervalle d'images indiqué. Veillez à mettre à jour textfile de façon atomique, sinon sa lecture pourrait être partielle, voire échouer. La plage va de 0 à INT_MAX. La valeur par défaut est 0.
x y
Les expressions qui indiquent les décalages auxquels le texte sera dessiné dans l'image vidéo. Elles sont relatives au bord supérieur/gauche de l'image de sortie.
La valeur par défaut de x et y est "0".
Voir plus bas la liste des constantes et fonctions acceptées.
Les paramètres x et y sont des expressions contenant les constantes et fonctions suivantes :
dar
rapport d'aspect d'affichage de l'entrée, identique à (w / h) * sar
hsub vsub
valeurs de sous-échantillonnage horizontal et vertical de la chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
line_h, lh
la hauteur de chaque ligne de texte
main_h, h, H
la hauteur de l'entrée
main_w, w, W
la largeur de l'entrée
max_glyph_a, ascent
distance maximale entre la ligne de base et la coordonnée de grille la plus haute/supérieure utilisée pour placer un point du contour d'un glyphe, pour tous les glyphes rendus. C'est une valeur positive, en raison de l'orientation de la grille, l'axe Y étant orienté vers le haut.
max_glyph_d, descent
distance maximale entre la ligne de base et la coordonnée de grille la plus basse utilisée pour placer un point du contour d'un glyphe, pour tous les glyphes rendus. C'est une valeur négative, en raison de l'orientation de la grille, l'axe Y étant orienté vers le haut.
max_glyph_h
hauteur maximale de glyphe, c'est-à-dire la hauteur maximale parmi tous les glyphes contenus dans le texte rendu ; elle équivaut à ascent - descent.
max_glyph_w
largeur maximale de glyphe, c'est-à-dire la largeur maximale parmi tous les glyphes contenus dans le texte rendu
font_a
la taille de l'ascendant définie par les métriques de la police
font_d
la taille du descendant définie par les métriques de la police
top_a
l'ascendant maximal des glyphes de la première ligne de texte
bottom_d
le descendant maximal des glyphes de la dernière ligne de texte
n
le numéro de l'image d'entrée, à partir de 0
rand(min, max)
renvoie un nombre aléatoire compris entre min et max
sar
Le rapport d'aspect d'échantillon de l'entrée.
t
horodatage exprimé en secondes, NAN si l'horodatage d'entrée est inconnu
text_h, th
la hauteur du texte rendu
text_w, tw
la largeur du texte rendu
x y
les coordonnées de décalage x et y où le texte est dessiné.
Ces paramètres permettent aux expressions x et y de se référer l'une à l'autre ; vous pouvez ainsi par exemple spécifier y=x/dar.
pict_type
Description en un caractère du type d'image de l'image courante.
pkt_pos
Position du paquet actuel dans le fichier ou le flux d'entrée (en octets, depuis le début de l'entrée). Une valeur de -1 indique que cette information n'est pas disponible.
duration
Durée du paquet actuel, en secondes.
pkt_size
Taille du paquet actuel (en octets).
11.76.2 Expansion du texte
Si expansion est définie à strftime, le filtre reconnaît dans le texte fourni les séquences acceptées par la fonction C strftime et les développe en conséquence. Consultez la documentation de strftime. Cette fonctionnalité est obsolète, au profit du développement normal avec les fonctions de développement gmtime ou localtime.
Si expansion est définie à none, le texte est affiché tel quel.
Si expansion est définie à normal (valeur par défaut), le mécanisme de développement suivant est utilisé.
Le caractère barre oblique inverse ‘\’, suivi de n'importe quel caractère, se développe toujours en ce second caractère.
Les séquences de la forme %{...} sont développées. Le texte entre les accolades est un nom de fonction, éventuellement suivi d'arguments séparés par ’:’. Si les arguments contiennent des caractères spéciaux ou des délimiteurs (’:’ ou ’}’), ils doivent être échappés.
Notez qu'ils doivent probablement aussi être échappés en tant que valeur de l'option text dans la chaîne d'arguments du filtre, ainsi qu'en tant qu'argument de filtre dans la description du filtergraph, et éventuellement aussi pour le shell ; cela peut représenter jusqu'à quatre niveaux d'échappement. Utiliser un fichier texte avec l'option textfile permet d'éviter ces problèmes.
Les fonctions suivantes sont disponibles :
expr, e
Résultat de l'évaluation de l'expression.
Elle doit prendre un argument indiquant l'expression à évaluer, laquelle accepte les mêmes constantes et fonctions que les valeurs x et y. Notez que toutes les constantes ne doivent pas forcément être utilisées ; par exemple, la taille du texte n'est pas connue au moment de l'évaluation de l'expression, si bien que les constantes text_w et text_h auront une valeur indéfinie.
expr_int_format, eif
Évalue la valeur de l'expression et la restitue sous forme d'entier formaté.
Le premier argument est l'expression à évaluer, comme pour la fonction expr. Le second argument indique le format de sortie. Les valeurs autorisées sont ‘x’, ‘X’, ‘d’ et ‘u’. Elles sont traitées exactement comme dans la fonction printf. Le troisième paramètre, optionnel, définit le nombre de positions occupées par la sortie. Il peut servir à ajouter un remplissage de zéros à gauche.
gmtime
Heure à laquelle le filtre s'exécute, exprimée en UTC. Elle peut accepter un argument : une chaîne de format de la fonction C strftime. Cette chaîne de format est étendue pour prendre en charge la variable %[1-6]N, qui affiche les fractions de seconde avec un nombre de chiffres éventuellement précisé.
localtime
Heure à laquelle le filtre s'exécute, exprimée dans le fuseau horaire local. Elle peut accepter un argument : une chaîne de format de la fonction C strftime. Cette chaîne de format est étendue pour prendre en charge la variable %[1-6]N, qui affiche les fractions de seconde avec un nombre de chiffres éventuellement précisé.
metadata
Métadonnées d'image. Prend un ou deux arguments.
Le premier argument est obligatoire et indique la clé de métadonnée.
Le second argument est optionnel et indique une valeur par défaut, utilisée lorsque la clé de métadonnée est introuvable ou vide.
Les métadonnées disponibles peuvent être identifiées en examinant les entrées commençant par TAG, incluses dans chaque section d'image affichée en exécutant ffprobe -show_frames.
Les métadonnées de type chaîne générées par les filtres précédant le filtre drawtext sont également disponibles.
n, frame_num
Le numéro d'image, à partir de 0.
pict_type
Description en un caractère du type d'image actuel.
pts
Horodatage de l'image actuelle. Elle peut prendre jusqu'à trois arguments.
Le premier argument est le format de l'horodatage ; il vaut flt par défaut, pour des secondes exprimées en nombre décimal avec une précision à la microseconde ; hms désigne un horodatage mis en forme [-]HH:MM:SS.mmm avec une précision à la milliseconde. gmtime désigne l'horodatage de l'image mis en forme en temps UTC ; localtime désigne l'horodatage de l'image mis en forme dans le fuseau horaire local.
Le second argument est un décalage ajouté à l'horodatage.
Si le format est hms, un troisième argument 24HH peut être fourni pour présenter la partie heure de l'horodatage mis en forme au format 24h (00-23).
Si le format est localtime ou gmtime, un troisième argument peut être fourni : une chaîne de format de la fonction C strftime. Par défaut, le format YYYY-MM-DD HH:MM:SS est utilisé.
11.76.3 Commandes
Ce filtre permet de modifier ses paramètres via des commandes :
reinit
Modifie les paramètres existants du filtre.
La syntaxe de l'argument est la même que pour l'invocation du filtre, par exemple.
fontsize=56:fontcolor=green:text='Hello World'
Une invocation complète du filtre avec sendcmd ressemblerait à ceci :
sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
Si l'argument entier ne peut pas être analysé ou appliqué comme des valeurs valides, le filtre continue avec ses paramètres existants.
Les options suivantes sont également prises en charge en tant que commandes :
- x
- y
- alpha
- fontsize
- fontcolor
- boxcolor
- bordercolor
- shadowcolor
- box
- boxw
- boxh
- boxborderw
- line_spacing
- text_align
- shadowx
- shadowy
- borderw
11.76.4 Exemples
-
Dessine "Test Text" avec la police FreeSerif, en utilisant les valeurs par défaut pour les paramètres optionnels.
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'" -
Dessine ’Test Text’ avec la police FreeSerif en taille 24, à la position x=100 et y=50 (en comptant depuis le coin supérieur gauche de l'écran) ; le texte est jaune, avec un rectangle rouge autour. Le texte et le rectangle ont tous deux une opacité de 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"
Notez que les guillemets doubles ne sont pas nécessaires si la liste de paramètres ne contient pas d'espaces.
-
Affiche le texte au centre de l'image vidéo :
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2" -
Affiche le texte à une position aléatoire, en changeant de position toutes les 30 secondes :
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)" -
Affiche une ligne de texte défilant de droite à gauche sur la dernière ligne de l'image vidéo. Le fichier LONG_LINE est supposé contenir une seule ligne, sans retour à la ligne.
drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t" -
Affiche le contenu du fichier CREDITS à partir du bas de l'image, en le faisant défiler vers le haut.
drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t" -
Dessine une seule lettre verte "g", au centre de la vidéo d'entrée. La ligne de base du glyphe est placée à mi-hauteur de l'écran.
drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent" -
Affiche le texte pendant 1 seconde toutes les 3 secondes :
drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'" -
Utilise fontconfig pour définir la police. Notez que les deux-points doivent être échappés.
drawtext='fontfile=Linux Libertine O-40\\:style=Semibold:text=FFmpeg' -
Dessine "Test Text" avec une taille de police dépendant de la hauteur de la vidéo.
drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)" -
Affiche la date d'un encodage en temps réel (voir la documentation de la fonction C
strftime) :drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}' -
Affiche un texte en fondu d'entrée et de sortie (apparition/disparition) :
#!/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 }" -
Aligne horizontalement plusieurs textes séparés. Notez que max_glyph_a et la valeur de fontsize sont inclus dans le décalage 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 -
Trace la métadonnée spéciale lavf.image2dec.source_basename sur chaque image si elle existe. Sinon, trace la chaîne "NA". Notez que le demuxer image2 doit avoir l'option -export_path_metadata 1 pour que les champs de métadonnées spéciaux soient disponibles pour les filtres.
drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
Pour plus d'informations sur libfreetype, consultez : http://www.freetype.org/.
Pour plus d'informations sur fontconfig, consultez : http://freedesktop.org/software/fontconfig/fontconfig-user.html.
Pour plus d'informations sur libfribidi, consultez : http://fribidi.org/.
Pour plus d'informations sur libharfbuzz, consultez : https://github.com/harfbuzz/harfbuzz.
11.77 drawvg
Dessine des graphiques vectoriels par-dessus les images vidéo, en exécutant un script écrit dans un langage personnalisé appelé VGS (Vector Graphics Script).
La documentation du langage se trouve dans (drawvg-reference)drawvg - Language Reference. Une version de cette référence avec des exemples de rendu est disponible sur le site de l'auteur.
Les graphiques sont rendus à l'aide de la cario 2D graphics library.
Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-cairo.
11.77.1 Paramètres
Il faut définir soit script, soit file.
s, script
Source du script permettant de dessiner les graphiques.
file
Chemin du fichier à partir duquel charger la source du script.
11.77.2 Pixel Formats
Cairo ne prend en charge que les images RGB ; si la vidéo d'entrée est dans un autre format (comme le YUV 4:2:0), avant d'exécuter le script, la vidéo est convertie dans un format compatible avec Cairo. Il faut ensuite utiliser soit le filtre format, soit l'option -pix_fmt, pour la convertir dans le format attendu en sortie.
11.77.3 Exemples
-
Dessine le contour d'une ellipse.
ffmpeg -i input.webm \ -vf 'drawvg=ellipse (w/2) (h/2) (w/3) (h/3) stroke' \ -pix_fmt yuv420p \ output.webm -
Dessine un carré qui tourne au centre de l'image.
Le script de drawvg se trouve dans le fichier draw.vgs :
translate (w/2) (h/2)
rotate t
rect -100 -100 200 200
setcolor red@0.5
fill
Ensuite :
ffmpeg -i input.webm -vf 'drawvg=file=draw.vgs,format=yuv420p' output.webm
11.78 edgedetect
Détecte et dessine les contours. Ce filtre utilise l'algorithme de détection de contours de Canny.
Ce filtre accepte les options suivantes :
low high
Définit les valeurs de seuil bas et haut utilisées par l'algorithme de seuillage de Canny.
Le seuil haut sélectionne les pixels de contour "forts", qui sont ensuite reliés par 8-connexité aux pixels de contour "faibles" sélectionnés par le seuil bas.
Les valeurs de seuil low et high doivent être choisies dans l'intervalle [0,1], et low doit être inférieure ou égale à high.
La valeur par défaut de low est 20/255, et celle de high est 50/255.
mode
Définit le mode de dessin.
‘wires’
Dessine des fils blancs/gris sur un fond noir.
‘colormix’
Mélange les couleurs pour créer un effet peinture/dessin animé.
‘canny’
Applique le détecteur de contours de Canny à tous les plans sélectionnés.
La valeur par défaut est wires.
planes
Sélectionne les plans à filtrer. Par défaut, tous les plans disponibles sont filtrés.
11.78.1 Exemples
-
Détection de contours standard avec des valeurs personnalisées pour le seuillage par hystérésis :
edgedetect=low=0.1:high=0.4 -
Effet peinture sans seuillage :
edgedetect=mode=colormix:high=0
11.79 elbg
Applique un effet de postérisation à l'aide de l'algorithme ELBG (Enhanced LBG).
Pour chaque image d'entrée, le filtre calcule la correspondance optimale de l'entrée vers la sortie compte tenu de la longueur du dictionnaire de codes, c'est-à-dire du nombre de couleurs de sortie distinctes.
Ce filtre accepte les options suivantes.
codebook_length, l
Définit la longueur du dictionnaire de codes. La valeur doit être un entier positif et représente le nombre de couleurs de sortie distinctes. La valeur par défaut est 256.
nb_steps, n
Définit le nombre maximal d'itérations à appliquer pour calculer la correspondance optimale. Plus la valeur est élevée, meilleur est le résultat, mais plus le temps de calcul est long. La valeur par défaut est 1.
seed, s
Définit une graine aléatoire ; elle doit être un entier compris entre 0 et UINT32_MAX. Si elle n'est pas spécifiée, ou si elle est explicitement définie à -1, le filtre s'efforce d'utiliser une graine aléatoire convenable.
pal8
Définit le pixel format de sortie pal8. Cette option ne fonctionne pas avec une longueur de dictionnaire de codes supérieure à 256. Par défaut, elle est désactivée.
use_alpha
Inclut les valeurs alpha dans le calcul de quantification. Permet de créer des images de sortie palettisées (par exemple PNG8) avec un mélange lissé de plusieurs niveaux alpha.
11.80 entropy
Mesure l'entropie des niveaux de gris dans l'histogramme des canaux de couleur des images vidéo.
Il accepte les paramètres suivants :
mode
Peut être normal ou diff. La valeur par défaut est normal.
Le mode diff mesure l'entropie des valeurs delta de l'histogramme, c'est-à-dire les différences absolues entre valeurs voisines de l'histogramme.
11.81 epx
Applique le filtre d'agrandissement EPX, conçu pour le pixel art.
Il accepte l'option suivante :
n
Définit le facteur de mise à l'échelle : 2 pour 2xEPX, 3 pour 3xEPX. La valeur par défaut est 3.
11.82 eq
Définit la luminosité, le contraste, la saturation et un ajustement approximatif du gamma.
Ce filtre accepte les options suivantes :
contrast
Définit l'expression du contraste. La valeur doit être un nombre à virgule flottante compris entre -1000.0 et 1000.0. La valeur par défaut est "1".
brightness
Définit l'expression de la luminosité. La valeur doit être un nombre à virgule flottante compris entre -1.0 et 1.0. La valeur par défaut est "0".
saturation
Définit l'expression de la saturation. La valeur doit être un nombre à virgule flottante compris entre 0.0 et 3.0. La valeur par défaut est "1".
gamma
Définit l'expression du gamma. La valeur doit être un nombre à virgule flottante compris entre 0.1 et 10.0. La valeur par défaut est "1".
gamma_r
Définit l'expression du gamma pour le rouge. La valeur doit être un nombre à virgule flottante compris entre 0.1 et 10.0. La valeur par défaut est "1".
gamma_g
Définit l'expression du gamma pour le vert. La valeur doit être un nombre à virgule flottante compris entre 0.1 et 10.0. La valeur par défaut est "1".
gamma_b
Définit l'expression du gamma pour le bleu. La valeur doit être un nombre à virgule flottante compris entre 0.1 et 10.0. La valeur par défaut est "1".
gamma_weight
Définit l'expression du poids du gamma. Elle permet de réduire l'effet d'une valeur de gamma élevée sur les zones claires de l'image, par exemple pour éviter qu'elles ne soient suramplifiées et virent au blanc pur. La valeur doit être un nombre à virgule flottante compris entre 0.0 et 1.0. Une valeur de 0.0 désactive complètement la correction gamma, tandis que 1.0 la laisse à sa pleine intensité. La valeur par défaut est "1".
eval
Définit à quel moment les expressions de luminosité, de contraste, de saturation et de gamma sont évaluées.
Elle accepte les valeurs suivantes :
‘init’
évalue les expressions une seule fois, lors de l'initialisation du filtre ou lorsqu'une commande est traitée
‘frame’
évalue les expressions pour chaque image entrante
La valeur par défaut est ‘init’.
Les expressions acceptent les paramètres suivants :
n
numéro de l'image d'entrée, à partir de 0
pos
position en octets du paquet correspondant dans le fichier d'entrée, NAN si non spécifiée ; obsolète, à ne pas utiliser
r
fréquence d'images de la vidéo d'entrée, NAN si la fréquence d'images d'entrée est inconnue
t
horodatage exprimé en secondes, NAN si l'horodatage d'entrée est inconnu
11.82.1 Commandes
Ce filtre prend en charge les commandes suivantes :
contrast
Définit l'expression du contraste.
brightness
Définit l'expression de la luminosité.
saturation
Définit l'expression de la saturation.
gamma
Définit l'expression du gamma.
gamma_r
Définit l'expression gamma_r.
gamma_g
Définit l'expression gamma_g.
gamma_b
Définit l'expression gamma_b.
gamma_weight
Définit l'expression gamma_weight.
La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, la valeur actuelle est conservée.
11.83 erosion
Applique un effet d'érosion à la vidéo.
Ce filtre remplace le pixel par le minimum local (3x3).
Il accepte les options suivantes :
threshold0 threshold1 threshold2 threshold3
Limite le changement maximal pour chaque plan ; la valeur par défaut est 65535. Si elle vaut 0, le plan reste inchangé.
coordinates
Indicateur qui spécifie le pixel de référence. La valeur par défaut est 255, c'est-à-dire que les huit pixels sont utilisés.
La correspondance entre les indicateurs et les coordonnées locales 3x3 est la suivante :
1 2 3 4 5 6 7 8
11.83.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.84 estdif
Désentrelace la vidéo d'entrée ("estdif" signifie "Edge Slope Tracing Deinterlacing Filter").
Filtre purement spatial qui utilise un algorithme de suivi de pente de contour (edge slope tracing) pour interpoler les lignes manquantes. Il accepte les paramètres suivants :
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
frame
Produit une image en sortie pour chaque image.
field
Produit une image en sortie pour chaque champ.
La valeur par défaut est field.
parity
La parité de champ d'image supposée pour la vidéo entrelacée d'entrée. Elle accepte l'une des valeurs suivantes :
tff
Suppose que le champ supérieur est le premier.
bff
Suppose que le champ inférieur est le premier.
auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ supérieur en premier est supposé.
deint
Spécifie quelles images désentrelacer. Accepte l'une des valeurs suivantes :
all
Désentrelace toutes les images.
interlaced
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est all.
rslope
Spécifie le rayon de recherche pour le suivi de pente de contour. La valeur par défaut est 1. La plage autorisée va de 1 à 15.
redge
Spécifie le rayon de recherche pour la meilleure correspondance de contour. La valeur par défaut est 2. La plage autorisée va de 0 à 15.
ecost
Spécifie le coût de contour pour la correspondance de contour. La valeur par défaut est 2. La plage autorisée va de 0 à 50.
mcost
Spécifie le coût médian pour la correspondance de contour. La valeur par défaut est 1. La plage autorisée va de 0 à 50.
dcost
Spécifie le coût de distance pour la correspondance de contour. La valeur par défaut est 1. La plage autorisée va de 0 à 50.
interp
Spécifie l'interpolation utilisée. La valeur par défaut est l'interpolation à 4 points. Elle accepte l'une des valeurs suivantes :
2p
Interpolation à deux points.
4p
Interpolation à quatre points.
6p
Interpolation à six points.
11.84.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.85 exposure
Ajuste l'exposition du flux vidéo.
Ce filtre accepte les options suivantes :
exposure
Définit la correction d'exposition en EV. La plage autorisée va de -3.0 à 3.0 EV. La valeur par défaut est 0 EV.
black
Définit la correction du niveau de noir. La plage autorisée va de -1.0 à 1.0. La valeur par défaut est 0.
11.85.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.86 extractplanes
Extrait les composantes des canaux de couleur du flux vidéo d'entrée vers des flux vidéo en niveaux de gris séparés.
Ce filtre accepte l'option suivante :
planes
Définit le ou les plans à extraire.
Les valeurs disponibles pour planes sont :
‘y’ ‘u’ ‘v’ ‘a’ ‘r’ ‘g’ ‘b’
Choisir des plans non disponibles dans l'entrée provoque une erreur. Cela signifie qu'il est impossible de sélectionner en même temps les plans r, g, b et les plans y, u, v.
11.86.1 Exemples
- Extrait les composantes de canal de couleur luma, u et v de l'image vidéo d'entrée vers 3 sorties en niveaux de gris :
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
Applique un effet de fondu d'entrée/sortie à la vidéo d'entrée.
Il accepte les paramètres suivants :
type, t
Le type d'effet peut être "in" pour un fondu d'entrée, ou "out" pour un fondu de sortie. La valeur par défaut est in.
start_frame, s
Spécifie le numéro de l'image à partir de laquelle appliquer l'effet de fondu. La valeur par défaut est 0.
nb_frames, n
Le nombre d'images pendant lequel dure l'effet de fondu. À la fin du fondu d'entrée, la vidéo de sortie a la même intensité que la vidéo d'entrée. À la fin de la transition de fondu de sortie, la vidéo de sortie est remplie avec la couleur sélectionnée. La valeur par défaut est 25.
alpha
Si la valeur est 1, seul le canal alpha est fondu, s'il en existe un dans l'entrée. La valeur par défaut est 0.
start_time, st
Spécifie l'horodatage (en secondes) de l'image à partir de laquelle appliquer l'effet de fondu. Si start_frame et start_time sont tous deux spécifiés, le fondu démarre au dernier des deux atteints. La valeur par défaut est 0.
duration, d
Le nombre de secondes pendant lequel l'effet de fondu doit durer. À la fin du fondu d'entrée, la vidéo de sortie a la même intensité que la vidéo d'entrée ; à la fin de la transition de fondu de sortie, la vidéo de sortie est remplie avec la couleur sélectionnée. Si duration et nb_frames sont tous deux spécifiés, c'est duration qui est utilisé. La valeur par défaut est 0 (nb_frames est utilisé par défaut).
color, c
Spécifie la couleur du fondu. La valeur par défaut est "black".
11.87.1 Exemples
- Fondu d'entrée sur les 30 premières images de la vidéo :
fade=in:0:30
La commande ci-dessus équivaut à :
fade=t=in:s=0:n=30
-
Fondu de sortie sur les 45 dernières images d'une vidéo de 200 images :
fade=out:155:45 fade=type=out:start_frame=155:nb_frames=45 -
Fondu d'entrée sur les 25 premières images et fondu de sortie sur les 25 dernières images d'une vidéo de 1000 images :
fade=in:0:25, fade=out:975:25 -
Rend les 5 premières images jaunes, puis effectue un fondu d'entrée des images 5 à 24 :
fade=in:5:20:color=yellow -
Fondu d'entrée du canal alpha sur les 25 premières images de la vidéo :
fade=in:0:25:alpha=1 -
Rend les 5.5 premières secondes noires, puis effectue un fondu d'entrée sur 0.5 seconde :
fade=t=in:st=5.5:d=0.5
11.88 feedback
Applique le filtre vidéo feedback.
Ce filtre transmet les images d'entrée rognées à la 2e sortie. À partir de là, elles peuvent être filtrées par d'autres filtres vidéo. Lorsque le filtre reçoit une image en provenance de la 2e entrée, cette image est combinée par-dessus l'image d'origine de la 1re entrée, puis transmise à la 1re sortie.
L'utilisation typique consiste à ne filtrer qu'une partie de l'image.
Ce filtre accepte les options suivantes :
x y
Définit la position du coin supérieur gauche du rognage.
w h
Définit la taille du rognage.
11.88.1 Exemples
-
Applique un flou uniquement à la partie rectangulaire supérieure gauche de l'image vidéo, de taille 100x100, avec le filtre gblur.
[in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin] -
Dessine une boîte noire sur la partie supérieure gauche de l'image vidéo, de taille 100x100, avec le filtre 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] -
Pixellise une partie rectangulaire de l'image vidéo, de taille 100x100, avec le filtre pixelize.
[in][blurin]feedback=x=320:y=240:w=100:h=100[out][blurout];[blurout]pixelize[blurin]
11.89 fftdnoiz
Débruite les images à l'aide d'une FFT 3D (filtrage dans le domaine fréquentiel).
Ce filtre accepte les options suivantes :
sigma
Définit la constante sigma du bruit. Cela détermine l'intensité du débruitage. La valeur par défaut est 1. La plage autorisée va de 0 à 30. L'utilisation d'un sigma très élevé avec un faible chevauchement peut produire des artefacts de blocs.
amount
Définit la quantité de débruitage. Par défaut, tout le bruit détecté est réduit. La valeur par défaut est 1. La plage autorisée va de 0 à 1.
block
Définit la taille du bloc en pixels ; la valeur par défaut est 32, et elle peut aller de 8 à 256.
overlap
Définit le chevauchement des blocs. La valeur par défaut est 0.5. La plage autorisée va de 0.2 à 0.8.
method
Définit la méthode de débruitage. La valeur par défaut est wiener, hard est également possible.
prev
Définit le nombre d'images précédentes à utiliser pour le débruitage. La valeur par défaut est 0.
next
Définit le nombre d'images suivantes à utiliser pour le débruitage. La valeur par défaut est 0.
planes
Définit les plans à filtrer ; par défaut, tous les plans disponibles sont filtrés, à l'exception de l'alpha.
11.90 fftfilt
Applique des expressions arbitraires aux échantillons dans le domaine fréquentiel
dc_Y
Ajuste la valeur dc (gain) du plan de luma de l'image. Le filtre accepte une valeur entière comprise entre 0 et 1000. La valeur par défaut est 0.
dc_U
Ajuste la valeur dc (gain) du 1er plan de chrominance de l'image. Le filtre accepte une valeur entière comprise entre 0 et 1000. La valeur par défaut est 0.
dc_V
Ajuste la valeur dc (gain) du 2e plan de chrominance de l'image. Le filtre accepte une valeur entière comprise entre 0 et 1000. La valeur par défaut est 0.
weight_Y
Définit l'expression de pondération dans le domaine fréquentiel pour le plan de luma.
weight_U
Définit l'expression de pondération dans le domaine fréquentiel pour le 1er plan de chrominance.
weight_V
Définit l'expression de pondération dans le domaine fréquentiel pour le 2e plan de chrominance.
eval
Définit à quel moment les expressions sont évaluées.
Elle accepte les valeurs suivantes :
‘init’
Évalue les expressions une seule fois, lors de l'initialisation du filtre.
‘frame’
Évalue les expressions pour chaque image entrante.
La valeur par défaut est ‘init’.
Ce filtre accepte les variables suivantes :
X Y
Les coordonnées de l'échantillon actuel.
W H
La largeur et la hauteur de l'image.
N
Le numéro de l'image d'entrée, à partir de 0.
WS HS
La taille du tableau FFT pour le traitement horizontal et vertical.
11.90.1 Exemples
-
Passe-haut :
fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)' -
Passe-bas :
fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)' -
Accentuation :
fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)' -
Flou :
fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
11.91 field
Extrait un seul champ d'une image entrelacée à l'aide de l'arithmétique de stride, afin d'éviter de gaspiller du temps CPU. Les images de sortie sont marquées comme non entrelacées.
Ce filtre accepte les options suivantes :
type
Spécifie s'il faut extraire le champ supérieur (si la valeur est 0 ou top) ou le champ inférieur (si la valeur est 1 ou bottom).
11.92 fieldhint
Crée de nouvelles images en copiant les champs supérieur et inférieur d'images environnantes, indiquées sous forme de numéros par le fichier d'indices.
hint
Définit le fichier contenant les indices : numéros d'images absolus/relatifs.
Il doit y avoir une ligne pour chaque image d'un clip. Chaque ligne doit contenir deux numéros séparés par une virgule, éventuellement suivis de - ou +. Les numéros fournis sur chaque ligne du fichier ne peuvent pas sortir de l'intervalle [N-1,N+1], où N est le numéro de l'image en cours, en mode absolute, ni de l'intervalle [-1, 1] en mode relative. Le premier numéro indique de quelle image prélever le champ supérieur, et le second de quelle image prélever le champ inférieur.
Si le numéro est suivi de +, l'image de sortie est marquée comme entrelacée ; si elle est suivie de -, elle est marquée comme progressive ; sinon, elle est marquée comme l'image d'entrée. Si elle est suivie de t, l'image de sortie n'utilise que le champ supérieur, et dans le cas de b, elle n'utilise que le champ inférieur. Si une ligne commence par # ou ;, cette ligne est ignorée.
mode
Peut être absolute, relative ou pattern. La valeur par défaut est absolute. Le mode pattern est identique au mode relative, sauf qu'à la dernière entrée du fichier, s'il reste davantage d'images à traiter que le fichier hint n'en contient, la lecture reprend depuis le début.
Exemple des premières lignes d'un fichier hint pour le mode 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
Filtre d'appariement de champs pour le télécinéma inverse. Il est destiné à reconstruire les images progressives à partir d'un flux téléciné. Ce filtre ne supprime pas les images dupliquées ; pour obtenir un télécinéma inverse complet, fieldmatch doit donc être suivi, dans le filtergraph, d'un filtre de décimation tel que decimate.
La séparation entre l'appariement de champs et la décimation est notamment motivée par la possibilité d'insérer, entre les deux, un filtre de désentrelacement de repli. Si la source mélange du contenu téléciné et du contenu réellement entrelacé, fieldmatch n'est pas en mesure d'apparier les champs pour les parties entrelacées. Ces images restées en peigne sont toutefois marquées comme entrelacées, et peuvent donc être désentrelacées par un filtre ultérieur tel que yadif, avant la décimation.
Outre les diverses options de configuration, fieldmatch peut accepter un second flux optionnel, activé via l'option ppsrc. Si elle est activée, la reconstruction des images se base sur les champs et les images de ce second flux. Cela permet de prétraiter la première entrée afin d'aider les divers algorithmes du filtre, tout en conservant une sortie sans perte (à condition que les champs soient correctement appariés). En général, un débruiteur sensible aux champs, ou des ajustements de luminosité/contraste, peuvent aider.
Notez que ce filtre utilise les mêmes algorithmes que TIVTC/TFM (projet AviSynth) et VIVTC/VFM (projet VapourSynth). Ce dernier est un clone léger de TFM, sur lequel fieldmatch est basé. Bien que la sémantique et l'usage soient très proches, certains comportements et noms d'options peuvent différer.
Le filtre decimate ne fonctionne pour l'instant qu'avec une entrée à fréquence d'images constante. Si votre entrée mélange du contenu téléciné (30fps) et du contenu progressif à une fréquence d'images plus basse comme 24fps, utilisez la chaîne de filtres suivante pour produire le flux cfr nécessaire : dejudder,fps=30000/1001,fieldmatch,decimate.
Ce filtre accepte les options suivantes :
order
Spécifie l'ordre de champ supposé du flux d'entrée. Les valeurs disponibles sont :
‘auto’
Détecte automatiquement la parité (utilise la valeur de parité interne de FFmpeg).
‘bff’
Suppose que le champ inférieur est le premier.
‘tff’
Suppose que le champ supérieur est le premier.
Notez qu'il est parfois recommandé de ne pas se fier à la parité annoncée par le flux.
La valeur par défaut est auto.
mode
Définit le mode ou la stratégie d'appariement à utiliser. Le mode pc est le plus sûr, en ce sens qu'il ne risque pas de créer de saccades dues à des images dupliquées lorsque cela est possible ; mais en cas de mauvais montages ou de champs mélangés, il finit par produire des images en peigne alors qu'une bonne correspondance pourrait en réalité exister. À l'inverse, le mode pcn_ub est le plus risqué en matière de saccades, mais trouve presque toujours une bonne image lorsqu'il en existe une. Les autres valeurs se situent toutes quelque part entre pc et pcn_ub, en matière de risque de saccades et de création d'images dupliquées, face à la capacité de trouver de bonnes correspondances dans les sections comportant de mauvais montages, des champs orphelins, des champs mélangés, etc.
Plus de détails sur p/c/n/u/b sont disponibles dans la section p/c/n/u/b meaning.
Les valeurs disponibles sont :
‘pc’
Appariement à 2 voies (p/c)
‘pc_n’
Appariement à 2 voies, avec tentative d'une 3e correspondance si l'image est encore en peigne (p/c + n)
‘pc_u’
Appariement à 2 voies, avec tentative d'une 3e correspondance (même ordre) si l'image est encore en peigne (p/c + u)
‘pc_n_ub’
Appariement à 2 voies, avec tentative d'une 3e correspondance si l'image est encore en peigne, puis d'une 4e/5e correspondance si elle l'est toujours (p/c + n + u/b)
‘pcn’
Appariement à 3 voies (p/c/n)
‘pcn_ub’
Appariement à 3 voies, avec tentative d'une 4e/5e correspondance si les 3 correspondances d'origine sont toutes détectées comme étant en peigne (p/c/n + u/b)
Les parenthèses en fin de ligne indiquent les correspondances qui seraient utilisées pour ce mode en supposant order=tff (et field sur auto ou top).
En matière de vitesse, le mode pc est de loin le plus rapide, et pcn_ub le plus lent.
La valeur par défaut est pc_n.
ppsrc
Marque le flux d'entrée principal comme une entrée prétraitée, et active le flux d'entrée secondaire comme source propre dans laquelle prélever les champs. Voir l'introduction du filtre pour plus de détails. Cela ressemble à la fonctionnalité clip2 de VFM/TFM.
La valeur par défaut est 0 (désactivé).
field
Définit le champ à partir duquel effectuer l'appariement. Il est recommandé de lui donner la même valeur qu'à order, sauf en cas d'échecs d'appariement avec ce réglage. Dans certaines circonstances, changer le champ utilisé comme référence d'appariement peut avoir un impact important sur les performances d'appariement. Les valeurs disponibles sont :
‘auto’
Automatique (même valeur que order).
‘bottom’
Effectue l'appariement à partir du champ inférieur.
‘top’
Effectue l'appariement à partir du champ supérieur.
La valeur par défaut est auto.
mchroma
Définit si la chrominance est incluse ou non dans les comparaisons d'appariement. Dans la plupart des cas, il est recommandé de laisser cette option activée. Il convient de la définir à 0 uniquement si le clip présente de gros problèmes de chrominance, comme un effet arc-en-ciel important ou d'autres artefacts. La définir à 0 peut aussi permettre d'accélérer le traitement, au prix d'une certaine précision.
La valeur par défaut est 1.
y0 y1
Ces options définissent une bande d'exclusion qui exclut les lignes situées entre y0 et y1 de la décision d'appariement de champs. Une bande d'exclusion peut servir à ignorer des sous-titres, un logo, ou d'autres éléments susceptibles de perturber l'appariement. y0 définit la ligne de balayage de départ et y1 la ligne de fin ; toutes les lignes comprises entre y0 et y1 (y0 et y1 inclus) sont ignorées. Donner la même valeur à y0 et y1 désactive cette fonctionnalité. La valeur par défaut de y0 et y1 est 0.
scthresh
Définit le seuil de détection de changement de scène, sous forme de pourcentage du changement maximal sur le plan de luma. De bonnes valeurs se situent dans la plage [8.0, 14.0]. La détection de changement de scène n'a de sens que si combmatch=sc. La plage de scthresh est [0.0, 100.0].
La valeur par défaut est 12.0.
combmatch
Lorsque combatch n'est pas none, fieldmatch tient compte des scores de peignage des correspondances pour décider quelle correspondance retenir comme correspondance finale. Les valeurs disponibles sont :
‘none’
Aucune correspondance finale basée sur les scores de peignage.
‘sc’
Les scores de peignage ne sont utilisés que lorsqu'un changement de scène est détecté.
‘full’
Utilise les scores de peignage en permanence.
La valeur par défaut est sc.
combdbg
Force fieldmatch à calculer les métriques de peignage pour certaines correspondances et à les afficher. Ce réglage est connu sous le nom de micout dans le vocabulaire TFM/VFM. Les valeurs disponibles sont :
‘none’
Aucun calcul forcé.
‘pcn’
Force les calculs p/c/n.
‘pcnub’
Force les calculs p/c/n/u/b.
La valeur par défaut est none.
cthresh
Il s'agit du seuil de peignage de zone utilisé pour la détection des images en peigne. Il contrôle essentiellement à quel point le peignage doit être "fort" ou "visible" pour être détecté. Des valeurs plus élevées signifient que le peignage doit être plus visible, et des valeurs plus petites signifient qu'un peignage moins visible ou moins fort peut malgré tout être détecté. Les réglages valides vont de -1 (chaque pixel est détecté comme étant en peigne) à 255 (aucun pixel n'est détecté comme étant en peigne). Il s'agit essentiellement d'une valeur de différence de pixels. Une bonne plage est [8, 12].
La valeur par défaut est 9.
chroma
Définit si la chrominance est prise en compte ou non dans la décision de détection des images en peigne. Ne désactivez cette option que si votre source présente des problèmes de chrominance (effet arc-en-ciel, etc.) qui posent problème à la détection des images en peigne lorsque la chrominance est activée. En réalité, utiliser chroma=0 est généralement plus fiable, sauf dans le cas où le peignage de la source ne concerne que la chrominance.
La valeur par défaut est 0.
blockx blocky
Définissent respectivement la taille, sur l'axe x et sur l'axe y, de la fenêtre utilisée lors de la détection des images en peigne. Cela concerne la taille de la zone dans laquelle un nombre de pixels combpel doit être détecté comme étant en peigne pour qu'une image soit déclarée en peigne. Voir la description du paramètre combpel pour plus d'informations. Les valeurs possibles sont n'importe quel nombre puissance de 2, de 4 à 512.
La valeur par défaut est 16.
combpel
Le nombre de pixels en peigne, à l'intérieur de n'importe lequel des blocs de taille blocky par blockx de l'image, nécessaire pour que l'image soit détectée comme étant en peigne. Alors que cthresh contrôle à quel point le peignage doit être "visible", ce réglage contrôle "la quantité" de peignage devant être présente dans une zone localisée quelconque (une fenêtre définie par les réglages blockx et blocky) de l'image. La valeur minimale est 0 et la valeur maximale est blocky x blockx (valeur à partir de laquelle aucune image n'est jamais détectée comme étant en peigne). Ce réglage est connu sous le nom de MI dans le vocabulaire TFM/VFM.
La valeur par défaut est 80.
11.93.1 Signification de p/c/n/u/b
11.93.1.1 p/c/n
Supposons le flux téléciné suivant :
Top fields: 1 2 2 3 4
Bottom fields: 1 2 3 4 4
Les nombres correspondent à l'image progressive à laquelle les champs se rapportent. Ici, les deux premières images sont progressives, les 3e et 4e sont peignées, et ainsi de suite.
Lorsque fieldmatch est configuré pour effectuer une mise en correspondance à partir du bas (field=bottom), voici comment ce flux d'entrée est transformé :
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
Comme résultat du field matching, on constate que certaines images sont dupliquées. Pour effectuer un télécinéma inverse complet, il faut recourir à un filtre de décimation après cette opération. Voir par exemple le filtre decimate.
La même opération, cette fois avec une mise en correspondance à partir des champs du haut (field=top), donne ceci :
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
Dans ces exemples, on voit ce que signifient p, c et n ; en substance, ils se rapportent à l'image et au champ de parité opposée :
- p correspond au champ de parité opposée dans l'image précédente
- c correspond au champ de parité opposée dans l'image courante
- n correspond au champ de parité opposée dans l'image suivante
11.93.1.2 u/b
La mise en correspondance u et b est un peu particulière dans la mesure où elle se fait à partir de l'indicateur de parité opposée. Dans les exemples suivants, on suppose que l'on est en train de faire correspondre la 2e image (Top:2, bottom:2). Selon la correspondance, un ’x’ est placé au-dessus et en dessous de chaque champ mis en correspondance.
Avec la mise en correspondance bottom (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
Avec la mise en correspondance top (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 Exemples
IVTC simple d'un flux téléciné avec le champ du haut en premier :
fieldmatch=order=tff:combmatch=none, decimate
IVTC avancé, avec repli sur yadif pour les images encore peignées :
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
11.94 fieldorder
Transforme l'ordre des champs de la vidéo d'entrée.
Il accepte les paramètres suivants :
order
L'ordre des champs de sortie. Les valeurs valides sont tff pour le champ du haut en premier ou bff pour le champ du bas en premier.
La valeur par défaut est ‘tff’.
La transformation s'effectue en décalant le contenu de l'image vers le haut ou vers le bas d'une ligne, et en remplissant la ligne restante avec un contenu d'image approprié. Cette méthode est cohérente avec la plupart des convertisseurs d'ordre de champs utilisés en diffusion.
Si la vidéo d'entrée n'est pas signalée comme entrelacée, ou si elle est déjà signalée comme ayant l'ordre de champs de sortie requis, alors ce filtre n'altère pas la vidéo entrante.
Il est très utile pour la conversion vers ou depuis un support PAL DV, dont le champ du bas est le premier.
Par exemple :
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
11.95 fillborders
Remplit les bordures de la vidéo d'entrée, sans changer les dimensions du flux vidéo. Il arrive qu'une vidéo comporte des artefacts sur les quatre bords, et l'on peut ne pas vouloir rogner la vidéo d'entrée pour conserver une taille multiple d'un certain nombre.
Ce filtre accepte les options suivantes :
left
Nombre de pixels à remplir depuis le bord gauche.
right
Nombre de pixels à remplir depuis le bord droit.
top
Nombre de pixels à remplir depuis le bord du haut.
bottom
Nombre de pixels à remplir depuis le bord du bas.
mode
Définit le mode de remplissage.
Il accepte les valeurs suivantes :
‘smear’
remplit les pixels en utilisant les pixels les plus externes
‘mirror’
remplit les pixels par effet miroir (symétrie demi-échantillon)
‘fixed’
remplit les pixels avec une valeur constante
‘reflect’
remplit les pixels par reflet (symétrie pleine échantillon)
‘wrap’
remplit les pixels par enroulement
‘fade’
fait un fondu des pixels vers une valeur constante
‘margins’
remplit les pixels en haut et en bas avec des moyennes pondérées des pixels proches des bords
La valeur par défaut est smear.
color
Définit la couleur des pixels en mode fixed ou fade. La valeur par défaut est black.
11.95.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, elle est conservée à sa valeur actuelle.
11.96 find_rect
Recherche un objet rectangulaire dans la vidéo d'entrée.
L'objet à rechercher doit être spécifié comme une image gray8 indiquée avec l'option object.
Pour chaque correspondance possible, un score est calculé. Si le score atteint le seuil spécifié, l'objet est considéré comme trouvé.
Si la vidéo d'entrée contient plusieurs occurrences de l'objet, le filtre n'en trouvera qu'une seule.
Lorsqu'un objet est trouvé, les entrées de métadonnées suivantes sont définies dans l'image correspondante :
lavfi.rect.w
largeur de l'objet
lavfi.rect.h
hauteur de l'objet
lavfi.rect.x
position x de l'objet
lavfi.rect.y
position y de l'objet
lavfi.rect.score
score de correspondance de l'objet trouvé
Il accepte les options suivantes :
object
Chemin de l'image de l'objet, qui doit être au format gray8.
threshold
Seuil de détection, exprimé sous forme de nombre décimal dans la plage 0-1.
Une valeur de seuil de 0.01 signifie que seules les correspondances exactes sont retenues, un seuil de 0.99 signifie que presque tout correspond.
La valeur par défaut est 0.5.
mipmaps
Nombre de mipmaps, la valeur par défaut est 3.
xmin, ymin, xmax, ymax
Spécifie le rectangle dans lequel effectuer la recherche.
discard
Rejette les images où l'objet n'est pas détecté. Désactivé par défaut.
11.96.1 Exemples
-
Recouvrir un objet rectangulaire par l'image fournie d'une vidéo donnée en utilisant
ffmpeg:ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv -
Trouver la position d'un objet dans chaque image en utilisant
ffprobeet l'écrire dans un fichier journal :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
Remplit, par d'autres valeurs, une zone dont les composants de pixel ont la même valeur.
Il accepte les options suivantes :
x
Définit la coordonnée x du pixel.
y
Définit la coordonnée y du pixel.
s0
Définit la valeur du composant source #0.
s1
Définit la valeur du composant source #1.
s2
Définit la valeur du composant source #2.
s3
Définit la valeur du composant source #3.
d0
Définit la valeur du composant destination #0.
d1
Définit la valeur du composant destination #1.
d2
Définit la valeur du composant destination #2.
d3
Définit la valeur du composant destination #3.
11.98 format
Convertit la vidéo d'entrée vers l'un des pixel formats spécifiés. Libavfilter essaiera d'en choisir un adapté en entrée du filtre suivant.
Il accepte les paramètres suivants :
pix_fmts
Une liste de noms de pixel formats séparés par ’|’, telle que "pix_fmts=yuv420p|monow|rgb24".
color_spaces
Une liste de noms d'espaces colorimétriques séparés par ’|’, telle que "color_spaces=bt709|bt470bg|bt2020nc".
color_ranges
Une liste de noms de plages de couleurs séparés par ’|’, telle que "color_ranges=tv|pc".
alpha_modes
Une liste de noms de plages de couleurs séparés par ’|’, telle que "alpha_modes=straight|premultiplied".
11.98.1 Exemples
- Convertir la vidéo d'entrée au format yuv420p
format=pix_fmts=yuv420p
Convertir la vidéo d'entrée vers l'un des formats de la liste
format=pix_fmts=yuv420p|yuv444p|yuv410p
11.99 fps
Convertit la vidéo à la fréquence d'images constante spécifiée en dupliquant ou en supprimant des images selon les besoins.
Il accepte les paramètres suivants :
fps
La fréquence d'images de sortie souhaitée. Elle accepte des expressions contenant les constantes suivantes :
‘source_fps’
La fréquence d'images de l'entrée
‘ntsc’
Fréquence d'images NTSC de 30000/1001
‘pal’
Fréquence d'images PAL de 25.0
‘film’
Fréquence d'images film de 24.0
‘ntsc_film’
Fréquence d'images NTSC-film de 24000/1001
La valeur par défaut est 25.
start_time
Suppose que le premier PTS doit être la valeur donnée, en secondes. Cela permet le remplissage/découpage au début du flux. Par défaut, aucune hypothèse n'est faite sur le PTS attendu de la première image, donc aucun remplissage ni découpage n'est effectué. Par exemple, cela peut être défini à 0 pour remplir le début avec des duplicatas de la première image si un flux vidéo démarre après le flux audio, ou pour découper toute image dont le PTS est négatif.
round
Méthode d'arrondi de l'horodatage (PTS).
Les valeurs possibles sont :
zero
arrondi vers 0
inf
arrondi en s'éloignant de 0
down
arrondi vers -infini
up
arrondi vers +infini
near
arrondi au plus proche
La valeur par défaut est near.
eof_action
Action effectuée lors de la lecture de la dernière image.
Les valeurs possibles sont :
round
Utilise la même méthode d'arrondi de l'horodatage que celle utilisée pour les autres images.
pass
Laisse passer la dernière image si la durée d'entrée n'a pas encore été atteinte.
La valeur par défaut est round.
Les options peuvent également être spécifiées sous forme de chaîne à plat : fps[:start_time[:round]].
Voir aussi le filtre setpts.
11.99.1 Exemples
-
Un usage typique afin de régler les fps à 25 :
fps=fps=25 -
Règle les fps à 24, en utilisant l'abréviation et une méthode d'arrondi au plus proche :
fps=fps=film:round=near
11.100 framepack
Empaquette deux flux vidéo différents dans une vidéo stéréoscopique, en définissant les métadonnées appropriées sur les codecs pris en charge. Les deux vues doivent avoir la même taille et la même fréquence d'images, et le traitement s'arrêtera lorsque la vidéo la plus courte se termine. Notez que vous pouvez ajuster commodément les propriétés des vues avec les filtres scale et fps.
Il accepte les paramètres suivants :
format
Le format d'empaquetage souhaité. Les valeurs prises en charge sont :
sbs
Les vues sont côte à côte (par défaut).
tab
Les vues sont l'une au-dessus de l'autre.
lines
Les vues sont empaquetées par ligne.
columns
Les vues sont empaquetées par colonne.
frameseq
Les vues sont entrelacées temporellement.
Quelques exemples :
# 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
Change la fréquence d'images en interpolant de nouvelles images vidéo de sortie à partir des images source.
Ce filtre n'est pas conçu pour fonctionner correctement avec un média entrelacé. Si vous souhaitez changer la fréquence d'images d'un média entrelacé, vous devez désentrelacer avant ce filtre et ré-entrelacer après ce filtre.
Voici une description des options acceptées.
fps
Spécifie les images par seconde de sortie. Cette option peut également être spécifiée comme une simple valeur. La valeur par défaut est 50.
interp_start
Spécifie le début d'une plage où l'image de sortie sera créée comme une interpolation linéaire de deux images. La plage est [0-255], la valeur par défaut est 15.
interp_end
Spécifie la fin d'une plage où l'image de sortie sera créée comme une interpolation linéaire de deux images. La plage est [0-255], la valeur par défaut est 240.
scene
Spécifie le niveau auquel un changement de scène est détecté, sous forme de valeur entre 0 et 100 indiquant une nouvelle scène ; une valeur basse reflète une faible probabilité que l'image courante introduise une nouvelle scène, tandis qu'une valeur plus élevée signifie que l'image courante est plus susceptible d'en être une. La valeur par défaut est 8.2.
flags
Spécifie les indicateurs influençant le processus du filtre.
La valeur disponible pour flags est :
scene_change_detect, scd
Active la détection de changement de scène en utilisant la valeur de l'option scene. Cet indicateur est activé par défaut.
11.102 frc_amf
Double la fréquence d'images, en utilisant le Frame Rate Converter (FRC) fourni par la bibliothèque AMD Advanced Media Framework pour l'accélération matérielle.
Le filtre accepte les options suivantes :
engine_type
Spécifie le moteur utilisé pour exécuter les shaders.
‘dx11’
DirectX 11.
‘dx12’
DirectX 12 (valeur par défaut).
enable
Valeur booléenne : active/désactive le FRC. Valeur dynamique, peut être modifiée à l'exécution sans réinitialiser le filtre. (Valeur par défaut : activé).
fallback_mode
Comportement de repli en cas de faible confiance d'interpolation.
‘duplicate’
Duplique l'image.
‘blend’
Mélange deux images ensemble (valeur par défaut).
indicator
Valeur booléenne : affiche le carré indicateur FRC dans le coin supérieur gauche de la vidéo (valeur par défaut : désactivé).
profile
Niveau de recherche de mouvement hiérarchique.
‘low’
Moins de niveaux de recherche de mouvement hiérarchique. Recommandé uniquement pour les résolutions extrêmement basses.
‘high’
Recommandé pour toute résolution jusqu'à 1440p. (valeur par défaut)
‘super’
Plus de niveaux de recherche de mouvement hiérarchique. Recommandé pour les résolutions de 1440p ou plus.
mv_search_mode
Mode de performance de la recherche de mouvement.
‘native’
Effectue la recherche de mouvement sur la pleine résolution des images source.
‘performance’
Effectue la recherche de mouvement sur les images source réduites. Recommandé pour les APU ou les GPU d'entrée de gamme pour de meilleures performances.
use_future_frame
Valeur booléenne : active la dépendance à une image future, améliore la qualité au prix de la latence (valeur par défaut : activé).
11.103 framestep
Sélectionne une image toutes les N images.
Ce filtre accepte l'option suivante :
step
Sélectionne l'image après chaque step images. Les valeurs autorisées sont des entiers positifs supérieurs à 0. La valeur par défaut est 1.
11.104 freezedetect
Détecte le gel de la vidéo.
Ce filtre consigne un message et définit des métadonnées d'image lorsqu'il détecte que la vidéo d'entrée ne présente aucun changement significatif de contenu pendant une durée spécifiée. La détection de gel vidéo calcule la moyenne de la différence absolue moyenne de tous les composants des images vidéo et la compare à un plancher de bruit.
Les instants et durées affichés sont exprimés en secondes. La clé de métadonnées lavfi.freezedetect.freeze_start est définie sur la première image dont l'horodatage égale ou dépasse la durée de détection, et elle contient l'horodatage de la première image du gel. Les clés de métadonnées lavfi.freezedetect.freeze_duration et lavfi.freezedetect.freeze_end sont définies sur la première image après le gel.
Le filtre accepte les options suivantes :
noise, n
Définit la tolérance de bruit. Peut être spécifiée en dB (si "dB" est ajouté à la valeur spécifiée) ou comme un rapport de différence entre 0 et 1. La valeur par défaut est -60dB, soit 0.001.
duration, d
Définit la durée de gel avant notification (par défaut 2 secondes).
11.105 freezeframes
Fige des images vidéo.
Ce filtre fige des images vidéo en utilisant une image de la 2e entrée.
Le filtre accepte les options suivantes :
first
Définit le numéro de la première image à partir de laquelle démarrer le gel.
last
Définit le numéro de la dernière image à laquelle terminer le gel.
replace
Définit le numéro de l'image de la 2e entrée qui sera utilisée à la place des images remplacées.
11.106 frei0r
Applique un effet frei0r à la vidéo d'entrée.
Pour activer la compilation de ce filtre, vous devez installer l'en-tête frei0r et configurer FFmpeg avec --enable-frei0r.
Il accepte les paramètres suivants :
filter_name
Le nom de l'effet frei0r à charger. Si la variable d'environnement FREI0R_PATH est définie, l'effet frei0r est recherché dans chacun des répertoires spécifiés par la liste séparée par des deux-points dans FREI0R_PATH. Sinon, les chemins standards de frei0r sont recherchés, dans cet ordre : HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/, /usr/lib/frei0r-1/.
filter_params
Une liste de paramètres séparés par ’|’ à transmettre à l'effet frei0r.
Un paramètre d'effet frei0r peut être un booléen (sa valeur est soit "y" soit "n"), un double, une couleur (spécifiée sous la forme R/G/B, où R, G et B sont des nombres à virgule flottante compris entre 0.0 et 1.0 inclus) ou une description de couleur telle que spécifiée dans la section "Color" du manuel ffmpeg-utils (ffmpeg-utils), une position (spécifiée sous la forme X/Y, où X et Y sont des nombres à virgule flottante) et/ou une chaîne.
Le nombre et les types de paramètres dépendent de l'effet chargé. Si un paramètre d'effet n'est pas spécifié, la valeur par défaut est utilisée.
11.106.1 Exemples
-
Appliquer l'effet distort0r, en définissant les deux premiers paramètres double :
frei0r=filter_name=distort0r:filter_params=0.5|0.01 -
Appliquer l'effet colordistance, en prenant une couleur comme premier paramètre :
frei0r=colordistance:0.2/0.3/0.4 frei0r=colordistance:violet frei0r=colordistance:0x112233 -
Appliquer l'effet perspective, en spécifiant les positions d'image en haut à gauche et en haut à droite :
frei0r=perspective:0.2/0.2|0.8/0.2
Pour plus d'informations, voir http://frei0r.dyne.org
11.106.2 Commandes
Ce filtre prend en charge l'option filter_params comme commande.
11.107 fspp
Applique un post-traitement rapide et simple. C'est une version plus rapide de spp.
Il divise la (I)DCT en passes horizontale/verticale. Contrairement au filtre de post-traitement simple, l'une d'elles est effectuée une fois par bloc, et non par pixel. Cela permet une vitesse bien plus élevée.
Le filtre accepte les options suivantes :
quality
Définit la qualité. Cette option définit le nombre de niveaux de moyennage. Elle accepte un entier dans la plage 4-5. La valeur par défaut est 4.
qp
Force un paramètre de quantification constant. Il accepte un entier dans la plage 0-63. S'il n'est pas défini, le filtre utilisera le QP du flux vidéo (si disponible).
strength
Définit la force du filtre. Il accepte un entier dans la plage -15 à 32. Des valeurs plus basses donnent plus de détails mais aussi plus d'artefacts, tandis que des valeurs plus hautes rendent l'image plus lisse mais aussi plus floue. La valeur par défaut est 0 − optimal en PSNR.
use_bframe_qp
Active l'utilisation du QP des B-Frames si définie à 1. Utiliser cette option peut provoquer du scintillement, car les B-Frames ont souvent un QP plus élevé. La valeur par défaut est 0 (non activé).
11.108 fsync
Synchronise les images vidéo avec une correspondance externe issue d'un fichier.
Pour chaque PTS d'entrée donné dans le fichier de correspondance, il supprime ou crée autant d'images que nécessaire pour recréer la séquence d'images de sortie donnée dans le fichier de correspondance.
Ce filtre est utile pour recréer les images de sortie d'une conversion de fréquence d'images effectuée par le filtre fps, enregistrées dans un fichier de correspondance à l'aide de l'option ffmpeg -stats_mux_pre, et pour effectuer un traitement supplémentaire sur les images correspondantes, par exemple une comparaison de qualité.
Chaque ligne du fichier de correspondance doit contenir trois éléments par image d'entrée : le PTS d'entrée (décimal), le PTS de sortie (décimal) et le TIMEBASE de sortie (décimal/décimal), séparés par un espace. Ce format de fichier correspond à la sortie de -stats_mux_pre_fmt="{ptsi} {pts} {tb}".
Le filtre suppose que le fichier de correspondance est trié par PTS d'entrée croissant.
Le filtre accepte les options suivantes :
file, f
Le nom du fichier de correspondance à utiliser.
Exemple :
# 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
Applique un filtre de flou gaussien.
Le filtre accepte les options suivantes :
sigma
Définit le sigma horizontal, écart type du flou gaussien. La valeur par défaut est 0.5.
steps
Définit le nombre d'étapes pour l'approximation gaussienne. La valeur par défaut est 1.
planes
Définit les plans à filtrer. Par défaut, tous les plans sont filtrés.
sigmaV
Définit le sigma vertical ; s'il est négatif, il sera égal à sigma. La valeur par défaut est -1.
11.109.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, elle est conservée à sa valeur actuelle.
11.110 geq
Applique une équation générique à chaque pixel.
Le filtre accepte les options suivantes :
lum_expr, lum
Définit l'expression de luma.
cb_expr, cb
Définit l'expression de chrominance bleue.
cr_expr, cr
Définit l'expression de chrominance rouge.
alpha_expr, a
Définit l'expression alpha.
red_expr, r
Définit l'expression rouge.
green_expr, g
Définit l'expression verte.
blue_expr, b
Définit l'expression bleue.
L'espace colorimétrique est sélectionné selon les options spécifiées. Si l'une des options lum_expr, cb_expr ou cr_expr est spécifiée, le filtre sélectionnera automatiquement un espace colorimétrique YCbCr. Si l'une des options red_expr, green_expr ou blue_expr est spécifiée, il sélectionnera un espace colorimétrique RGB.
Si l'une des expressions de chrominance n'est pas définie, elle se replie sur l'autre. Si aucune expression alpha n'est spécifiée, elle sera évaluée à une valeur opaque. Si aucune des expressions de chrominance n'est spécifiée, elles seront évaluées à l'expression de luma.
Les expressions peuvent utiliser les variables et fonctions suivantes :
N
Le numéro séquentiel de l'image filtrée, à partir de 0.
X Y
Les coordonnées de l'échantillon courant.
W H
La largeur et la hauteur de l'image.
SW SH
Échelle de largeur et de hauteur selon le plan en cours de filtrage. C'est le rapport entre le nombre de pixels du plan de luma correspondant et ceux du plan courant. Par exemple, pour YUV4:2:0 les valeurs sont 1,1 pour le plan de luma, et 0.5,0.5 pour les plans de chrominance.
T
Temps de l'image courante, exprimé en secondes.
p(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) du plan courant.
lum(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) du plan de luma.
cb(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) du plan de chrominance bleue. Renvoie 0 s'il n'existe pas de tel plan.
cr(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) du plan de chrominance rouge. Renvoie 0 s'il n'existe pas de tel plan.
r(x, y) g(x, y) b(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) du composant rouge/vert/bleu. Renvoie 0 s'il n'existe pas de tel composant.
alpha(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) du plan alpha. Renvoie 0 s'il n'existe pas de tel plan.
psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y), bsum(x,y), alphasum(x,y)
Somme des valeurs d'échantillon dans le rectangle de (0,0) à (x,y) ; cela permet d'obtenir des sommes d'échantillons à l'intérieur d'un rectangle. Voir les fonctions sans le suffixe sum.
interpolation
Définit l'une des méthodes d'interpolation :
nearest, n bilinear, b
La valeur par défaut est bilinear.
Pour les fonctions, si x et y sont en dehors de la zone, la valeur sera automatiquement ramenée au bord le plus proche.
Notez que ce filtre peut utiliser plusieurs threads, auquel cas chaque slice aura son propre état d'expression. Si vous souhaitez utiliser un seul état d'expression parce que vos expressions dépendent d'un état précédent, vous devez alors limiter le nombre de threads du filtre à 1.
11.110.1 Exemples
-
Retourne l'image horizontalement :
geq=p(W-X\,Y) -
Génère une onde sinusoïdale bidimensionnelle, avec un angle de
PI/3et une longueur d'onde de 100 pixels :geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128 -
Génère une lumière mouvante énigmatique et fantaisiste :
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 -
Génère rapidement un effet de relief :
format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2' -
Modifie les composantes RGB selon la position du pixel :
geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)' -
Crée un dégradé radial de même taille que l'entrée (voir aussi le filtre 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 les artefacts de bandes qui apparaissent parfois dans les zones presque plates lors de la troncature à une profondeur de couleur de 8 bits. Interpole les dégradés qui devraient se trouver à l'emplacement des bandes, puis leur applique un tramage.
Ce filtre est conçu uniquement pour la lecture. Ne l'utilisez pas avant une compression avec perte, car la compression tend à faire disparaître le tramage et à faire réapparaître les bandes.
Il accepte les paramètres suivants :
strength
Quantité maximale dont le filtre modifie un pixel donné. C'est également le seuil de détection des zones presque plates. Les valeurs acceptées vont de .51 à 64 ; la valeur par défaut est 1.2. Les valeurs hors limites sont ramenées à la plage valide.
radius
Voisinage utilisé pour ajuster le dégradé. Un radius plus grand rend les dégradés plus lisses, mais empêche aussi le filtre de modifier les pixels proches des zones détaillées. Les valeurs acceptées sont 8-32 ; la valeur par défaut est 16. Les valeurs hors limites sont ramenées à la plage valide.
Les options peuvent également être indiquées sous forme de chaîne compacte : strength[:radius]
11.111.1 Exemples
-
Applique le filtre avec une strength de
3.5et un radius de8:gradfun=3.5:8 -
Indique le radius, en omettant strength (qui reviendra à la valeur par défaut) :
gradfun=radius=8
11.112 graphmonitor
Affiche diverses statistiques du filtergraph.
Ce filtre permet de déboguer un filtergraph complet, notamment les problèmes liés aux liens qui se remplissent d'images mises en file d'attente.
Le filtre accepte les options suivantes :
size, s
Définit la taille de sortie vidéo. La valeur par défaut est hd720.
opacity, o
Définit l'opacité de la vidéo. La valeur par défaut est 0.9. La plage autorisée va de 0 à 1.
mode, m
Définit les indicateurs du mode de sortie.
Les valeurs disponibles pour les indicateurs sont :
‘full’
Aucun filtrage. Valeur par défaut.
‘compact’
Affiche uniquement les filtres ayant des images en file d'attente.
‘nozero’
Affiche uniquement les filtres dont les statistiques sont non nulles.
‘noeof’
Affiche uniquement les filtres dont l'état n'est pas eof.
‘nodisabled’
Affiche uniquement les filtres qui sont activés dans la timeline.
flags, f
Définit les indicateurs qui activent les statistiques affichées dans la vidéo.
Les valeurs disponibles pour les indicateurs sont :
‘none’
Tous les indicateurs sont désactivés.
‘all’
Tous les indicateurs sont activés.
‘queue’
Affiche le nombre d'images en attente sur chaque lien.
‘frame_count_in’
Affiche le nombre d'images récupérées depuis le filtre.
‘frame_count_out’
Affiche le nombre d'images fournies en sortie par le filtre.
‘frame_count_delta’
Affiche le delta (la différence) entre les deux valeurs précédentes, en nombre d'images.
‘pts’
Affiche le pts de l'image en cours de filtrage.
‘pts_delta’
Affiche le delta de pts entre l'image actuelle et l'image précédente.
‘time’
Affiche le temps de l'image en cours de filtrage.
‘time_delta’
Affiche le delta de temps entre l'image actuelle et l'image précédente.
‘timebase’
Affiche la base de temps du lien de filtre.
‘format’
Affiche le format utilisé pour le lien de filtre.
‘size’
Affiche la taille vidéo, ou le nombre de canaux audio si le lien de filtre utilise de l'audio.
‘rate’
Affiche la fréquence d'images vidéo, ou la fréquence d'échantillonnage si le lien de filtre utilise de l'audio.
‘eof’
Affiche l'état de sortie du lien.
‘sample_count_in’
Affiche le nombre d'échantillons récupérés depuis le filtre.
‘sample_count_out’
Affiche le nombre d'échantillons fournis en sortie par le filtre.
‘sample_count_delta’
Affiche le delta (la différence) entre les deux valeurs précédentes, en nombre d'échantillons.
‘disabled’
Affiche l'état du filtre de timeline.
rate, r
Définit la limite supérieure de la fréquence d'images du flux de sortie. La valeur par défaut est 25. Cela garantit que la fréquence d'images du flux vidéo de sortie ne dépasse pas cette valeur.
11.113 grayworld
Filtre de constance des couleurs qui applique une correction des couleurs fondée sur l'hypothèse grayworld.
Cet algorithme utilise la lumière linéaire, de sorte que les données d'entrée doivent être linéarisées au préalable (et, si possible, correctement étiquetées).
ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
11.114 greyedge
Filtre de variante de constance des couleurs qui estime l'éclairage de la scène via l'algorithme grey edge et corrige les couleurs de la scène en conséquence.
Voir : https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf
Le filtre accepte les options suivantes :
difford
Ordre de différenciation à appliquer sur la scène. Doit être choisi dans la plage [0,2] ; la valeur par défaut est 1.
minknorm
Paramètre de Minkowski utilisé pour calculer la distance de Minkowski. Doit être choisi dans la plage [0,20] ; la valeur par défaut est 1. La valeur 0 permet d'obtenir la valeur maximale au lieu de calculer la distance de Minkowski.
sigma
Écart type du flou gaussien à appliquer sur la scène. Doit être choisi dans la plage [0,1024.0] ; la valeur par défaut est 1. floor( sigma * break_off_sigma(3) ) ne peut pas être égal à 0 si difford est supérieur à 0.
11.114.1 Exemples
-
Grey Edge :
greyedge=difford=1:minknorm=5:sigma=2 -
Max Edge :
greyedge=difford=1:minknorm=0:sigma=2
11.115 guided
Applique un filtre guidé pour le lissage préservant les contours, le désembrumage, etc.
Le filtre accepte les options suivantes :
radius
Définit le rayon de la boîte en pixels. La plage autorisée va de 1 à 20. La valeur par défaut est 3.
eps
Définit le paramètre de régularisation (au carré). La plage autorisée va de 0 à 1. La valeur par défaut est 0.01.
mode
Définit le mode du filtre. Peut être basic ou fast. La valeur par défaut est basic.
sub
Définit le taux de sous-échantillonnage pour le mode fast. La plage est de 2 à 64. La valeur par défaut est 4. Aucun sous-échantillonnage n'a lieu en mode basic.
guidance
Définit le mode de guidage. Peut être off ou on. La valeur par défaut est off. Si off, une seule entrée est nécessaire. Si on, deux entrées de même résolution et même pixel format sont nécessaires. La seconde entrée sert de guidage.
planes
Définit les plans à filtrer. Par défaut, seul le premier est traité.
11.115.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.115.2 Exemples
-
Lissage préservant les contours avec le filtre guided :
ffmpeg -i in.png -vf guided out.png -
Désembrumage, filtrage par transfert de structure, amélioration des détails avec le filtre guided. Pour la génération de l'image de guidage, reportez-vous à l'article "Guided Image Filtering". Voir : http://kaiminghe.com/publications/pami12guidedfilter.pdf.
ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
11.116 haldclut
Applique un Hald CLUT à un flux vidéo.
La première entrée est le flux vidéo à traiter, et la seconde est le Hald CLUT. L'entrée Hald CLUT peut être une simple image ou un flux vidéo complet.
Le filtre accepte les options suivantes :
clut
Définit quelles images vidéo du CLUT, provenant du second flux d'entrée, sont traitées ; peut valoir first ou all. La valeur par défaut est all.
shortest
Force l'arrêt lorsque l'entrée la plus courte se termine. La valeur par défaut est 0.
repeatlast
Continue à appliquer le dernier CLUT après la fin du flux. La valeur 0 désactive le filtre une fois la dernière image du CLUT atteinte. La valeur par défaut est 1.
haldclut propose également les mêmes options d'interpolation que lut3d (les deux filtres partagent le même code interne).
Ce filtre prend également en charge les options framesync.
Plus d'informations sur le Hald CLUT sont disponibles sur le site d'Eskil Steenberg (auteur du Hald CLUT), à l'adresse http://www.quelsolaar.com/technology/clut.html.
11.116.1 Commandes
Ce filtre prend en charge l'option interp comme commande.
11.116.2 Exemples de flux de travail
11.116.2.1 Flux vidéo Hald CLUT
Génère un flux Hald CLUT identité modifié avec divers effets :
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
Remarque : veillez à utiliser un codec sans perte.
Utilisez-le ensuite avec haldclut pour l'appliquer à un flux quelconque :
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
Le Hald CLUT est appliqué aux 10 premières secondes (durée de clut.nut), puis la dernière image de ce flux CLUT est appliquée aux images restantes du flux mandelbrot.
11.116.2.2 Hald CLUT avec aperçu
Un Hald CLUT est censé être une image carrée de Level*Level*Level par Level*Level*Level pixels. Pour un Hald CLUT donné, FFmpeg sélectionne le plus grand carré possible en partant du coin supérieur gauche de l'image. Les pixels de remplissage restants (en bas ou à droite) sont ignorés. Cette zone peut servir à ajouter un aperçu du Hald CLUT.
En général, le Hald CLUT généré ci-après est pris en charge par le filtre haldclut :
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
Il contient l'original et un aperçu de l'effet du CLUT : les barres de couleur SMPTE sont affichées en haut à droite, et en dessous les mêmes barres de couleur après traitement par les changements de couleur.
L'effet de ce Hald CLUT peut ensuite être visualisé avec :
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
11.117 hflip
Retourne le flux vidéo d'entrée horizontalement.
Par exemple, pour retourner horizontalement la vidéo d'entrée avec ffmpeg :
ffmpeg -i in.avi -vf "hflip" out.avi
11.118 histeq
Ce filtre applique une égalisation globale de l'histogramme des couleurs, image par image.
Il permet de corriger une vidéo dont la plage d'intensités de pixels est compressée. Le filtre redistribue les intensités de pixels afin d'égaliser leur répartition sur toute la plage d'intensité. On peut le considérer comme un "filtre de contraste à réglage automatique". Ce filtre n'est utile que pour corriger une vidéo source dégradée ou mal captée.
Le filtre accepte les options suivantes :
strength
Détermine le degré d'égalisation à appliquer. Plus strength est réduite, plus la distribution des intensités de pixels se rapproche de celle de l'image d'entrée. La valeur doit être un nombre flottant compris dans la plage [0,1] ; la valeur par défaut est 0.200.
intensity
Définit l'intensité maximale pouvant être générée et ajuste l'échelle des valeurs de sortie en conséquence. Il convient de régler strength comme souhaité, puis de limiter intensity si nécessaire pour éviter la surexposition. La valeur doit être un nombre flottant compris dans la plage [0,1] ; la valeur par défaut est 0.210.
antibanding
Définit le niveau d'antibanding. Si activé, le filtre fait varier aléatoirement et légèrement la luminance des pixels de sortie afin d'éviter les bandes dans l'histogramme. Les valeurs possibles sont none, weak ou strong. La valeur par défaut est none.
11.119 histogram
Calcule et dessine un histogramme de distribution des couleurs pour la vidéo d'entrée.
L'histogramme calculé représente la distribution des composantes de couleur dans une image.
L'histogramme standard affiche la distribution des composantes de couleur dans une image. Il affiche un graphique de couleur pour chaque composante. Il montre la distribution des composantes Y, U, V, A ou R, G, B, selon le format d'entrée, dans l'image actuelle. Sous chaque graphique est affichée une échelle de la composante de couleur.
Le filtre accepte les options suivantes :
level_height
Définit la hauteur du niveau. La valeur par défaut est 200. La plage autorisée est [50, 2048].
scale_height
Définit la hauteur de l'échelle de couleur. La valeur par défaut est 12. La plage autorisée est [0, 40].
display_mode
Définit le mode d'affichage. Accepte les valeurs suivantes :
‘stack’
Les graphiques de chaque composante de couleur sont placés les uns sous les autres.
‘parade’
Les graphiques de chaque composante de couleur sont placés côte à côte.
‘overlay’
Présente des informations identiques à celles du mode parade, à ceci près que les graphiques représentant les composantes de couleur sont superposés directement les uns sur les autres.
La valeur par défaut est stack.
levels_mode
Définit le mode. Peut être linear ou logarithmic. La valeur par défaut est linear.
components
Définit les composantes de couleur à afficher. La valeur par défaut est 7.
fgopacity
Définit l'opacité du premier plan. La valeur par défaut est 0.7.
bgopacity
Définit l'opacité de l'arrière-plan. La valeur par défaut est 0.5.
colors_mode
Définit le mode de couleurs. Accepte les valeurs suivantes :
‘whiteonblack’ ‘blackonwhite’ ‘whiteongray’ ‘blackongray’ ‘coloronblack’ ‘coloronwhite’ ‘colorongray’ ‘blackoncolor’ ‘whiteoncolor’ ‘grayoncolor’
La valeur par défaut est whiteonblack.
11.119.1 Exemples
- Calcule et dessine l'histogramme :
ffplay -i input -vf histogram
11.120 hqdn3d
Il s'agit d'un filtre de débruitage 3D haute précision et haute qualité. Il vise à réduire le bruit de l'image, à produire des images lisses et à rendre les images fixes vraiment fixes. Il devrait améliorer la compressibilité.
Il accepte les paramètres optionnels suivants :
luma_spatial
Nombre flottant non négatif qui indique l'intensité spatiale de la luminance. La valeur par défaut est 4.0.
chroma_spatial
Nombre flottant non négatif qui indique l'intensité spatiale de la chrominance. La valeur par défaut est 3.0*luma_spatial/4.0.
luma_tmp
Nombre flottant qui indique l'intensité temporelle de la luminance. La valeur par défaut est 6.0*luma_spatial/4.0.
chroma_tmp
Nombre flottant qui indique l'intensité temporelle de la chrominance. La valeur par défaut est luma_tmp*chroma_spatial/luma_spatial.
11.120.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.121 hwdownload
Télécharge des images matérielles vers la mémoire système.
L'entrée doit être constituée d'images matérielles, et la sortie doit être dans un format non matériel. Tous les formats ne sont pas nécessairement pris en charge en sortie : il peut être nécessaire d'insérer un filtre format supplémentaire juste après dans le graphe pour obtenir une sortie dans un format pris en charge.
11.122 hwmap
Associe des images matérielles à la mémoire système ou à un autre périphérique.
Ce filtre dispose de plusieurs modes de fonctionnement ; celui qui est utilisé dépend des formats d'entrée et de sortie :
- Entrée en images matérielles, sortie en images normales
Associe les images d'entrée à la mémoire système et les transmet à la sortie. Si l'image matérielle d'origine est nécessaire ultérieurement (par exemple, après y avoir superposé autre chose sur une partie), le filtre hwmap peut être réutilisé dans le mode suivant pour la récupérer.
- Entrée en images normales, sortie en images matérielles
Si l'entrée est en réalité une image matérielle mappée de façon logicielle, elle est démappée, c'est-à-dire que l'image matérielle d'origine est renvoyée.
Sinon, un périphérique doit être fourni. De nouvelles surfaces matérielles sont créées sur ce périphérique pour la sortie, puis mappées de nouveau vers le format logiciel en entrée, et ces images sont transmises au filtre précédent. Cela se comporte alors comme le filtre hwupload, mais peut permettre d'éviter une copie supplémentaire lorsque l'entrée est déjà dans un format compatible.
- Entrée et sortie en images matérielles
Un périphérique doit être fourni pour la sortie, soit directement, soit via l'option derive_device. Les périphériques d'entrée et de sortie doivent être de types différents et compatibles : la signification exacte de cela dépend du système, mais cela signifie généralement qu'ils doivent référencer le même contexte matériel sous-jacent (par exemple, la même carte graphique).
Si les images d'entrée ont été créées à l'origine sur le périphérique de sortie, elles sont démappées pour récupérer les images d'origine.
Sinon, les images sont associées au périphérique de sortie : de nouvelles images matérielles correspondant aux images d'entrée sont créées en sortie.
Les paramètres supplémentaires suivants sont acceptés :
mode
Définit le mode de mapping des images. Une combinaison des valeurs suivantes :
read
L'image mappée doit être lisible.
write
L'image mappée doit être accessible en écriture.
overwrite
Le mapping écrase toujours l'image entière.
Cela peut améliorer les performances dans certains cas, car le contenu d'origine de l'image n'a pas besoin d'être chargé.
direct
Le mapping ne doit impliquer aucune copie.
Des mappings indirects vers des copies d'images sont créés dans certains cas où le mapping direct est impossible ou aurait des propriétés inattendues. Définir cet indicateur garantit que le mapping est direct et échoue si cela n'est pas possible.
Par défaut, read+write si non spécifié.
derive_device type
Plutôt que d'utiliser le périphérique fourni à l'initialisation, dérive un nouveau périphérique du type indiqué à partir du périphérique sur lequel se trouvent les images d'entrée.
reverse
Dans un mapping matériel vers matériel, effectue le mapping en sens inverse : crée les images dans le sink et les mappe de nouveau vers la source. Cela peut être nécessaire dans certains cas où un mapping dans un sens est requis, mais où seul le sens opposé est pris en charge par les périphériques utilisés.
Cette option est dangereuse : elle peut perturber le filtre précédent de manières non définies s'il existe des contraintes supplémentaires sur la sortie de ce filtre. Ne l'utilisez pas sans comprendre pleinement les implications de son usage.
11.123 hwupload
Transfère des images de la mémoire système vers des surfaces matérielles.
Le périphérique de destination doit être fourni lors de l'initialisation du filtre. Avec ffmpeg, sélectionnez le périphérique approprié via l'option -filter_hw_device ou l'option derive_device. Les périphériques d'entrée et de sortie doivent être de types différents et compatibles : la signification exacte de cela dépend du système, mais cela signifie généralement qu'ils doivent référencer le même contexte matériel sous-jacent (par exemple, la même carte graphique).
Les paramètres supplémentaires suivants sont acceptés :
derive_device type
Plutôt que d'utiliser le périphérique fourni à l'initialisation, dérive un nouveau périphérique du type indiqué à partir du périphérique sur lequel se trouvent les images d'entrée.
11.124 hwupload_cuda
Transfère des images de la mémoire système vers un périphérique CUDA.
Accepte les paramètres optionnels suivants :
device
Numéro du périphérique CUDA à utiliser
11.125 hqx
Applique un filtre d'agrandissement haute qualité conçu pour le pixel art. Ce filtre a été créé à l'origine par Maxim Stepin.
Accepte l'option suivante :
n
Définit la dimension de mise à l'échelle : 2 pour hq2x, 3 pour hq3x et 4 pour hq4x. La valeur par défaut est 3.
11.126 hstack
Empile horizontalement les vidéos d'entrée.
Tous les flux doivent avoir le même pixel format et la même hauteur.
Notez que ce filtre est plus rapide que l'utilisation des filtres overlay et pad pour produire la même sortie.
Le filtre accepte l'option suivante :
inputs
Définit le nombre de flux d'entrée. La valeur par défaut est 2.
shortest
Si la valeur est fixée à 1, force l'arrêt de la sortie lorsque l'entrée la plus courte se termine. La valeur par défaut est 0.
11.127 hsvhold
Transforme une certaine plage HSV en valeurs de gris.
Ce filtre mesure la différence de couleur entre la couleur HSV définie dans les options et celle mesurée dans le flux vidéo. Selon les options, les couleurs de sortie peuvent être changées en gris ou non.
Le filtre accepte les options suivantes :
hue
Définit la valeur de teinte utilisée dans le calcul de la différence de couleur. La plage autorisée va de -360 à 360. La valeur par défaut est 0.
sat
Définit la valeur de saturation utilisée dans le calcul de la différence de couleur. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
val
Définit la valeur utilisée dans le calcul de la différence de couleur. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
similarity
Définit le pourcentage de similarité avec la couleur clé. La plage autorisée va de 0 à 1. La valeur par défaut est 0.01.
0.00001 ne correspond qu'à la couleur clé exacte, tandis que 1.0 correspond à tout.
blend
Pourcentage de mélange. La plage autorisée va de 0 à 1. La valeur par défaut est 0.
Avec 0.0, les pixels sont soit entièrement gris, soit pas gris du tout.
Des valeurs plus élevées donnent davantage de pixels gris, avec un degré de gris d'autant plus élevé que la couleur du pixel est proche de la couleur clé.
11.128 hsvkey
Transforme une certaine plage HSV en transparence.
Ce filtre mesure la différence de couleur entre la couleur HSV définie dans les options et celle mesurée dans le flux vidéo. Selon les options, les couleurs de sortie peuvent être rendues transparentes par l'ajout d'un canal alpha.
Le filtre accepte les options suivantes :
hue
Définit la valeur de teinte utilisée dans le calcul de la différence de couleur. La plage autorisée va de -360 à 360. La valeur par défaut est 0.
sat
Définit la valeur de saturation utilisée dans le calcul de la différence de couleur. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
val
Définit la valeur utilisée dans le calcul de la différence de couleur. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
similarity
Définit le pourcentage de similarité avec la couleur clé. La plage autorisée va de 0 à 1. La valeur par défaut est 0.01.
0.00001 ne correspond qu'à la couleur clé exacte, tandis que 1.0 correspond à tout.
blend
Pourcentage de mélange. La plage autorisée va de 0 à 1. La valeur par défaut est 0.
Avec 0.0, les pixels sont soit entièrement transparents, soit pas transparents du tout.
Des valeurs plus élevées produisent des pixels semi-transparents, avec une transparence d'autant plus élevée que la couleur du pixel est proche de la couleur clé.
11.129 hue
Modifie la teinte et/ou la saturation de l'entrée.
Accepte les paramètres suivants :
h
Indique l'angle de teinte en nombre de degrés. Accepte une expression, et la valeur par défaut est "0".
s
Indique la saturation dans la plage [-10,10]. Accepte une expression, et la valeur par défaut est "1".
H
Indique l'angle de teinte en nombre de radians. Accepte une expression, et la valeur par défaut est "0".
b
Indique la luminosité dans la plage [-10,10]. Accepte une expression, et la valeur par défaut est "0".
h et H s'excluent mutuellement et ne peuvent pas être indiqués en même temps.
Les valeurs des options b, h, H et s sont des expressions contenant les constantes suivantes :
n
numéro de l'image d'entrée, à partir de 0
pts
presentation timestamp de l'image d'entrée, exprimé en unités de base de temps
r
fréquence d'images de la vidéo d'entrée, NAN si la fréquence d'images d'entrée est inconnue
t
horodatage exprimé en secondes, NAN si l'horodatage d'entrée est inconnu
tb
base de temps de la vidéo d'entrée
11.129.1 Exemples
-
Définit la teinte à 90 degrés et la saturation à 1.0 :
hue=h=90:s=1 -
Même commande, mais en exprimant la teinte en radians :
hue=H=PI/2:s=1 -
Fait tourner la teinte et fait osciller la saturation entre 0 et 2 sur une période de 1 seconde :
hue="H=2*PI*t: s=sin(2*PI*t)+1" -
Applique un effet de fondu d'entrée de la saturation sur 3 secondes à partir de 0 :
hue="s=min(t/3\,1)"
L'expression générale du fondu d'entrée peut s'écrire ainsi :
hue="s=min(0\, max((t-START)/DURATION\, 1))"
- Applique un effet de fondu de sortie de la saturation sur 3 secondes à partir de 5 secondes :
hue="s=max(0\, min(1\, (8-t)/3))"
L'expression générale du fondu de sortie peut s'écrire ainsi :
hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
11.129.2 Commandes
Ce filtre prend en charge les commandes suivantes :
b s h H
Modifie la teinte et/ou la saturation et/ou la luminosité de la vidéo d'entrée. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.130 huesaturation
Applique des ajustements de teinte, saturation et intensité au flux vidéo d'entrée.
Ce filtre fonctionne dans l'espace colorimétrique RGB.
Ce filtre accepte les options suivantes :
hue
Définit le décalage de teinte à appliquer, en degrés. La valeur par défaut est 0. La plage autorisée va de -180 à 180.
saturation
Définit le décalage de saturation. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
intensity
Définit le décalage d'intensité. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
colors
Définit les couleurs primaires et complémentaires à ajuster. Cette option se règle en fournissant une ou plusieurs valeurs. Elle permet de sélectionner plusieurs couleurs à la fois. Par défaut, toutes les couleurs sont sélectionnées.
‘r’
Ajuste les rouges.
‘y’
Ajuste les jaunes.
‘g’
Ajuste les verts.
‘c’
Ajuste les cyans.
‘b’
Ajuste les bleus.
‘m’
Ajuste les magentas.
‘a’
Ajuste toutes les couleurs.
strength
Définit l'intensité du filtrage. La plage autorisée va de 0 à 100. La valeur par défaut est 1.
rw, gw, bw
Définit le poids de chaque composante RGB. La plage autorisée va de 0 à 1. Par défaut, les valeurs sont 0.333, 0.334 et 0.333. Ces options sont utilisées dans le traitement de la saturation et de la luminosité.
lightness
Définit la préservation de la luminosité, désactivée par défaut. L'ajustement de la teinte peut modifier la luminosité par rapport au triplet RGB d'origine ; avec cette option activée, la luminosité est conservée à la même valeur.
11.131 hysteresis
Fait croître le premier flux dans le second flux en connectant les composants. Cela permet de construire des masques de contours plus robustes.
Ce filtre accepte les options suivantes :
planes
Définit les plans à traiter comme bitmap ; les plans non traités sont copiés depuis le premier flux. Par défaut, la valeur est 0xf et tous les plans sont traités.
threshold
Définit le seuil utilisé pour le filtrage. Si la valeur d'une composante de pixel est supérieure à ce seuil, l'algorithme de connexion des composants est activé. La valeur par défaut est 0.
Le filtre hysteresis prend également en charge les options framesync.
11.132 iccdetect
Détecte l'espace colorimétrique à partir d'un profil ICC intégré (s'il est présent) et met à jour les balises de l'image en conséquence.
Ce filtre accepte les options suivantes :
force
Si la valeur est true, les balises d'espace colorimétrique existantes de l'image sont toujours écrasées par les valeurs détectées à partir d'un profil ICC. Sinon, elles ne sont assignées que si elles contiennent unknown. Activé par défaut.
11.133 iccgen
Génère des profils ICC et les associe aux images.
Ce filtre accepte les options suivantes :
color_primaries color_trc
Configure l'espace colorimétrique pour lequel le profil ICC est généré. La valeur par défaut auto déduit la valeur à partir des métadonnées de l'image d'entrée, en revenant par défaut à BT.709/sRGB selon le cas.
Consultez le filtre setparams pour la liste des valeurs possibles, mais notez que unknown n'est pas une valeur valide pour ce filtre.
force
Si la valeur est true, un profil ICC est généré même si cela doit écraser un profil ICC déjà existant. Désactivé par défaut.
11.134 identity
Obtient le score d'identité entre deux vidéos d'entrée.
Ce filtre prend deux vidéos en entrée.
Pour que ce filtre fonctionne correctement, les deux vidéos d'entrée doivent avoir la même résolution et le même pixel format. Il suppose également que les deux entrées comportent le même nombre d'images, comparées une à une.
Le score d'identité obtenu, par composante ainsi que la moyenne, le minimum et le maximum, est affiché via le système de journalisation.
Le filtre enregistre les scores d'identité calculés pour chaque image dans les métadonnées de l'image.
Ce filtre prend également en charge les options framesync.
Dans l'exemple ci-dessous, le fichier d'entrée main.mpg en cours de traitement est comparé au fichier de référence ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
11.135 idet
Détecte le type d'entrelacement de la vidéo.
Ce filtre tente de détecter si les images d'entrée sont entrelacées, progressives, avec le champ supérieur ou inférieur en premier. Il tente également de détecter les champs répétés entre images adjacentes (signe de télécinéma).
La détection sur une seule image ne prend en compte que les images immédiatement adjacentes lors de la classification de chaque image. La détection sur plusieurs images intègre l'historique de classification des images précédentes.
Le filtre journalise les valeurs de métadonnées suivantes :
single.current_frame
Type détecté de l'image actuelle par détection sur une seule image. Un des suivants : “tff” (champ supérieur en premier), “bff” (champ inférieur en premier), “progressive”, ou “undetermined”
single.tff
Nombre cumulé d'images détectées avec le champ supérieur en premier par détection sur une seule image.
multiple.tff
Nombre cumulé d'images détectées avec le champ supérieur en premier par détection sur plusieurs images.
single.bff
Nombre cumulé d'images détectées avec le champ inférieur en premier par détection sur une seule image.
multiple.current_frame
Type détecté de l'image actuelle par détection sur plusieurs images. Un des suivants : “tff” (champ supérieur en premier), “bff” (champ inférieur en premier), “progressive”, ou “undetermined”
multiple.bff
Nombre cumulé d'images détectées avec le champ inférieur en premier par détection sur plusieurs images.
single.progressive
Nombre cumulé d'images détectées comme progressives par détection sur une seule image.
multiple.progressive
Nombre cumulé d'images détectées comme progressives par détection sur plusieurs images.
single.undetermined
Nombre cumulé d'images n'ayant pas pu être classées par détection sur une seule image.
multiple.undetermined
Nombre cumulé d'images n'ayant pas pu être classées par détection sur plusieurs images.
repeated.current_frame
Indique quel champ de l'image actuelle est répété par rapport au précédent. Une des valeurs suivantes : “neither”, “top”, ou “bottom”.
repeated.neither
Nombre cumulé d'images sans champ répété.
repeated.top
Nombre cumulé d'images dont le champ supérieur est répété par rapport au champ supérieur de l'image précédente.
repeated.bottom
Nombre cumulé d'images dont le champ inférieur est répété par rapport au champ inférieur de l'image précédente.
Le filtre accepte les options suivantes :
intl_thres
Définit le seuil d'entrelacement.
prog_thres
Définit le seuil de progressivité.
rep_thres
Seuil pour la détection des champs répétés.
half_life
Nombre d'images après lequel la contribution d'une image donnée aux statistiques est divisée par deux (c'est-à-dire qu'elle ne contribue plus qu'à hauteur de 0.5 à sa classification). La valeur par défaut de 0 signifie que toutes les images vues reçoivent en permanence un poids plein de 1.0.
analyze_interlaced_flag
Lorsque cette valeur n'est pas 0, idet utilise le nombre d'images spécifié pour déterminer si l'indicateur d'entrelacement est fiable ; il ne compte pas les images undetermined. Si l'indicateur s'avère fiable, il est utilisé sans calcul supplémentaire ; s'il s'avère peu fiable, il est effacé sans calcul supplémentaire. Cela permet d'insérer le filtre idet comme méthode peu coûteuse en calcul pour nettoyer l'indicateur d'entrelacement
11.135.1 Exemples
Inspecte l'ordre des champs des 360 premières images d'une vidéo, en détail :
ffmpeg -i INPUT -filter:v idet,metadata=mode=print -frames:v 360 -an -f null -
Le filtre idet ajoute des métadonnées d'analyse à chaque image, qui sont ensuite écartées. À la fin, le filtre affiche également un rapport final avec des statistiques.
11.136 il
Sépare ou réassemble les champs.
Ce filtre permet de traiter les champs d'images entrelacées sans les désentrelacer complètement. Le désentrelacement divise l'image d'entrée en 2 champs (appelés demi-images). Les lignes impaires sont déplacées vers la moitié supérieure de l'image de sortie, les lignes paires vers la moitié inférieure. Vous pouvez les traiter (filtrer) indépendamment, puis les réentrelacer.
Le filtre accepte les options suivantes :
luma_mode, l chroma_mode, c alpha_mode, a
Les valeurs disponibles pour luma_mode, chroma_mode et alpha_mode sont :
‘none’
Ne fait rien.
‘deinterleave, d’
Désentrelace les champs, en plaçant l'un au-dessus de l'autre.
‘interleave, i’
Entrelace les champs. Inverse l'effet du désentrelacement.
La valeur par défaut est none.
luma_swap, ls chroma_swap, cs alpha_swap, as
Permute les champs luma/chroma/alpha. Échange les lignes paires et impaires. La valeur par défaut est 0.
11.136.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.137 inflate
Applique l'effet inflate (dilatation) à la vidéo.
Ce filtre remplace le pixel par la moyenne locale (3x3), en ne prenant en compte que les valeurs supérieures au pixel.
Il accepte les options suivantes :
threshold0 threshold1 threshold2 threshold3
Limite le changement maximal pour chaque plan ; la valeur par défaut est 65535. Si la valeur est 0, le plan reste inchangé.
11.137.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.138 interlace, interlace_vulkan
Filtre d'entrelacement simple à partir d'un contenu progressif. Il entrelace les lignes supérieures (ou inférieures) des images impaires avec les lignes inférieures (ou supérieures) des images paires, ce qui divise par deux la fréquence d'images tout en préservant la hauteur de l'image.
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
Il accepte les paramètres optionnels suivants :
scan
Détermine si l'image entrelacée est prise à partir des lignes paires (tff - par défaut) ou impaires (bff) de l'image progressive.
lowpass
Filtre passe-bas vertical permettant d'éviter le scintillement de l'entrelacement et de réduire les effets de moiré.
‘0, off’
Désactive le filtre passe-bas vertical
‘1, linear’
Active le filtre linéaire (par défaut)
‘2, complex’
Active le filtre complexe. Il réduit légèrement moins le scintillement et le moiré, mais préserve mieux les détails et l'impression subjective de netteté.
11.139 kerndeint
Désentrelace la vidéo d'entrée en appliquant le désentrelacement adaptatif à noyau de Donald Graft. Agit sur les parties entrelacées d'une vidéo pour produire des images progressives.
La description des paramètres acceptés suit.
thresh
Définit le seuil qui influe sur la tolérance du filtre lorsqu'il détermine si une ligne de pixels doit être traitée. Il doit s'agir d'un entier compris dans l'intervalle [0,255], la valeur par défaut étant 10. Une valeur de 0 entraîne l'application du traitement à tous les pixels.
map
Peint en blanc les pixels dépassant le seuil si la valeur est réglée sur 1. La valeur par défaut est 0.
order
Définit l'ordre des champs. Permute les champs si la valeur est réglée sur 1, les laisse inchangés si elle est 0. La valeur par défaut est 0.
sharp
Active une accentuation supplémentaire si la valeur est réglée sur 1. La valeur par défaut est 0.
twoway
Active l'accentuation twoway si la valeur est réglée sur 1. La valeur par défaut est 0.
11.139.1 Exemples
-
Appliquer les valeurs par défaut :
kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0 -
Activer une accentuation supplémentaire :
kerndeint=sharp=1 -
Peindre les pixels traités en blanc :
kerndeint=map=1
11.140 kirsch
Applique l'opérateur de Kirsch au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Par défaut, la valeur est 0xf et tous les plans sont traités.
scale
Définit la valeur qui sera multipliée par le résultat filtré.
delta
Définit la valeur qui sera ajoutée au résultat filtré.
11.140.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.141 lagfun
Met à jour lentement les pixels les plus sombres.
Ce filtre fait paraître plus longs les flashs lumineux brefs. Ce filtre accepte les options suivantes :
decay
Définit le facteur de décroissance. La valeur par défaut est .95. La plage autorisée va de 0 à 1.
planes
Définit les plans à filtrer. La valeur par défaut est all. La plage autorisée va de 0 à 15.
11.141.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.142 lenscorrection
Corrige la distorsion radiale de l'objectif
Ce filtre permet de corriger la distorsion radiale pouvant résulter de l'utilisation d'objectifs grand angle, et ainsi de rectifier l'image. Pour trouver les bons paramètres, on peut utiliser des outils disponibles par exemple dans opencv, ou procéder simplement par essais successifs. Pour utiliser opencv, utilisez l'exemple de calibration (sous samples/cpp) des sources d'opencv et extrayez les coefficients k1 et k2 de la matrice obtenue.
Notez qu'un filtre pratiquement identique est disponible dans les outils open source Krita et Digikam du projet KDE.
Contrairement au filtre vignette, qui peut également servir à compenser les défauts d'objectif, ce filtre corrige la distorsion de l'image, alors que vignette corrige la répartition de la luminosité. Vous pouvez donc, dans certains cas, vouloir utiliser les deux filtres ensemble, mais vous devrez alors veiller à l'ordre d'application, c'est-à-dire si le vignettage doit être appliqué avant ou après la correction d'objectif.
11.142.1 Options
Le filtre accepte les options suivantes :
cx
Coordonnée x relative du point focal de l'image, c'est-à-dire du centre de la distorsion. Cette valeur est comprise dans l'intervalle [0,1] et s'exprime en fraction de la largeur de l'image. La valeur par défaut est 0.5.
cy
Coordonnée y relative du point focal de l'image, c'est-à-dire du centre de la distorsion. Cette valeur est comprise dans l'intervalle [0,1] et s'exprime en fraction de la hauteur de l'image. La valeur par défaut est 0.5.
k1
Coefficient du terme de correction quadratique. Cette valeur est comprise dans l'intervalle [-1,1]. 0 signifie aucune correction. La valeur par défaut est 0.
k2
Coefficient du terme de correction quadratique double. Cette valeur est comprise dans l'intervalle [-1,1]. 0 signifie aucune correction. La valeur par défaut est 0.
i
Définit le type d'interpolation. Peut être nearest ou bilinear. La valeur par défaut est nearest.
fc
Spécifie la couleur des pixels non mappés. Pour la syntaxe de cette option, consultez la section "Color" du manuel ffmpeg-utils. La couleur par défaut est black@0.
La formule qui génère la correction est :
r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
où r_0 est la moitié de la diagonale de l'image, et r_src et r_tgt sont respectivement les distances au point focal dans les images source et cible.
11.142.2 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.143 lensfun
Applique une correction d'objectif via la bibliothèque lensfun (http://lensfun.sourceforge.net/).
Le filtre lensfun nécessite la marque de l'appareil, le modèle de l'appareil et le modèle d'objectif pour appliquer la correction d'objectif. Le filtre charge la base de données lensfun et l'interroge pour trouver les entrées correspondantes d'appareil et d'objectif dans la base. Tant que ces entrées peuvent être trouvées avec les options fournies, le filtre peut appliquer des corrections aux images. Notez que des chaînes incomplètes amènent le filtre à choisir la meilleure correspondance parmi les options fournies, et le filtre affiche alors les modèles d'appareil et d'objectif retenus (journalisés au niveau "info"). Vous devez fournir la marque, le modèle de l'appareil et le modèle d'objectif, car ils sont requis.
Pour obtenir la liste des marques et modèles disponibles, omettez l'une ou les deux options make et model. Le filtre envoie la liste complète au journal au niveau INFO. La première colonne indique la marque et la seconde le modèle. Pour obtenir la liste des objectifs disponibles, définissez des valeurs quelconques pour make et model et omettez l'option lens_model. Le filtre envoie la liste complète des objectifs dans le journal au niveau INFO. L'outil ffmpeg se termine une fois la liste affichée.
Le filtre accepte les options suivantes :
make
La marque de l'appareil (par exemple, "Canon"). Cette option est requise.
model
Le modèle de l'appareil (par exemple, "Canon EOS 100D"). Cette option est requise.
lens_model
Le modèle de l'objectif (par exemple, "Canon EF-S 18-55mm f/3.5-5.6 IS STM"). Cette option est requise.
db_path
Chemin complet vers le dossier de la base de données d'objectifs. S'il n'est pas défini, le filtre tente de charger la base de données depuis le chemin d'installation utilisé lors de la compilation de la bibliothèque. Non défini par défaut.
mode
Le type de correction à appliquer. Les valeurs suivantes sont des options valides :
‘vignetting’
Active la correction du vignettage de l'objectif.
‘geometry’
Active la correction de la géométrie de l'objectif. C'est la valeur par défaut.
‘subpixel’
Active la correction des aberrations chromatiques.
‘vig_geo’
Active la correction du vignettage et de la géométrie de l'objectif.
‘vig_subpixel’
Active la correction du vignettage de l'objectif et des aberrations chromatiques.
‘distortion’
Active la correction de la géométrie de l'objectif et des aberrations chromatiques.
‘all’
Active toutes les corrections possibles.
focal_length
Longueur focale de l'image/vidéo (zoom ; supposée constante pour une vidéo). Par exemple, un objectif 18–55mm a une plage de longueur focale de [18–55] ; il convient donc de choisir une valeur dans cette plage lors de l'utilisation de cet objectif. La valeur par défaut est 18.
aperture
Ouverture de l'image/vidéo (supposée constante pour une vidéo). Notez que l'ouverture n'est utilisée que pour la correction du vignettage. La valeur par défaut est 3.5.
focus_distance
Distance de mise au point de l'image/vidéo (supposée constante pour une vidéo). Notez que la distance de mise au point n'est utilisée que pour le vignettage et n'affecte que légèrement le processus de correction du vignettage. Si elle est inconnue, laissez la valeur par défaut (1000).
scale
Facteur d'échelle appliqué après la transformation. Après correction, la vidéo n'est plus nécessairement rectangulaire. Ce paramètre contrôle la part visible de l'image résultante. La valeur 0 signifie qu'une valeur est choisie automatiquement de façon à ce qu'il y ait peu, voire aucune, zone non mappée dans l'image de sortie. 1.0 signifie qu'aucune mise à l'échelle supplémentaire n'est effectuée. Des valeurs plus faibles peuvent rendre visible une plus grande partie de l'image corrigée, tandis que des valeurs plus élevées peuvent éviter les zones non mappées en sortie.
target_geometry
Géométrie cible de l'image/vidéo de sortie. Les valeurs suivantes sont des options valides :
‘rectilinear (default)’ ‘fisheye’ ‘panoramic’ ‘equirectangular’ ‘fisheye_orthographic’ ‘fisheye_stereographic’ ‘fisheye_equisolid’ ‘fisheye_thoby’ reverse
Applique l'inverse de la correction d'image (au lieu de corriger la distorsion, il l'applique).
interpolation
Type d'interpolation utilisé lors de la correction de la distorsion. Les valeurs suivantes sont des options valides :
‘nearest’ ‘linear (default)’ ‘lanczos’
11.143.1 Exemples
-
Appliquer une correction d'objectif avec la marque "Canon", le modèle d'appareil "Canon EOS 100D" et le modèle d'objectif "Canon EF-S 18-55mm f/3.5-5.6 IS STM", avec une longueur focale de "18" et une ouverture 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 -
Appliquer la même correction que précédemment, mais uniquement pour les 5 premières secondes de la vidéo.
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
Filtre Low Complexity Enhancement Video Codec, basé sur liblcevc_dec (https://github.com/v-novaltd/LCEVCdec).
11.145 libplacebo
Filtre de traitement flexible accéléré par GPU, basé sur libplacebo (https://code.videolan.org/videolan/libplacebo).
11.145.1 Options
Les options de ce filtre sont réparties dans les sections suivantes :
11.145.1.1 Mode de sortie
Ces options contrôlent le mode de sortie global. Par défaut, libplacebo tente de préserver au mieux la colorimétrie et la taille de la source, mais applique tout grain de film intégré, toute métadonnée Dolby Vision ou tout SAR anamorphique présents dans les images source.
inputs
Définit le nombre d'entrées. Cela peut être utilisé, avec la variable idx, pour permettre de placer/mélanger plusieurs entrées à l'intérieur de l'image de sortie. Cela active en pratique une fonctionnalité similaire à hstack, overlay, etc.
w h
Définit l'expression des dimensions de la vidéo de sortie. Les valeurs par défaut sont iw et ih.
Permet les mêmes expressions que le filtre scale.
crop_x crop_y
Définit les expressions x/y du rognage d'entrée ; les valeurs par défaut sont (iw-cw)/2 et (ih-ch)/2.
crop_w crop_h
Définit les expressions de largeur/hauteur du rognage d'entrée ; les valeurs par défaut sont iw et ih.
pos_x pos_y
Définit les expressions x/y du placement de sortie ; les valeurs par défaut sont (ow-pw)/2 et (oh-ph)/2.
pos_w pos_h
Définit les expressions de largeur/hauteur du placement de sortie ; les valeurs par défaut sont ow et oh.
rotate
Fait pivoter l'image d'entrée dans le sens horaire selon l'angle spécifié.
‘0, 360’ ‘90’ ‘180’ ‘270’ fps
Définit la fréquence d'images de sortie. Elle peut être rationnelle, par exemple 60000/1001. Si elle est réglée sur la chaîne spéciale none (valeur par défaut), les horodatages d'entrée sont au contraire transmis à la sortie sans modification. Sinon, les images de la vidéo d'entrée sont interpolées si nécessaire pour ramener la vidéo à la fréquence d'images cible spécifiée, selon la méthode déterminée par l'option frame_mixer.
format
Définit le format de sortie forcé. S'il n'est pas défini (valeur par défaut), les images sont produites dans le même format que les images d'entrée correspondantes. Sinon, une conversion de format est effectuée.
force_original_aspect_ratio force_divisible_by
Fonctionnent comme les options homonymes du filtre scale. Notez que force_divisible_by fonctionne également avec fit_sense=constraint.
reset_sar
Si activé, les images de sortie ont toujours un rapport d'aspect des pixels de 1:1. Si désactivé (valeur par défaut), les écarts de rapport d'aspect, y compris ceux provenant par exemple de sources vidéo anamorphiques, sont répercutés sur le rapport d'aspect des pixels de sortie.
normalize_sar
Comme reset_sar, mais au lieu d'étirer le contenu vidéo pour remplir le nouveau rapport d'aspect de sortie, le contenu est plutôt complété (padding) ou rogné selon les besoins. Mutuellement exclusif avec fit_mode. Désactivé par défaut.
pad_crop_ratio
Spécifie un ratio (entre 0.0 et 1.0) entre remplissage et rognage lorsque le rapport d'aspect d'entrée ne correspond pas au rapport d'aspect de sortie et que normalize_sar est actif. La valeur par défaut 0.0 complète toujours le contenu avec des bordures noires, tandis qu'une valeur de 1.0 rogne toujours une partie du contenu. Des valeurs intermédiaires sont possibles, aboutissant à un mélange des deux approches.
fit_mode
Spécifie la stratégie d'ajustement du contenu parmi une liste de modes prédéfinis. Détermine comment l'image d'entrée est placée dans le rectangle de rognage de destination (défini par pos_x/y et pos_w/h). Les noms et leurs implémentations sont repris de la propriété CSS ’object-fit’. Notez que cette option est exclusive avec normalize_sar. La valeur par défaut est fill. Les valeurs valides sont :
‘fill’
Étire l'entrée jusqu'au rectangle de sortie, en ignorant les écarts de rapport d'aspect. Notez que, sauf si reset_sar est également activé, la sortie conserve tout de même le rapport d'aspect des pixels correctement renseigné.
‘contain’
Redimensionne l'entrée pour qu'elle tienne dans la sortie, en préservant le rapport d'aspect grâce à un remplissage. Équivalent à normalize_sar avec pad_crop_ratio réglé sur 0.0.
‘cover’
Redimensionne l'entrée pour qu'elle remplisse la sortie, en préservant le rapport d'aspect grâce à un rognage. Équivalent à normalize_sar avec pad_crop_ratio réglé sur 1.0.
‘none, place’
Ne redimensionne pas l'entrée. L'entrée est placée dans le rectangle de sortie à sa taille naturelle ; ce qui peut entraîner un remplissage ou un rognage supplémentaire.
‘scale_down’
Réduit l'entrée autant que nécessaire pour qu'elle tienne dans la sortie. Équivalent à contain ou à none, selon que l'entrée est plus grande que la sortie ou non.
fit_sense
Lorsque fit_mode est utilisé, cette option contrôle la manière dont la stratégie d'ajustement est appliquée par rapport à la résolution de sortie spécifiée. Mutuellement exclusif avec force_original_aspect_ratio. Les valeurs valides sont :
‘target’
La résolution de sortie calculée est prise comme la taille exacte de l'image de sortie. C'est le comportement par défaut.
‘constraint’
La résolution de sortie calculée sert de taille de référence à laquelle le mode d'ajustement est appliqué, agrandissant ou réduisant la taille réelle de l'image selon les besoins pour ajuster le contenu.
fillcolor
Définit la couleur utilisée pour remplir la zone de sortie non couverte par l'image de sortie, par exemple à la suite de normalize_sar. Pour la syntaxe générale de cette option, consultez la section "Color" du manuel ffmpeg-utils. La valeur par défaut est black@0.
corner_rounding
Dessine les images avec des coins arrondis. La valeur, un flottant compris entre 0.0 et 1.0, indique le degré relatif d'arrondi, d'un carré complet à un cercle complet. Autrement dit, elle donne le rayon divisé par la moitié de la longueur du plus petit côté. La valeur par défaut est 0.0.
lut
Spécifie une LUT personnalisée (au format Adobe .cube) à appliquer aux couleurs dans le cadre de la conversion des couleurs. L'interprétation exacte dépend de la valeur de lut_type.
lut_type
Contrôle l'interprétation des valeurs de couleur transmises vers et depuis la LUT spécifiée par lut. Les valeurs valides sont :
‘auto’
Choisit automatiquement l'interprétation de la LUT à partir des métadonnées renseignées, et se rabat sinon sur ‘native’. (Par défaut)
‘native’
Appliquée au contenu brut de l'image dans son espace colorimétrique RGB natif (lumière non linéaire), avant conversion vers l'espace colorimétrique de sortie.
‘normalized’
Appliquée au contenu de l'image RVB normalisé, en lumière linéaire, avant conversion vers l'espace colorimétrique de sortie.
‘conversion’
Remplace entièrement la conversion de l'espace colorimétrique de l'image vers l'espace colorimétrique de sortie. Si une telle LUT est présente, elle a la priorité la plus élevée et prime sur tout profil ICC, ainsi que sur les options liées au mappage tonal et à la colorimétrie de sortie (color_primaries, color_trc).
extra_opts
Transmet des options de configuration internes supplémentaires à libplacebo. Elles peuvent être spécifiées sous forme d'une liste de paires key=value séparées par ’:’. L'exemple suivant montre comment configurer un noyau de filtre personnalisé ("EWA LanczosSharp") et l'utiliser pour doubler la résolution de l'image d'entrée :
-vf "libplacebo=w=iw*2:h=ih*2:extra_opts='upscaler=custom\:upscaler_preset=ewa_lanczos\:upscaler_blur=0.9812505644269356'"
shader_cache
Chemin d'un répertoire de cache que libplacebo utilise pour stocker et charger les objets de shader mis en cache. Ce cache n'est pas nettoyé automatiquement. Si le chemin ne se termine pas par un séparateur de répertoire, les noms de fichiers générés seront en pratique préfixés par le dernier élément du chemin. Tous les répertoires doivent déjà exister.
-vf "libplacebo=shader_cache=/tmp/pl-shader-"
colorspace color_primaries color_trc range chroma_location
Configure l'espace colorimétrique dans lequel les images de sortie sont livrées. La valeur par défaut auto produit les images dans le même format que les images d'entrée, sans aucun changement. Pour toute autre valeur, une conversion est effectuée.
Consultez le filtre setparams pour la liste des valeurs possibles.
alpha_mode
Choisit le mode alpha de sortie souhaité, lorsque le format de sortie comporte un canal alpha. Consultez le filtre setparams pour la liste des valeurs possibles.
apply_filmgrain
Applique le grain de film (par exemple AV1 ou H.274) s'il est présent dans les images source, et le retire de la sortie. Activé par défaut.
apply_dolbyvision
Applique les métadonnées RPU Dolby Vision si elles sont présentes dans les images source, et les retire de la sortie. Activé par défaut. Notez que Dolby Vision produit toujours du BT.2020+PQ en sortie, en écrasant les métadonnées habituelles de l'image d'entrée. Ces valeurs sont également retenues comme valeurs de auto pour les options de sortie d'image correspondantes.
Outre les constantes d'expression documentées pour le filtre scale, les options crop_w, crop_h, crop_x, crop_y, pos_w, pos_h, pos_x et pos_y peuvent également contenir les constantes suivantes :
in_idx, idx
Index numérique (à partir de 0) du flux d'entrée actif.
crop_w, cw crop_h, ch
Valeurs calculées de crop_w et crop_h.
pos_w, pw pos_h, ph
Valeurs calculées de pos_w et pos_h.
in_t, t
Horodatage de l'image d'entrée, en secondes. NAN si l'horodatage d'entrée est inconnu.
out_t, ot
Horodatage de l'image d'entrée, en secondes. NAN si l'horodatage d'entrée est inconnu.
n
Numéro de l'image d'entrée, à partir de 0.
11.145.1.2 Mise à l'échelle
Les options de cette section contrôlent la manière dont libplacebo effectue l'agrandissement et, si nécessaire, la réduction d'échelle. Notez que libplacebo travaille toujours en interne sur du contenu 4:4:4, si bien que tout format de chrominance sous-échantillonné tel que yuv420p est nécessairement suréchantillonné puis sous-échantillonné dans le cadre du rendu. Cela signifie qu'une mise à l'échelle peut avoir lieu même si la résolution source et la résolution de destination sont identiques.
upscaler downscaler
Configure le noyau de filtre utilisé pour l'agrandissement et la réduction d'échelle. Les valeurs par défaut respectives sont spline36 et mitchell. Pour la liste complète des valeurs possibles, transmettez help à ces options. Les valeurs les plus importantes sont :
‘none’
Force l'utilisation de l'échantillonnage de texture GPU intégré (généralement bilinéaire). Extrêmement rapide, mais de faible qualité, en particulier lors de la réduction d'échelle.
‘bilinear’
Interpolation bilinéaire. Généralement réalisable gratuitement sur les GPU, sauf lorsque cela entraînerait du crénelage. Rapide et de faible qualité.
‘nearest’
Interpolation au plus proche voisin. Nette, mais très sujette au crénelage.
‘oversample’
Algorithme visuellement proche de l'interpolation au plus proche voisin, mais qui tente de préserver le rapport d'aspect des pixels. Adapté au pixel art, car il entraîne une distorsion minimale de l'aspect artistique.
‘lanczos’
Noyau d'interpolation sinc-sinc standard.
‘spline36’
Approximation par spline cubique de lanczos. Aucune différence de performance, mais un ringing très légèrement moindre.
‘ewa_lanczos’
Version à moyenne pondérée elliptique de lanczos, basée sur un noyau jinc-jinc. Elle est également couramment appelée simplement "Jinc scaling". Lente, mais de très haute qualité.
‘gaussian’
Noyau gaussien. Possède certaines propriétés mathématiques idéales, mais donne un résultat subjectivement très flou.
‘mitchell’
Spline cubique BC avec les paramètres recommandés par Mitchell et Netravali. Très peu de ringing.
frame_mixer
Contrôle le noyau utilisé pour le mélange temporel des images. La valeur par défaut est none, qui désactive le mélange d'images. Pour la liste complète des valeurs possibles, transmettez help à cette option. Les valeurs les plus importantes sont :
‘none’
Désactive le mélange d'images, donnant un résultat équivalent à la sémantique "nearest neighbour".
‘oversample’
Suréchantillonne la vidéo d'entrée pour créer un effet de type "Smooth Motion" : si une image de sortie tombe exactement sur la transition entre deux images vidéo, elle est mélangée en fonction du recouvrement relatif. C'est l'option recommandée chaque fois que l'on souhaite préserver l'apparence subjective d'origine.
‘mitchell_clamp’
Noyau de filtre plus large qui interpole en douceur plusieurs images de manière à éliminer autant que possible le ringing et les autres artefacts. C'est l'option recommandée partout où une fluidité visuelle maximale est souhaitée.
‘linear’
Fondu/mélange linéaire entre les images. Particulièrement utile pour construire par exemple des diaporamas.
antiringing
Active l'anti-ringing (pour les filtres non EWA). La valeur (comprise entre 0.0 et 1.0) configure la force de l'algorithme d'anti-ringing. Peut augmenter le crénelage si elle est réglée trop haut. Désactivé par défaut.
sigmoid
Active la compression sigmoïdale pendant l'agrandissement. Réduit légèrement le ringing. Activé par défaut.
11.145.1.3 Désentrelacement
Le désentrelacement est pris en charge automatiquement lorsque les images sont marquées comme entrelacées, mais elles ne sont désentrelacées que si un algorithme de désentrelacement est choisi.
deinterlace
Algorithme de désentrelacement à utiliser.
‘weave’
Aucun désentrelacement : les champs sont tissés ensemble en une seule image. Il s'agit de la valeur par défaut.
‘bob’
Désentrelacement bob naïf, qui se contente de répéter deux fois chaque ligne de champ.
‘yadif’
Encore un autre filtre de désentrelacement. Voir le filtre yadif pour plus de détails.
‘bwdif’
Filtre de désentrelacement bob weaver. Voir le filtre bwdif pour plus de détails.
skip_spatial_check
Ignore la vérification spatiale du désentrelacement lors de l'utilisation du désentrelacement yadif.
send_fields
Produit une image de sortie pour chaque champ, et non pour chaque image source. Notez que cela double toujours la fréquence d'images de sortie indiquée, même si l'entrée ne contient aucune image entrelacée. Désactivé par défaut.
11.145.1.4 Débandage
Libplacebo est fourni avec un filtre de débandage intégré, efficace pour contrer de nombreuses sources courantes de banding et de blocking. Il est vivement recommandé de l'activer dès que la qualité est recherchée.
deband
Active l'algorithme de débandage (rapide). Désactivé par défaut.
deband_iterations
Nombre d'itérations de débandage de l'algorithme de débandage. Chaque itération est effectuée avec un rayon progressivement plus grand (et un seuil réduit). Les valeurs recommandées vont de 1 à 4. Par défaut : 1.
deband_threshold
Intensité du filtre de débandage. Des valeurs plus élevées rendent le débandage plus agressif. Par défaut : 4.0.
deband_radius
Rayon du filtre de débandage. Un rayon plus grand convient mieux aux dégradés progressifs, tandis qu'un rayon plus petit convient mieux aux dégradés marqués. Par défaut : 16.0.
deband_grain
Quantité de grain supplémentaire à ajouter en sortie. Permet de masquer les imperfections. Par défaut : 6.0.
11.145.1.5 Ajustement des couleurs
Un ensemble de contrôles de couleur subjectifs. Peu rigoureux, l'effet exact varie donc quelque peu selon les primaires et l'espace colorimétrique de l'entrée.
brightness
Gain de luminosité, entre -1.0 et 1.0. Par défaut : 0.0.
contrast
Gain de contraste, entre 0.0 et 16.0. Par défaut : 1.0.
saturation
Gain de saturation, entre 0.0 et 16.0. Par défaut : 1.0.
hue
Décalage de teinte en radians, entre -3.14 et 3.14. Par défaut : 0.0. Cela fait pivoter le sous-vecteur UV, avec les coefficients BT.709 par défaut pour les entrées RGB.
gamma
Ajustement du gamma, entre 0.0 et 16.0. Par défaut : 1.0.
temperature
Ajustement de la température de couleur. Des valeurs plus basses rendent la sortie plus chaude/rouge, jusqu'à 1667, tandis que des valeurs plus élevées la rendent plus froide/bleue, jusqu'à 25000. Par défaut : 6500 (blanc neutre).
cones
Modèle de cônes à utiliser pour la simulation du daltonisme. Accepte toute combinaison de l, m et s. En voici quelques exemples :
‘m’
Deutéranomalie / deutéranopie (touchant 3 %-4 % de la population)
‘l’
Protanomalie / protanopie (touchant 1 %-2 % de la population)
‘l+m’
Monochromatisme (très rare)
‘l+m+s’
Achromatopsie (perte complète de la vision diurne, extrêmement rare)
cone-strength
Facteur de gain pour les cônes indiqués par cones, entre 0.0 et 10.0. Une valeur de 1.0 ne change rien à la vision des couleurs. Une valeur de 0.0 (valeur par défaut) simule la perte complète de ces cônes. Des valeurs supérieures à 1.0 exagèrent les différences entre les cônes, ce qui peut aider à compenser une vision des couleurs réduite.
11.145.1.6 Détection de crête
Pour mieux traiter les sources ne disposant que de métadonnées HDR10 statiques (voire d'aucun marquage), libplacebo utilise son propre compute shader d'analyse d'image interne pour analyser les images source et adapter la fonction de mappage tonal en temps réel. Si cela s'avère trop lent, ou si des résultats parfaitement reproductibles image par image sont nécessaires, il est recommandé de désactiver cette fonctionnalité.
peak_detect
Active la détection de crête HDR. Ignore les valeurs statiques MaxCLL/MaxFALL au profit d'une détection dynamique à partir de l'entrée. Notez que les valeurs détectées ne sont pas réécrites dans les images de sortie ; elles ne font que guider le processus interne de mappage tonal. Activé par défaut.
smoothing_period
Période de lissage de la détection de crête, entre 0.0 et 1000.0. Des valeurs plus élevées rendent la détection de crête moins réactive aux changements de l'entrée. Par défaut : 20.0.
scene_threshold_low scene_threshold_high
Seuils inférieur et supérieur pour la détection de changement de scène. Exprimés sur une échelle logarithmique entre 0.0 et 100.0. Par défaut : respectivement 1.0 et 3.0. Donner une valeur négative à l'un ou l'autre désactive cette fonctionnalité.
percentile
Centile de l'histogramme de luminosité de l'image à utiliser comme crête source pour le mappage tonal. Par défaut : 99.995, une valeur assez prudente. Une valeur de 100.0 désactive la mesure par histogramme d'image et utilise à la place la véritable luminosité de crête pour le mappage tonal.
11.145.1.7 Mappage tonal
Les options de cette section contrôlent la façon dont libplacebo effectue le mappage tonal et le mappage de gamut lorsqu'il doit gérer des incohérences avec du contenu à large gamut ou HDR. En général, libplacebo s'appuie sur un marquage précis de la source et sur les informations de gamut de l'écran de mastering pour produire les meilleurs résultats.
gamut_mode
Détermine la façon de traiter les couleurs hors gamut pouvant résulter d'un mappage colorimétrique de gamut.
‘clip’
Ne fait rien, se contente d'écrêter les couleurs hors plage au volume RGB. Qualité faible mais extrêmement rapide.
‘perceptual’
Écrête en douceur, de façon perceptuelle, les couleurs au volume de gamut. Il s'agit de la valeur par défaut.
‘relative’
Écrêtage colorimétrique relatif strict. Similaire à perceptual, mais sans la transition douce.
‘saturation’
Mappage de saturation, qui fait correspondre directement les primaires aux primaires dans l'espace RGB. Déconseillé, sauf pour les images de synthèse artificielles pour lesquelles un rendu vif et saturé est souhaité.
‘absolute’
Écrêtage colorimétrique absolu strict. N'effectue aucun ajustement du point blanc.
‘desaturate’
Désature fortement les couleurs hors gamut vers le blanc, tout en préservant la luminance. A tendance à déformer l'apparence visuelle des objets lumineux.
‘darken’
Réduit linéairement la luminosité du contenu pour préserver les détails saturés, puis écrête les couleurs hors gamut restantes.
‘warn’
Met en évidence les pixels hors gamut (en les inversant/marquant).
‘linear’
Réduit linéairement la chromaticité de l'image entière pour qu'elle tienne dans le volume de couleur cible. Faites attention en utilisant cette méthode sur des sources BT.2020 sans métadonnées de mastering appropriées, car cela entraînerait une désaturation excessive.
tonemapping
Algorithme de mappage tonal à utiliser. Les valeurs disponibles sont :
‘auto’
Sélection automatique basée sur des heuristiques internes. Il s'agit de la valeur par défaut.
‘clip’
N'effectue aucun mappage tonal, se contente d'écrêter les couleurs hors plage. Conserve une précision colorimétrique parfaite pour les couleurs dans la plage, mais détruit complètement les informations hors plage. N'effectue aucune adaptation du point noir. Non configurable.
‘st2094-40’
EETF de l'annexe B de la norme SMPTE ST 2094-40, qui applique les courbes de Bézier des métadonnées dynamiques HDR10+ pour effectuer le mappage tonal. L'OOTF utilisée est ajustée en fonction du rapport entre la luminance de crête d'affichage ciblée et la luminance de crête réelle.
‘st2094-10’
EETF de l'annexe B.2 de la norme SMPTE ST 2094-10, qui prend en compte la luminance moyenne du signal d'entrée en plus du maximum/minimum. Le paramètre de contraste configurable influence la pente du segment linéaire de sortie, avec 1.0 par défaut pour n'augmenter ni diminuer le contraste. Notez que cela n'inclut pas encore les contrôles subjectifs de gain/décalage/gamma définis dans l'annexe B.3.
‘bt.2390’
EETF du rapport ITU-R BT.2390, une décroissance en spline d'Hermite avec segment linéaire. Le décalage du point de coude est configurable. Notez que ce paramètre vaut 1.0 par défaut, au lieu de 0.5 dans la spécification ITU-R.
‘bt.2446a’
EETF du rapport ITU-R BT.2446, méthode A. Conçue pour des sources HDR bien masterisées. Peut être utilisée aussi bien pour le mappage tonal direct qu'inverse. Non configurable.
‘spline’
Spline simple composée de deux polynômes, reliés par un unique point pivot. Le paramètre donne le point pivot (dans l'espace PQ), avec 0.30 par défaut. Peut être utilisée aussi bien pour le mappage tonal direct qu'inverse.
‘reinhard’
Algorithme de mappage tonal global simple et non linéaire. Le paramètre indique le coefficient de contraste local à la crête d'affichage. En pratique, un paramètre de 0.5 signifie que le blanc de référence sera environ deux fois moins lumineux qu'avec un simple écrêtage. Par défaut : 0.5, ce qui donne la formulation la plus simple de cette fonction.
‘mobius’
Généralisation de l'algorithme de mappage tonal reinhard permettant une pente linéaire supplémentaire près du noir. Le paramètre de mappage tonal indique le compromis entre la section linéaire et la section non linéaire. En pratique, pour un paramètre x donné, toute valeur de couleur inférieure à x est mappée linéairement, tandis que les valeurs supérieures subissent un mappage tonal non linéaire. Des valeurs proches de 1.0 font se comporter cette courbe comme clip, tandis que des valeurs proches de 0.0 la font se comporter comme reinhard. La valeur par défaut est 0.3, qui offre un bon équilibre entre précision colorimétrique et préservation des détails hors gamut.
‘hable’
Algorithme de mappage tonal filmique par morceaux, développé par John Hable pour Uncharted 2, inspiré d'un algorithme de mappage tonal similaire utilisé par Kodak. Popularisé par son usage dans les jeux vidéo avec rendu HDR. Préserve très bien les détails sombres comme lumineux, mais présente l'inconvénient de modifier assez sensiblement la luminosité moyenne. Cela ressemble un peu à reinhard avec le paramètre 0.24.
‘gamma’
Ajuste une fonction gamma (puissance) pour la conversion entre l'espace colorimétrique source et l'espace cible, ce qui produit un point de coude perceptuel net reliant deux sections à peu près linéaires. Cela préserve les détails avec une précision correcte à toutes les échelles, mais peut donner une image d'aspect terne ou délavé. Le paramètre sert de point de coupure, avec 0.5 par défaut.
‘linear’
Étire linéairement la plage d'entrée vers la plage de sortie, dans l'espace PQ. Cela préserve tous les détails avec précision, mais entraîne une luminosité moyenne significativement différente. Peut être utilisé pour le mappage tonal inverse en plus du mappage tonal classique. Le paramètre peut servir de coefficient de gain linéaire supplémentaire (1.0 par défaut).
tonemapping_param
Pour les fonctions de mappage tonal réglables, ce paramètre permet d'affiner le comportement de la courbe. Reportez-vous à la documentation de tonemapping. La valeur par défaut 0.0 est remplacée par le réglage par défaut préféré de la courbe.
inverse_tonemapping
Si activé, ce filtre tente également d'étirer les signaux SDR pour remplir les volumes de couleur de sortie HDR. Désactivé par défaut.
tonemapping_lut_size
Taille de la LUT de mappage tonal, entre 2 et 1024. Par défaut : 256. Notez que ce nombre est mis au carré lorsqu'il est combiné à peak_detect.
contrast_recovery
Intensité de la récupération de contraste. Si la valeur est supérieure à 0.0, l'image source est divisée en composantes haute et basse fréquence, et une partie de l'image haute fréquence est réinjectée dans la sortie après mappage tonal. Peut provoquer des artefacts de ringing excessifs pour certaines sources HDR, mais peut améliorer la netteté subjective et les détails restants dans l'image après le mappage tonal. Par défaut : 0.30.
contrast_smoothness
Taille du noyau passe-bas de la récupération de contraste. Par défaut : 3.5. Augmenter ou diminuer cette valeur affecte sensiblement l'apparence visuelle. Sans effet lorsque contrast_recovery est désactivé.
11.145.1.8 Tramage
Par défaut, libplacebo applique un tramage chaque fois que nécessaire, y compris lors du rendu vers un format entier de précision inférieure à 16 bits. Il est recommandé de toujours laisser cette option activée, car sinon un banding visible peut apparaître en sortie, même si le filtre debanding est activé. Si des performances maximales sont nécessaires, utilisez ordered_fixed plutôt que de désactiver le tramage.
dithering
Méthode de tramage à utiliser. Accepte les valeurs suivantes :
‘none’
Désactive complètement le tramage. Peut entraîner un banding visible.
‘blue’
Applique un tramage avec un bruit pseudo-bleu. Il s'agit de la valeur par défaut.
‘ordered’
Motif de tramage ordonné réglable.
‘ordered_fixed’
Tramage ordonné plus rapide, de taille fixe 6. Sans texture.
‘white’
Applique un tramage avec un bruit blanc. Sans texture.
dither_lut_size
Taille de la LUT de tramage, en logarithme base 2, entre 1 et 8. Par défaut : 6, ce qui correspond à une LUT de taille 64x64.
dither_temporal
Active le tramage temporel. Désactivé par défaut.
11.145.1.9 Shaders personnalisés
libplacebo prend en charge un certain nombre de shaders personnalisés basés sur la syntaxe GLSL .hook de mpv. Une collection de tels shaders est disponible ici : https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders
Une description complète du format de shader mpv dépasse le cadre de cette section, mais un résumé est disponible ici: https://mpv.io/manual/master/#options-glsl-shader
custom_shader_path
Indique un chemin vers un fichier de shader personnalisé à charger à l'exécution.
custom_shader_bin
Indique un shader personnalisé complet sous forme de chaîne brute.
11.145.1.10 Débogage / performance
Toutes les options de cette section sont désactivées par défaut. Elles peuvent aider à extraire le maximum de performance au détriment de la qualité.
skip_aa
Désactive l'anticrénelage lors de la réduction d'échelle.
disable_linear
Désactive la mise à l'échelle en lumière linéaire.
disable_builtin
Désactive l'échantillonnage GPU intégré (force l'utilisation d'une LUT).
disable_fbos
Désactive de force les FBO, ce qui entraîne la perte de presque toutes les fonctionnalités, mais offre la vitesse maximale possible.
11.145.2 Commandes
Ce filtre prend en charge presque toutes les options ci-dessus en tant que commandes.
11.145.3 Exemples
-
Mappage tonal de l'entrée vers une sortie BT.709 en gamut standard :
libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv -
Redimensionne l'entrée pour l'adapter au 1080p standard, avec une mise à l'échelle de haute qualité :
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos -
Interpole une entrée à faible fréquence d'images / VFR vers une sortie lissée à 60 fps constant :
libplacebo=fps=60:frame_mixer=mitchell_clamp -
Convertit l'entrée en JPEG sRGB standard :
libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc -
Utilise des réglages de débandage de meilleure qualité :
libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6 -
Exécute ce filtre sur le CPU, sur les systèmes disposant de Mesa (et avec les options les plus coûteuses désactivées) :
ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false -
Supprime l'application du grain de film AV1/H.274 basée sur le CPU dans le decoder, au profit de son application par ce filtre. Notez que cela n'apporte un gain que si les images sont déjà sur le GPU, ou si vous utilisez libplacebo à d'autres fins, car sinon l'aller-retour vers la VRAM annule largement l'accélération attendue.
ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true -
Interopère avec le hwdec VAAPI pour éviter un aller-retour par la RAM :
ffmpeg -init_hw_device vulkan -hwaccel vaapi -hwaccel_output_format vaapi ... -vf libplacebo
11.146 libvmaf
Calcule le score VMAF (Video Multi-Method Assessment Fusion) pour une paire de vidéos d'entrée référence/dégradée.
La première entrée est la vidéo dégradée, et la seconde est la vidéo de référence.
Le score VMAF obtenu est affiché via le système de journalisation.
Il nécessite la bibliothèque vmaf de Netflix (libvmaf) comme prérequis. Une fois la bibliothèque installée, elle peut être activée avec : ./configure --enable-libvmaf.
Ce filtre dispose des options suivantes :
model
Liste de modèles vmaf délimitée par ‘|‘. Chaque modèle peut être configuré avec un certain nombre de paramètres. Valeur par défaut : "version=vmaf_v0.6.1"
feature
Liste de features délimitée par ‘|‘. Chaque feature peut être configurée avec un certain nombre de paramètres.
log_path
Définit le chemin de fichier à utiliser pour stocker les fichiers journaux.
log_fmt
Définit le format du fichier journal (xml, json, csv ou sub).
pool
Définit la méthode de regroupement (pool) à utiliser pour le calcul du vmaf. Les valeurs possibles sont min, harmonic_mean ou mean (par défaut).
n_threads
Définit le nombre de threads à utiliser lors de l'initialisation de libvmaf. Valeur par défaut : 0, aucun thread.
n_subsample
Définit l'intervalle de sous-échantillonnage des images à utiliser.
Ce filtre prend également en charge les options framesync.
11.146.1 Exemples
- Dans les exemples ci-dessous, une vidéo dégradée distorted.mpg est comparée à un fichier de référence reference.mpg.
-
Utilisation basique :
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null - -
Exemple avec plusieurs modèles :
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 - -
Exemple avec plusieurs features supplémentaires :
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null - -
Exemple avec des options et différents containers :
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
Il s'agit de la variante CUDA du filtre libvmaf. Elle n'accepte que les images CUDA.
Il nécessite la bibliothèque vmaf de Netflix (libvmaf) comme prérequis. Une fois la bibliothèque installée, elle peut être activée avec : ./configure --enable-nonfree --enable-ffnvcodec --enable-libvmaf.
11.147.1 Exemples
- Utilisation basique illustrant le décodage matériel CUVID et la mise à l'échelle CUDA avec 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
Applique un filtre de différence limitée à l'aide d'un deuxième flux vidéo, et éventuellement d'un troisième.
Ce filtre accepte les options suivantes :
threshold
Définit le seuil à utiliser pour autoriser certaines différences entre les flux vidéo. Toute valeur de différence absolue inférieure ou égale à ce seuil fait choisir les composantes de pixel du premier flux vidéo.
elasticity
Définit l'élasticité du seuillage doux lors du traitement des flux vidéo. Cette valeur, multipliée par la première, définit le second seuil. Toute valeur de différence absolue supérieure ou égale au second seuil fait choisir les composantes de pixel du second flux vidéo. Pour les valeurs situées entre ces deux seuils, une interpolation linéaire entre le premier et le second flux vidéo est utilisée.
reference
Active le traitement du flux vidéo de référence (troisième flux). Désactivé par défaut. Si activé, ce flux vidéo est utilisé pour calculer la différence absolue avec le premier flux vidéo.
planes
Indique les plans à traiter. Par défaut, tous les plans disponibles.
11.148.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes, à l'exception de l'option ‘reference’.
11.149 limiter
Limite les valeurs des composantes de pixel à la plage indiquée [min, max].
Ce filtre accepte les options suivantes :
min
Limite inférieure. Par défaut, la valeur la plus basse autorisée pour l'entrée.
max
Limite supérieure. Par défaut, la valeur la plus haute autorisée pour l'entrée.
planes
Indique les plans à traiter. Par défaut, tous les plans disponibles.
11.149.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.150 loop
Boucle les images vidéo.
Ce filtre accepte les options suivantes :
loop
Définit le nombre de boucles. Donner la valeur -1 entraîne des boucles infinies. Par défaut : 0.
size
Définit la taille maximale en nombre d'images. Par défaut : 0.
start
Définit la première image de la boucle. Par défaut : 0.
time
Définit, en secondes, le moment de départ de la boucle. Utilisé uniquement si l'option start vaut -1.
11.150.1 Exemples
-
Boucle indéfiniment sur la première image seule :
loop=loop=-1:size=1:start=0 -
Boucle 10 fois sur la première image seule :
loop=loop=10:size=1:start=0 -
Boucle 5 fois sur les 10 premières images :
loop=loop=5:size=10:start=0
11.151 lut1d
Applique une LUT 1D à une vidéo d'entrée.
Ce filtre accepte les options suivantes :
file
Définit le nom du fichier de LUT 1D.
Formats pris en charge à ce jour :
‘cube’
Iridas
‘csp’
cineSpace
interp
Sélectionne le mode d'interpolation.
Les valeurs disponibles sont :
‘nearest’
Utilise les valeurs du point défini le plus proche.
‘linear’
Interpole les valeurs par interpolation linéaire.
‘cosine’
Interpole les valeurs par interpolation cosinusoïdale.
‘cubic’
Interpole les valeurs par interpolation cubique.
‘spline’
Interpole les valeurs par interpolation spline.
11.151.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.152 lut3d
Applique une LUT 3D à une vidéo d'entrée.
Ce filtre accepte les options suivantes :
file
Définit le nom du fichier de LUT 3D.
Formats pris en charge à ce jour :
‘3dl’
AfterEffects
‘cube’
Iridas
‘dat’
DaVinci
‘m3d’
Pandora
‘csp’
cineSpace
interp
Sélectionne le mode d'interpolation.
Les valeurs disponibles sont :
‘nearest’
Utilise les valeurs du point défini le plus proche.
‘trilinear’
Interpole les valeurs à l'aide des 8 points définissant un cube.
‘tetrahedral’
Interpole les valeurs à l'aide d'un tétraèdre.
‘pyramid’
Interpole les valeurs à l'aide d'une pyramide.
‘prism’
Interpole les valeurs à l'aide d'un prisme.
11.152.1 Commandes
Ce filtre prend en charge l'option interp comme commande.
11.153 lumakey
Transforme certaines valeurs de luminance en transparence.
Ce filtre accepte les options suivantes :
threshold
Définit la luminance utilisée comme base pour la transparence. Valeur par défaut : 0.
tolerance
Définit la plage de valeurs de luminance à détourer. Valeur par défaut : 0.01.
softness
Définit la plage de douceur. Valeur par défaut : 0. Permet de contrôler la transition progressive de la transparence nulle à la transparence totale.
11.153.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.154 lut, lutrgb, lutyuv
Calcule une table de correspondance associant chaque valeur d'entrée de composante de pixel à une valeur de sortie, et l'applique à la vidéo d'entrée.
lutyuv applique une table de correspondance à une vidéo d'entrée YUV, lutrgb à une vidéo d'entrée RGB.
Ces filtres acceptent les paramètres suivants :
c0
définit l'expression de la première composante de pixel
c1
définit l'expression de la deuxième composante de pixel
c2
définit l'expression de la troisième composante de pixel
c3
définit l'expression de la quatrième composante de pixel, correspond à la composante alpha
r
définit l'expression de la composante rouge
g
définit l'expression de la composante verte
b
définit l'expression de la composante bleue
a
expression de la composante alpha
y
définit l'expression de la composante Y/luma
u
définit l'expression de la composante U/Cb
v
définit l'expression de la composante V/Cr
Chacun d'eux indique l'expression à utiliser pour calculer la table de correspondance des valeurs de la composante de pixel correspondante.
La composante exacte associée à chacune des options c* dépend du format de l'entrée.
Le filtre lut nécessite en entrée un pixel format YUV ou RGB, lutrgb nécessite un format RGB en entrée, et lutyuv nécessite du YUV.
Les expressions peuvent contenir les constantes et fonctions suivantes :
w h
La largeur et la hauteur de l'entrée.
val
La valeur d'entrée de la composante de pixel.
clipval
La valeur d'entrée, écrêtée à la plage minval-maxval.
maxval
La valeur maximale de la composante de pixel.
minval
La valeur minimale de la composante de pixel.
negval
La valeur négative de la valeur de composante de pixel, écrêtée à la plage minval-maxval ; elle correspond à l'expression "maxval-clipval+minval".
clip(val)
La valeur calculée dans val, écrêtée à la plage minval-maxval.
gammaval(gamma)
La valeur de correction gamma calculée pour la valeur de composante de pixel, écrêtée à la plage minval-maxval. Elle correspond à l'expression "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
Toutes les expressions valent "clipval" par défaut.
11.154.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.154.2 Exemples
- Inverse le flux vidéo d'entrée :
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"
Ce qui précède équivaut à :
lutrgb="r=negval:g=negval:b=negval"
lutyuv="y=negval:u=negval:v=negval"
-
Inverse la luminance :
lutyuv=y=negval -
Supprime les composantes de chrominance et transforme le flux vidéo en image en tons de gris :
lutyuv="u=128:v=128" -
Applique un effet de brûlage à la luminance :
lutyuv="y=2*val" -
Supprime les composantes verte et bleue :
lutrgb="g=0:b=0" -
Définit une valeur de canal alpha constante sur l'entrée :
format=rgba,lutrgb=a="maxval-minval/2" -
Corrige le gamma de la luminance avec un facteur de 0.5 :
lutyuv=y=gammaval(0.5) -
Élimine les bits de poids faible de la luminance :
lutyuv=y='bitand(val, 128+64+32)' -
Effet façon Technicolor :
lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
11.155 lut2, tlut2
Le filtre lut2 prend deux flux en entrée et produit un flux en sortie.
Le filtre tlut2 (time lut2) prend deux images consécutives d'un seul flux.
Ce filtre accepte les paramètres suivants :
c0
Définit l'expression de la première composante de pixel.
c1
Définit l'expression de la deuxième composante de pixel.
c2
Définit l'expression de la troisième composante de pixel.
c3
Définit l'expression de la quatrième composante de pixel, correspondant à la composante alpha.
d
Définit la profondeur de bits de sortie, disponible uniquement pour le filtre lut2. La valeur par défaut est 0, ce qui signifie que le filtre choisit automatiquement la profondeur de bits à partir du premier format d'entrée.
Le filtre lut2 prend également en charge les options framesync.
Chacune d'elles indique l'expression à utiliser pour calculer la table de correspondance des valeurs de la composante de pixel correspondante.
La composante exacte associée à chacune des options c* dépend du format des entrées.
Les expressions peuvent contenir les constantes suivantes :
w h
La largeur et la hauteur de l'entrée.
x
La première valeur d'entrée de la composante de pixel.
y
La deuxième valeur d'entrée de la composante de pixel.
bdx
La profondeur de bits du premier flux vidéo d'entrée.
bdy
La profondeur de bits du deuxième flux vidéo d'entrée.
Par défaut, toutes les expressions valent "x".
11.155.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes, sauf l'option d.
11.155.2 Exemples
-
Met en évidence les différences entre deux flux vidéo 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)' -
Met en évidence les différences entre deux flux vidéo 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)' -
Affiche la différence maximale entre deux flux vidéo :
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
Contraint le premier flux d'entrée à l'aide du deuxième et du troisième flux d'entrée.
Renvoie la valeur du premier flux ramenée entre le deuxième flux d'entrée moins undershoot et le troisième flux d'entrée plus overshoot.
Ce filtre accepte les options suivantes :
undershoot
La valeur par défaut est 0.
overshoot
La valeur par défaut est 0.
planes
Définit les plans à traiter comme un bitmap ; les plans non traités proviennent du premier flux. La valeur par défaut est 0xf, ce qui traite tous les plans.
11.156.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.157 maskedmax
Fusionne les deuxième et troisième flux d'entrée dans le flux de sortie en utilisant les différences absolues entre le deuxième flux d'entrée et le premier flux d'entrée, et la différence absolue entre le troisième flux d'entrée et le premier flux d'entrée. La valeur retenue provient du deuxième flux d'entrée si sa différence absolue est supérieure à celle du premier, ou du troisième flux d'entrée sinon.
Ce filtre accepte les options suivantes :
planes
Définit les plans à traiter comme un bitmap ; les plans non traités proviennent du premier flux. La valeur par défaut est 0xf, ce qui traite tous les plans.
11.157.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.158 maskedmerge
Fusionne le premier flux d'entrée et le deuxième flux d'entrée en utilisant des poids par pixel issus du troisième flux d'entrée.
Une valeur de 0 dans la composante de pixel du troisième flux signifie que la composante de pixel du premier flux reste inchangée, tandis que la valeur maximale (par exemple 255 pour des vidéos en 8 bits) signifie que c'est celle du deuxième flux qui reste inchangée. Les valeurs intermédiaires définissent le degré de fusion entre les composantes de pixel des deux flux d'entrée.
Ce filtre accepte les options suivantes :
planes
Définit les plans à traiter comme un bitmap ; les plans non traités proviennent du premier flux. La valeur par défaut est 0xf, ce qui traite tous les plans.
11.158.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.159 maskedmin
Fusionne les deuxième et troisième flux d'entrée dans le flux de sortie en utilisant les différences absolues entre le deuxième flux d'entrée et le premier flux d'entrée, et la différence absolue entre le troisième flux d'entrée et le premier flux d'entrée. La valeur retenue provient du deuxième flux d'entrée si sa différence absolue est inférieure à celle du premier, ou du troisième flux d'entrée sinon.
Ce filtre accepte les options suivantes :
planes
Définit les plans à traiter comme un bitmap ; les plans non traités proviennent du premier flux. La valeur par défaut est 0xf, ce qui traite tous les plans.
11.159.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.160 maskedthreshold
Sélectionne des pixels en comparant la différence absolue de deux flux vidéo à un seuil fixe.
Si la différence absolue entre la composante de pixel du premier et du deuxième flux vidéo est égale ou inférieure au seuil fourni par l'utilisateur, on retient la composante de pixel du premier flux vidéo ; sinon, on retient celle du deuxième flux vidéo.
Ce filtre accepte les options suivantes :
threshold
Définit le seuil utilisé pour sélectionner les pixels à partir de la différence absolue entre les deux flux vidéo d'entrée.
planes
Définit les plans à traiter comme un bitmap ; les plans non traités proviennent du deuxième flux. La valeur par défaut est 0xf, ce qui traite tous les plans.
mode
Définit le mode de fonctionnement du filtre. Peut valoir abs ou diff. La valeur par défaut est abs.
11.160.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.161 maskfun
Crée un masque à partir du flux vidéo d'entrée.
Cela peut par exemple servir à créer des masques de mouvement après le filtre tblend.
Ce filtre accepte les options suivantes :
low
Définit le seuil bas. Toute composante de pixel inférieure ou égale à cette valeur est mise à 0.
high
Définit le seuil haut. Toute composante de pixel supérieure à cette valeur est mise à la valeur maximale autorisée pour le pixel format courant.
planes
Définit les plans à filtrer ; par défaut, tous les plans disponibles sont filtrés.
fill
Remplit tous les pixels de l'image avec cette valeur.
sum
Définit la valeur moyenne maximale des pixels pour une image. Si la somme de toutes les composantes de pixel dépasse cette moyenne, le filtre remplit entièrement l'image de sortie avec la valeur définie par l'option fill. Généralement utile pour les changements de scène en combinaison avec le filtre tblend.
11.161.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.162 mcdeint
Applique un désentrelacement par compensation de mouvement.
Il nécessite un champ par image en entrée et doit donc être utilisé avec yadif=1/3 ou équivalent.
Ce filtre accepte les options suivantes :
mode
Définit le mode de désentrelacement.
Accepte l'une des valeurs suivantes :
‘fast’ ‘medium’ ‘slow’
Utilise une estimation de mouvement itérative.
‘extra_slow’
Comme ‘slow’, mais utilise plusieurs images de référence.
La valeur par défaut est ‘fast’.
parity
Définit la parité de champ de l'image supposée pour le flux vidéo d'entrée. Elle doit être l'une des valeurs suivantes :
‘0, tff’
Suppose que le champ supérieur est en premier.
‘1, bff’
Suppose que le champ inférieur est en premier.
La valeur par défaut est ‘bff’.
qp
Définit le paramètre de quantification (QP) par bloc utilisé par l'encoder interne.
Des valeurs plus élevées donnent normalement un champ de vecteurs de mouvement plus lisse, mais des vecteurs individuels moins optimaux. La valeur par défaut est 1.
11.163 median
Sélectionne le pixel médian dans un rectangle défini par un rayon.
Ce filtre accepte les options suivantes :
radius
Définit le rayon horizontal. La valeur par défaut est 1. La plage autorisée est un entier de 1 à 127.
planes
Définit les plans à traiter. La valeur par défaut est 15, ce qui correspond à tous les plans disponibles.
radiusV
Définit le rayon vertical. La valeur par défaut est 0. La plage autorisée est un entier de 0 à 127. Si elle vaut 0, la valeur est reprise de l'option radius horizontale.
percentile
Définit le centile médian. La valeur par défaut est 0.5. Avec la valeur par défaut 0.5, ce sont toujours les valeurs médianes qui sont retenues, tandis que 0 retient les valeurs minimales et 1 les valeurs maximales.
11.163.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.164 mergeplanes
Fusionne les composantes de canal de couleur de plusieurs flux vidéo.
Le filtre accepte jusqu'à 4 flux d'entrée et fusionne les plans d'entrée sélectionnés dans le flux vidéo de sortie.
Ce filtre accepte les options suivantes :
mapping
Définit la correspondance des plans entrée-sortie. La valeur par défaut est 0.
La correspondance est indiquée sous forme de bitmap. Elle doit être exprimée en nombre hexadécimal sous la forme 0xAa[Bb[Cc[Dd]]]. ’Aa’ décrit la correspondance du premier plan du flux de sortie. ’A’ définit le numéro du flux d'entrée à utiliser (de 0 à 3), et ’a’ le numéro du plan de l'entrée correspondante à utiliser (de 0 à 3). Le reste de la correspondance suit le même principe : ’Bb’ décrit la correspondance du deuxième plan du flux de sortie, ’Cc’ celle du troisième plan, et ’Dd’ celle du quatrième plan.
format
Définit le pixel format de sortie. La valeur par défaut est yuva444p.
map0s map1s map2s map3s
Définit la correspondance flux entrée-sortie pour le N-ième plan de sortie. La valeur par défaut est 0.
map0p map1p map2p map3p
Définit la correspondance de plan entrée-sortie pour le N-ième plan de sortie. La valeur par défaut est 0.
11.164.1 Exemples
-
Fusionne trois flux vidéo en niveaux de gris de même largeur et hauteur en un seul flux vidéo :
[a0][a1][a2]mergeplanes=0x001020:yuv444p -
Fusionne un premier flux yuv444p et un deuxième flux vidéo en niveaux de gris en un flux vidéo yuva444p :
[a0][a1]mergeplanes=0x00010210:yuva444p -
Échange les plans Y et A dans un flux yuva444p :
format=yuva444p,mergeplanes=0x03010200:yuva444p -
Échange les plans U et V dans un flux yuv420p :
format=yuv420p,mergeplanes=0x000201:yuv420p -
Convertit un clip rgb24 en yuv444p :
format=rgb24,mergeplanes=0x000102:yuv444p
11.165 mestimate
Estime et exporte les vecteurs de mouvement à l'aide d'algorithmes de correspondance de blocs. Les vecteurs de mouvement sont stockés dans les données annexes de l'image pour être utilisés par d'autres filtres.
Ce filtre accepte les options suivantes :
method
Indique la méthode d'estimation de mouvement. Accepte l'une des valeurs suivantes :
‘esa’
Algorithme de recherche exhaustive.
‘tss’
Algorithme de recherche en trois étapes.
‘tdls’
Algorithme de recherche logarithmique bidimensionnelle.
‘ntss’
Nouvel algorithme de recherche en trois étapes.
‘fss’
Algorithme de recherche en quatre étapes.
‘ds’
Algorithme de recherche en losange.
‘hexbs’
Algorithme de recherche basé sur l'hexagone.
‘epzs’
Algorithme de recherche zonale prédictive améliorée.
‘umh’
Algorithme de recherche multi-hexagonale non uniforme.
La valeur par défaut est ‘esa’.
mb_size
Taille du macrobloc. Valeur par défaut 16.
search_param
Paramètre de recherche. Valeur par défaut 7.
11.166 mestimate_d3d12
Estime et exporte les vecteurs de mouvement à l'aide de l'estimation de mouvement accélérée par matériel D3D12. Ce filtre utilise les capacités d'estimation de mouvement matérielles du GPU offertes par les API DirectX 12 Video afin d'obtenir un gain de performance important par rapport au filtre mestimate logiciel.
Les vecteurs de mouvement sont stockés dans les données annexes de l'image pour être utilisés par d'autres filtres.
Ce filtre exige que l'entrée soit dans le pixel format matériel d3d12. Il utilise une précision au quart de pixel pour l'estimation des vecteurs de mouvement.
Ce filtre accepte les options suivantes :
mb_size
Taille du macrobloc. Seules 8 et 16 sont prises en charge. Valeur par défaut 16.
11.166.1 Exemples
Estime les vecteurs de mouvement avec l'accélération matérielle D3D12 sur des blocs de 16x16, et les visualise :
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
Applique l'effet Midway Image Equalization (égalisation d'image à mi-chemin) à l'aide de deux flux vidéo.
Midway Image Equalization ajuste une paire d'images pour qu'elles aient le même histogramme, tout en préservant autant que possible leur dynamique respective. Cela est utile, par exemple, pour égaliser l'exposition d'une paire de caméras stéréo.
Ce filtre a deux entrées et une sortie ; elles doivent être dans le même pixel format, mais peuvent avoir des tailles différentes. La sortie du filtre correspond à la première entrée ajustée avec l'histogramme intermédiaire des deux entrées.
Ce filtre accepte l'option suivante :
planes
Définit les plans à traiter. La valeur par défaut est 15, ce qui correspond à tous les plans disponibles.
11.168 minterpolate
Convertit le flux vidéo à la fréquence d'images indiquée à l'aide d'une interpolation de mouvement.
Ce filtre accepte les options suivantes :
fps
Indique la fréquence d'images de sortie. Elle peut être un nombre rationnel, par exemple 60000/1001. Des images sont supprimées si la fréquence indiquée est inférieure à celle de la source. Valeur par défaut 60.
mi_mode
Mode d'interpolation de mouvement. Les valeurs suivantes sont acceptées :
‘dup’
Duplique l'image précédente ou suivante pour interpoler les nouvelles images.
‘blend’
Fond les images source entre elles. L'image interpolée est la moyenne de l'image précédente et de l'image suivante.
‘mci’
Interpolation compensée en mouvement. Les options suivantes prennent effet lorsque ce mode est sélectionné :
‘mc_mode’
Mode de compensation de mouvement. Les valeurs suivantes sont acceptées :
‘obmc’
Compensation de mouvement par blocs se chevauchant.
‘aobmc’
Compensation de mouvement adaptative par blocs se chevauchant. Les coefficients de pondération de la fenêtre sont contrôlés de manière adaptative selon la fiabilité des vecteurs de mouvement voisins, afin de réduire le lissage excessif.
Le mode par défaut est ‘obmc’.
‘me_mode’
Mode d'estimation de mouvement. Les valeurs suivantes sont acceptées :
‘bidir’
Estimation de mouvement bidirectionnelle. Les vecteurs de mouvement sont estimés pour chaque image source, à la fois en avant et en arrière.
‘bilat’
Estimation de mouvement bilatérale. Les vecteurs de mouvement sont estimés directement pour l'image interpolée.
Le mode par défaut est ‘bilat’.
‘me’
Algorithme à utiliser pour l'estimation de mouvement. Les valeurs suivantes sont acceptées :
‘esa’
Algorithme de recherche exhaustive.
‘tss’
Algorithme de recherche en trois étapes.
‘tdls’
Algorithme de recherche logarithmique bidimensionnelle.
‘ntss’
Nouvel algorithme de recherche en trois étapes.
‘fss’
Algorithme de recherche en quatre étapes.
‘ds’
Algorithme de recherche en losange.
‘hexbs’
Algorithme de recherche basé sur l'hexagone.
‘epzs’
Algorithme de recherche zonale prédictive améliorée.
‘umh’
Algorithme de recherche multi-hexagonale non uniforme.
L'algorithme par défaut est ‘epzs’.
‘mb_size’
Taille du macrobloc. Valeur par défaut 16.
‘search_param’
Paramètre de recherche pour l'estimation de mouvement. Valeur par défaut 32.
‘vsbmc’
Active la compensation de mouvement par blocs de taille variable. Le filtre applique l'estimation de mouvement avec des blocs plus petits aux limites des objets afin de les rendre moins flous. Valeur par défaut 0 (désactivé).
scd
Méthode de détection de changement de scène. Un changement de scène fait pointer les vecteurs de mouvement dans une direction aléatoire. La détection de changement de scène remplace les images interpolées par des images dupliquées. Elle peut ne pas être nécessaire pour les autres modes. Les valeurs suivantes sont acceptées :
‘none’
Désactive la détection de changement de scène.
‘fdiff’
Différence d'images. Le filtre compare les valeurs de pixel correspondantes et détecte un changement de scène si scd_threshold est atteint.
La méthode par défaut est ‘fdiff’.
scd_threshold
Seuil de détection de changement de scène. La valeur par défaut est 10..
11.169 mix
Mélange plusieurs flux vidéo d'entrée en un seul flux vidéo.
Une description des options acceptées suit.
inputs
Le nombre d'entrées. S'il n'est pas indiqué, la valeur par défaut est 2.
weights
Indique le poids de chaque flux vidéo d'entrée sous forme de séquence. Chaque poids est séparé par un espace. Si le nombre de poids est inférieur au nombre d'images, le dernier poids indiqué est utilisé pour tous les poids restants non définis.
scale
Indique l'échelle ; si elle est définie, elle est multipliée par la somme des produits de chaque poids et des valeurs de pixel pour obtenir la valeur de pixel de destination finale. Par défaut, l'échelle est ajustée automatiquement à la somme des poids.
planes
Définit les plans à filtrer. La valeur par défaut est all. La plage autorisée va de 0 à 15.
duration
Indique comment la fin du flux est déterminée.
‘longest’
La durée de l'entrée la plus longue (valeur par défaut).
‘shortest’
La durée de l'entrée la plus courte.
‘first’
La durée de la première entrée.
11.169.1 Commandes
Ce filtre prend en charge les commandes suivantes :
weights scale planes
La syntaxe est la même que celle de l'option de même nom.
11.170 monochrome
Convertit le flux vidéo en niveaux de gris à l'aide d'un filtre de couleur personnalisé.
Une description des options acceptées suit.
cb
Définit le point de chrominance bleue. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
cr
Définit le point de chrominance rouge. La plage autorisée va de -1 à 1. La valeur par défaut est 0.
size
Définit la taille du filtre de couleur. La plage autorisée va de .1 à 10. La valeur par défaut est 1.
high
Définit l'intensité des hautes lumières. La plage autorisée va de 0 à 1. La valeur par défaut est 0.
11.170.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.171 morpho
Ce filtre permet d'appliquer les principales transformations morphologiques en niveaux de gris, erode (érosion) et dilate (dilatation), avec des structures arbitraires définies dans le deuxième flux d'entrée.
Contrairement à une implémentation naïve, bien plus lente dans les filtres d'érosion et de dilatation, il vaut mieux utiliser le filtre morpho lorsque la vitesse est essentielle.
Une description des options acceptées suit.
mode
Définit la transformation morphologique à appliquer, qui peut être :
‘erode’ ‘dilate’ ‘open’ ‘close’ ‘gradient’ ‘tophat’ ‘blackhat’
La valeur par défaut est erode.
planes
Définit les plans à filtrer ; par défaut, tous les plans sauf le canal alpha sont filtrés.
structure
Définit quelles images de structure du deuxième flux d'entrée sont traitées ; peut valoir first ou all. La valeur par défaut est all.
Le filtre morpho prend également en charge les options framesync.
11.171.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.172 mpdecimate
Supprime les images qui ne diffèrent pas beaucoup de l'image précédente afin de réduire la fréquence d'images.
Ce filtre sert principalement à l'encodage à très faible débit binaire (par exemple du streaming via un modem à ligne commutée), mais il pourrait en théorie servir à corriger des films ayant subi un télécinéma inverse incorrect.
Une description des options acceptées suit.
max
Définit le nombre maximal d'images consécutives pouvant être supprimées (si la valeur est positive), ou l'intervalle minimal entre deux images supprimées (si la valeur est négative). Si la valeur est 0, l'image est supprimée sans tenir compte du nombre d'images consécutives déjà supprimées.
La valeur par défaut est 0.
keep
Définit le nombre maximal d'images similaires consécutives à ignorer avant de commencer à les supprimer. Si la valeur est 0, l'image est supprimée sans tenir compte du nombre d'images consécutives déjà similaires.
La valeur par défaut est 0.
hi lo frac
Définit les valeurs de seuil de suppression.
Les valeurs de hi et lo s'appliquent à des blocs de 8x8 pixels et représentent des différences de valeur de pixel réelles ; ainsi, un seuil de 64 correspond à 1 unité de différence par pixel, ou à une différence équivalente répartie autrement sur le bloc.
Une image est candidate à la suppression si aucun bloc de 8x8 ne diffère de plus du seuil hi, et si pas plus de frac blocs (1 signifiant l'image entière) ne diffèrent de plus du seuil lo.
La valeur par défaut de hi est 6412, celle de lo est 645, et celle de frac est 0.33.
11.173 msad
Obtient le MSAD (Mean Sum of Absolute Differences, moyenne de la somme des différences absolues) entre deux vidéos d'entrée.
Ce filtre prend deux vidéos en entrée.
Les deux vidéos d'entrée doivent avoir la même résolution et le même pixel format pour que ce filtre fonctionne correctement. Il suppose également que les deux entrées ont le même nombre d'images, comparées une à une.
Le MSAD obtenu, par composante, ainsi que sa moyenne, son minimum et son maximum, sont affichés via le système de journalisation.
Le filtre stocke le MSAD calculé pour chaque image dans les métadonnées de l'image.
Ce filtre prend également en charge les options framesync.
Dans l'exemple ci-dessous, le fichier d'entrée main.mpg traité est comparé au fichier de référence ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
11.174 multiply
Multiplie les valeurs de pixel du premier flux vidéo par les valeurs de pixel du deuxième flux vidéo.
Le filtre accepte les options suivantes :
scale
Définit l'échelle appliquée au deuxième flux vidéo. La valeur par défaut est 1. La plage autorisée va de 0 à 9.
offset
Définit le décalage appliqué au deuxième flux vidéo. La valeur par défaut est 0.5. La plage autorisée va de -1 à 1.
planes
Indique les plans du flux vidéo d'entrée qui seront traités. Par défaut, tous les plans sont traités.
11.174.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.175 negate
Inverse la vidéo d'entrée (effet négatif).
Elle accepte l'option suivante :
components
Définit les composantes à inverser.
Les valeurs disponibles pour components sont :
‘y’ ‘u’ ‘v’ ‘a’ ‘r’ ‘g’ ‘b’ negate_alpha
La valeur 1 inverse la composante alpha, si elle est présente. La valeur par défaut est 0.
11.175.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.176 nlmeans
Débruite les images à l'aide de l'algorithme Non-Local Means.
Chaque pixel est ajusté en recherchant d'autres pixels ayant un contexte similaire. Cette similarité de contexte est définie en comparant les patchs environnants de taille pxp. Les patchs sont recherchés dans une zone de rxr autour du pixel.
Notez que la zone de recherche définit les centres des patchs, ce qui signifie que certains patchs sont composés de pixels situés en dehors de cette zone de recherche.
Le filtre accepte les options suivantes.
s
Définit l'intensité du débruitage. La valeur par défaut est 1.0. Elle doit être comprise dans la plage [1.0, 30.0].
p
Définit la taille du patch. La valeur par défaut est 7. Elle doit être un nombre impair compris dans la plage [0, 99].
pc
Identique à p, mais pour les plans de chrominance.
La valeur par défaut est 0, ce qui signifie automatique.
r
Définit la taille de la zone de recherche. La valeur par défaut est 15. Elle doit être un nombre impair compris dans la plage [0, 99].
rc
Identique à r, mais pour les plans de chrominance.
La valeur par défaut est 0, ce qui signifie automatique.
11.177 nnedi
Désentrelace la vidéo à l'aide d'une interpolation de contours dirigée par un réseau de neurones.
Ce filtre accepte les options suivantes :
weights
Option obligatoire ; sans le fichier binaire, le filtre ne peut pas fonctionner. Le fichier se trouve pour l'instant ici : https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
deint
Définit les images à désentrelacer. La valeur par défaut est all. Elle peut être all ou interlaced.
field
Définit le mode de fonctionnement.
Peut être l'une des valeurs suivantes :
‘af’
Utilise les indicateurs d'image, les deux champs.
‘a’
Utilise les indicateurs d'image, un seul champ.
‘t’
Utilise uniquement le champ supérieur.
‘b’
Utilise uniquement le champ inférieur.
‘tf’
Utilise les deux champs, en commençant par le supérieur.
‘bf’
Utilise les deux champs, en commençant par l'inférieur.
planes
Définit les plans à traiter. Par défaut, le filtre traite toutes les images.
nsize
Définit la taille du voisinage local autour de chaque pixel, utilisé par le réseau de neurones prédicteur.
Peut être l'une des valeurs suivantes :
‘s8x6’ ‘s16x6’ ‘s32x6’ ‘s48x6’ ‘s8x4’ ‘s16x4’ ‘s32x4’ nns
Définit le nombre de neurones du réseau de neurones prédicteur. Peut être l'une des valeurs suivantes :
‘n16’ ‘n32’ ‘n64’ ‘n128’ ‘n256’ qual
Contrôle le nombre de prédictions différentes du réseau de neurones qui sont mélangées pour calculer la valeur de sortie finale. Peut être fast (valeur par défaut) ou slow.
etype
Définit le jeu de poids à utiliser dans le prédicteur. Peut être l'une des valeurs suivantes :
‘a, abs’
poids entraînés pour minimiser l'erreur absolue
‘s, mse’
poids entraînés pour minimiser l'erreur quadratique
pscrn
Contrôle si le réseau de neurones de préfiltrage (prescreener) est utilisé pour déterminer quels pixels doivent être traités par le réseau de neurones prédicteur, et lesquels peuvent être gérés par une simple interpolation cubique. Le réseau de préfiltrage est entraîné à déterminer si l'interpolation cubique est suffisante pour un pixel donné, ou si celui-ci doit être prédit par le réseau prédicteur. La complexité de calcul du réseau de préfiltrage est bien inférieure à celle du réseau prédicteur. Comme la plupart des pixels peuvent être traités par interpolation cubique, l'utilisation du préfiltrage se traduit généralement par un traitement bien plus rapide. Le préfiltrage est assez précis, de sorte que la différence entre son utilisation et sa non-utilisation est presque toujours imperceptible.
Peut être l'une des valeurs suivantes :
‘none’ ‘original’ ‘new’ ‘new2’ ‘new3’
La valeur par défaut est new.
11.177.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options, à l'exception de l'option weights.
11.178 noformat
Force libavfilter à n'utiliser aucun des pixel formats spécifiés pour l'entrée du filtre suivant.
Il accepte les paramètres suivants :
pix_fmts
Liste de noms de pixel formats séparés par ’|’, par exemple pix_fmts=yuv420p|monow|rgb24".
11.178.1 Exemples
-
Force libavfilter à utiliser un format différent de yuv420p pour l'entrée du filtre vflip :
noformat=pix_fmts=yuv420p,vflip -
Convertit la vidéo d'entrée vers l'un des formats non présents dans la liste :
noformat=yuv420p|yuv444p|yuv410p
11.179 noise
Ajoute du bruit à l'image de la vidéo d'entrée.
Le filtre accepte les options suivantes :
all_seed c0_seed c1_seed c2_seed c3_seed
Définit la graine de bruit pour une composante de pixel spécifique, ou pour toutes les composantes de pixel dans le cas de all_seed. La valeur par défaut est 123457.
all_strength, alls c0_strength, c0s c1_strength, c1s c2_strength, c2s c3_strength, c3s
Définit l'intensité du bruit pour une composante de pixel spécifique, ou pour toutes les composantes de pixel dans le cas de all_strength. La valeur par défaut est 0. La plage autorisée est [0, 100].
all_flags, allf c0_flags, c0f c1_flags, c1f c2_flags, c2f c3_flags, c3f
Définit les indicateurs de composante de pixel, ou les indicateurs de toutes les composantes si all_flags. Les valeurs disponibles pour les indicateurs de composante sont :
‘a’
bruit temporel moyenné (plus lisse)
‘p’
mélange le bruit aléatoire avec un motif (semi-)régulier
‘t’
bruit temporel (le motif de bruit change d'une image à l'autre)
‘u’
bruit uniforme (gaussien sinon)
11.179.1 Exemples
Ajoute du bruit temporel et uniforme à la vidéo d'entrée :
noise=alls=20:allf=t+u
11.180 normalize
Normalise une vidéo RGB (également appelée étirement d'histogramme ou étirement de contraste). Voir : https://en.wikipedia.org/wiki/Normalization_(image_processing)
Pour chaque canal de chaque image, le filtre calcule la plage d'entrée et la fait correspondre linéairement à la plage de sortie spécifiée par l'utilisateur. Par défaut, la plage de sortie couvre toute la plage dynamique, du noir pur au blanc pur.
Un lissage temporel peut être appliqué à la plage d'entrée pour réduire le scintillement (variations rapides de luminosité) causé par de petits objets sombres ou clairs entrant ou sortant de la scène. Ceci s'apparente à l'exposition automatique (contrôle automatique du gain) d'une caméra vidéo et, comme avec une caméra vidéo, peut entraîner une période de sur- ou sous-exposition de la vidéo.
Les canaux R, G, B peuvent être normalisés indépendamment, ce qui peut provoquer un décalage de couleur, ou être liés en un seul canal, ce qui évite ce décalage. La normalisation liée préserve la teinte. La normalisation indépendante ne la préserve pas, ce qui permet de supprimer certaines dominantes de couleur. Les normalisations indépendante et liée peuvent être combinées selon n'importe quel ratio.
Le filtre normalize accepte les options suivantes :
blackpt whitept
Couleurs qui définissent la plage de sortie. La valeur d'entrée minimale est mise en correspondance avec blackpt. La valeur d'entrée maximale est mise en correspondance avec whitept. Les valeurs par défaut sont respectivement noir et blanc. Indiquer blanc pour blackpt et noir pour whitept donne une vidéo normalisée aux couleurs inversées. Des nuances de gris peuvent être utilisées pour réduire la plage dynamique (contraste). Indiquer ici des couleurs saturées peut créer des effets intéressants.
smoothing
Nombre d'images précédentes à utiliser pour le lissage temporel. La plage d'entrée de chaque canal est lissée à l'aide d'une moyenne mobile calculée sur l'image courante et les smoothing images précédentes. La valeur par défaut est 0 (aucun lissage temporel).
independence
Contrôle le ratio entre la normalisation de canal indépendante (avec décalage de couleur) et la normalisation liée (préservant la couleur). 0.0 correspond à une normalisation entièrement liée, 1.0 à une normalisation entièrement indépendante. La valeur par défaut est 1.0 (entièrement indépendante).
strength
Intensité globale du filtre. 1.0 correspond à l'intensité maximale. 0.0 est un no-op plutôt coûteux. La valeur par défaut est 1.0 (intensité maximale).
11.180.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options, à l'exception de l'option smoothing. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.180.2 Exemples
Étire le contraste de la vidéo pour utiliser toute la plage dynamique, sans lissage temporel ; peut scintiller selon le contenu source :
normalize=blackpt=black:whitept=white:smoothing=0
Comme ci-dessus, mais avec 50 images de lissage temporel ; le scintillement devrait être réduit, selon le contenu source :
normalize=blackpt=black:whitept=white:smoothing=50
Comme ci-dessus, mais avec une normalisation de canal liée préservant la teinte :
normalize=blackpt=black:whitept=white:smoothing=50:independence=0
Comme ci-dessus, mais avec une intensité réduite de moitié :
normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
Fait correspondre la couleur d'entrée la plus sombre au rouge, et la couleur d'entrée la plus claire au cyan :
normalize=blackpt=red:whitept=cyan
11.181 null
Transmet la source vidéo à la sortie sans modification.
11.182 ocio
Filtre de bibliothèque OpenColorIO
Ce filtre permet d'effectuer une gestion des couleurs à l'aide de la bibliothèque OpenColorIO. Voir https://opencolorio.org/ pour plus de détails. Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-libopencolorio.
Il accepte les options suivantes :
config
Par défaut, le filtre utilise la configuration OCIO définie par la variable d'environnement OCIO, mais ce paramètre permet d'en indiquer explicitement l'emplacement. Pour bien démarrer, vous pouvez utiliser config=ocio://studio-config-v1.0.0_aces-v1.3_ocio-v2.1, qui indique l'une des valeurs par défaut intégrées.
input
Définit l'espace colorimétrique d'entrée.
output
Définit l'espace colorimétrique de sortie.
display
Définit l'espace colorimétrique d'affichage, utilisé en combinaison avec view.
view
Définit l'espace colorimétrique de vue, utilisé en combinaison avec display.
inverse
Utilisée en combinaison avec display et view, cette option inverse la transformation, permettant ainsi de passer d'un display/view vers l'"espace colorimétrique d'entrée".
filetransform
Permet d'indiquer un file-transform externe à utiliser à la place du fichier de configuration OCIO. Ceci est utile pour appliquer une transformation unique sans avoir besoin d'un fichier de configuration OCIO complet.
format
Permet d'indiquer le pix_fmt de sortie du filtre OCIO. Celui-ci doit impérativement être un espace colorimétrique RGB ; vous êtes donc en réalité limité à rgb24, rgba, rgb48, rgba48, gbrp10, gbrp12, gbrpf32le, gbrapf32le. Pour la plupart des encodages, nous recommandons rgb48
context_params
Permet d'indiquer des paramètres de contexte supplémentaires pour le filtre OCIO. Il s'agit d'une liste de paires key=value, séparées par des deux-points.
11.182.1 Exemples
Convertit de ACEScg vers ACEScct ; ceci suppose que le fichier OCIO est défini via la variable d'environnement OCIO.
input=ACEScg:output=ACEScct:format=rgb48
Convertit de ACEScg vers un affichage sRGB à l'aide de la transformation de vue "ACES 1.0 - SDR Video" ; ceci suppose que le fichier OCIO est défini via la variable d'environnement OCIO. Notez que vous devez entourer l'argument de guillemets pour garantir que les espaces soient correctement interprétés.
input=ACEScg:display=sRGB - Display:view=ACES 1.0 - SDR Video:format=rgb48
Comme ci-dessus, mais en utilisant le fichier OCIO studio-config-v1.0.0_aces-v1.3_ocio-v2.1_ns.ocio plutôt que la variable d'environnement 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 vous convertissez vers YCrCb, il est tout de même conseillé de définir la matrice de couleur pour la conversion. Voici un bon exemple de combinaison des deux.
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
Reconnaissance optique de caractères (OCR)
Ce filtre utilise Tesseract pour la reconnaissance optique de caractères. Pour activer la compilation de ce filtre, vous devez configurer FFmpeg avec --enable-libtesseract.
Il accepte les options suivantes :
datapath
Définit le datapath vers les données tesseract. Par défaut, la valeur définie lors de l'installation est utilisée.
language
Définit la langue ; la valeur par défaut est "eng".
whitelist
Définit la liste blanche de caractères.
blacklist
Définit la liste noire de caractères.
Le filtre exporte le texte reconnu sous la forme de métadonnées d'image lavfi.ocr.text. Le filtre exporte la confiance des mots reconnus sous la forme de métadonnées d'image lavfi.ocr.confidence.
11.184 ocv
Applique une transformation vidéo à l'aide de libopencv.
Pour activer ce filtre, installez la bibliothèque et les en-têtes libopencv, puis configurez FFmpeg avec --enable-libopencv.
Il accepte les paramètres suivants :
filter_name
Nom du filtre libopencv à appliquer.
filter_params
Paramètres à transmettre au filtre libopencv. S'ils ne sont pas indiqués, les valeurs par défaut sont utilisées.
Pour des informations plus précises, reportez-vous à la documentation officielle de libopencv : http://docs.opencv.org/master/modules/imgproc/doc/filtering.html
Plusieurs filtres libopencv sont pris en charge ; voir les sous-sections suivantes.
11.184.1 dilate
Dilate une image à l'aide d'un élément structurant spécifique. Correspond à la fonction libopencv cvDilate.
Il accepte les paramètres suivants : struct_el|nb_iterations.
struct_el représente un élément structurant et a pour syntaxe : colsxrows+anchor_xxanchor_y/shape
cols et rows représentent respectivement le nombre de colonnes et de lignes de l'élément structurant, anchor_x et anchor_y le point d'ancrage, et shape la forme de l'élément structurant. shape doit être "rect", "cross", "ellipse" ou "custom".
Si la valeur de shape est "custom", elle doit être suivie d'une chaîne de la forme "=filename". Le fichier nommé filename est supposé représenter une image binaire, chaque caractère imprimable correspondant à un pixel clair. Lorsqu'une forme custom est utilisée, cols et rows sont ignorés ; le nombre de colonnes et de lignes du fichier lu est utilisé à la place.
La valeur par défaut de struct_el est "3x3+0x0/rect".
nb_iterations indique le nombre de fois où la transformation est appliquée à l'image ; la valeur par défaut est 1.
Quelques exemples :
# 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
Érode une image à l'aide d'un élément structurant spécifique. Correspond à la fonction libopencv cvErode.
Il accepte les paramètres struct_el:nb_iterations, avec la même syntaxe et la même sémantique que le filtre dilate.
11.184.3 smooth
Lisse la vidéo d'entrée.
Le filtre prend les paramètres suivants : type|param1|param2|param3|param4.
type est le type de filtre de lissage à appliquer ; il doit être l'une des valeurs suivantes : "blur", "blur_no_scale", "median", "gaussian" ou "bilateral". La valeur par défaut est "gaussian".
La signification de param1, param2, param3 et param4 dépend du type de smooth. param1 et param2 acceptent des valeurs entières positives ou 0. param3 et param4 acceptent des valeurs à virgule flottante.
La valeur par défaut de param1 est 3. La valeur par défaut des autres paramètres est 0.
Ces paramètres correspondent aux paramètres transmis à la fonction libopencv cvSmooth.
11.185 oscilloscope
Oscilloscope vidéo 2D.
Utile pour mesurer la réponse impulsionnelle spatiale, la réponse indicielle, les délais de chrominance, etc.
Il accepte les paramètres suivants :
x
Définit la position x du centre de la sonde.
y
Définit la position y du centre de la sonde.
s
Définit la taille de la sonde, relative à la diagonale de l'image.
t
Définit l'inclinaison/la rotation de la sonde.
o
Définit l'opacité du tracé.
tx
Définit la position x du centre du tracé.
ty
Définit la position y du centre du tracé.
tw
Définit la largeur du tracé, relative à la largeur de l'image.
th
Définit la hauteur du tracé, relative à la hauteur de l'image.
c
Définit les composantes à tracer. Par défaut, les trois premières composantes sont tracées.
g
Dessine la grille du tracé. Activé par défaut.
st
Dessine des statistiques. Activé par défaut.
sc
Dessine la sonde. Activé par défaut.
11.185.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.185.2 Exemples
-
Examine la première ligne complète de l'image vidéo.
oscilloscope=x=0.5:y=0:s=1 -
Examine la dernière ligne complète de l'image vidéo.
oscilloscope=x=0.5:y=1:s=1 -
Examine la 5e ligne complète d'une image vidéo de hauteur 1080.
oscilloscope=x=0.5:y=5/1080:s=1 -
Examine la dernière colonne complète de l'image vidéo.
oscilloscope=x=1:y=0.5:s=1:t=1
11.186 overlay
Superpose une vidéo sur une autre.
Il prend deux entrées et produit une sortie. La première entrée est la vidéo "principale", sur laquelle la seconde entrée est superposée.
Il accepte les paramètres suivants :
Une description des options acceptées suit.
x y
Définit l'expression des coordonnées x et y de la vidéo superposée sur la vidéo principale. La valeur par défaut est "0" pour les deux expressions. Si l'expression n'est pas valide, elle est définie sur une valeur énorme (ce qui signifie que la superposition n'est pas affichée dans la zone visible de la sortie).
eof_action
Voir framesync.
eval
Définit quand les expressions de x et y sont évaluées.
Elle accepte les valeurs suivantes :
‘init’
évalue les expressions une seule fois, lors de l'initialisation du filtre ou du traitement d'une commande
‘frame’
évalue les expressions pour chaque image entrante
La valeur par défaut est ‘frame’.
shortest
Voir framesync.
format
Définit le format de la vidéo de sortie.
Elle accepte les valeurs suivantes :
‘yuv420’
force une sortie planaire YUV 4:2:0 8 bits
‘yuv420p10’
force une sortie planaire YUV 4:2:0 10 bits
‘yuv422’
force une sortie planaire YUV 4:2:2 8 bits
‘yuv422p10’
force une sortie planaire YUV 4:2:2 10 bits
‘yuv444’
force une sortie planaire YUV 4:4:4 8 bits
‘yuv444p10’
force une sortie planaire YUV 4:4:4 10 bits
‘rgb’
force une sortie empaquetée RGB 8 bits
‘gbrp’
force une sortie planaire RGB 8 bits
‘auto’
choisit automatiquement le format
La valeur par défaut est ‘yuv420’.
repeatlast
Voir framesync.
alpha
Définit le format de l'alpha de la vidéo superposée ; elle peut être straight ou premultiplied, ou auto pour choisir automatiquement le mode alpha. La valeur par défaut est auto.
Les expressions x et y peuvent contenir les paramètres suivants.
main_w, W main_h, H
Largeur et hauteur de l'entrée principale.
overlay_w, w overlay_h, h
Largeur et hauteur de l'entrée superposée.
x y
Valeurs calculées de x et y. Elles sont évaluées pour chaque nouvelle image.
hsub vsub
Valeurs de sous-échantillonnage horizontal et vertical de chrominance du format de sortie. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
n
numéro de l'image d'entrée, à partir de 0
pos
position de l'image d'entrée dans le fichier ; NAN si elle est inconnue ; obsolète, à ne pas utiliser
t
L'horodatage, exprimé en secondes. Il vaut NAN si l'horodatage d'entrée est inconnu.
Ce filtre prend également en charge les options framesync.
Notez que les variables n et t ne sont disponibles que lorsque l'évaluation est effectuée par image , et qu'elles valent NAN lorsque eval est réglé sur ‘init’.
Sachez que les images sont extraites de chaque vidéo d'entrée dans l'ordre des horodatages ; par conséquent, si leurs horodatages initiaux diffèrent, il est conseillé de faire passer les deux entrées par un filtre setpts=PTS-STARTPTS afin qu'elles commencent au même horodatage zéro, comme le fait l'exemple du filtre movie.
Vous pouvez enchaîner davantage de superpositions, mais vous devriez tester l'efficacité d'une telle approche.
11.186.1 Commandes
Ce filtre prend en charge les commandes suivantes :
x y
Modifie x et y de l'entrée superposée. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.186.2 Exemples
- Dessine la superposition à 10 pixels du coin inférieur droit de la vidéo principale :
overlay=main_w-overlay_w-10:main_h-overlay_h-10
En utilisant des options nommées, l'exemple ci-dessus devient :
overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
-
Insère un logo PNG transparent dans le coin inférieur gauche de l'entrée, à l'aide de l'outil
ffmpeget de l'option-filter_complex:ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output -
Insère 2 logos PNG transparents différents (le second dans le coin inférieur droit), à l'aide de l'outil
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 -
Ajoute une couche de couleur transparente au-dessus de la vidéo principale ;
WxHdoit indiquer la taille de l'entrée principale du filtre overlay :color=color=red@.3:size=WxH [over]; [in][over] overlay [out] -
Lit côte à côte une vidéo originale et une version filtrée (ici avec le filtre deshake), à l'aide de l'outil
ffplay:ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
La commande ci-dessus est équivalente à :
ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
-
Crée une superposition glissante apparaissant depuis la gauche vers la partie supérieure droite de l'écran, à partir de l'instant 2 :
overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0 -
Compose la sortie en plaçant deux vidéos d'entrée côte à côte :
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] " -
Masque une section de 10 à 20 secondes d'une vidéo en appliquant le filtre delogo
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 -
Enchaîne plusieurs superpositions en cascade :
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
Applique un débruiteur en ondelettes surcomplètes.
Le filtre accepte les options suivantes :
depth
Définit la profondeur.
Des valeurs de profondeur plus élevées débruitent davantage les composantes basse fréquence, mais ralentissent le filtrage.
Doit être un entier compris dans la plage 8-16 ; la valeur par défaut est 8.
luma_strength, ls
Définit l'intensité de la luminance.
Doit être une valeur double comprise dans la plage 0-1000 ; la valeur par défaut est 1.0.
chroma_strength, cs
Définit l'intensité de la chrominance.
Doit être une valeur double comprise dans la plage 0-1000 ; la valeur par défaut est 1.0.
11.188 pad
Ajoute un remplissage à l'image d'entrée et place l'entrée d'origine aux coordonnées x, y indiquées.
Il accepte les paramètres suivants :
width, w height, h
Spécifie une expression pour la taille de l'image de sortie une fois le remplissage ajouté. Si la valeur de width ou de height vaut 0, la taille d'entrée correspondante est utilisée pour la sortie.
L'expression de width peut référencer la valeur définie par l'expression de height, et inversement.
La valeur par défaut de width et height est 0.
x y
Spécifie les décalages permettant de placer l'image d'entrée dans la zone de remplissage, par rapport au bord supérieur/gauche de l'image de sortie.
L'expression de x peut référencer la valeur définie par l'expression de y, et inversement.
La valeur par défaut de x et y est 0.
Si x ou y s'évalue à un nombre négatif, la valeur est modifiée de sorte que l'image d'entrée soit centrée sur la zone de remplissage.
color
Spécifie la couleur de la zone de remplissage. Pour la syntaxe de cette option, consultez la section "Color" du manuel ffmpeg-utils (ffmpeg-utils).
La valeur par défaut de color est "black".
eval
Spécifie à quel moment évaluer les expressions de width, height, x et y.
Il accepte les valeurs suivantes :
‘init’
Évalue les expressions une seule fois, lors de l'initialisation du filtre ou du traitement d'une commande.
‘frame’
Évalue les expressions pour chaque image entrante.
La valeur par défaut est ‘init’.
aspect
Effectue le remplissage en fonction d'un rapport d'aspect (aspect) plutôt que d'une résolution.
La valeur des options width, height, x et y est une expression contenant les constantes suivantes :
in_w in_h
La largeur et la hauteur de la vidéo d'entrée.
iw ih
Identiques à in_w et in_h.
out_w out_h
La largeur et la hauteur de sortie (la taille de la zone de remplissage), telles que spécifiées par les expressions width et height.
ow oh
Identiques à out_w et out_h.
x y
Les décalages x et y tels que spécifiés par les expressions x et y, ou NAN s'ils ne sont pas encore spécifiés.
a
identique à iw / ih
sar
rapport d'aspect des échantillons en entrée
dar
rapport d'aspect d'affichage en entrée, identique à (iw / ih) * sar
hsub vsub
Les valeurs de sous-échantillonnage horizontal et vertical de chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
11.188.1 Exemples
- Ajoute un remplissage de couleur "violet" à la vidéo d'entrée. La taille de la vidéo de sortie est 640x480, et le coin supérieur gauche de la vidéo d'entrée est placé à la colonne 0, ligne 40
pad=640:480:0:40:violet
L'exemple ci-dessus équivaut à la commande suivante :
pad=width=640:height=480:x=0:y=40:color=violet
-
Remplit l'entrée pour obtenir une sortie dont les dimensions sont multipliées par 3/2, et place la vidéo d'entrée au centre de la zone de remplissage :
pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2" -
Remplit l'entrée pour obtenir une sortie carrée dont la taille est égale à la plus grande valeur entre la largeur et la hauteur d'entrée, et place la vidéo d'entrée au centre de la zone de remplissage :
pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2" -
Remplit l'entrée pour obtenir un rapport largeur/hauteur final de 16:9 :
pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2" -
Dans le cas d'une vidéo anamorphique, pour définir correctement l'aspect d'affichage de sortie, il est nécessaire d'utiliser sar dans l'expression, selon la relation :
(ih * X / ih) * sar = output_dar X = output_dar / sar
L'exemple précédent doit donc être modifié comme suit :
pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
- Double la taille de sortie et place la vidéo d'entrée dans le coin inférieur droit de la zone de remplissage de sortie :
pad="2*iw:2*ih:ow-iw:oh-ih"
11.189 palettegen
Génère une palette unique pour l'ensemble d'un flux vidéo.
Il accepte les options suivantes :
max_colors
Définit le nombre maximal de couleurs à quantifier dans la palette. Remarque : la palette contiendra tout de même 256 couleurs ; les entrées de palette inutilisées seront noires.
reserve_transparent
Crée une palette de 255 couleurs maximum et réserve la dernière pour la transparence. Réserver la couleur de transparence est utile pour l'optimisation des GIF. Si l'option n'est pas définie, le nombre maximal de couleurs dans la palette sera 256. Pour une image autonome, il est probablement préférable de désactiver cette option. Activée par défaut.
transparency_color
Définit la couleur utilisée comme arrière-plan pour la transparence.
stats_mode
Définit le mode statistique.
Il accepte les valeurs suivantes :
‘full’
Calcule les histogrammes sur l'image entière.
‘diff’
Calcule les histogrammes uniquement pour la partie qui diffère de l'image précédente. Cela peut être pertinent pour accorder plus d'importance à la partie en mouvement de l'entrée lorsque l'arrière-plan est statique.
‘single’
Calcule un nouvel histogramme pour chaque image.
La valeur par défaut est full.
Le filtre exporte également la métadonnée d'image lavfi.color_quant_ratio (nb_color_in / nb_color_out), qui permet d'évaluer le degré de quantification des couleurs de la palette. Cette information est également visible au niveau de journalisation info.
11.189.1 Exemples
- Génère une palette représentative d'une vidéo donnée à l'aide de
ffmpeg:ffmpeg -i input.mkv -vf palettegen palette.png
11.190 paletteuse
Utilise une palette pour sous-échantillonner un flux vidéo d'entrée.
Le filtre prend deux entrées : un flux vidéo et une palette. La palette doit être une image de 256 pixels.
Il accepte les options suivantes :
dither
Sélectionne le mode de tramage (dithering). Les algorithmes disponibles sont :
‘bayer’
Tramage de Bayer ordonné 8x8 (déterministe)
‘heckbert’
Tramage tel que défini par Paul Heckbert en 1982 (diffusion d'erreur simple). Remarque : ce tramage est parfois considéré comme "incorrect" et n'est inclus qu'à titre de référence.
‘floyd_steinberg’
Tramage de Floyd et Steingberg (diffusion d'erreur)
‘sierra2’
Tramage de Frankie Sierra v2 (diffusion d'erreur)
‘sierra2_4a’
Tramage de Frankie Sierra v2 "Lite" (diffusion d'erreur)
‘sierra3’
Tramage de Frankie Sierra v3 (diffusion d'erreur)
‘burkes’
Tramage de Burkes (diffusion d'erreur)
‘atkinson’
Tramage d'Atkinson par Bill Atkinson chez Apple Computer (diffusion d'erreur)
‘none’
Désactive le tramage.
La valeur par défaut est sierra2_4a.
bayer_scale
Lorsque le tramage bayer est sélectionné, cette option définit l'échelle du motif (à quel point le quadrillage est visible). Une valeur basse donne un motif plus visible avec moins de banding, tandis qu'une valeur plus élevée donne un motif moins visible au prix de davantage de banding.
L'option doit être une valeur entière comprise dans l'intervalle [0,5]. La valeur par défaut est 2.
diff_mode
Si elle est définie, indique la zone à traiter
‘rectangle’
Seul le rectangle qui change est retraité. Ce mécanisme est similaire au recadrage/décalage utilisé par la compression GIF. Cette option peut être utile pour la vitesse si seule une partie de l'image change, et se prête à des usages tels que limiter la portée du tramage par diffusion d'erreur au rectangle qui délimite la scène en mouvement (ce qui donne une sortie plus déterministe si la scène change peu, et donc moins de bruit de mouvement et une meilleure compression GIF).
La valeur par défaut est none.
new
Prend une nouvelle palette pour chaque image de sortie.
alpha_threshold
Définit le seuil alpha pour la transparence. Les valeurs alpha supérieures à ce seuil sont traitées comme totalement opaques, et celles inférieures à ce seuil sont traitées comme totalement transparentes.
L'option doit être une valeur entière comprise dans l'intervalle [0,255]. La valeur par défaut est 128.
11.190.1 Exemples
- Utilise une palette (générée par exemple avec palettegen) pour encoder un GIF à l'aide de
ffmpeg:ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
11.191 perspective
Corrige la perspective d'une vidéo qui n'a pas été enregistrée perpendiculairement à l'écran.
Une description des paramètres acceptés suit.
x0 y0 x1 y1 x2 y2 x3 y3
Définit l'expression des coordonnées des coins supérieur gauche, supérieur droit, inférieur gauche et inférieur droit. Les valeurs par défaut sont 0:0:W:0:0:H:W:H, pour lesquelles la perspective reste inchangée. Si l'option sense est définie sur source, les points spécifiés sont envoyés vers les coins de la destination. Si l'option sense est définie sur destination, les coins de la source sont envoyés vers les coordonnées spécifiées.
Les expressions peuvent utiliser les variables suivantes :
W H
la largeur et la hauteur de l'image vidéo.
in
Nombre d'images en entrée.
on
Nombre d'images en sortie.
interpolation
Définit l'interpolation pour la correction de perspective.
Il accepte les valeurs suivantes :
‘linear’ ‘cubic’
La valeur par défaut est ‘linear’.
sense
Définit l'interprétation des options de coordonnées.
Il accepte les valeurs suivantes :
‘0, source’
Envoie le point de la source spécifié par les coordonnées données vers les coins de la destination.
‘1, destination’
Envoie les coins de la source vers le point de la destination spécifié par les coordonnées données.
La valeur par défaut est ‘source’.
eval
Définit à quel moment les expressions des coordonnées x0,y0,...x3,y3 sont évaluées.
Il accepte les valeurs suivantes :
‘init’
évalue les expressions une seule fois, lors de l'initialisation du filtre ou du traitement d'une commande
‘frame’
évalue les expressions pour chaque image entrante
La valeur par défaut est ‘init’.
11.192 phase
Retarde une vidéo entrelacée d'une durée de champ afin de modifier l'ordre des champs.
L'usage visé est de corriger des films PAL capturés avec un ordre des champs opposé à celui du transfert film-vidéo.
Une description des paramètres acceptés suit.
mode
Définit le mode de phase.
Il accepte les valeurs suivantes :
‘t’
Capture avec le champ supérieur en premier, transfert avec le champ inférieur en premier. Le filtre retarde le champ inférieur.
‘b’
Capture avec le champ inférieur en premier, transfert avec le champ supérieur en premier. Le filtre retarde le champ supérieur.
‘p’
Capture et transfert avec le même ordre de champs. Ce mode n'existe que pour servir de référence dans la documentation des autres options ; si vous le sélectionnez réellement, le filtre ne fera fidèlement rien.
‘a’
Ordre de capture déterminé automatiquement par les indicateurs de champ, transfert dans l'ordre opposé. Le filtre choisit entre les modes ‘t’ et ‘b’ image par image à l'aide des indicateurs de champ. Si aucune information de champ n'est disponible, cela fonctionne comme ‘u’.
‘u’
Capture inconnue ou variable, transfert dans l'ordre opposé. Le filtre choisit entre ‘t’ et ‘b’ image par image en analysant les images et en sélectionnant l'option qui produit la meilleure correspondance entre les champs.
‘T’
Capture avec le champ supérieur en premier, transfert inconnu ou variable. Le filtre choisit entre ‘t’ et ‘p’ par analyse d'image.
‘B’
Capture avec le champ inférieur en premier, transfert inconnu ou variable. Le filtre choisit entre ‘b’ et ‘p’ par analyse d'image.
‘A’
Capture déterminée par les indicateurs de champ, transfert inconnu ou variable. Le filtre choisit entre ‘t’, ‘b’ et ‘p’ à l'aide des indicateurs de champ et de l'analyse d'image. Si aucune information de champ n'est disponible, cela fonctionne comme ‘U’. C'est le mode par défaut.
‘U’
Capture et transfert tous deux inconnus ou variables. Le filtre choisit entre ‘t’, ‘b’ et ‘p’ uniquement par analyse d'image.
11.192.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.193 photosensitivity
Réduit divers flashs dans la vidéo, afin d'aider les utilisateurs épileptiques.
Il accepte les options suivantes :
frames, f
Définit le nombre d'images à utiliser lors du filtrage. La valeur par défaut est 30.
threshold, t
Définit le facteur de seuil de détection. La valeur par défaut est 1. Plus la valeur est basse, plus le filtrage est strict.
skip
Définit le nombre de pixels à sauter lors de l'échantillonnage des images. La valeur par défaut est 1. La plage autorisée va de 1 à 1024.
bypass
Laisse les images inchangées. Désactivée par défaut.
11.194 pixdesctest
Filtre de test du descripteur de pixel format, principalement utile pour les tests internes. La vidéo de sortie doit être identique à la vidéo d'entrée.
Par exemple :
format=monow, pixdesctest
permet de tester la définition du descripteur de pixel format monowhite.
11.195 pixelize
Applique une pixellisation au flux vidéo.
Le filtre accepte les options suivantes :
width, w height, h
Définit les dimensions des blocs utilisés pour la pixellisation. La valeur par défaut est 16.
mode, m
Définit le mode de pixellisation utilisé.
Les valeurs possibles sont :
‘avg’ ‘min’ ‘max’
La valeur par défaut est avg.
planes, p
Définit les plans à filtrer. Par défaut, tous les plans sont filtrés.
11.195.1 Commandes
Ce filtre prend en charge toutes les options en tant que commandes.
11.196 pixscope
Affiche les valeurs d'échantillon des canaux de couleur. Principalement utile pour vérifier les couleurs et les niveaux. La résolution minimale prise en charge est 640x480.
Le filtre accepte les options suivantes :
x
Définit la position X de la portée (scope), décalage relatif sur l'axe X.
y
Définit la position Y de la portée (scope), décalage relatif sur l'axe Y.
w
Définit la largeur de la portée (scope).
h
Définit la hauteur de la portée (scope).
o
Définit l'opacité de la fenêtre. Cette fenêtre contient également des statistiques sur la zone de pixels.
wx
Définit la position X de la fenêtre, décalage relatif sur l'axe X.
wy
Définit la position Y de la fenêtre, décalage relatif sur l'axe Y.
11.196.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.197 pp7
Applique le filtre de posttraitement 7. Il s'agit d'une variante du filtre spp, proche de spp = 6 avec une DCT à 7 points, où seul l'échantillon central est utilisé après l'IDCT.
Le filtre accepte les options suivantes :
qp
Force un paramètre de quantification constant. Accepte un entier compris entre 0 et 63. Si l'option n'est pas définie, le filtre utilise le QP du flux vidéo (si disponible).
mode
Définit le mode de seuillage. Les modes disponibles sont :
‘hard’
Applique un seuillage dur.
‘soft’
Applique un seuillage doux (meilleur effet anti-ringing, mais probablement plus flou).
‘medium’
Applique un seuillage moyen (bons résultats, valeur par défaut).
11.198 premultiply
Applique un effet de prémultiplication alpha au flux vidéo d'entrée, en utilisant le premier plan du second flux comme alpha.
Les deux flux doivent avoir les mêmes dimensions et le même pixel format.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Avec la valeur par défaut 0xf, tous les plans sont traités.
inplace
Ne nécessite pas de seconde entrée pour le traitement ; utilise à la place le plan alpha du flux d'entrée.
11.199 premultiply_dynamic
Prémultiplie ou annule la prémultiplication du flux vidéo d'entrée de manière dynamique, selon les besoins, afin de répondre aux exigences du graphe de filtres en aval. Cela équivaut à peu près à premultiply:inplace=yes ou unpremultiply:inplace=yes, ou sinon à une absence d'opération.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Avec la valeur par défaut 0xf, tous les plans sont traités.
11.200 prewitt
Applique l'opérateur de Prewitt au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Avec la valeur par défaut 0xf, tous les plans sont traités.
scale
Définit la valeur à multiplier avec le résultat filtré.
delta
Définit la valeur à ajouter au résultat filtré.
11.200.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.201 pseudocolor
Modifie les couleurs des images d'une vidéo à l'aide de pseudo-couleurs.
Ce filtre accepte les options suivantes :
c0
définit l'expression de la première composante du pixel
c1
définit l'expression de la deuxième composante du pixel
c2
définit l'expression de la troisième composante du pixel
c3
définit l'expression de la quatrième composante du pixel, correspondant à la composante alpha
index, i
définit la composante à utiliser comme base pour modifier les couleurs
preset, p
Choisit l'une des LUT intégrées. Par défaut, réglé sur 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
Définit l'opacité des couleurs de sortie. La plage autorisée va de 0 à 1. La valeur par défaut est 1.
Chacune des options d'expression spécifie l'expression à utiliser pour calculer la table de correspondance (lookup table) des valeurs de composante de pixel correspondantes.
Les expressions peuvent contenir les constantes et fonctions suivantes :
w h
La largeur et la hauteur de l'entrée.
val
La valeur d'entrée de la composante de pixel.
ymin, umin, vmin, amin
La valeur minimale autorisée pour la composante.
ymax, umax, vmax, amax
La valeur maximale autorisée pour la composante.
Toutes les expressions valent "val" par défaut.
11.201.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.201.2 Exemples
- Transforme les valeurs de luminance trop élevées en dégradé :
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
Obtient le PSNR (Peak Signal to Noise Ratio, rapport signal sur bruit de crête) moyen, maximal et minimal entre deux vidéos d'entrée.
Ce filtre prend en entrée deux vidéos : la première est considérée comme la source "principale" et transmise inchangée à la sortie. La seconde est utilisée comme vidéo de "référence" pour calculer le PSNR.
Pour que ce filtre fonctionne correctement, les deux entrées vidéo doivent avoir la même résolution et le même pixel format. Il suppose également que les deux entrées comportent le même nombre d'images, comparées une à une.
Le PSNR moyen obtenu est affiché via le système de journalisation.
Le filtre enregistre la MSE (mean squared error, erreur quadratique moyenne) cumulée de chaque image ; à la fin du traitement, elle est moyennée de façon égale sur toutes les images, puis la formule suivante est appliquée pour obtenir le PSNR :
PSNR = 10*log10(MAX^2/MSE)
Où MAX est la moyenne des valeurs maximales de chaque composante de l'image.
La description des paramètres acceptés suit.
stats_file, f
Si elle est spécifiée, le filtre utilise le fichier nommé pour enregistrer le PSNR de chaque image individuelle. Lorsque le nom de fichier vaut "-", les données sont envoyées vers la sortie standard.
stats_version
Spécifie la version du format de fichier de statistiques à utiliser. Les détails de chaque format sont donnés ci-dessous. La valeur par défaut est 1.
output_max
Détermine si la valeur maximale est écrite dans le journal de statistiques. La valeur par défaut est 0. Nécessite stats_version >= 2. Si l'option est activée alors que stats_version < 2, le filtre renvoie une erreur.
Ce filtre prend également en charge les options framesync.
Le fichier produit si stats_file est sélectionné contient une suite de paires clé/valeur de la forme key:value pour chaque couple d'images comparé.
Si une valeur de stats_version supérieure à 1 est spécifiée, une ligne d'en-tête précède la liste des statistiques par couple d'images, avec des paires clé-valeur suivant le format d'image, avec les paramètres suivants :
psnr_log_version
La version du format du fichier journal. Correspond à stats_version.
fields
Une liste, séparée par des virgules, des paramètres par couple d'images inclus dans le journal.
Une description de chaque paramètre par couple d'images affiché suit :
n
numéro séquentiel de l'image d'entrée, à partir de 1
mse_avg
Différence moyenne pixel par pixel (erreur quadratique moyenne) entre les images comparées, moyennée sur toutes les composantes de l'image.
mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
Différence moyenne pixel par pixel (erreur quadratique moyenne) entre les images comparées, pour la composante indiquée par le suffixe.
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
Rapport signal sur bruit de crête des images comparées, pour la composante indiquée par le suffixe.
max_avg, max_y, max_u, max_v
Valeur maximale autorisée pour chaque canal, et moyenne sur tous les canaux.
11.202.1 Exemples
- Par exemple :
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] psnr="stats_file=stats.log" [out]
Dans cet exemple, le fichier d'entrée traité est comparé au fichier de référence ref_movie.mpg. Le PSNR de chaque image individuelle est enregistré dans stats.log.
- Un autre exemple avec des containers différents :
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
Filtre d'inversion du pulldown (télécinéma inverse), capable de traiter un contenu mêlant télécinéma matériel (hard-telecine), progressif à 24000/1001 fps et progressif à 30000/1001 fps.
Le filtre pullup est conçu pour tirer parti du contexte futur dans ses décisions. Ce filtre est sans état, au sens où il ne se verrouille pas sur un motif à suivre, mais examine plutôt les champs suivants afin d'identifier des correspondances et de reconstruire des images progressives.
Pour produire un contenu avec une fréquence d'images régulière, insérez le filtre fps après pullup ; utilisez fps=24000/1001 si la fréquence d'images d'entrée est de 29.97fps, et fps=24 pour 30fps ainsi que pour l'entrée (rare) télécinée à 25fps.
Le filtre accepte les options suivantes :
jl jr jt jb
Ces options définissent la quantité de "déchet" (junk) à ignorer respectivement à gauche, à droite, en haut et en bas de l'image. Gauche et droite sont exprimés en unités de 8 pixels, tandis que haut et bas sont exprimés en unités de 2 lignes. La valeur par défaut est 8 pixels de chaque côté.
sb
Définit les ruptures strictes (strict breaks). Régler cette option à 1 réduit le risque que le filtre génère occasionnellement une image mal appariée, mais peut aussi entraîner l'abandon d'un nombre excessif d'images lors de séquences à fort mouvement. À l'inverse, la régler à -1 fait que le filtre apparie les champs plus facilement, ce qui peut aider au traitement d'une vidéo présentant un léger flou entre les champs, mais peut aussi produire des images entrelacées en sortie. La valeur par défaut est 0.
mp
Définit le plan métrique à utiliser. Il accepte les valeurs suivantes :
‘l’
Utilise le plan de luminance.
‘u’
Utilise le plan de chrominance bleue.
‘v’
Utilise le plan de chrominance rouge.
Cette option permet d'utiliser un plan de chrominance au lieu du plan de luminance par défaut pour les calculs du filtre. Cela peut améliorer la précision sur un contenu source très propre, mais est plus susceptible de la diminuer, en particulier en présence de bruit de chrominance (effet arc-en-ciel) ou sur une vidéo en niveaux de gris. Le principal intérêt de régler mp sur un plan de chrominance est de réduire la charge CPU et de rendre pullup utilisable en temps réel sur des machines lentes.
Pour de meilleurs résultats (sans images dupliquées dans le fichier de sortie), il est nécessaire de modifier la fréquence d'images de sortie. Par exemple, pour appliquer un télécinéma inverse à une entrée NTSC :
ffmpeg -i input -vf pullup -r 24000/1001 ...
11.204 qp
Modifie les paramètres de quantification vidéo (QP).
Le filtre accepte l'option suivante :
qp
Définit l'expression du paramètre de quantification.
L'expression est évaluée via l'API eval et peut contenir, entre autres, les constantes suivantes :
known
Vaut 1 si l'index n'est pas 129, 0 sinon.
qp
Index séquentiel allant de -129 à 128.
11.204.1 Exemples
- Une équation du type :
qp=2+2*sin(PI*qp)
11.205 qrencode
Génère un code QR à l'aide de la bibliothèque libqrencode (voir https://fukuchi.org/works/qrencode/), et le superpose à l'image courante.
Pour activer la compilation de ce filtre, il faut configurer FFmpeg avec --enable-libqrencode.
Le code QR est généré à partir du texte ou du modèle de texte fourni. Le code QR correspondant est mis à l'échelle puis superposé à la sortie vidéo selon les options indiquées.
Si aucun texte n'est indiqué, aucun code QR n'est superposé.
Ce filtre accepte les options suivantes :
qrcode_width, q padded_qrcode_width, Q
Indique par une expression la largeur du code QR rendu, avec et sans remplissage. L'expression qrcode_width peut référencer la valeur définie par l'expression padded_qrcode_width, et inversement. Par défaut, padded_qrcode_width est réglée sur qrcode_width, ce qui signifie qu'il n'y a pas de remplissage.
Ces expressions sont évaluées pour chaque nouvelle image.
Voir la section Expressions qrencode pour plus de détails.
x y
Indique par une expression la position du coin supérieur gauche du code QR avec remplissage. L'expression x peut référencer la valeur définie par l'expression y, et inversement.
Par défaut, x et y sont réglées sur 0, ce qui signifie que le code QR est placé dans le coin supérieur gauche de l'entrée.
Ces expressions sont évaluées pour chaque nouvelle image.
Voir la section Expressions qrencode pour plus de détails.
case_sensitive, cs
Demande à libqrencode d'utiliser un encodage sensible à la casse. Ceci est activé par défaut. Cela peut être désactivé pour réduire la taille de l'encodage QR.
level, l
Indique le niveau de correction d'erreur de l'encodage QR. Avec un niveau de correction plus élevé, la taille de l'encodage augmente, mais le code résiste mieux à la corruption. Le niveau le plus bas est L.
Il accepte les valeurs suivantes :
‘L’ ‘M’ ‘Q’ ‘H’ expansion
Sélectionne la façon dont le texte d'entrée est développé. Peut être none ou normal (par défaut). Voir la section Expansion du texte qrencode ci-dessous pour plus de détails.
text textfile
Définit le texte à afficher. Si aucun des deux n'est indiqué, aucun QR n'est encodé (seulement une image de couleur unie).
Si expansion est activée, le texte est traité comme un modèle de texte, à l'aide du mécanisme de développement de qrencode. Voir la section Expansion du texte qrencode ci-dessous pour plus de détails.
background_color, bc foreground_color, fc
Définit la couleur du code QR et la couleur de fond. La valeur par défaut de foreground_color est "black", celle de background_color est "white".
Pour la syntaxe des options de couleur, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
11.205.1 qrencode Expressions
Les expressions définies par les options peuvent contenir les constantes et fonctions suivantes.
dar
rapport d'aspect d'affichage de l'entrée, identique à (w / h) * sar
duration
la durée de l'image courante, en secondes
hsub vsub
les valeurs de sous-échantillonnage horizontal et vertical de la chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
main_h, H
la hauteur de l'entrée
main_w, W
la largeur de l'entrée
n
le numéro de l'image d'entrée, à partir de 0
pict_type
un nombre représentant le type d'image
qr_w, w
la largeur du code QR encodé
rendered_qr_w, q rendered_padded_qr_w, Q
la largeur du code QR rendu, sans puis avec remplissage.
Ces paramètres permettent aux expressions q et Q de se référer l'une à l'autre, si bien que vous pouvez par exemple spécifier q=3/4*Q.
rand(min, max)
renvoie un nombre aléatoire compris entre min et max
sar
le rapport d'aspect d'échantillon de l'entrée
t
horodatage exprimé en secondes, NAN si l'horodatage d'entrée est inconnu
x y
les coordonnées de décalage x et y où le texte est dessiné.
Ces paramètres permettent aux expressions x et y de se référer l'une à l'autre, si bien que vous pouvez par exemple spécifier y=x/dar.
11.205.2 qrencode Text expansion
Si expansion est réglée sur none, le texte est affiché tel quel.
Si expansion est réglée sur normal (valeur par défaut), le mécanisme de développement suivant est utilisé.
Le caractère barre oblique inverse ‘\’, suivi de n'importe quel caractère, se développe toujours en ce second caractère.
Les séquences de la forme %{...} sont développées. Le texte entre les accolades est un nom de fonction, éventuellement suivi d'arguments séparés par ’:’. Si les arguments contiennent des caractères spéciaux ou des délimiteurs (’:’ ou ’}’), ils doivent être échappés.
Notez qu'ils doivent probablement aussi être échappés en tant que valeur de l'option text dans la chaîne d'arguments du filtre, ainsi qu'en tant qu'argument de filtre dans la description du filtergraph, et éventuellement aussi pour le shell, ce qui représente jusqu'à quatre niveaux d'échappement ; l'utilisation d'un fichier texte avec l'option textfile permet d'éviter ces problèmes.
Les fonctions suivantes sont disponibles :
n, frame_num
renvoie le numéro de l'image
pts
Renvoie le presentation timestamp de l'image courante.
Elle peut prendre jusqu'à deux arguments.
Le premier argument est le format de l'horodatage ; par défaut flt pour des secondes exprimées en nombre décimal avec une précision à la microseconde ; hms correspond à un horodatage [-]HH:MM:SS.mmm formaté avec une précision à la milliseconde. gmtime correspond à l'horodatage de l'image formaté en heure UTC ; localtime correspond à l'horodatage de l'image formaté dans le fuseau horaire local. Si le format est réglé sur hms24hh, l'heure est formatée au format 24 heures (00-23).
Le second argument est un décalage ajouté à l'horodatage.
Si le format est réglé sur localtime ou gmtime, un troisième argument peut être fourni : une chaîne de format de la fonction C strftime. Par défaut, le format YYYY-MM-DD HH:MM:SS est utilisé.
expr, e
Évalue la valeur de l'expression et la produit sous forme de double.
Elle doit prendre un argument indiquant l'expression à évaluer, en acceptant les constantes et fonctions définies dans qrencode_expressions.
expr_formatted, ef
Évalue la valeur de l'expression et la produit sous forme de chaîne formatée.
Le premier argument est l'expression à évaluer, comme pour la fonction expr. Le second argument indique le format de sortie. Les valeurs autorisées sont ‘x’, ‘X’, ‘d’ et ‘u’. Elles sont traitées exactement comme dans la fonction printf. Le troisième paramètre est facultatif et définit le nombre de positions occupées par la sortie. Il peut servir à ajouter un remplissage de zéros sur la gauche.
gmtime
L'heure à laquelle le filtre s'exécute, exprimée en UTC. Elle peut accepter un argument : une chaîne de format de la fonction C strftime. La chaîne de format est étendue pour prendre en charge la variable %[1-6]N, qui affiche les fractions de seconde avec un nombre de chiffres éventuellement spécifié.
localtime
L'heure à laquelle le filtre s'exécute, exprimée dans le fuseau horaire local. Elle peut accepter un argument : une chaîne de format de la fonction C strftime. La chaîne de format est étendue pour prendre en charge la variable %[1-6]N, qui affiche les fractions de seconde avec un nombre de chiffres éventuellement spécifié.
metadata
Métadonnées de l'image. Prend un ou deux arguments.
Le premier argument est obligatoire et indique la clé de métadonnée.
Le second argument est facultatif et indique une valeur par défaut, utilisée lorsque la clé de métadonnée est introuvable ou vide.
Les métadonnées disponibles peuvent être identifiées en examinant les entrées commençant par TAG, présentes dans chaque section d'image affichée en exécutant ffprobe -show_frames.
Les métadonnées textuelles générées par les filtres précédant le filtre qrencode sont également disponibles.
rand(min, max)
renvoie un nombre aléatoire compris entre min et max
11.205.3 Exemples
-
Génère un code QR encodant le texte indiqué avec la taille par défaut, superposé dans le coin supérieur gauche de la vidéo d'entrée, avec la taille par défaut :
qrencode=text=www.ffmpeg.org -
Identique à ce qui précède, mais en choisissant du bleu sur fond rose :
qrencode=text=www.ffmpeg.org:bc=pink@0.5:fc=blue -
Place le code QR dans le coin inférieur droit de la vidéo d'entrée :
qrencode=text=www.ffmpeg.org:x=W-Q:y=H-Q -
Génère un code QR d'une largeur de 200 pixels avec remplissage, en portant la largeur avec remplissage aux 4/3 de la largeur du code QR :
qrencode=text=www.ffmpeg.org:q=200:Q=4/3*q -
Génère un code QR d'une largeur avec remplissage de 200 pixels, en portant la largeur du code QR aux 3/4 de la largeur avec remplissage :
qrencode=text=www.ffmpeg.org:Q=200:q=3/4*Q -
Fait du code QR une fraction de la largeur de la vidéo d'entrée :
qrencode=text=www.ffmpeg.org:q=W/5 -
Génère un code QR encodant le numéro de l'image :
qrencode=text=%{n} -
Génère un code QR encodant l'horodatage GMT :
qrencode=text=%{gmtime} -
Génère un code QR encodant l'horodatage exprimé sous forme de flottant :
qrencode=text=%{pts}
11.206 quirc
Identifie et décode un code QR à l'aide de la bibliothèque libquirc (voir https://github.com/dlbeer/quirc/), et affiche les positions et la charge utile des codes QR identifiés sous forme de métadonnées.
Pour activer la compilation de ce filtre, il faut configurer FFmpeg avec --enable-libquirc.
Pour chaque code QR trouvé dans la vidéo d'entrée, des entrées de métadonnées sont ajoutées avec le préfixe lavfi.quirc.N, où N est l'index, commençant à 0, associé au code QR.
Une description de chaque valeur de métadonnée suit :
lavfi.quirc.count
le nombre de codes QR trouvés ; non défini si aucun n'a été trouvé
lavfi.quirc.N.corner.M.x lavfi.quirc.N.coreer.M.y
les positions x/y des quatre coins du carré contenant le code QR, où M est l'index du coin, commençant à 0
lavfi.quirc.N.payload
la charge utile du code QR
11.207 random
Vide le cache interne d'images vidéo en les restituant dans un ordre aléatoire. Aucune image n'est écartée. Inspiré du filtre nervous de frei0r.
frames
Définit la taille du cache interne en nombre d'images, dans une plage de 2 à 512. La valeur par défaut est 30.
seed
Définit la graine du générateur de nombres aléatoires ; doit être un entier compris entre 0 et UINT32_MAX. Si elle n'est pas indiquée, ou si elle est explicitement réglée à moins de 0, le filtre essaie d'utiliser une bonne graine aléatoire du mieux qu'il peut.
11.208 readeia608
Lit les informations de sous-titrage codé (EIA-608) à partir des lignes supérieures d'une image vidéo.
Ce filtre ajoute les métadonnées d'image lavfi.readeia608.X.cc et lavfi.readeia608.X.line, où X est le numéro de la ligne identifiée comme contenant des données EIA-608 (à partir de 0). Une description de chaque valeur de métadonnée suit :
lavfi.readeia608.X.cc
Les deux octets stockés en tant que données EIA-608 (affichés en hexadécimal).
lavfi.readeia608.X.line
Le numéro de la ligne sur laquelle les données EIA-608 ont été identifiées et lues.
Ce filtre accepte les options suivantes :
scan_min
Définit la ligne à partir de laquelle commencer la recherche de données EIA-608. La valeur par défaut est 0.
scan_max
Définit la ligne à laquelle terminer la recherche de données EIA-608. La valeur par défaut est 29.
spw
Définit la proportion de largeur réservée à la détection du code de synchronisation. La valeur par défaut est 0.27. La plage autorisée est [0.1 - 0.7].
chp
Active la vérification du bit de parité. En cas d'erreur de parité, le filtre produit 0x00 pour ce caractère. La valeur par défaut est false.
lp
Applique un filtre passe-bas aux lignes avant tout autre traitement. Activé par défaut.
11.208.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.208.2 Exemples
- Produit un csv avec le presentation timestamp et les deux premières lignes de données de sous-titrage EIA-608 identifiées.
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
Lit les informations de code temporel d'intervalle vertical (VITC) à partir des lignes supérieures d'une image vidéo.
Le filtre ajoute la clé de métadonnée d'image lavfi.readvitc.tc_str avec la valeur du code temporel, si un code temporel valide a été détecté. La clé de métadonnée supplémentaire lavfi.readvitc.found est réglée à 0/1 selon que des données de code temporel ont été trouvées ou non.
Ce filtre accepte les options suivantes :
scan_max
Définit le nombre maximal de lignes à parcourir pour les données VITC. Si la valeur est réglée à -1, l'image vidéo entière est parcourue. La valeur par défaut est 45.
thr_b
Définit le seuil de luminance pour le noir. Accepte des nombres flottants dans la plage [0.0,1.0], la valeur par défaut est 0.2. La valeur doit être inférieure ou égale à thr_w.
thr_w
Définit le seuil de luminance pour le blanc. Accepte des nombres flottants dans la plage [0.0,1.0], la valeur par défaut est 0.6. La valeur doit être supérieure ou égale à thr_b.
11.209.1 Exemples
- Détecte et dessine les données VITC sur l'image vidéo ; si aucun VITC valide n'est détecté, dessine
--:--:--:--comme espace réservé :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
Remappe les pixels à l'aide des flux vidéo d'entrée Xmap (2e) et Ymap (3e).
Le pixel de destination à la position (X, Y) est prélevé dans la source à la position (x, y), où x = Xmap(X, Y) et y = Ymap(X, Y). Si les valeurs de mappage sont hors plage, la valeur zéro est utilisée pour le pixel de destination.
Les flux vidéo d'entrée Xmap et Ymap doivent avoir les mêmes dimensions. Le flux vidéo de sortie aura les dimensions des flux vidéo Xmap/Ymap. Les flux vidéo d'entrée Xmap et Ymap sont en profondeur 16 bits, canal unique.
format
Indique le pixel format de la sortie de ce filtre. Peut être color ou gray. La valeur par défaut est color.
fill
Indique la couleur des pixels non mappés. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils. La couleur par défaut est black.
11.211 removegrain
Le filtre removegrain est un débruiteur spatial pour vidéo progressive.
m0
Définit le mode du premier plan.
m1
Définit le mode du deuxième plan.
m2
Définit le mode du troisième plan.
m3
Définit le mode du quatrième plan.
Le mode va de 0 à 24. Description de chaque mode :
0
Laisse le plan d'entrée inchangé. Valeur par défaut.
1
Écrête le pixel avec le minimum et le maximum des 8 pixels voisins.
2
Écrête le pixel avec le deuxième minimum et maximum des 8 pixels voisins.
3
Écrête le pixel avec le troisième minimum et maximum des 8 pixels voisins.
4
Écrête le pixel avec le quatrième minimum et maximum des 8 pixels voisins. Ceci équivaut à un filtre médian.
5
Écrêtage sensible aux lignes, donnant le changement minimal.
6
Écrêtage sensible aux lignes, intermédiaire.
7
Écrêtage sensible aux lignes, intermédiaire.
8
Écrêtage sensible aux lignes, intermédiaire.
9
Écrêtage sensible aux lignes sur la ligne où les pixels voisins sont les plus proches.
10
Remplace le pixel cible par le voisin le plus proche.
11
Flou par noyau horizontal et vertical [1 2 1].
12
Identique au mode 11.
13
Mode Bob, interpole le champ supérieur à partir de la ligne où les pixels voisins sont les plus proches.
14
Mode Bob, interpole le champ inférieur à partir de la ligne où les pixels voisins sont les plus proches.
15
Mode Bob, interpole le champ supérieur. Identique à 13 mais avec une formule d'interpolation plus complexe.
16
Mode Bob, interpole le champ inférieur. Identique à 14 mais avec une formule d'interpolation plus complexe.
17
Écrête le pixel avec le minimum et le maximum obtenus respectivement à partir du maximum et du minimum de chaque paire de pixels voisins opposés.
18
Écrêtage sensible aux lignes utilisant les voisins opposés dont la plus grande distance au pixel courant est minimale.
19
Remplace le pixel par la moyenne de ses 8 voisins.
20
Fait la moyenne des 9 pixels (flou horizontal et vertical [1 1 1]).
21
Écrête les pixels à l'aide des moyennes des voisins opposés.
22
Identique au mode 21, mais plus simple et plus rapide.
23
Suppression des petits contours et halos, mais réputé inutile.
24
Similaire à 23.
11.212 removelogo
Supprime le logo d'une chaîne de télévision, à l'aide d'un fichier image pour déterminer quels pixels composent le logo. Il fonctionne en remplissant les pixels qui composent le logo avec les pixels voisins.
Le filtre accepte les options suivantes :
filename, f
Définit le fichier bitmap du filtre, qui peut être dans n'importe quel format d'image pris en charge par libavformat. La largeur et la hauteur du fichier image doivent correspondre à celles du flux vidéo traité.
Les pixels du bitmap fourni ayant une valeur nulle ne sont pas considérés comme faisant partie du logo, les pixels non nuls sont considérés comme en faisant partie. Si vous utilisez du blanc (255) pour le logo et du noir (0) pour le reste, vous êtes en terrain sûr. Pour fabriquer le bitmap du filtre, il est recommandé de faire une capture d'écran d'une image noire avec le logo visible, puis d'appliquer un filtre threshold suivi une ou deux fois du filtre erode.
Si besoin, les petites taches peuvent être corrigées à la main. Gardez à l'esprit que si les pixels du logo ne sont pas couverts, la qualité du filtre s'en trouvera fortement réduite. Marquer trop de pixels comme faisant partie du logo ne nuit pas autant, mais cela augmente la quantité de flou nécessaire pour recouvrir l'image et détruit plus d'informations que nécessaire, et les pixels superflus ralentissent le traitement sur un grand logo.
11.213 repeatfields
Ce filtre utilise l'indicateur repeat_field des en-têtes Video ES et répète matériellement les champs en fonction de sa valeur.
11.214 reverse
Inverse le sens de lecture d'un clip vidéo.
Avertissement : ce filtre nécessite de mettre en mémoire tampon la totalité du clip, un découpage préalable est donc conseillé.
11.214.1 Exemples
- Prend les 5 premières secondes d'un clip, et les inverse.
trim=end=5,reverse
11.215 rgbashift
Décale les pixels R/G/B/A horizontalement et/ou verticalement.
Le filtre accepte les options suivantes :
rh
Définit la quantité de décalage horizontal du rouge.
rv
Définit la quantité de décalage vertical du rouge.
gh
Définit la quantité de décalage horizontal du vert.
gv
Définit la quantité de décalage vertical du vert.
bh
Définit la quantité de décalage horizontal du bleu.
bv
Définit la quantité de décalage vertical du bleu.
ah
Définit la quantité de décalage horizontal de l'alpha.
av
Définit la quantité de décalage vertical de l'alpha.
edge
Définit le mode de bord : peut être smear, default ou warp.
11.215.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.216 roberts
Applique l'opérateur croisé de Roberts au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Par défaut, la valeur est 0xf et tous les plans sont traités.
scale
Définit la valeur par laquelle le résultat filtré est multiplié.
delta
Définit la valeur ajoutée au résultat filtré.
11.216.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.217 rotate
Fait pivoter la vidéo d'un angle arbitraire exprimé en radians.
Le filtre accepte les options suivantes :
Description des paramètres facultatifs :
angle, a
Définit une expression pour l'angle de rotation horaire de la vidéo d'entrée, exprimé en nombre de radians. Une valeur négative entraîne une rotation antihoraire. La valeur par défaut est "0".
Cette expression est évaluée pour chaque image.
out_w, ow
Définit l'expression de la largeur de sortie, valeur par défaut "iw". Cette expression n'est évaluée qu'une seule fois, lors de la configuration.
out_h, oh
Définit l'expression de la hauteur de sortie, valeur par défaut "ih". Cette expression n'est évaluée qu'une seule fois, lors de la configuration.
bilinear
Active l'interpolation bilinéaire si elle est réglée sur 1 ; une valeur de 0 la désactive. La valeur par défaut est 1.
fillcolor, c
Définit la couleur utilisée pour remplir la zone de sortie non couverte par l'image pivotée. Pour la syntaxe générale de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils. Si la valeur spéciale "none" est choisie, aucun arrière-plan n'est dessiné (utile par exemple si l'arrière-plan n'est jamais affiché).
La valeur par défaut est "black".
Les expressions pour l'angle et la taille de sortie peuvent contenir les constantes et fonctions suivantes :
n
numéro séquentiel de l'image d'entrée, à partir de 0. Il vaut toujours NAN avant que la première image ne soit filtrée.
t
temps en secondes de l'image d'entrée, réglé à 0 lors de la configuration du filtre. Il vaut toujours NAN avant que la première image ne soit filtrée.
hsub vsub
les valeurs de sous-échantillonnage horizontal et vertical de la chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
in_w, iw in_h, ih
la largeur et la hauteur de la vidéo d'entrée
out_w, ow out_h, oh
la largeur et la hauteur de sortie, c'est-à-dire la taille de la zone remplie telle qu'indiquée par les expressions width et height
rotw(a) roth(a)
la largeur/hauteur minimale requise pour contenir entièrement la vidéo d'entrée pivotée de a radians.
Elles ne sont disponibles que pour le calcul des expressions out_w et out_h.
11.217.1 Exemples
-
Fait pivoter l'entrée de PI/6 radians dans le sens horaire :
rotate=PI/6 -
Fait pivoter l'entrée de PI/6 radians dans le sens antihoraire :
rotate=-PI/6 -
Fait pivoter l'entrée de 45 degrés dans le sens horaire :
rotate=45*PI/180 -
Applique une rotation constante de période T, en partant d'un angle de PI/3 :
rotate=PI/3+2*PI*t/T -
Fait osciller la rotation de la vidéo d'entrée avec une période de T secondes et une amplitude de A radians :
rotate=A*sin(2*PI/T*t) -
Fait pivoter la vidéo ; la taille de sortie est choisie de sorte que la totalité de la vidéo d'entrée en rotation reste toujours entièrement contenue dans la sortie :
rotate='2*PI*t:ow=hypot(iw,ih):oh=ow' -
Fait pivoter la vidéo, en réduisant la taille de sortie de sorte qu'aucun arrière-plan ne soit jamais affiché :
rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
11.217.2 Commandes
Le filtre prend en charge les commandes suivantes :
a, angle
Définit l'expression de l'angle. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression indiquée n'est pas valide, la valeur actuelle est conservée.
11.218 sab
Applique un flou adaptatif à la forme (Shape Adaptive Blur).
Le filtre accepte les options suivantes :
luma_radius, lr
Définit la force du flou de luminance, doit être une valeur comprise entre 0.1 et 4.0, la valeur par défaut est 1.0. Une valeur plus élevée entraîne une image plus floue, et un traitement plus lent.
luma_pre_filter_radius, lpfr
Définit le rayon du préfiltre de luminance, doit être une valeur comprise entre 0.1 et 2.0, la valeur par défaut est 1.0.
luma_strength, ls
Définit la différence maximale entre pixels encore prise en compte pour la luminance, doit être une valeur comprise entre 0.1 et 100.0, la valeur par défaut est 1.0.
chroma_radius, cr
Définit la force du flou de chrominance, doit être une valeur comprise entre -0.9 et 4.0. Une valeur plus élevée entraîne une image plus floue, et un traitement plus lent.
chroma_pre_filter_radius, cpfr
Définit le rayon du préfiltre de chrominance, doit être une valeur comprise entre -0.9 et 2.0.
chroma_strength, cs
Définit la différence maximale entre pixels encore prise en compte pour la chrominance, doit être une valeur comprise entre -0.9 et 100.0.
Si elle n'est pas explicitement indiquée, chaque valeur d'option chroma est réglée sur la valeur de l'option luma correspondante.
11.219 scale
Redimensionne (scale) la vidéo d'entrée, à l'aide de la bibliothèque libswscale.
Le filtre scale force le rapport d'aspect d'affichage de sortie à être identique à celui de l'entrée, en modifiant le rapport d'aspect d'échantillon de sortie.
Si le format de l'image d'entrée diffère du format demandé par le filtre suivant, le filtre scale convertit l'entrée dans le format demandé.
11.219.1 Options
Le filtre accepte les options suivantes, ainsi que toutes les options prises en charge par le scaler libswscale et toutes les options framesync.
Voir (ffmpeg-scaler) le manuel ffmpeg-scaler pour la liste complète des options du scaler.
width, w height, h
Définit l'expression de la dimension de la vidéo de sortie. La valeur par défaut est la dimension de l'entrée.
Si la valeur de width ou w est 0, la largeur de l'entrée est utilisée pour la sortie. Si la valeur de height ou h est 0, la hauteur de l'entrée est utilisée pour la sortie.
Si une seule des deux valeurs, et une seule, est -n avec n >= 1, le filtre scale utilise une valeur qui conserve le rapport d'aspect de l'image d'entrée, calculée à partir de l'autre dimension indiquée. Il s'assure ensuite que la dimension calculée est divisible par n et ajuste la valeur si nécessaire.
Si les deux valeurs sont -n avec n >= 1, le comportement est identique à celui obtenu en réglant les deux valeurs à 0, comme décrit précédemment.
Voir ci-dessous la liste des constantes acceptées dans l'expression de dimension.
eval
Indique quand évaluer les expressions width et height. Accepte les valeurs suivantes :
‘init’
N'évalue les expressions qu'une seule fois, lors de l'initialisation du filtre ou lorsqu'une commande est traitée.
‘frame’
Évalue les expressions pour chaque image entrante.
La valeur par défaut est ‘init’.
interl
Définit le mode d'entrelacement. Accepte les valeurs suivantes :
‘1’
Force une mise à l'échelle tenant compte de l'entrelacement.
‘0’
N'applique pas de mise à l'échelle tenant compte de l'entrelacement.
‘-1’
Choisit une mise à l'échelle tenant compte de l'entrelacement selon que les images sources sont marquées comme entrelacées ou non.
La valeur par défaut est ‘0’.
flags
Définit les indicateurs de mise à l'échelle de libswscale. Voir (ffmpeg-scaler) le manuel ffmpeg-scaler pour la liste complète des valeurs. Si aucune valeur n'est explicitement indiquée, le filtre applique les indicateurs par défaut.
param0, param1
Définit les paramètres d'entrée de libswscale pour les algorithmes de mise à l'échelle qui en ont besoin. Voir (ffmpeg-scaler) le manuel ffmpeg-scaler pour la documentation complète. Si aucune valeur n'est explicitement indiquée, le filtre applique des paramètres vides.
intent
Définit l'intention de rendu ICC à utiliser lors de la conversion entre différents espaces colorimétriques. Accepte les valeurs suivantes :
‘perceptual’
Utilise une courbe de correspondance de tons et de gamut guidée par la perception. Les détails précis du mappage utilisé peuvent changer à tout moment et ne doivent pas être considérés comme stables. Cette intention est recommandée pour la visualisation finale de contenu image/vidéo dans des conditions de visionnage habituelles.
‘relative_colorimetric’
Écrête statiquement les couleurs hors gamut à l'aide d'une courbe d'écrêtage colorimétrique qui cherche à trouver la couleur du gamut la moins dissemblable au sens colorimétrique. Cette intention effectue une adaptation au point blanc et au point noir. C'est la valeur par défaut. Cette intention est recommandée partout où une reproduction fidèle des couleurs est de la plus haute importance, même au prix d'un écrêtage.
‘absolute_colorimetric’
Écrête fortement les couleurs hors gamut sans chercher à reproduire le point blanc ou le point noir. Cette intention reproduit les couleurs du gamut à l'identique (1:1) sur l'affichage de sortie, telles qu'elles apparaîtraient sur l'affichage de référence, en supposant que l'affichage de sortie soit correctement calibré.
‘saturation’
Effectue un mappage de la saturation, c'est-à-dire qu'elle étire le volume de couleur d'entrée directement sur le volume de couleur de sortie, de façon non linéaire qui préserve autant que possible l'apparence du signal d'origine. Cette intention est recommandée pour l'évaluation du contenu du signal, car elle n'entraîne aucun écrêtage. Elle est à peu près analogue à l'absence de mappage des couleurs, bien qu'elle tienne quand même compte des primaires de l'affichage de mastering et des éventuelles différences d'encodage de la TRC.
size, s
Définit la taille de la vidéo. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Video size" du manuel ffmpeg-utils.
in_color_matrix out_color_matrix
Définit le type d'espace colorimétrique YCbCr d'entrée/sortie.
Ceci permet de remplacer la valeur détectée automatiquement, ainsi que de forcer une valeur spécifique utilisée pour la sortie et l'encoder.
Si non spécifié, le type d'espace colorimétrique dépend du pixel format.
Valeurs possibles :
‘auto’
Choisit automatiquement.
‘bt709’
Format conforme à la recommandation BT.709 de l'Union internationale des télécommunications (ITU).
‘fcc’
Définit un espace colorimétrique conforme au titre 47 (2003) 73.682(a) du code des réglementations fédérales (CFR) de la Commission fédérale des communications (FCC) des États-Unis.
‘bt601’ ‘bt470’ ‘smpte170m’
Définit un espace colorimétrique conforme à :
- la recommandation BT.601 du secteur des radiocommunications de l'ITU (ITU-R)
- la recommandation ITU-R BT.470-6 (1998), systèmes B, B1 et G
- la norme ST 170:2004 de la Society of Motion Picture and Television Engineers (SMPTE)
‘smpte240m’
Définit un espace colorimétrique conforme à SMPTE ST 240:1999.
‘bt2020’
Définit un espace colorimétrique conforme au système à luminance non constante ITU-R BT.2020.
in_range out_range
Définit la plage d'échantillons YCbCr d'entrée/sortie.
Ceci permet de remplacer la valeur détectée automatiquement, ainsi que de forcer une valeur spécifique utilisée pour la sortie et l'encoder. Si non spécifié, la plage dépend du pixel format. Valeurs possibles :
‘auto/unknown’
Choisit automatiquement.
‘jpeg/full/pc’
Définit la pleine plage (0-255 pour une luminance 8 bits).
‘mpeg/limited/tv’
Définit la plage "MPEG" (16-235 pour une luminance 8 bits).
in_chroma_loc out_chroma_loc
Définit l'emplacement d'échantillon de chrominance d'entrée/sortie. Si non spécifié, une chrominance centrée est utilisée par défaut. Valeurs possibles :
‘auto, unknown’ ‘left’ ‘center’ ‘topleft’ ‘top’ ‘bottomleft’ ‘bottom’ in_primaries out_primaries
Définit les primaires RGB d'entrée/sortie.
Ceci permet de remplacer la valeur détectée automatiquement, ainsi que de forcer une valeur spécifique utilisée pour la sortie et l'encoder. Valeurs possibles :
‘auto’
Choisit automatiquement. C'est la valeur par défaut.
‘bt709’ ‘bt470m’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘film’ ‘bt2020’ ‘smpte428’ ‘smpte431’ ‘smpte432’ ‘jedec-p22’ ‘ebu3213’ in_transfer out_transfer
Définit la courbe de réponse de transfert (TRC) en entrée/sortie.
Cela permet à la fois de remplacer la valeur autodétectée et de forcer une valeur spécifique utilisée pour la sortie et l'encoder. Valeurs possibles :
‘auto’
Choisit automatiquement. C'est la valeur par défaut.
‘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
Permet de réduire ou d'augmenter la largeur ou la hauteur de la vidéo de sortie si nécessaire pour conserver le rapport d'aspect d'origine. Valeurs possibles :
‘disable’
Redimensionne la vidéo comme spécifié et désactive cette fonctionnalité.
‘decrease’
Les dimensions de la vidéo de sortie seront automatiquement réduites si besoin.
‘increase’
Les dimensions de la vidéo de sortie seront automatiquement augmentées si besoin.
Un cas d'usage utile de cette option est le suivant : lorsque vous connaissez la résolution maximale autorisée d'un appareil donné, vous pouvez l'utiliser pour limiter la vidéo de sortie à celle-ci, tout en conservant le rapport d'aspect. Par exemple, l'appareil A autorise une lecture en 1280x720, et votre vidéo est en 1920x800. En utilisant cette option (réglée sur decrease) et en spécifiant 1280x720 sur la ligne de commande, la sortie devient 1280x533.
Notez que ceci est différent de spécifier -1 pour w ou h : vous devez tout de même indiquer la résolution de sortie pour que cette option fonctionne.
force_divisible_by
Garantit que les dimensions de sortie, largeur et hauteur, sont toutes deux divisibles par l'entier donné lorsqu'elle est utilisée conjointement avec force_original_aspect_ratio. Cela fonctionne de façon similaire à l'utilisation de -n dans les options w et h.
Cette option respecte la valeur définie pour force_original_aspect_ratio, en augmentant ou en réduisant la résolution en conséquence. Le rapport d'aspect de la vidéo peut être légèrement modifié.
Cette option peut s'avérer pratique si vous devez faire tenir une vidéo dans une résolution donnée (ou la dépasser) à l'aide de force_original_aspect_ratio, tout en respectant des contraintes de divisibilité de largeur ou de hauteur imposées par l'encoder.
reset_sar
Activer cette option entraîne la réinitialisation du SAR de sortie à 1. De plus, si l'utilisateur demande une mise à l'échelle proportionnelle via les expressions de largeur ou de hauteur, par exemple w=-4:h=360 ou w=iw/2:h=-1, ou en activant force_original_aspect_ratio, alors le DAR d'entrée est pris en compte et la sortie est mise à l'échelle de manière à produire des pixels carrés. La valeur par défaut est false.
Les valeurs des options w et h sont des expressions contenant les constantes suivantes :
in_w in_h
La largeur et la hauteur d'entrée
iw ih
Identiques à in_w et in_h.
out_w out_h
La largeur et la hauteur (mises à l'échelle) de sortie
ow oh
Identiques à out_w et out_h
a
Identique à iw / ih
sar
Le rapport d'aspect des échantillons (sample aspect ratio) en entrée
dar
Le rapport d'aspect d'affichage (display aspect ratio) en entrée. Calculé à partir de (iw / ih) * sar.
hsub vsub
Valeurs de sous-échantillonnage horizontal et vertical de la chrominance en entrée. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
ohsub ovsub
Valeurs de sous-échantillonnage horizontal et vertical de la chrominance en sortie. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
n
Le numéro (séquentiel) de l'image d'entrée, à partir de 0. Disponible uniquement avec eval=frame.
t
Le presentation timestamp de l'image d'entrée, exprimé en nombre de secondes. Disponible uniquement avec eval=frame.
pos
La position (décalage en octets) de l'image dans le flux d'entrée, ou NaN si cette information est indisponible et/ou dénuée de sens (par exemple dans le cas d'une vidéo synthétique). Disponible uniquement avec eval=frame. Obsolète, à ne pas utiliser.
ref_w, rw ref_h, rh ref_a ref_dar, rdar ref_n ref_t ref_pos
Équivalents aux précédentes, mais pour une seconde entrée de référence. Si l'une de ces variables est présente, ce filtre accepte deux entrées.
11.219.2 Exemples
- Mettre à l'échelle la vidéo d'entrée à une taille de 200x100
scale=w=200:h=100
Ceci est équivalent à :
scale=200:100
ou :
scale=200x100
- Spécifier une abréviation de taille pour la taille de sortie :
scale=qcif
qui peut aussi s'écrire :
scale=size=qcif
-
Mettre à l'échelle l'entrée à 2x :
scale=w=2*iw:h=2*ih -
Ce qui précède est identique à :
scale=2*in_w:2*in_h -
Mettre à l'échelle l'entrée à 2x avec mise à l'échelle entrelacée forcée :
scale=2*iw:2*ih:interl=1 -
Mettre à l'échelle l'entrée à la moitié de sa taille :
scale=w=iw/2:h=ih/2 -
Augmenter la largeur, et régler la hauteur à la même taille :
scale=3/2*iw:ow -
Rechercher l'harmonie grecque :
scale=iw:1/PHI*iw scale=ih*PHI:ih -
Augmenter la hauteur, et régler la largeur à 3/2 de la hauteur :
scale=w=3/2*oh:h=3/5*ih -
Augmenter la taille, en rendant la taille multiple des valeurs de sous-échantillonnage de la chrominance :
scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub" -
Augmenter la largeur jusqu'à un maximum de 500 pixels, en conservant le même rapport d'aspect que l'entrée :
scale=w='min(500\, iw*3/2):h=-1' -
Rendre les pixels carrés en combinant scale et setsar :
scale='trunc(ih*dar):ih',setsar=1/1 -
Rendre les pixels carrés en utilisant reset_sar, en s'assurant que la résolution obtenue est paire (requis par certains codecs) :
scale='-2:ih-mod(ih,2):reset_sar=1' -
Mettre à l'échelle à la cible exacte, tout en réinitialisant le SAR à 1 :
scale='400:300:reset_sar=1' -
Mettre à l'échelle à des dimensions paires tenant dans 400x300, en préservant le SAR d'entrée :
scale='400:300:force_original_aspect_ratio=decrease:force_divisible_by=2' -
Mettre à l'échelle pour produire des pixels carrés avec des dimensions paires tenant dans 400x300 :
scale='400:300:force_original_aspect_ratio=decrease:force_divisible_by=2:reset_sar=1' -
Mettre à l'échelle un flux de sous-titres (sub) pour qu'il corresponde à la vidéo principale (main) en taille avant l'incrustation. ("scale2ref")
'[main]split[a][b]; [ref][a]scale=rw:rh[c]; [b][c]overlay' -
Mettre à l'échelle un logo à 1/10e de la hauteur d'une vidéo, en préservant son rapport d'aspect d'affichage.
[logo-in][video-in]scale=w=oh*dar:h=rh/10[logo-out]
11.219.3 Commandes
Ce filtre prend en charge les commandes suivantes :
width, w height, h
Définit l'expression de dimension de la vidéo de sortie. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, elle conserve sa valeur actuelle.
11.220 scharr
Applique l'opérateur scharr au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Par défaut, la valeur est 0xf, tous les plans sont traités.
scale
Définit la valeur qui sera multipliée par le résultat filtré.
delta
Définit la valeur qui sera ajoutée au résultat filtré.
11.220.1 Commandes
Ce filtre prend en charge, en tant que commandes, l'ensemble des options ci-dessus.
11.221 scroll
Fait défiler la vidéo d'entrée horizontalement et/ou verticalement à vitesse constante.
Le filtre accepte les options suivantes :
horizontal, h
Définit la vitesse de défilement horizontal. La valeur par défaut est 0. La plage autorisée va de -1 à 1. Des valeurs négatives inversent le sens du défilement.
vertical, v
Définit la vitesse de défilement vertical. La valeur par défaut est 0. La plage autorisée va de -1 à 1. Des valeurs négatives inversent le sens du défilement.
hpos
Définit la position de défilement horizontale initiale. La valeur par défaut est 0. La plage autorisée va de 0 à 1.
vpos
Définit la position de défilement verticale initiale. La valeur par défaut est 0. La plage autorisée va de 0 à 1.
11.221.1 Commandes
Ce filtre prend en charge les commandes suivantes :
horizontal, h
Définit la vitesse de défilement horizontal.
vertical, v
Définit la vitesse de défilement vertical.
11.222 scdet
Détecte les changements de plan dans la vidéo.
Ce filtre place dans les métadonnées de l'image le mafd entre images, le score de changement de plan, puis transmet l'image au filtre suivant, afin que ces métadonnées puissent être utilisées pour détecter un changement de plan ou à d'autres fins.
De plus, ce filtre consigne un message et met à jour les métadonnées de l'image lorsqu'il détecte un changement de plan par seuil.
Les clés de métadonnées lavfi.scd.mafd sont définies avec le mafd pour chaque image.
Les clés de métadonnées lavfi.scd.score sont définies avec le score de changement de plan pour chaque image, afin de détecter un changement de plan.
Les clés de métadonnées lavfi.scd.time sont définies avec l'horodatage de l'image filtrée en cours, qui détecte un changement de plan par seuil.
Le filtre accepte les options suivantes :
threshold, t
Définit le seuil de détection de changement de plan, en pourcentage du changement maximal. De bonnes valeurs se situent dans la plage [8.0, 14.0]. La plage pour threshold est [0., 100.].
La valeur par défaut est 10..
sc_pass, s
Définit l'indicateur permettant de transmettre les images de changement de plan au filtre suivant. La valeur par défaut est 0. Vous pouvez l'activer si vous souhaitez obtenir un instantané des seules images de changement de plan.
11.223 selectivecolor
Ajuste le cyan, le magenta, le jaune et le noir (CMJN) sur certaines plages de couleurs (telles que "reds", "yellows", "greens", "cyans", ...). La plage d'ajustement est définie par la "pureté" de la couleur (c'est-à-dire son degré de saturation déjà présent).
Ce filtre est similaire à l'outil de couleur sélective (Selective Color) d'Adobe Photoshop.
Le filtre accepte les options suivantes :
correction_method
Sélectionne la méthode de correction des couleurs.
Les valeurs disponibles sont :
‘absolute’
Les ajustements spécifiés sont appliqués "tels quels" (ajoutés/soustraits à la valeur de composante de pixel d'origine).
‘relative’
Les ajustements spécifiés sont relatifs à la valeur de composante d'origine.
La valeur par défaut est absolute.
reds
Ajustements pour les pixels rouges (pixels où la composante rouge est maximale)
yellows
Ajustements pour les pixels jaunes (pixels où la composante bleue est minimale)
greens
Ajustements pour les pixels verts (pixels où la composante verte est maximale)
cyans
Ajustements pour les pixels cyan (pixels où la composante rouge est minimale)
blues
Ajustements pour les pixels bleus (pixels où la composante bleue est maximale)
magentas
Ajustements pour les pixels magenta (pixels où la composante verte est minimale)
whites
Ajustements pour les pixels blancs (pixels où toutes les composantes sont supérieures à 128)
neutrals
Ajustements pour tous les pixels sauf le noir pur et le blanc pur
blacks
Ajustements pour les pixels noirs (pixels où toutes les composantes sont inférieures à 128)
psfile
Spécifie un fichier de couleur sélective Photoshop (.asv) à partir duquel importer les réglages.
Tous les réglages d'ajustement (reds, yellows, ...) acceptent jusqu'à 4 valeurs d'ajustement à virgule flottante séparées par des espaces, dans la plage [-1,1], pour ajuster respectivement la quantité de cyan, de magenta, de jaune et de noir des pixels de leur plage.
11.223.1 Exemples
-
Augmenter le cyan de 50 % et réduire le jaune de 33 % dans toutes les zones vertes, et augmenter le magenta de 27 % dans les zones bleues :
selectivecolor=greens=.5 0 -.33 0:blues=0 .27 -
Utiliser un préréglage de couleur sélective Photoshop :
selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
11.224 separatefields
Le filtre separatefields prend une entrée vidéo organisée par image et divise chaque image en ses champs constitutifs, produisant un nouveau flux à demi-hauteur avec une fréquence d'images et un nombre d'images doublés.
Ce filtre utilise l'information de dominance de champ présente dans l'image pour décider lequel des deux champs de chaque paire placer en premier dans la sortie. S'il se trompe, utilisez le filtre setfield avant le filtre separatefields.
11.225 setdar, setsar
Le filtre setdar définit le rapport d'aspect d'affichage (Display Aspect Ratio) pour la vidéo de sortie du filtre.
Cela se fait en modifiant le rapport d'aspect des échantillons (aussi appelés pixels), selon l'équation suivante :
DAR = RESOLUTION_HORIZONTALE / RESOLUTION_VERTICALE * SAR
Gardez à l'esprit que le filtre setdar ne modifie pas les dimensions en pixels de l'image vidéo. De plus, le rapport d'aspect d'affichage défini par ce filtre peut être modifié par des filtres ultérieurs dans la chaîne de filtres, par exemple en cas de mise à l'échelle ou si un autre filtre "setdar" ou "setsar" est appliqué.
Le filtre setsar définit le rapport d'aspect des échantillons (aussi appelés pixels) pour la vidéo de sortie du filtre.
Notez que, en conséquence de l'application de ce filtre, le rapport d'aspect d'affichage de sortie changera selon l'équation ci-dessus.
Gardez à l'esprit que le rapport d'aspect des échantillons défini par le filtre setsar peut être modifié par des filtres ultérieurs dans la chaîne de filtres, par exemple si un autre filtre "setsar" ou "setdar" est appliqué.
Il accepte les paramètres suivants :
r, ratio, dar (setdar uniquement), sar (setsar uniquement)
Définit le rapport d'aspect utilisé par le filtre.
Le paramètre peut être une chaîne représentant un nombre à virgule flottante, ou une expression. Si le paramètre n'est pas spécifié, la valeur "0" est utilisée, ce qui signifie que la même valeur d'entrée est conservée.
max
Définit la valeur entière maximale à utiliser pour exprimer le numérateur et le dénominateur lors de la réduction du rapport d'aspect exprimé à une fraction rationnelle. La valeur par défaut est 100.
Le paramètre sar est une expression contenant les constantes suivantes :
w, h
La largeur et la hauteur d'entrée.
a
Identique à w / h.
sar
Le rapport d'aspect des échantillons en entrée.
dar
Le rapport d'aspect d'affichage en entrée. Il est identique à (w / h) * sar.
hsub, vsub
Valeurs de sous-échantillonnage horizontal et vertical de la chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
11.225.1 Exemples
-
Pour changer le rapport d'aspect d'affichage à 16:9, spécifiez l'une des lignes suivantes :
setdar=dar=1.77777 setdar=dar=16/9 -
Pour changer le rapport d'aspect des échantillons à 10:11, spécifiez :
setsar=sar=10/11 -
Pour définir un rapport d'aspect d'affichage de 16:9, et spécifier une valeur entière maximale de 1000 dans la réduction du rapport d'aspect, utilisez la commande :
setdar=ratio=16/9:max=1000
11.226 setfield
Force le champ pour l'image vidéo de sortie.
Le filtre setfield marque le type de champ d'entrelacement pour les images de sortie. Il ne modifie pas l'image d'entrée, mais définit uniquement la propriété correspondante, ce qui affecte la manière dont l'image est traitée par les filtres suivants (par exemple fieldorder ou yadif).
Le filtre accepte les options suivantes :
mode
Les valeurs disponibles sont :
‘auto’
Conserve la même propriété de champ.
‘bff’
Marque l'image comme bottom-field-first.
‘tff’
Marque l'image comme top-field-first.
‘prog’
Marque l'image comme progressive.
11.227 setparams
Force le paramètre d'image pour l'image vidéo de sortie.
Le filtre setparams marque l'entrelacement et la plage de couleur pour les images de sortie. Il ne modifie pas l'image d'entrée, mais définit uniquement la propriété correspondante, ce qui affecte la manière dont l'image est traitée par les filtres/encoders.
field_mode
Les valeurs disponibles sont :
‘auto’
Conserve la même propriété de champ (par défaut).
‘bff’
Marque l'image comme bottom-field-first.
‘tff’
Marque l'image comme top-field-first.
‘prog’
Marque l'image comme progressive.
range
Les valeurs disponibles sont :
‘auto’
Conserve la même propriété de plage de couleur (par défaut).
‘unspecified, unknown’
Marque l'image comme ayant une plage de couleur non spécifiée.
‘limited, tv, mpeg’
Marque l'image comme ayant une plage limitée.
‘full, pc, jpeg’
Marque l'image comme ayant une plage complète.
color_primaries
Définit les primaires de couleur. Les valeurs disponibles sont :
‘auto’
Conserve la même propriété de primaires de couleur (par défaut).
‘bt709’ ‘unknown’ ‘bt470m’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘film’ ‘bt2020’ ‘smpte428’ ‘smpte431’ ‘smpte432’ ‘jedec-p22’ color_trc
Définit le transfert de couleur. Les valeurs disponibles sont :
‘auto’
Conserve la même propriété color trc (par défaut).
‘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
Définit l'espace colorimétrique. Les valeurs disponibles sont :
‘auto’
Conserve le même espace colorimétrique (par défaut).
‘gbr’ ‘bt709’ ‘unknown’ ‘fcc’ ‘bt470bg’ ‘smpte170m’ ‘smpte240m’ ‘ycgco’ ‘bt2020nc’ ‘bt2020c’ ‘smpte2085’ ‘chroma-derived-nc’ ‘chroma-derived-c’ ‘ictcp’ chroma_location
Définit l'emplacement d'échantillonnage de la chrominance. Les valeurs disponibles sont :
‘auto’
Conserve le même emplacement de chrominance (par défaut).
‘unspecified, unknown’ ‘left’ ‘center’ ‘topleft’ ‘top’ ‘bottomleft’ ‘bottom’ alpha_mode
Définit le mode alpha. Les valeurs disponibles sont :
‘auto’
Conserve le même mode alpha (par défaut).
‘unspecified, unknown’ ‘premultiplied’ ‘straight’
11.228 shear
Applique une transformation de cisaillement à la vidéo d'entrée.
Ce filtre prend en charge les options suivantes :
shx
Facteur de cisaillement dans la direction X. La valeur par défaut est 0. La plage autorisée va de -2 à 2.
shy
Facteur de cisaillement dans la direction Y. La valeur par défaut est 0. La plage autorisée va de -2 à 2.
fillcolor, c
Définit la couleur utilisée pour remplir la zone de sortie non couverte par la vidéo transformée. Pour la syntaxe générale de cette option, consultez la (ffmpeg-utils)section "Color" du manuel ffmpeg-utils. Si la valeur spéciale "none" est sélectionnée, aucun arrière-plan n'est dessiné (utile par exemple si l'arrière-plan n'est jamais affiché).
La valeur par défaut est "black".
interp
Définit le type d'interpolation. Peut être bilinear ou nearest. La valeur par défaut est bilinear.
11.228.1 Commandes
Ce filtre prend en charge, en tant que commandes, l'ensemble des options ci-dessus.
11.229 showinfo
Affiche une ligne contenant diverses informations pour chaque image vidéo en entrée. La vidéo d'entrée n'est pas modifiée.
Ce filtre prend en charge les options suivantes :
checksum
Calcule les sommes de contrôle de chaque plan. Activé par défaut.
udu_sei_as_ascii
Tente d'afficher les données utilisateur non enregistrées SEI (user data unregistered SEI) sous forme de caractères ASCII lorsque c'est possible, et en format hexadécimal sinon.
La ligne affichée contient une suite de paires clé/valeur de la forme clé:valeur.
Les valeurs suivantes sont affichées dans la sortie :
n
Le numéro (séquentiel) de l'image d'entrée, à partir de 0.
pts
Le presentation timestamp (Presentation TimeStamp) de l'image d'entrée, exprimé en nombre d'unités de base de temps. L'unité de base de temps dépend du pad d'entrée du filtre.
pts_time
Le presentation timestamp (Presentation TimeStamp) de l'image d'entrée, exprimé en nombre de secondes.
fmt
Le nom du pixel format.
sar
Le rapport d'aspect des échantillons de l'image d'entrée, exprimé sous la forme num/den.
s
La taille de l'image d'entrée. Pour la syntaxe de cette option, consultez la (ffmpeg-utils)"Video size" section du manuel ffmpeg-utils.
i
Le type de mode entrelacé ("P" pour "progressive", "T" pour top field first, "B" pour bottom field first).
iskey
Vaut 1 si l'image est une keyframe, 0 sinon.
type
Le type d'image de l'image d'entrée ("I" pour une image I, "P" pour une image P, "B" pour une image B, ou "?" pour un type inconnu). Voir également la documentation de l'énumération AVPictureType et de la fonction av_get_picture_type_char définies dans libavutil/avutil.h.
checksum
La somme de contrôle Adler-32 (affichée en hexadécimal) de l'ensemble des plans de l'image d'entrée.
plane_checksum
La somme de contrôle Adler-32 (affichée en hexadécimal) de chaque plan de l'image d'entrée, exprimée sous la forme "[c0 c1 c2 c3]".
mean
La valeur moyenne des pixels dans chaque plan de l'image d'entrée, exprimée sous la forme "[mean0 mean1 mean2 mean3]".
stdev
L'écart type des valeurs de pixels dans chaque plan de l'image d'entrée, exprimé sous la forme "[stdev0 stdev1 stdev2 stdev3]".
11.230 showpalette
Affiche la palette de 256 couleurs de chaque image. Ce filtre n'est pertinent que pour les images au pixel format pal8.
Il accepte l'option suivante :
s
Définit la taille de la case utilisée pour représenter une entrée de couleur de la palette. La valeur par défaut est 30 (pour une case de 30x30 pixels).
11.231 shuffleframes
Réordonne et/ou duplique et/ou supprime des images vidéo.
Il accepte les paramètres suivants :
mapping
Définit les index de destination des images d'entrée. Il s'agit d'une liste d'index séparés par des espaces ou par ’|’, qui associe les images d'entrée aux images de sortie. Le nombre d'index détermine également la valeur maximale que chaque index peut prendre. L'index ’-1’ a une signification particulière : il supprime l'image.
La première image a l'index 0. Par défaut, l'entrée est conservée inchangée.
11.231.1 Exemples
-
Échanger la deuxième et la troisième image de chaque groupe de trois images de l'entrée :
ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT -
Échanger la 10e et la 1re image de chaque groupe de dix images de l'entrée :
ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
11.232 shufflepixels
Réordonne les pixels dans les images vidéo.
Ce filtre accepte les options suivantes :
direction, d
Définit le sens de mélange. Peut être forward ou inverse. Le sens par défaut est forward.
mode, m
Définit le mode de mélange. Peut être horizontal, vertical ou block.
width, w height, h
Définit la taille de bloc (block_size) du mélange. En mode de mélange horizontal, seule la partie largeur de la taille est utilisée, et en mode de mélange vertical, seule la partie hauteur de la taille est utilisée.
seed, s
Définit la graine aléatoire utilisée pour le mélange des pixels. Principalement utile pour pouvoir inverser le processus de filtrage afin de retrouver l'entrée d'origine. Par exemple, pour inverser un mélange forward, vous devez utiliser les mêmes paramètres et exactement la même graine, et régler le sens sur inverse.
11.233 shuffleplanes
Réorganise et/ou duplique les plans vidéo.
Il accepte les paramètres suivants :
map0
L'index du plan d'entrée à utiliser comme premier plan de sortie.
map1
L'index du plan d'entrée à utiliser comme deuxième plan de sortie.
map2
L'index du plan d'entrée à utiliser comme troisième plan de sortie.
map3
L'index du plan d'entrée à utiliser comme quatrième plan de sortie.
Le premier plan porte l'index 0. Par défaut, l'entrée est conservée telle quelle.
11.233.1 Exemples
- Permute les deuxième et troisième plans de l'entrée :
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
11.234 signalstats
Évalue divers indicateurs visuels qui aident à déterminer les problèmes liés à la numérisation d'un support vidéo analogique.
Par défaut, le filtre journalise les valeurs de métadonnées suivantes :
YMIN
Affiche la valeur Y minimale contenue dans l'image d'entrée. Exprimée dans la plage [0-255].
YLOW
Affiche la valeur Y au 10e centile de l'image d'entrée. Exprimée dans la plage [0-255].
YAVG
Affiche la valeur Y moyenne de l'image d'entrée. Exprimée dans la plage [0-255].
YHIGH
Affiche la valeur Y au 90e centile de l'image d'entrée. Exprimée dans la plage [0-255].
YMAX
Affiche la valeur Y maximale contenue dans l'image d'entrée. Exprimée dans la plage [0-255].
UMIN
Affiche la valeur U minimale contenue dans l'image d'entrée. Exprimée dans la plage [0-255].
ULOW
Affiche la valeur U au 10e centile de l'image d'entrée. Exprimée dans la plage [0-255].
UAVG
Affiche la valeur U moyenne de l'image d'entrée. Exprimée dans la plage [0-255].
UHIGH
Affiche la valeur U au 90e centile de l'image d'entrée. Exprimée dans la plage [0-255].
UMAX
Affiche la valeur U maximale contenue dans l'image d'entrée. Exprimée dans la plage [0-255].
VMIN
Affiche la valeur V minimale contenue dans l'image d'entrée. Exprimée dans la plage [0-255].
VLOW
Affiche la valeur V au 10e centile de l'image d'entrée. Exprimée dans la plage [0-255].
VAVG
Affiche la valeur V moyenne de l'image d'entrée. Exprimée dans la plage [0-255].
VHIGH
Affiche la valeur V au 90e centile de l'image d'entrée. Exprimée dans la plage [0-255].
VMAX
Affiche la valeur V maximale contenue dans l'image d'entrée. Exprimée dans la plage [0-255].
SATMIN
Affiche la valeur de saturation minimale contenue dans l'image d'entrée. Exprimée dans la plage [0-~181.02].
SATLOW
Affiche la valeur de saturation au 10e centile de l'image d'entrée. Exprimée dans la plage [0-~181.02].
SATAVG
Affiche la valeur de saturation moyenne de l'image d'entrée. Exprimée dans la plage [0-~181.02].
SATHIGH
Affiche la valeur de saturation au 90e centile de l'image d'entrée. Exprimée dans la plage [0-~181.02].
SATMAX
Affiche la valeur de saturation maximale contenue dans l'image d'entrée. Exprimée dans la plage [0-~181.02].
HUEMED
Affiche la valeur médiane de la teinte de l'image d'entrée. Exprimée dans la plage [0-360].
HUEAVG
Affiche la valeur moyenne de la teinte de l'image d'entrée. Exprimée dans la plage [0-360].
YDIF
Affiche la moyenne des différences entre toutes les valeurs du plan Y de l'image actuelle et les valeurs correspondantes de l'image d'entrée précédente. Exprimée dans la plage [0-255].
UDIF
Affiche la moyenne des différences entre toutes les valeurs du plan U de l'image actuelle et les valeurs correspondantes de l'image d'entrée précédente. Exprimée dans la plage [0-255].
VDIF
Affiche la moyenne des différences entre toutes les valeurs du plan V de l'image actuelle et les valeurs correspondantes de l'image d'entrée précédente. Exprimée dans la plage [0-255].
YBITDEPTH
Affiche la profondeur de bits du plan Y de l'image actuelle. Exprimée dans la plage [0-16].
UBITDEPTH
Affiche la profondeur de bits du plan U de l'image actuelle. Exprimée dans la plage [0-16].
VBITDEPTH
Affiche la profondeur de bits du plan V de l'image actuelle. Exprimée dans la plage [0-16].
Le filtre accepte les options suivantes :
stat out
stat spécifie une forme d'analyse d'image supplémentaire. out génère une vidéo dans laquelle le type de pixel indiqué est mis en évidence.
Les deux options acceptent les valeurs suivantes :
‘tout’
Identifie les pixels aberrants temporels. Un pixel aberrant temporel est un pixel différent des pixels voisins du même champ. Les décrochages vidéo, l'encrassement des têtes ou les défauts de guidage de bande en sont des exemples typiques.
‘vrep’
Identifie la répétition de lignes verticales. La répétition de lignes verticales correspond à des rangées de pixels similaires au sein d'une image. Elle est courante dans les vidéos nativement numériques, mais rare dans les vidéos issues de la numérisation d'une source analogique. Lorsqu'elle apparaît dans une vidéo issue de la numérisation d'une source analogique, elle peut indiquer un masquage par un compensateur de décrochage.
‘brng’
Identifie les pixels situés en dehors de la plage de diffusion légale.
color, c
Définit la couleur de mise en évidence pour l'option out. La couleur par défaut est le jaune.
11.234.1 Exemples
-
Génère les données de divers indicateurs vidéo :
ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames -
Génère des données spécifiques sur les valeurs minimale et maximale du plan Y par image :
ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN -
Lit la vidéo en mettant en évidence en rouge les pixels situés en dehors de la plage de diffusion.
ffplay example.mov -vf signalstats="out=brng:color=red" -
Lit la vidéo en superposant à l'image les métadonnées de signalstats.
ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
Le contenu du fichier signalstat_drawtext.txt utilisé dans la commande est le suivant :
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
Calcule la signature vidéo MPEG-7 (MPEG-7 Video Signature). Le filtre peut gérer plusieurs entrées. Dans ce cas, la correspondance entre les entrées peut également être calculée. Le filtre transmet toujours la première entrée telle quelle. La signature de chaque flux peut être écrite dans un fichier.
Il accepte les options suivantes :
detectmode
Active ou désactive le processus de correspondance.
Les valeurs disponibles sont :
‘off’
Désactive le calcul d'une correspondance (valeur par défaut).
‘full’
Calcule la correspondance pour l'ensemble de la vidéo et indique si la vidéo entière correspond ou seulement certaines parties.
‘fast’
Calcule uniquement jusqu'à ce qu'une correspondance soit trouvée ou que la vidéo se termine. Cela peut être plus rapide dans certains cas.
nb_inputs
Définit le nombre d'entrées. La valeur de l'option doit être un entier non négatif. La valeur par défaut est 1.
filename
Définit le chemin dans lequel la sortie est écrite. S'il y a plusieurs entrées, le chemin doit être un prototype, c'est-à-dire contenir %d ou %0nd (où n est un entier positif), qui sera remplacé par le numéro de l'entrée. Si aucun nom de fichier n'est indiqué, aucune sortie n'est écrite. C'est le comportement par défaut.
format
Choisit le format de sortie.
Les valeurs disponibles sont :
‘binary’
Utilise la représentation binaire indiquée (valeur par défaut).
‘xml’
Utilise la représentation xml indiquée.
th_d
Définit le seuil permettant de détecter un mot comme similaire. La valeur de l'option doit être un entier supérieur à zéro. La valeur par défaut est 9000.
th_dc
Définit le seuil permettant de détecter tous les mots comme similaires. La valeur de l'option doit être un entier supérieur à zéro. La valeur par défaut est 60000.
th_xh
Définit le seuil permettant de détecter des images comme similaires. La valeur de l'option doit être un entier supérieur à zéro. La valeur par défaut est 116.
th_di
Définit la longueur minimale, en images, d'une séquence pour qu'elle soit reconnue comme séquence correspondante. La valeur de l'option doit être un entier non négatif. La valeur par défaut est 0.
th_it
Définit le rapport minimal que doivent avoir les images correspondantes par rapport à l'ensemble des images. La valeur de l'option doit être un nombre décimal double compris entre 0 et 1. La valeur par défaut est 0.5.
11.235.1 Exemples
-
Pour calculer la signature d'une vidéo d'entrée et l'enregistrer dans signature.bin :
ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null - -
Pour détecter si deux vidéos correspondent et enregistrer les signatures au format XML dans signature0.xml et 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
Calcule les scores de Spatial Information (SI) et de Temporal Information (TI) d'une vidéo, tels que définis dans ITU-T Rec. P.910 (11/21) : Subjective video quality assessment methods for multimedia applications. Le PDF est disponible à l'adresse https://www.itu.int/rec/T-REC-P.910-202111-S/en. Notez qu'il s'agit d'une implémentation historique correspondant à une recommandation remplacée. Reportez-vous à ITU-T Rec. P.910 (07/22) pour la version la plus récente : https://www.itu.int/rec/T-REC-P.910-202207-I/en
Il accepte l'option suivante :
print_summary
Si la valeur est 1, des statistiques récapitulatives sont affichées dans la console. Valeur par défaut : 0.
11.236.1 Exemples
- Pour calculer les indicateurs SI/TI et afficher le résumé :
ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
11.237 smartblur
Applique un flou à la vidéo d'entrée sans affecter les contours.
Il accepte les options suivantes :
luma_radius, lr
Définit le rayon de luminance. La valeur de l'option doit être un nombre à virgule flottante compris dans la plage [0.1,5.0], qui spécifie la variance du filtre gaussien utilisé pour flouter l'image (plus lent si la valeur est élevée). La valeur par défaut est 1.0.
luma_strength, ls
Définit l'intensité de luminance. La valeur de l'option doit être un nombre à virgule flottante compris dans la plage [-1.0,1.0], qui règle le flou. Une valeur comprise dans [0.0,1.0] floute l'image, tandis qu'une valeur comprise dans [-1.0,0.0] la rend plus nette. La valeur par défaut est 1.0.
luma_threshold, lt
Définit le seuil de luminance utilisé comme coefficient pour déterminer si un pixel doit être flouté ou non. La valeur de l'option doit être un entier compris dans la plage [-30,30]. Une valeur de 0 filtre l'image entière, une valeur comprise dans [0,30] filtre les zones plates et une valeur comprise dans [-30,0] filtre les contours. La valeur par défaut est 0.
chroma_radius, cr
Définit le rayon de chrominance. La valeur de l'option doit être un nombre à virgule flottante compris dans la plage [0.1,5.0], qui spécifie la variance du filtre gaussien utilisé pour flouter l'image (plus lent si la valeur est élevée). La valeur par défaut est celle de luma_radius.
chroma_strength, cs
Définit l'intensité de chrominance. La valeur de l'option doit être un nombre à virgule flottante compris dans la plage [-1.0,1.0], qui règle le flou. Une valeur comprise dans [0.0,1.0] floute l'image, tandis qu'une valeur comprise dans [-1.0,0.0] la rend plus nette. La valeur par défaut est celle de luma_strength.
chroma_threshold, ct
Définit le seuil de chrominance utilisé comme coefficient pour déterminer si un pixel doit être flouté ou non. La valeur de l'option doit être un entier compris dans la plage [-30,30]. Une valeur de 0 filtre l'image entière, une valeur comprise dans [0,30] filtre les zones plates et une valeur comprise dans [-30,0] filtre les contours. La valeur par défaut est celle de luma_threshold.
alpha_radius, ar
Définit le rayon alpha. La valeur de l'option doit être un nombre à virgule flottante compris dans la plage [0.1,5.0], qui spécifie la variance du filtre gaussien utilisé pour flouter l'image (plus lent si la valeur est élevée). La valeur par défaut est celle de luma_radius.
alpha_strength, as
Définit l'intensité alpha. La valeur de l'option doit être un nombre à virgule flottante compris dans la plage [-1.0,1.0], qui règle le flou. Une valeur comprise dans [0.0,1.0] floute l'image, tandis qu'une valeur comprise dans [-1.0,0.0] la rend plus nette. La valeur par défaut est celle de luma_strength.
alpha_threshold, at
Définit le seuil alpha utilisé comme coefficient pour déterminer si un pixel doit être flouté ou non. La valeur de l'option doit être un entier compris dans la plage [-30,30]. Une valeur de 0 filtre l'image entière, une valeur comprise dans [0,30] filtre les zones plates et une valeur comprise dans [-30,0] filtre les contours. La valeur par défaut est celle de luma_threshold.
Si une option de chrominance ou alpha n'est pas définie explicitement, la valeur de luminance correspondante est utilisée.
11.238 sobel
Applique l'opérateur de Sobel au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à traiter ; les plans non traités sont copiés. Par défaut, la valeur est 0xf et tous les plans sont traités.
scale
Définit la valeur qui sera multipliée par le résultat filtré.
delta
Définit la valeur qui sera ajoutée au résultat filtré.
11.238.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.239 spp
Applique un filtre de post-traitement simple qui compresse et décompresse l'image selon plusieurs décalages (ou la totalité dans le cas du niveau de qualité 6) et fait la moyenne des résultats.
Le filtre accepte les options suivantes :
quality
Définit la qualité. Cette option définit le nombre de niveaux utilisés pour le moyennage. Elle accepte un entier compris dans la plage 0-6. Si elle vaut 0, le filtre n'a aucun effet. Une valeur de 6 correspond à la meilleure qualité. Chaque incrément de cette valeur divise la vitesse par un facteur d'environ 2. La valeur par défaut est 3.
qp
Impose un paramètre de quantification constant. S'il n'est pas défini, le filtre utilise le QP du flux vidéo (si disponible).
mode
Définit le mode de seuillage. Les modes disponibles sont :
‘hard’
Applique un seuillage strict (valeur par défaut).
‘soft’
Applique un seuillage souple (meilleur effet anti-ringing, mais rendu probablement plus flou).
use_bframe_qp
Active l'utilisation du QP des images B si la valeur est 1. L'utilisation de cette option peut provoquer du scintillement, car les images B ont souvent un QP plus élevé. La valeur par défaut est 0 (désactivée).
11.239.1 Commandes
Ce filtre prend en charge les commandes suivantes :
quality, level
Définit le niveau de qualité. La valeur max permet de définir le niveau maximal, soit 6 à ce jour.
11.240 sr
Redimensionne l'entrée en appliquant l'une des méthodes de super-résolution basées sur des réseaux de neurones convolutifs. Modèles pris en charge :
- Modèle Super-Resolution Convolutional Neural Network (SRCNN). Voir https://arxiv.org/abs/1501.00092.
- Modèle Efficient Sub-Pixel Convolutional Neural Network (ESPCN). Voir https://arxiv.org/abs/1609.05158.
Les scripts d'entraînement ainsi que les scripts d'enregistrement du fichier modèle (.pb) se trouvent à l'adresse https://github.com/XueweiMeng/sr/tree/sr_dnn_native. Le dépôt d'origine se trouve à l'adresse https://github.com/HighVoltageRocknRoll/sr.git.
Le filtre accepte les options suivantes :
dnn_backend
Indique le moteur DNN (backend) à utiliser pour le chargement et l'exécution du modèle. Cette option accepte les valeurs suivantes :
‘tensorflow’
Moteur TensorFlow. Pour activer ce moteur, vous devez installer la bibliothèque TensorFlow for C (voir https://www.tensorflow.org/install/lang_c) et configurer FFmpeg avec --enable-libtensorflow
model
Définit le chemin du fichier modèle spécifiant l'architecture du réseau et ses paramètres. Notez que les différents moteurs utilisent des formats de fichier différents. Les moteurs TensorFlow et OpenVINO ne peuvent charger que des fichiers dans leur propre format.
scale_factor
Définit le facteur d'échelle du modèle SRCNN. Les valeurs autorisées sont 2, 3 et 4. La valeur par défaut est 2. Le facteur d'échelle est nécessaire pour le modèle SRCNN, car celui-ci reçoit en entrée une image suréchantillonnée par interpolation bicubique selon le facteur d'échelle approprié.
Pour bénéficier de toutes les fonctionnalités (comme l'exécution asynchrone), veuillez utiliser le filtre dnn_processing.
11.241 sr_amf
Suréchantillonne (augmente la taille de) la vidéo d'entrée à l'aide de la bibliothèque AMD Advanced Media Framework pour l'accélération matérielle. Utilise des algorithmes avancés pour un suréchantillonnage offrant une meilleure qualité de sortie. Le réglage de la largeur et de la hauteur de sortie fonctionne de la même manière que pour le filtre scale.
Le filtre accepte les options suivantes :
w h
Définit l'expression des dimensions de la vidéo de sortie. La valeur par défaut correspond aux dimensions de l'entrée.
Accepte les mêmes expressions que le filtre scale.
algorithm
Définit l'algorithme utilisé pour le redimensionnement :
bilinear
Bilinéaire
bicubic
Bicubique
sr1-0
Video SR1.0. Il s'agit de la valeur par défaut.
point
Point
sr1-1
Video SR1.1
sharpness
Contrôle la netteté du suréchantillonneur hq. La valeur est un nombre à virgule flottante compris dans la plage [0.0, 2.0]
format
Contrôle le pixel format de sortie. Par défaut, ou si aucun format n'est indiqué, le pixel format de l'entrée est utilisé.
keep-ratio
Force le suréchantillonneur à conserver le rapport d'aspect de l'image d'entrée lorsque la taille de sortie a un rapport d'aspect différent. La valeur par défaut est false.
fill
Indique si la partie de l'image de sortie située en dehors de la région d'intérêt, lorsqu'elle ne remplit pas toute la surface de sortie, doit être remplie d'une couleur unie.
11.241.1 Exemples
-
Redimensionne l'entrée en 720p, en conservant le rapport d'aspect et en garantissant une sortie en yuv420p.
sr_amf=-2:720:format=yuv420p -
Suréchantillonne en 4K avec l'algorithme video SR1.1.
sr_amf=4096:2160:algorithm=sr1-1
11.242 ssim
Calcule le SSIM (Structural SImilarity Metric) entre deux vidéos d'entrée.
Ce filtre prend en entrée deux vidéos ; la première entrée est considérée comme la source "principale" et est transmise inchangée vers la sortie. La seconde entrée est utilisée comme vidéo de "référence" pour le calcul du SSIM.
Les deux vidéos d'entrée doivent avoir la même résolution et le même pixel format pour que ce filtre fonctionne correctement. Il suppose également que les deux entrées comportent le même nombre d'images, comparées une à une.
Le filtre enregistre le SSIM calculé pour chaque image.
La description des paramètres acceptés est donnée ci-dessous.
stats_file, f
Si elle est indiquée, le filtre utilise le fichier nommé pour enregistrer le SSIM de chaque image. Lorsque le nom de fichier vaut "-", les données sont envoyées vers la sortie standard.
Le fichier généré lorsque stats_file est sélectionnée contient une suite de paires clé/valeur de la forme key:value pour chaque couple d'images comparées.
La description de chaque paramètre affiché suit :
n
numéro séquentiel de l'image d'entrée, à partir de 1
Y, U, V, R, G, B
SSIM des images comparées pour la composante indiquée par le suffixe.
All
SSIM des images comparées pour l'image entière.
dB
Identique à ce qui précède, mais exprimé en dB.
Ce filtre prend également en charge les options framesync.
11.242.1 Exemples
- Par exemple :
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] ssim="stats_file=stats.log" [out]
Dans cet exemple, le fichier d'entrée en cours de traitement est comparé au fichier de référence ref_movie.mpg. Le SSIM de chaque image est enregistré dans stats.log.
-
Autre exemple utilisant simultanément psnr et ssim :
ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null - -
Autre exemple avec des containers différents :
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
Convertit entre différents formats d'image stéréoscopique.
Les filtres acceptent les options suivantes :
in
Définit le format d'image stéréoscopique de l'entrée.
Les valeurs disponibles pour les formats d'image d'entrée sont :
‘sbsl’
côte à côte parallèle (œil gauche à gauche, œil droit à droite)
‘sbsr’
côte à côte en vision croisée (œil droit à gauche, œil gauche à droite)
‘sbs2l’
côte à côte parallèle avec une résolution de largeur moitié (œil gauche à gauche, œil droit à droite)
‘sbs2r’
côte à côte en vision croisée avec une résolution de largeur moitié (œil droit à gauche, œil gauche à droite)
‘abl’ ‘tbl’
haut-bas (œil gauche en haut, œil droit en bas)
‘abr’ ‘tbr’
haut-bas (œil droit en haut, œil gauche en bas)
‘ab2l’ ‘tb2l’
haut-bas avec une résolution de hauteur moitié (œil gauche en haut, œil droit en bas)
‘ab2r’ ‘tb2r’
haut-bas avec une résolution de hauteur moitié (œil droit en haut, œil gauche en bas)
‘al’
images alternées (œil gauche en premier, œil droit en second)
‘ar’
images alternées (œil droit en premier, œil gauche en second)
‘irl’
lignes entrelacées (l'œil gauche occupe la première ligne, l'œil droit commence à la ligne suivante)
‘irr’
lignes entrelacées (l'œil droit occupe la première ligne, l'œil gauche commence à la ligne suivante)
‘icl’
colonnes entrelacées, œil gauche en premier
‘icr’
colonnes entrelacées, œil droit en premier
La valeur par défaut est ‘sbsl’.
out
Définit le format d'image stéréoscopique de la sortie.
‘sbsl’
côte à côte parallèle (œil gauche à gauche, œil droit à droite)
‘sbsr’
côte à côte en vision croisée (œil droit à gauche, œil gauche à droite)
‘sbs2l’
côte à côte parallèle avec une résolution de largeur moitié (œil gauche à gauche, œil droit à droite)
‘sbs2r’
côte à côte en vision croisée avec une résolution de largeur moitié (œil droit à gauche, œil gauche à droite)
‘abl’ ‘tbl’
haut-bas (œil gauche en haut, œil droit en bas)
‘abr’ ‘tbr’
haut-bas (œil droit en haut, œil gauche en bas)
‘ab2l’ ‘tb2l’
haut-bas avec une résolution de hauteur moitié (œil gauche en haut, œil droit en bas)
‘ab2r’ ‘tb2r’
haut-bas avec une résolution de hauteur moitié (œil droit en haut, œil gauche en bas)
‘al’
images alternées (œil gauche en premier, œil droit en second)
‘ar’
images alternées (œil droit en premier, œil gauche en second)
‘irl’
lignes entrelacées (l'œil gauche occupe la première ligne, l'œil droit commence à la ligne suivante)
‘irr’
lignes entrelacées (l'œil droit occupe la première ligne, l'œil gauche commence à la ligne suivante)
‘arbg’
anaglyphe rouge/bleu en niveaux de gris (filtre rouge sur l'œil gauche, filtre bleu sur l'œil droit)
‘argg’
anaglyphe rouge/vert en niveaux de gris (filtre rouge sur l'œil gauche, filtre vert sur l'œil droit)
‘arcg’
anaglyphe rouge/cyan en niveaux de gris (filtre rouge sur l'œil gauche, filtre cyan sur l'œil droit)
‘arch’
anaglyphe rouge/cyan semi-coloré (filtre rouge sur l'œil gauche, filtre cyan sur l'œil droit)
‘arcc’
anaglyphe rouge/cyan en couleur (filtre rouge sur l'œil gauche, filtre cyan sur l'œil droit)
‘arcd’
anaglyphe rouge/cyan en couleur, optimisé par la projection aux moindres carrés de Dubois (filtre rouge sur l'œil gauche, filtre cyan sur l'œil droit)
‘agmg’
anaglyphe vert/magenta en niveaux de gris (filtre vert sur l'œil gauche, filtre magenta sur l'œil droit)
‘agmh’
anaglyphe vert/magenta semi-coloré (filtre vert sur l'œil gauche, filtre magenta sur l'œil droit)
‘agmc’
anaglyphe vert/magenta en couleur (filtre vert sur l'œil gauche, filtre magenta sur l'œil droit)
‘agmd’
anaglyphe vert/magenta en couleur, optimisé par la projection aux moindres carrés de Dubois (filtre vert sur l'œil gauche, filtre magenta sur l'œil droit)
‘aybg’
anaglyphe jaune/bleu en niveaux de gris (filtre jaune sur l'œil gauche, filtre bleu sur l'œil droit)
‘aybh’
anaglyphe jaune/bleu semi-coloré (filtre jaune sur l'œil gauche, filtre bleu sur l'œil droit)
‘aybc’
anaglyphe jaune/bleu en couleur (filtre jaune sur l'œil gauche, filtre bleu sur l'œil droit)
‘aybd’
anaglyphe jaune/bleu en couleur, optimisé par la projection aux moindres carrés de Dubois (filtre jaune sur l'œil gauche, filtre bleu sur l'œil droit)
‘ml’
sortie mono (œil gauche uniquement)
‘mr’
sortie mono (œil droit uniquement)
‘chl’
damier, œil gauche en premier
‘chr’
damier, œil droit en premier
‘icl’
colonnes entrelacées, œil gauche en premier
‘icr’
colonnes entrelacées, œil droit en premier
‘hdmi’
HDMI Frame Packing
La valeur par défaut est ‘arcd’.
11.243.1 Exemples
-
Convertit la vidéo d'entrée du format côte à côte parallèle vers l'anaglyphe jaune/bleu dubois :
stereo3d=sbsl:aybd -
Convertit la vidéo d'entrée du format haut-bas (œil gauche en haut, œil droit en bas) vers le côte à côte en vision croisée.
stereo3d=abl:sbsr
11.244 streamselect, astreamselect
Sélectionne les flux vidéo ou audio.
Le filtre accepte les options suivantes :
inputs
Définit le nombre d'entrées. La valeur par défaut est 2.
map
Définit les index d'entrée à réassocier aux sorties.
11.244.1 Commandes
Les filtres streamselect et astreamselect prennent en charge les commandes suivantes :
map
Définit les index d'entrée à réassocier aux sorties.
11.244.2 Exemples
-
Sélectionne le 1er flux pendant les 5 premières secondes, puis le 2e flux le reste du temps :
sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0 -
Identique à l'exemple précédent, mais pour l'audio :
asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
11.245 subtitles
Dessine des sous-titres par-dessus la vidéo d'entrée à l'aide de la bibliothèque libass.
Pour activer la compilation de ce filtre, il faut configurer FFmpeg avec --enable-libass. Ce filtre nécessite aussi une compilation incluant libavcodec et libavformat pour convertir le fichier de sous-titres fourni au format ASS (Advanced Substation Alpha).
Le filtre accepte les options suivantes :
filename, f
Définit le nom du fichier de sous-titres à lire. Il doit obligatoirement être précisé.
original_size
Indique la taille de la vidéo originale, celle pour laquelle le fichier ASS a été composé. Pour la syntaxe de cette option, consultez la section "(ffmpeg-utils)Video size" du manuel ffmpeg-utils. En raison d'un défaut de conception dans le calcul du rapport d'aspect ASS, cette mise à l'échelle des polices est nécessaire pour rester correcte si le rapport d'aspect a été modifié.
fontsdir
Définit le chemin d'un répertoire contenant des polices utilisables par le filtre. Ces polices s'ajoutent à celles utilisées par le fournisseur de polices.
alpha
Traite le canal alpha ; par défaut, le canal alpha n'est pas modifié.
charenc
Définit l'encodage des caractères des sous-titres en entrée. Réservé au filtre subtitles. Utile uniquement si l'encodage n'est pas UTF-8.
stream_index, si
Définit l'index du flux de sous-titres. Réservé au filtre subtitles.
force_style
Remplace le style par défaut ou les paramètres d'information de script des sous-titres. Elle accepte une chaîne contenant des couples au format de style ASS KEY=VALUE séparés par ",".
wrap_unicode
Effectue les retours à la ligne selon l'algorithme Unicode de saut de ligne (Unicode Line Breaking Algorithm). Cette fonctionnalité nécessite au moins la version 0.17.0 de libass (ou LIBASS_VERSION 0x01600010), et libass doit avoir été compilée avec libunibreak.
Cette option est activée par défaut, sauf pour l'ASS natif.
shaping
Définit le moteur de shaping.
Les valeurs disponibles sont :
‘auto’
Le moteur de shaping par défaut de libass, le meilleur disponible.
‘simple’
Shaper rapide et indépendant de la police, capable uniquement d'effectuer des substitutions.
‘complex’
Shaper plus lent utilisant OpenType pour les substitutions et le positionnement. Nécessaire pour un rendu correct des écritures complexes telles que l'arabe, l'hébreu, le devanagari et le thaï. Nécessite que libass soit compilée avec HarfBuzz.
La valeur par défaut est auto.
Si la première clé n'est pas précisée, on suppose que la première valeur indique le nom de fichier.
Par exemple, pour incruster le fichier sub.srt par-dessus la vidéo d'entrée, utilisez la commande :
subtitles=sub.srt
ce qui équivaut à :
subtitles=filename=sub.srt
Pour incruster le flux de sous-titres par défaut du fichier video.mkv, utilisez :
subtitles=video.mkv
Pour incruster le deuxième flux de sous-titres de ce fichier, utilisez :
subtitles=video.mkv:si=1
Pour afficher le flux de sous-titres de sub.srt en DejaVu Serif bleu transparent à 80 %, utilisez :
subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
11.246 super2xsai
Met l'entrée à l'échelle 2x et la lisse à l'aide de l'algorithme de mise à l'échelle pixel art Super2xSaI (Scale and Interpolate).
Utile pour agrandir des images pixel art sans réduire la netteté.
11.247 swaprect
Permute deux objets rectangulaires dans la vidéo.
Ce filtre accepte les options suivantes :
w
Définit la largeur de l'objet.
h
Définit la hauteur de l'objet.
x1
Définit la coordonnée x du 1er rectangle.
y1
Définit la coordonnée y du 1er rectangle.
x2
Définit la coordonnée x du 2e rectangle.
y2
Définit la coordonnée y du 2e rectangle.
Toutes les expressions sont évaluées une fois par image.
Toutes les options sont des expressions contenant les constantes suivantes :
w h
La largeur et la hauteur de l'entrée.
a
identique à w / h
sar
rapport d'aspect d'échantillon de l'entrée
dar
rapport d'aspect d'affichage de l'entrée, identique à (w / h) * sar
n
Le numéro de l'image d'entrée, à partir de 0.
t
L'horodatage exprimé en secondes. Il vaut NAN si l'horodatage d'entrée est inconnu.
pos
la position de l'image d'entrée dans le fichier, NAN si inconnue ; obsolète, à ne pas utiliser
11.247.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.248 swapuv
Permute les plans U et V.
11.249 tblend
Mélange des images vidéo successives.
Voir blend
11.250 telecine
Applique le processus de télécinéma à la vidéo.
Ce filtre accepte les options suivantes :
first_field
‘top, t’
champ supérieur en premier
‘bottom, b’
champ inférieur en premier. La valeur par défaut est top.
pattern
Une chaîne de chiffres représentant le motif de pulldown que vous souhaitez appliquer. La valeur par défaut est 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
Calcule et dessine un histogramme de distribution des couleurs de la vidéo d'entrée au fil du temps.
Contrairement au filtre vidéo histogram, qui n'affiche que l'histogramme d'une seule image d'entrée à un instant donné, ce filtre affiche également les histogrammes passés sur un nombre d'images défini par l'option width.
L'histogramme calculé représente la distribution des composantes de couleur dans une image.
Le filtre accepte les options suivantes :
width, w
Définit la largeur de sortie d'une seule composante de couleur. La valeur par défaut est 0. La valeur 0 signifie que la largeur sera choisie à partir de la vidéo d'entrée. Ceci définit également le nombre d'histogrammes passés à conserver. La plage autorisée est [0, 8192].
display_mode, d
Définit le mode d'affichage. Elle accepte les valeurs suivantes :
‘stack’
Les graphiques de chaque composante de couleur sont placés les uns sous les autres.
‘parade’
Les graphiques de chaque composante de couleur sont placés côte à côte.
‘overlay’
Présente une information identique à celle du mode parade, à ceci près que les graphiques représentant les composantes de couleur sont directement superposés les uns aux autres.
La valeur par défaut est stack.
levels_mode, m
Définit le mode. Peut être linear ou logarithmic. La valeur par défaut est linear.
components, c
Définit les composantes de couleur à afficher. La valeur par défaut est 7.
bgopacity, b
Définit l'opacité de l'arrière-plan. La valeur par défaut est 0.9.
envelope, e
Affiche l'enveloppe. Désactivée par défaut.
ecolor, ec
Définit la couleur de l'enveloppe. La valeur par défaut est gold.
slide
Définit le mode de défilement.
Les valeurs disponibles pour slide sont :
‘frame’
Dessine une nouvelle image lorsque le bord droit est atteint.
‘replace’
Remplace les anciennes colonnes par de nouvelles.
‘scroll’
Défile de droite à gauche.
‘rscroll’
Défile de gauche à droite.
‘picture’
Dessine une seule image.
La valeur par défaut est replace.
11.252 threshold
Applique un effet de seuillage au flux vidéo.
Ce filtre nécessite quatre flux vidéo pour effectuer le seuillage. Le premier flux est celui que l'on filtre. Le deuxième flux contient les valeurs de seuil, le troisième les valeurs minimales et le quatrième et dernier les valeurs maximales.
Le filtre accepte l'option suivante :
planes
Définit les plans qui seront traités ; les plans non traités seront copiés tels quels. Par défaut, avec la valeur 0xf, tous les plans sont traités.
Par exemple, si la valeur de la composante d'un pixel du premier flux est inférieure à la valeur de seuil de la composante correspondante dans le deuxième flux, la valeur du troisième flux est retenue ; sinon, c'est la valeur de la composante du pixel du quatrième flux qui est retenue.
En utilisant le filtre source color, on peut effectuer différents types de seuillage :
11.252.1 Commandes
Ce filtre prend en charge toutes les options en tant que commandes.
11.252.2 Exemples
-
Seuillage binaire, en utilisant le gris comme seuil :
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi -
Seuillage binaire inversé, en utilisant le gris comme seuil :
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi -
Seuillage binaire tronqué, en utilisant le gris comme seuil :
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi -
Seuillage à zéro, en utilisant le gris comme seuil :
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi -
Seuillage à zéro inversé, en utilisant le gris comme seuil :
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
11.253 thumbnail
Sélectionne l'image la plus représentative dans une séquence donnée d'images consécutives.
Le filtre accepte les options suivantes :
n
Définit la taille des lots d'images à analyser ; dans un ensemble de n images, le filtre en choisit une, puis traite le lot suivant de n images, et ainsi de suite jusqu'à la fin. La valeur par défaut est 100.
log
Définit le niveau de journalisation pour afficher les statistiques de l'image choisie. La valeur par défaut est info.
Comme le filtre garde la trace de toute la séquence d'images, une valeur de n plus élevée entraîne une consommation mémoire plus importante ; une valeur élevée n'est donc pas recommandée.
11.253.1 Exemples
-
Extrait une image toutes les 50 images :
thumbnail=50 -
Exemple complet de création de vignette avec
ffmpeg:ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
11.254 tile
Assemble plusieurs images successives en mosaïque.
Le filtre untile permet d'effectuer l'opération inverse.
Le filtre accepte les options suivantes :
layout
Définit la taille de la grille sous la forme COLUMNSxROWS. La plage va jusqu'à UINT_MAX cellules. La valeur par défaut est 6x5.
nb_frames
Définit le nombre maximal d'images à afficher dans la zone donnée. Ce nombre doit être inférieure ou égale à wxh. La valeur par défaut est 0, ce qui signifie que toute la zone sera utilisée.
margin
Définit la marge de la bordure extérieure en pixels. La plage va de 0 à 1024. La valeur par défaut est 0.
padding
Définit l'épaisseur de la bordure intérieure (c'est-à-dire le nombre de pixels entre les images). Pour des options de remplissage plus avancées (par exemple des valeurs différentes selon les bords), consultez le filtre vidéo pad. La plage va de 0 à 1024. La valeur par défaut est 0.
color
Indique la couleur de la zone inutilisée. Pour la syntaxe de cette option, consultez la section "(ffmpeg-utils)Color" du manuel ffmpeg-utils. La valeur par défaut de color est "black".
overlap
Définit le nombre d'images à faire se chevaucher lors de l'assemblage en mosaïque de plusieurs images successives. La valeur doit être comprise entre 0 et nb_frames - 1. La valeur par défaut est 0.
init_padding
Définit le nombre d'images initialement vides avant l'affichage de la première image de sortie. Cela permet de contrôler la rapidité d'obtention de la première image de sortie. La valeur doit être comprise entre 0 et nb_frames - 1. La valeur par défaut est 0.
11.254.1 Exemples
- Produit des mosaïques PNG 8x8 de toutes les keyframes (-skip_frame nokey) d'un film :
ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -fps_mode passthrough keyframes%03d.png
L'option -fps_mode passthrough est nécessaire pour empêcher ffmpeg de dupliquer chaque image de sortie afin de respecter la fréquence d'images détectée à l'origine.
- Affiche
5images dans une zone de3x2images, avec7pixels entre elles et2pixels de marge initiale, en combinant options à plat et options nommées :tile=3x2:nb_frames=5:padding=7:margin=2
11.255 tiltandshift
Applique l'effet tilt-and-shift.
Que se passe-t-il lorsqu'on inverse le temps et l'espace ?
Normalement, une vidéo est composée de plusieurs images représentant chacune un instant différent et montrant une scène qui évolue dans l'espace capté par l'image. Ce filtre est l'antipode de ce concept, en s'inspirant de la photographie tilt-shift.
Une image filtrée contient toute la chronologie des événements qui composent la séquence ; cela s'obtient en plaçant une tranche de pixels de chaque image dans une seule image. Cependant, comme il n'existe pas d'image de largeur infinie, cette opération se fait sur la largeur de l'image d'entrée, et une vidéo est recomposée en décalant d'une colonne pour chaque image suivante. Afin de faire correspondre l'espace au temps, le filtre incline également chaque image d'entrée, de sorte que le mouvement soit préservé. Ceci est réalisé en sélectionnant progressivement une colonne différente dans chaque image d'entrée.
Le résultat final est une sorte de parallaxe inversée, si bien que les objets éloignés se déplacent bien plus vite que ceux au premier plan. Les conditions idéales pour cet effet vidéo sont soit un mouvement très faible avec un arrière-plan statique, soit beaucoup de mouvement avec une très grande profondeur de champ (par exemple un large panorama, filmé en train).
Le filtre accepte les paramètres suivants :
tilt
Incline la vidéo pendant le décalage (comportement par défaut). Si l'option est désactivée, la vidéo fait glisser une image statique composée de la première colonne de chaque image.
start
Indique quoi faire au début du filtrage (voir ci-dessous).
end
Indique quoi faire à la fin du filtrage (voir ci-dessous).
hold
Nombre de colonnes devant défiler avant le début du filtrage.
pad
Nombre de colonnes à insérer avant la fin du filtrage.
Normalement, le filtre décale et incline dès la toute première image, et s'arrête lorsque la dernière est reçue. Cependant, avant que le filtrage ne commence, la vidéo normale peut être préservée, de sorte que l'effet se met en place progressivement. De même, la dernière image vidéo peut être reconstruite à la fin. Il est également possible de simplement commencer et terminer en noir.
‘none’
Le filtrage commence immédiatement et se termine à la réception de la dernière image.
‘frame’
Les premières images ou la toute dernière image sont conservées intactes pendant le traitement.
‘black’
Du noir est ajouté au début ou à la fin du filtrage.
11.256 tinterlace
Effectue différents types d'entrelacement temporel de champs.
Les images sont comptées à partir de 1 ; la première image d'entrée est donc considérée comme impaire.
Le filtre accepte les options suivantes :
mode
Indique le mode d'entrelacement. Cette option peut également être indiquée par une simple valeur. Voir ci-dessous la liste des valeurs possibles pour cette option.
Les valeurs disponibles sont :
‘merge, 0’
Déplace les images impaires dans le champ supérieur et les images paires dans le champ inférieur, ce qui génère une image de hauteur double à la moitié de la fréquence d'images.
------> 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’
Ne conserve en sortie que les images impaires ; les images paires sont supprimées, ce qui génère une image de hauteur inchangée à la moitié de la fréquence d'images.
------> 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’
Ne conserve en sortie que les images paires ; les images impaires sont supprimées, ce qui génère une image de hauteur inchangée à la moitié de la fréquence d'images.
------> 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’
Étend chaque image à sa pleine hauteur, mais remplit une ligne sur deux avec du noir, ce qui génère une image de hauteur double à la même fréquence d'images en entrée.
------> 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’
Entrelace le champ supérieur des images impaires avec le champ inférieur des images paires, ce qui génère une image de hauteur inchangée à la moitié de la fréquence d'images.
------> 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’
Entrelace le champ inférieur des images impaires avec le champ supérieur des images paires, ce qui génère une image de hauteur inchangée à la moitié de la fréquence d'images.
------> 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’
Double la fréquence d'images sans changer la hauteur. Chaque image insérée contient le second champ temporel de l'image d'entrée précédente et le premier champ temporel de l'image d'entrée suivante. Ce mode repose sur l'indicateur top_field_first. Utile pour les affichages vidéo entrelacés sans synchronisation de champ.
------> 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’
Déplace les images impaires dans le champ supérieur et les images paires dans le champ inférieur, ce qui génère une image de hauteur double à la même fréquence d'images.
------> 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
Les valeurs numériques sont obsolètes, mais restent acceptées pour des raisons de compatibilité ascendante.
Le mode par défaut est merge.
flags
Indique des indicateurs influençant le traitement du filtre.
La valeur disponible pour flags est :
low_pass_filter, vlpf
Active le filtrage passe-bas vertical linéaire dans le filtre. Un filtrage passe-bas vertical est nécessaire lors de la création d'une destination entrelacée à partir d'une source progressive contenant des détails verticaux à haute fréquence. Le filtrage réduit l'effet de ’twitter’ et le moirage.
complex_filter, cvlpf
Active le filtrage passe-bas vertical complexe. Cela réduit un peu moins l'effet de ’twitter’ et le moirage, mais conserve mieux les détails et l'impression subjective de netteté.
bypass_il
Contourne les images déjà entrelacées ; ajuste uniquement la fréquence d'images.
Le filtrage passe-bas vertical et le contournement des images déjà entrelacées ne peuvent être activés que pour les modes interleave_top et interleave_bottom.
11.257 tmedian
Sélectionne les pixels médians parmi plusieurs images vidéo d'entrée successives.
Le filtre accepte les options suivantes :
radius
Définit le rayon du filtre médian. La valeur par défaut est 1. La plage autorisée va de 1 à 127.
planes
Définit les plans à filtrer. La valeur par défaut est 15, ce qui signifie que tous les plans sont traités.
percentile
Définit le centile médian. La valeur par défaut est 0.5. Avec la valeur par défaut 0.5, ce sont toujours les valeurs médianes qui sont retenues, tandis que 0 retient les valeurs minimales et 1 les valeurs maximales.
11.257.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes, à l'exception de l'option radius.
11.258 tmidequalizer
Applique l'effet d'égalisation vidéo temporelle à mi-chemin (Temporal Midway Video Equalization).
L'égalisation vidéo à mi-chemin ajuste une séquence d'images vidéo pour qu'elles aient le même histogramme, tout en préservant autant que possible leur dynamique. Elle est utile, par exemple, pour uniformiser l'exposition d'une séquence d'images vidéo.
Ce filtre accepte l'option suivante :
radius
Définit le rayon de filtrage. La valeur par défaut est 5. La plage autorisée va de 1 à 127.
sigma
Définit le sigma de filtrage. La valeur par défaut est 0.5. Ceci contrôle l'intensité du filtrage. Régler cette option à 0 revient à ne rien faire.
planes
Définit les plans à traiter. La valeur par défaut est 15, soit tous les plans disponibles.
11.259 tmix
Mélange des images vidéo successives.
Voici la description des options acceptées.
frames
Le nombre d'images successives à mélanger. S'il n'est pas précisé, sa valeur par défaut est 3.
weights
Indique le poids de chaque image vidéo d'entrée. Les poids sont séparés par des espaces. Si le nombre de poids est inférieur au nombre d'images, le dernier poids indiqué est utilisé pour tous les poids restants non définis.
scale
Indique l'échelle ; si elle est définie, elle est multipliée par la somme des poids multipliés par les valeurs de pixel pour obtenir la valeur finale du pixel de destination. Par défaut, l'échelle est ajustée automatiquement à la somme des poids.
planes
Définit les plans à filtrer. La valeur par défaut est tous. La plage autorisée va de 0 à 15.
11.259.1 Exemples
-
Calcule la moyenne de 7 images successives :
tmix=frames=7:weights="1 1 1 1 1 1 1" -
Applique une convolution temporelle simple :
tmix=frames=3:weights="-1 3 -1" -
Identique à l'exemple précédent, mais affiche uniquement les différences temporelles :
tmix=frames=3:weights="-1 2 -1":scale=1
11.259.2 Commandes
Ce filtre prend en charge les commandes suivantes :
weights scale planes
La syntaxe est identique à celle de l'option du même nom.
11.260 tonemap
Effectue un mappage tonal des couleurs provenant de différentes plages dynamiques.
Ce filtre attend des données en virgule flottante simple précision, car il doit traiter (et peut produire en sortie) des valeurs hors plage. Un autre filtre, comme zscale, est nécessaire pour convertir l'image obtenue dans un format utilisable.
Les algorithmes de mappage tonal implémentés ne fonctionnent qu'en lumière linéaire (linear light) ; les données d'entrée doivent donc être linéarisées au préalable (et si possible correctement balisées).
ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
11.260.1 Options
Ce filtre accepte les options suivantes.
tonemap
Définit l'algorithme de mappage tonal à utiliser.
Les valeurs possibles sont :
none
N'applique aucun mappage tonal, se contente de désaturer les pixels trop lumineux.
clip
Écrête (hard-clip) toutes les valeurs hors plage. À utiliser pour une précision colorimétrique parfaite sur les valeurs dans la plage, au prix d'une distorsion des valeurs hors plage.
linear
Étire l'ensemble du gamut de référence selon un multiple linéaire de l'affichage.
gamma
Ajuste une fonction de transfert logarithmique entre les courbes de tons.
reinhard
Préserve la luminosité globale de l'image avec une courbe simple, en utilisant un contraste non linéaire, ce qui a pour effet d'aplatir les détails et de dégrader la précision des couleurs.
hable
Préserve mieux les détails sombres et clairs que reinhard, au prix d'un léger assombrissement général. À utiliser lorsque la préservation des détails compte plus que la précision des couleurs et de la luminosité.
mobius
Mappe en douceur les valeurs hors plage, tout en conservant autant que possible le contraste et les couleurs du contenu dans la plage. À utiliser lorsque la précision des couleurs compte plus que la préservation des détails.
La valeur par défaut est none.
param
Ajuste l'algorithme de mappage tonal.
Ceci concerne les algorithmes suivants :
none
Ignoré.
linear
Indique le facteur d'échelle à utiliser lors de l'étirement. La valeur par défaut est 1.0.
gamma
Indique l'exposant de la fonction. La valeur par défaut est 1.8.
clip
Indique un coefficient linéaire supplémentaire à multiplier au signal avant l'écrêtage. La valeur par défaut est 1.0.
reinhard
Indique le coefficient de contraste local au pic d'affichage. La valeur par défaut est 0.5, ce qui signifie que les valeurs dans le gamut seront environ deux fois moins lumineuses qu'en cas d'écrêtage.
hable
Ignoré.
mobius
Indique le point de transition entre la transformation linéaire et la transformation mobius. Toute valeur en dessous de ce point est garantie d'être mappée en 1:1. Plus la valeur est élevée, plus le résultat est précis, au prix d'une perte de détails dans les hautes lumières. La valeur par défaut est 0.3, qui, grâce à la pente initiale abrupte, préserve encore assez fidèlement les couleurs dans la plage.
desat
Applique une désaturation aux hautes lumières qui dépassent ce niveau de luminosité. Plus le paramètre est élevé, plus d'informations de couleur sont préservées. Ce réglage aide à éviter les couleurs cramées de façon non naturelle sur les très hautes lumières, en les faisant (en douceur) virer au blanc. Les images paraissent ainsi plus naturelles, au prix d'une perte d'informations sur les couleurs hors plage.
La valeur par défaut de 2.0 est plutôt prudente et ne s'applique en général qu'au ciel ou aux surfaces directement exposées au soleil. Un réglage à 0.0 désactive cette option.
Cette option ne fonctionne que si l'image d'entrée possède une balise de couleur prise en charge.
peak
Remplace le pic signal/nominal/référence par cette valeur. Utile lorsque l'information de pic intégrée aux métadonnées d'affichage n'est pas fiable, ou pour effectuer un mappage tonal d'une plage plus basse vers une plage plus haute.
11.261 tpad
Ajoute temporairement des images de remplissage au flux vidéo.
Ce filtre accepte les options suivantes :
start
Indique le nombre d'images de délai insérées avant le flux vidéo d'entrée. La valeur par défaut est 0.
stop
Indique le nombre d'images de remplissage insérées après le flux vidéo d'entrée. Réglez sur -1 pour un remplissage indéfini. La valeur par défaut est 0.
start_mode
Définit le type des images ajoutées au début du flux. Les valeurs possibles sont add ou clone. Avec add, des images de couleur unie sont ajoutées. Avec clone, les images ajoutées sont des copies de la première image. La valeur par défaut est add.
stop_mode
Définit le type des images ajoutées à la fin du flux. Les valeurs possibles sont add ou clone. Avec add, des images de couleur unie sont ajoutées. Avec clone, les images ajoutées sont des copies de la dernière image. La valeur par défaut est add.
start_duration, stop_duration
Indique la durée du délai de début/fin. Voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée. Ces options prennent le pas sur start et stop. La valeur par défaut est 0.
color
Indique la couleur de la zone de remplissage. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
La valeur par défaut de color est "black".
11.262 transpose
Transpose les lignes et les colonnes de la vidéo d'entrée, et la retourne éventuellement.
Il accepte les paramètres suivants :
dir
Indique le sens de la transposition.
Peut prendre les valeurs suivantes :
‘0, 4, cclock_flip’
Effectue une rotation de 90 degrés dans le sens antihoraire et un retournement vertical (valeur par défaut), c'est-à-dire :
L.R L.l
. . -> . .
l.r R.r
‘1, 5, clock’
Effectue une rotation de 90 degrés dans le sens horaire, c'est-à-dire :
L.R l.L
. . -> . .
l.r r.R
‘2, 6, cclock’
Effectue une rotation de 90 degrés dans le sens antihoraire, c'est-à-dire :
L.R R.r
. . -> . .
l.r L.l
‘3, 7, clock_flip’
Effectue une rotation de 90 degrés dans le sens horaire et un retournement vertical, c'est-à-dire :
L.R r.R
. . -> . .
l.r l.L
Pour les valeurs comprises entre 4 et 7, la transposition n'est effectuée que si la géométrie de la vidéo d'entrée est en portrait et non en paysage. Ces valeurs sont obsolètes ; il convient d'utiliser l'option passthrough à la place.
Les valeurs numériques sont obsolètes et devraient être abandonnées au profit des constantes symboliques.
passthrough
N'applique pas la transposition si la géométrie d'entrée correspond à celle indiquée par la valeur spécifiée. Il accepte les valeurs suivantes :
‘none’
Applique toujours la transposition.
‘portrait’
Préserve la géométrie portrait (lorsque hauteur >= largeur).
‘landscape’
Préserve la géométrie paysage (lorsque largeur >= hauteur).
La valeur par défaut est none.
Par exemple, pour effectuer une rotation de 90 degrés dans le sens horaire tout en conservant la disposition portrait :
transpose=dir=1:passthrough=portrait
La commande ci-dessus peut également être spécifiée ainsi :
transpose=1:portrait
11.263 trim
Découpe l'entrée de sorte que la sortie ne contienne qu'une seule sous-partie continue de l'entrée.
Il accepte les paramètres suivants :
start
Indique l'instant de début de la section à conserver, c'est-à-dire que l'image dont l'horodatage est start sera la première image de la sortie.
end
Indique l'instant de la première image qui sera supprimée, c'est-à-dire que l'image précédant immédiatement celle dont l'horodatage est end sera la dernière image de la sortie.
start_pts
Identique à start, sauf que cette option définit l'horodatage de début en unités de timebase plutôt qu'en secondes.
end_pts
Identique à end, sauf que cette option définit l'horodatage de fin en unités de timebase plutôt qu'en secondes.
duration
Durée maximale de la sortie, en secondes.
start_frame
Numéro de la première image devant être transmise à la sortie.
end_frame
Numéro de la première image devant être supprimée.
start, end et duration s'expriment comme des spécifications de durée ; voir (ffmpeg-utils)la section Time duration du manuel ffmpeg-utils(1) pour la syntaxe acceptée.
Notez que les deux premières paires d'options start/end ainsi que l'option duration se basent sur l'horodatage de l'image, alors que les variantes _frame comptent simplement les images qui traversent le filtre. Notez également que ce filtre ne modifie pas les horodatages. Si vous souhaitez que les horodatages de sortie commencent à zéro, insérez un filtre setpts après le filtre trim.
Si plusieurs options start ou end sont définies, ce filtre se comporte de façon gourmande et conserve toutes les images correspondant à au moins une des contraintes spécifiées. Pour ne conserver que la partie qui satisfait toutes les contraintes à la fois, chaînez plusieurs filtres trim.
Les valeurs par défaut sont telles que la totalité de l'entrée est conservée. Il est donc possible de définir, par exemple, uniquement la valeur end pour conserver tout ce qui précède l'instant spécifié.
Exemples :
-
Supprime tout sauf la deuxième minute de l'entrée :
ffmpeg -i INPUT -vf trim=60:120 -
Ne conserve que la première seconde :
ffmpeg -i INPUT -vf trim=duration=1
11.264 unpremultiply
Applique l'effet de suppression de la prémultiplication alpha (unpremultiply) au flux vidéo d'entrée, en utilisant le premier plan du second flux comme alpha.
Les deux flux doivent avoir les mêmes dimensions et le même pixel format.
Ce filtre accepte l'option suivante :
planes
Définit les plans qui seront traités ; les plans non traités seront copiés. La valeur par défaut 0xf traite tous les plans.
Si le format comporte 1 ou 2 composantes, la luminance est le bit 0. Si le format comporte 3 ou 4 composantes : pour les formats RGB, le bit 0 est le vert, le bit 1 le bleu et le bit 2 le rouge ; pour les formats YUV, le bit 0 est la luminance, le bit 1 la chrominance U et le bit 2 la chrominance V. Si le canal alpha est présent, il correspond toujours au dernier bit.
inplace
Ne requiert pas de second flux d'entrée pour le traitement, utilise à la place le plan alpha du flux d'entrée.
11.265 unsharp
Accentue la netteté de la vidéo d'entrée, ou la floute.
Il accepte les paramètres suivants :
luma_msize_x, lx
Définit la taille horizontale de la matrice de luminance. Ce doit être un entier impair compris entre 3 et 23. La valeur par défaut est 5.
luma_msize_y, ly
Définit la taille verticale de la matrice de luminance. Ce doit être un entier impair compris entre 3 et 23. La valeur par défaut est 5.
luma_amount, la
Définit l'intensité de l'effet sur la luminance. Ce doit être un nombre à virgule flottante ; les valeurs raisonnables se situent entre -1.5 et 1.5.
Les valeurs négatives floutent la vidéo d'entrée, tandis que les valeurs positives l'accentuent ; une valeur nulle désactive l'effet.
La valeur par défaut est 1.0.
chroma_msize_x, cx
Définit la taille horizontale de la matrice de chrominance. Ce doit être un entier impair compris entre 3 et 23. La valeur par défaut est 5.
chroma_msize_y, cy
Définit la taille verticale de la matrice de chrominance. Ce doit être un entier impair compris entre 3 et 23. La valeur par défaut est 5.
chroma_amount, ca
Définit l'intensité de l'effet sur la chrominance. Ce doit être un nombre à virgule flottante ; les valeurs raisonnables se situent entre -1.5 et 1.5.
Les valeurs négatives floutent la vidéo d'entrée, tandis que les valeurs positives l'accentuent ; une valeur nulle désactive l'effet.
La valeur par défaut est 0.0.
alpha_msize_x, ax
Définit la taille horizontale de la matrice alpha. Ce doit être un entier impair compris entre 3 et 23. La valeur par défaut est 5.
alpha_msize_y, ay
Définit la taille verticale de la matrice alpha. Ce doit être un entier impair compris entre 3 et 23. La valeur par défaut est 5.
alpha_amount, aa
Définit l'intensité de l'effet sur l'alpha. Ce doit être un nombre à virgule flottante ; les valeurs raisonnables se situent entre -1.5 et 1.5.
Les valeurs négatives floutent la vidéo d'entrée, tandis que les valeurs positives l'accentuent ; une valeur nulle désactive l'effet.
La valeur par défaut est 0.0.
Tous les paramètres sont facultatifs et équivalent par défaut à la chaîne ’5:5:1.0:5:5:0.0’.
11.265.1 Exemples
-
Applique un fort effet de netteté sur la luminance :
unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5 -
Applique un flou important sur les paramètres de luminance et de chrominance :
unsharp=7:7:-2:7:7:-2
11.266 untile
Décompose une vidéo composée d'images en mosaïque en images individuelles.
La fréquence d'images de la vidéo de sortie correspond à celle de la vidéo d'entrée multipliée par le nombre de tuiles.
Ce filtre effectue l'opération inverse de tile.
Ce filtre accepte les options suivantes :
layout
Définit la taille de la grille (c'est-à-dire le nombre de lignes et de colonnes). Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Video size" du manuel ffmpeg-utils.
11.266.1 Exemples
- Produit une vidéo d'une seconde à partir d'un fichier image fixe composé de 25 images empilées verticalement, comme une bobine de film analogique :
ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
11.267 uspp
Applique un filtre de post-traitement ultra lent et simple, qui compresse et décompresse l'image selon plusieurs décalages (ou, dans le cas du niveau de qualité 8 - tous les décalages) et fait la moyenne des résultats.
La différence avec le comportement de spp est que uspp encode et décode réellement chaque cas avec Snow de libavcodec, alors que spp utilise une DCT 8x8 intra simplifiée, semblable à celle de MJPEG.
Ce filtre n'est pas disponible dans les versions de ffmpeg comprises entre 5.0 et 6.0.
Ce filtre accepte les options suivantes :
quality
Définit la qualité. Cette option définit le nombre de niveaux utilisés pour le moyennage. Elle accepte un entier compris entre 0 et 8. Réglée sur 0, le filtre n'a aucun effet. Une valeur de 8 correspond à la meilleure qualité. Chaque incrément de cette valeur divise la vitesse par un facteur d'environ 2. La valeur par défaut est 3.
qp
Force un paramètre de quantification constant. S'il n'est pas défini, le filtre utilise le QP du flux vidéo (si disponible).
codec
Utilise le codec indiqué à la place de snow.
11.268 v360
Convertit des vidéos à 360 degrés entre différents formats.
Ce filtre accepte les options suivantes :
input output
Définit le format de la vidéo d'entrée/de sortie.
Formats disponibles :
‘e’ ‘equirect’
Projection équirectangulaire.
‘c3x2’ ‘c6x1’ ‘c1x6’
Cubemap avec disposition 3x2/6x1/1x6.
Options spécifiques au format :
in_pad out_pad
Définit la proportion de remplissage de la cubemap d'entrée/de sortie. Valeurs décimales.
Exemples de valeurs :
‘0’
Pas de remplissage.
‘0.01’
1 % de la face est du remplissage. Par exemple, avec une résolution de 1920x1280, la taille de face serait de 640x640 et le remplissage serait de 3 pixels de chaque côté. (640 * 0.01 = 6 pixels)
La valeur par défaut est ‘ 0’. La valeur maximale est ‘ 0.1’.
fin_pad fout_pad
Définit un remplissage fixe pour la cubemap d'entrée/de sortie. Valeurs en pixels.
La valeur par défaut est ‘ 0’. Si elle est supérieure à zéro, elle prend le pas sur les autres options de remplissage.
in_forder out_forder
Définit l'ordre des faces de la cubemap d'entrée/de sortie. Choisissez une direction pour chaque position.
Désignation des directions :
‘r’
droite
‘l’
gauche
‘u’
haut
‘d’
bas
‘f’
avant
‘b’
arrière
La valeur par défaut est ‘ rludfb’.
in_frot out_frot
Définit la rotation des faces de la cubemap d'entrée/de sortie. Choisissez un angle pour chaque position.
Désignation des angles :
‘0’
0 degré dans le sens horaire
‘1’
90 degrés dans le sens horaire
‘2’
180 degrés dans le sens horaire
‘3’
270 degrés dans le sens horaire
La valeur par défaut est ‘ 000000’.
‘eac’
Equi-Angular Cubemap.
‘flat’ ‘gnomonic’ ‘rectilinear’
Vidéo classique.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘dfisheye’
Double fisheye.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘barrel’ ‘fb’ ‘barrelsplit’
Formats 360 de Facebook.
‘sg’
Format stéréographique.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘mercator’
Format Mercator.
‘ball’
Format Ball, produit une distorsion importante vers l'arrière.
‘hammer’
Format de projection Hammer-Aitoff.
‘sinusoidal’
Format de projection sinusoïdale.
‘fisheye’
Projection fisheye.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘pannini’
Projection Pannini.
Options spécifiques au format :
h_fov
Définit le paramètre pannini de sortie.
ih_fov
Définit le paramètre pannini d'entrée.
‘cylindrical’
Projection cylindrique.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘perspective’
Projection en perspective. (sortie uniquement)
Options spécifiques au format :
v_fov
Définit le paramètre de perspective.
‘tetrahedron’
Projection tétraédrique.
‘tsp’
Projection en pyramide à base carrée tronquée.
‘he’ ‘hequirect’
Projection semi-équirectangulaire.
‘equisolid’
Format équisolide.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘og’
Format orthographique.
Options spécifiques au format :
h_fov v_fov d_fov
Définit le champ de vision horizontal/vertical/diagonal de sortie. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
ih_fov iv_fov id_fov
Définit le champ de vision horizontal/vertical/diagonal d'entrée. Valeurs en degrés.
Si le champ de vision diagonal est défini, il prend le pas sur les champs de vision horizontal et vertical.
‘octahedron’
Projection octaédrique.
‘cylindricalea’
Projection cylindrique équivalente.
interp
Définit la méthode d'interpolation.
Remarque : les méthodes d'interpolation plus complexes nécessitent beaucoup plus de mémoire à l'exécution.
Méthodes disponibles :
‘near’ ‘nearest’
Plus proche voisin.
‘line’ ‘linear’
Interpolation bilinéaire.
‘lagrange9’
Interpolation Lagrange9.
‘cube’ ‘cubic’
Interpolation bicubique.
‘lanc’ ‘lanczos’
Interpolation Lanczos.
‘sp16’ ‘spline16’
Interpolation Spline16.
‘gauss’ ‘gaussian’
Interpolation gaussienne.
‘mitchell’
Interpolation Mitchell.
La valeur par défaut est ‘ line’.
w h
Définit la résolution de la vidéo de sortie.
La résolution par défaut dépend des formats.
in_stereo out_stereo
Définit le format stéréo d'entrée/de sortie.
‘2d’
2D mono
‘sbs’
Côte à côte
‘tb’
Haut/bas
La valeur par défaut est ‘ 2d’ pour le format d'entrée et de sortie.
yaw pitch roll
Définit la rotation de la vidéo de sortie. Valeurs en degrés.
rorder
Définit l'ordre de rotation de la vidéo de sortie. Choisissez un élément pour chaque position.
‘y, Y’
lacet
‘p, P’
tangage
‘r, R’
roulis
La valeur par défaut est ‘ ypr’.
h_flip v_flip d_flip
Retourne la vidéo de sortie horizontalement (inverse gauche-droite)/verticalement (inverse haut-bas)/en profondeur (inverse avant-arrière). Valeurs booléennes.
ih_flip iv_flip
Indique si la vidéo d'entrée est retournée horizontalement/verticalement. Valeurs booléennes.
in_trans
Indique si la vidéo d'entrée est transposée. Valeur booléenne, désactivée par défaut.
out_trans
Indique si la vidéo de sortie doit être transposée. Valeur booléenne, désactivée par défaut.
h_offset v_offset
Définit le décalage hors axe horizontal/vertical de sortie. La valeur par défaut est 0. La plage autorisée va de -1 à 1.
alpha_mask
Construit un masque dans le plan alpha pour tous les pixels non mappés en les marquant comme entièrement transparents. Valeur booléenne, désactivée par défaut.
reset_rot
Réinitialise la rotation de la vidéo de sortie. Valeur booléenne, désactivée par défaut.
11.268.1 Exemples
-
Convertit la vidéo équirectangulaire en cubemap avec une disposition 3x2 et un remplissage de 1 % à l'aide d'une interpolation bicubique :
ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv -
Extrait la vue arrière du cubemap équiangulaire :
ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv -
Convertit un cubemap équiangulaire transposé et retourné horizontalement, au format stéréo côte à côte, en format stéréo équirectangulaire haut/bas :
v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
11.268.2 Commandes
Ce filtre prend en charge un sous-ensemble des options ci-dessus sous forme de commandes.
11.269 vaguedenoiser
Applique un débruiteur basé sur les ondelettes.
Il transforme chaque image de l'entrée vidéo dans le domaine des ondelettes, en utilisant Cohen-Daubechies-Feauveau 9/7. Il applique ensuite un certain filtrage aux coefficients obtenus, puis effectue une transformée en ondelettes inverse. Grâce aux propriétés des ondelettes, le résultat devrait être lissé et le bruit réduit, sans flouter les détails de l'image.
Ce filtre accepte les options suivantes :
threshold
La force du filtrage. Plus la valeur est élevée, plus la vidéo est filtrée. Le seuillage dur peut utiliser un seuil plus élevé que le seuillage doux avant que la vidéo ne paraisse sur-filtrée. La valeur par défaut est 2.
method
La méthode de filtrage utilisée par le filtre.
Il accepte les valeurs suivantes :
‘hard’
Toutes les valeurs inférieures au seuil sont mises à zéro.
‘soft’
Toutes les valeurs inférieures au seuil sont mises à zéro. Toutes les valeurs supérieures sont réduites de la valeur du seuil.
‘garrote’
Met à l'échelle ou annule les coefficients - intermédiaire entre un seuillage (plus) doux et (moins) dur.
La valeur par défaut est garrote.
nsteps
Nombre de fois où l'ondelette décompose l'image. L'image ne peut pas être décomposée au-delà d'un certain point (typiquement 8 fois pour une image de 640x480, car 2^9 = 512 > 480). Les valeurs valides sont des entiers compris entre 1 et 32. La valeur par défaut est 6.
percent
Part du débruitage complet (réduction limitée des coefficients), de 0 à 100. La valeur par défaut est 85.
planes
Liste des plans à traiter. Par défaut, tous les plans sont traités.
type
Le type de seuil utilisé par le filtre.
Il accepte les valeurs suivantes :
‘universal’
Le seuil utilisé est identique pour toutes les décompositions.
‘bayes’
Le seuil utilisé dépend également des coefficients de chaque décomposition.
La valeur par défaut est universal.
11.270 varblur
Applique un filtre de flou variable en utilisant le 2e flux vidéo pour définir le rayon du flou. Le 2e flux doit avoir les mêmes dimensions.
Ce filtre accepte les options suivantes :
min_r
Définit le rayon minimal autorisé. La plage autorisée est de 0 à 254. La valeur par défaut est 0.
max_r
Définit le rayon maximal autorisé. La plage autorisée est de 1 à 255. La valeur par défaut est 8.
planes
Définit les plans à traiter. Par défaut, tous sont utilisés.
Le filtre varblur prend également en charge les options framesync.
11.270.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.271 vectorscope
Affiche les valeurs de 2 composantes de couleur dans un graphique bidimensionnel (appelé vectorscope).
Ce filtre accepte les options suivantes :
mode, m
Définit le mode du vectorscope.
Il accepte les valeurs suivantes :
‘gray’ ‘tint’
Les valeurs de gris sont affichées sur le graphique ; une luminosité plus élevée signifie qu'un plus grand nombre de pixels partagent la même valeur de composante de couleur à cet emplacement du graphique. C'est le mode par défaut.
‘color’
Les valeurs de gris sont affichées sur le graphique. Les valeurs des pixels environnants qui ne sont pas présentes dans l'image vidéo sont dessinées selon un dégradé des 2 composantes de couleur définies par les options x et y. La 3e composante de couleur est fixe.
‘color2’
Les valeurs réelles des composantes de couleur présentes dans l'image vidéo sont affichées sur le graphique.
‘color3’
Similaire à color2, mais une fréquence plus élevée des mêmes valeurs x et y sur le graphique augmente la valeur d'une autre composante de couleur, qui est la luminance avec les valeurs par défaut de x et y.
‘color4’
Les couleurs réellement présentes dans l'image vidéo sont affichées sur le graphique. Si deux couleurs différentes correspondent à la même position sur le graphique, la couleur dont la composante absente du graphique a la valeur la plus élevée est retenue.
‘color5’
Les valeurs de gris sont affichées sur le graphique. Similaire à color, mais avec la 3e composante de couleur choisie dans un dégradé radial.
x
Définit la composante de couleur représentée sur l'axe X. La valeur par défaut est 1.
y
Définit la composante de couleur représentée sur l'axe Y. La valeur par défaut est 2.
intensity, i
Définit l'intensité, utilisée par les modes : gray, color, color3 et color5, pour augmenter la luminosité de la composante de couleur qui représente la fréquence de la position (X, Y) sur le graphique.
envelope, e
‘none’
Aucune enveloppe, c'est le mode par défaut.
‘instant’
Enveloppe instantanée : même le pixel le plus sombre est nettement mis en évidence.
‘peak’
Conserve dans le temps les valeurs maximales et minimales présentées sur le graphique. Cela permet de repérer les valeurs hors plage sans devoir observer le vectorscope en permanence.
‘peak+instant’
Combinaison des enveloppes peak et instant.
graticule, g
Définit le type de graticule à dessiner.
‘none’ ‘green’ ‘color’ ‘invert’ opacity, o
Définit l'opacité du graticule.
flags, f
Définit les indicateurs du graticule.
‘white’
Dessine le graticule pour le point blanc.
‘black’
Dessine le graticule pour le point noir.
‘name’
Dessine les noms courts des points de couleur.
bgopacity, b
Définit l'opacité de l'arrière-plan.
lthreshold, l
Définit le seuil bas pour la composante de couleur non représentée sur l'axe X ou Y. Les valeurs inférieures à cette valeur sont ignorées. La valeur par défaut est 0. Notez que cette valeur est multipliée par la valeur maximale réelle que peut prendre une composante de pixel. Ainsi, pour une entrée 8 bits et un seuil bas de 0.1, le seuil réel est 0.1 * 255 = 25.
hthreshold, h
Définit le seuil haut pour la composante de couleur non représentée sur l'axe X ou Y. Les valeurs supérieures à cette valeur sont ignorées. La valeur par défaut est 1. Notez que cette valeur est multipliée par la valeur maximale réelle que peut prendre une composante de pixel. Ainsi, pour une entrée 8 bits et un seuil haut de 0.9, le seuil réel est 0.9 * 255 = 230.
colorspace, c
Définit l'espace colorimétrique à utiliser lors du dessin du graticule.
‘auto’ ‘601’ ‘709’
La valeur par défaut est auto.
tint0, t0 tint1, t1
Définit la teinte de couleur pour le mode vectorscope gray/tint. Par défaut, les deux options sont à zéro. Cela signifie l'absence de teinte, et la sortie reste grise.
11.272 vidstabdetect
Analyse la stabilisation vidéo (suppression des tremblements). Effectue la passe 1 sur 2 ; voir vidstabtransform pour la passe 2.
Ce filtre génère un fichier contenant les informations de transformation (translation et rotation relatives) des images suivantes, ensuite utilisé par le filtre vidstabtransform.
Pour activer la compilation de ce filtre, il est nécessaire de configurer FFmpeg avec --enable-libvidstab.
Ce filtre accepte les options suivantes :
result
Définit le chemin du fichier utilisé pour écrire les informations de transformation. La valeur par défaut est transforms.trf.
shakiness
Définit à quel point la vidéo est tremblante et la rapidité des mouvements de la caméra. Accepte un entier compris entre 1 et 10 ; une valeur de 1 signifie peu de tremblement, une valeur de 10 un fort tremblement. La valeur par défaut est 5.
accuracy
Définit la précision du processus de détection. Doit être une valeur comprise entre 1 et 15. Une valeur de 1 signifie une faible précision, une valeur de 15 une précision élevée. La valeur par défaut est 15.
stepsize
Définit le pas (stepsize) du processus de recherche. La région autour du minimum est analysée avec une résolution de 1 pixel. La valeur par défaut est 6.
mincontrast
Définit le contraste minimal. En dessous de cette valeur, un champ de mesure local est écarté. Doit être une valeur à virgule flottante comprise entre 0 et 1. La valeur par défaut est 0.3.
tripod
Définit le numéro d'image de référence pour le mode trépied.
Si activé, le mouvement des images est comparé à une image de référence du flux filtré, identifiée par le numéro indiqué. L'idée est de compenser tous les mouvements dans une scène plus ou moins statique afin de garder la vue de la caméra parfaitement immobile.
Si définie à 0, l'option est désactivée. Les images sont comptées à partir de 1.
show
Affiche les champs et les transformations dans les images résultantes. Accepte un entier compris entre 0 et 2. La valeur par défaut est 0, ce qui désactive toute visualisation.
fileformat
Format du fichier de données de transformation à écrire. Les valeurs acceptées sont
‘ascii’
Texte brut lisible par un humain
‘binary’
Format binaire, environ 40 % plus compact que ascii. (par défaut)
11.272.1 Exemples
-
Utilise les valeurs par défaut :
vidstabdetect -
Analyse un film fortement tremblant et enregistre les résultats dans le fichier mytransforms.trf :
vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf" -
Visualise le résultat des transformations internes dans la vidéo résultante :
vidstabdetect=show=1 -
Analyse une vidéo à tremblement moyen à l'aide de
ffmpeg:ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
11.273 vidstabtransform
Stabilisation vidéo (suppression des tremblements) : passe 2 sur 2 ; voir vidstabdetect pour la passe 1.
Lit un fichier contenant les informations de transformation de chaque image et les applique/compense. Associé au filtre vidstabdetect, il permet de stabiliser les vidéos. Voir aussi http://public.hronopik.de/vid.stab. Il est important d'utiliser également le filtre unsharp, voir ci-dessous.
Pour activer la compilation de ce filtre, il est nécessaire de configurer FFmpeg avec --enable-libvidstab.
11.273.1 Options
input
Définit le chemin du fichier utilisé pour lire les transformations. La valeur par défaut est transforms.trf.
smoothing
Définit le nombre d'images (value*2 + 1) utilisé pour le filtrage passe-bas des mouvements de la caméra. La valeur par défaut est 10.
Par exemple, une valeur de 10 signifie que 21 images sont utilisées (10 dans le passé et 10 dans le futur) pour lisser le mouvement de la vidéo. Une valeur plus élevée donne une vidéo plus lisse, mais limite l'accélération de la caméra (mouvements de panoramique/inclinaison). 0 est un cas particulier simulant une caméra statique.
optalgo
Définit l'algorithme d'optimisation de la trajectoire de la caméra.
Les valeurs acceptées sont :
‘gauss’
filtre passe-bas à noyau gaussien sur le mouvement de la caméra (par défaut)
‘avg’
moyennage des transformations
maxshift
Définit le nombre maximal de pixels pour la translation des images. La valeur par défaut est -1, ce qui signifie aucune limite.
maxangle
Définit l'angle maximal en radians (degree*PI/180) pour la rotation des images. La valeur par défaut est -1, ce qui signifie aucune limite.
crop
Indique comment traiter les bords susceptibles d'être visibles en raison de la compensation de mouvement.
Les valeurs disponibles sont :
‘keep’
conserve les informations d'image de l'image précédente (par défaut)
‘black’
remplit le bord en noir
invert
Inverse les transformations si définie à 1. La valeur par défaut est 0.
relative
Considère les transformations comme relatives à l'image précédente si définie à 1, absolues si définie à 0. La valeur par défaut est 0.
zoom
Définit le pourcentage de zoom. Une valeur positive produit un effet de zoom avant, une valeur négative un effet de zoom arrière. La valeur par défaut est 0 (aucun zoom).
optzoom
Définit un zoom optimal pour éviter les bords.
Les valeurs acceptées sont :
‘0’
désactivé
‘1’
une valeur de zoom statique optimale est déterminée (seuls des mouvements très forts entraînent des bords visibles) (par défaut)
‘2’
une valeur de zoom adaptatif optimal est déterminée (aucun bord n'est visible), voir zoomspeed
Notez que la valeur indiquée dans zoom s'ajoute à celle calculée ici.
zoomspeed
Définit le pourcentage de zoom maximal par image (actif lorsque optzoom est défini à 2). La plage va de 0 à 5, la valeur par défaut est 0.25.
interpol
Indique le type d'interpolation.
Les valeurs disponibles sont :
‘no’
aucune interpolation
‘linear’
linéaire, horizontale uniquement
‘bilinear’
linéaire dans les deux directions (par défaut)
‘bicubic’
cubique dans les deux directions (lent)
tripod
Active le mode trépied virtuel si définie à 1, ce qui équivaut à relative=0:smoothing=0. La valeur par défaut est 0.
Utilisez également l'option tripod de vidstabdetect.
debug
Augmente la verbosité du journal si définie à 1. Les mouvements globaux détectés sont également écrits dans le fichier temporaire global_motions.trf. La valeur par défaut est 0.
11.273.2 Exemples
- Utilise
ffmpegpour une stabilisation classique avec les valeurs par défaut :ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
Notez l'utilisation du filtre unsharp, toujours recommandée.
-
Zoome un peu plus et charge les données de transformation depuis un fichier donné :
vidstabtransform=zoom=5:input="mytransforms.trf" -
Lisse la vidéo encore davantage :
vidstabtransform=smoothing=30
11.274 vflip
Retourne verticalement la vidéo d'entrée.
Par exemple, pour retourner verticalement une vidéo avec ffmpeg :
ffmpeg -i in.avi -vf "vflip" out.avi
11.275 vfrdet
Détecte les vidéos à fréquence d'images variable.
Ce filtre tente de détecter si l'entrée est à fréquence d'images variable ou constante.
À la fin, il affiche le nombre d'images détectées avec un delta pts variable et celles avec un delta pts constant. S'il y a eu des images à delta variable, il affiche également le delta minimal, maximal et moyen rencontré.
11.276 vibrance
Renforce ou modifie la saturation.
Ce filtre accepte les options suivantes :
intensity
Définit l'intensité du renforcement si la valeur est positive, ou l'intensité de la modification si elle est négative. La valeur par défaut est 0. La plage autorisée est de -2 à 2.
rbal
Définit la balance du rouge. La valeur par défaut est 1. La plage autorisée est de -10 à 10.
gbal
Définit la balance du vert. La valeur par défaut est 1. La plage autorisée est de -10 à 10.
bbal
Définit la balance du bleu. La valeur par défaut est 1. La plage autorisée est de -10 à 10.
rlum
Définit le coefficient de luminance du rouge.
glum
Définit le coefficient de luminance du vert.
blum
Définit le coefficient de luminance du bleu.
alternate
Si intensity est négative et que cette option est définie à 1, les couleurs changent ; sinon, elles perdent en saturation et tendent davantage vers le gris.
11.276.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes.
11.277 vif
Obtient le VIF (Visual Information Fidelity) moyen entre deux vidéos d'entrée.
Ce filtre prend deux vidéos en entrée.
Les deux vidéos d'entrée doivent avoir la même résolution et le même pixel format pour que ce filtre fonctionne correctement. Il suppose également que les deux entrées comportent le même nombre d'images, comparées une à une.
Le score VIF moyen obtenu est affiché via le système de journalisation.
Le filtre stocke le score VIF calculé pour chaque image.
Ce filtre prend également en charge les options framesync.
Dans l'exemple ci-dessous, le fichier d'entrée main.mpg en cours de traitement est comparé au fichier de référence ref.mpg.
ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
11.278 vignette
Crée ou inverse un effet de vignettage naturel.
Ce filtre accepte les options suivantes :
angle, a
Définit l'expression de l'angle de l'objectif en nombre de radians.
La valeur est limitée à la plage [0,PI/2].
Valeur par défaut : "PI/5"
x0 y0
Définit les expressions des coordonnées du centre. Respectivement "w/2" et "h/2" par défaut.
mode
Définit le mode avant/arrière.
Les modes disponibles sont :
‘forward’
Plus la distance par rapport au point central est grande, plus l'image s'assombrit.
‘backward’
Plus la distance par rapport au point central est grande, plus l'image s'éclaircit. Ce mode peut être utilisé pour inverser un effet de vignettage, bien qu'il n'existe (encore) aucune détection automatique permettant d'extraire l'angle de l'objectif et les autres réglages. Il peut également servir à créer un effet de brûlure.
La valeur par défaut est ‘forward’.
eval
Définit le mode d'évaluation des expressions (angle, x0, y0).
Il accepte les valeurs suivantes :
‘init’
Évalue les expressions une seule fois, lors de l'initialisation du filtre.
‘frame’
Évalue les expressions pour chaque image entrante. C'est bien plus lent que le mode ‘init’, car cela nécessite de recalculer tous les scalers, mais cela permet des expressions dynamiques avancées.
La valeur par défaut est ‘init’.
dither
Définit le dithering pour réduire les effets de bandes circulaires. La valeur par défaut est 1 (activé).
aspect
Définit l'aspect du vignettage. Ce réglage permet d'ajuster la forme du vignettage. Définir cette valeur au SAR de l'entrée produit un vignettage rectangulaire suivant les dimensions de la vidéo.
La valeur par défaut est 1/1.
11.278.1 Expressions
Les expressions alpha, x0 et y0 peuvent contenir les paramètres suivants.
w h
largeur et hauteur de l'entrée
n
le numéro de l'image d'entrée, à partir de 0
pts
l'horodatage PTS (Presentation TimeStamp) de l'image vidéo filtrée, exprimé en unités TB, NAN si non défini
r
fréquence d'images de la vidéo d'entrée, NAN si la fréquence d'images d'entrée est inconnue
t
le PTS (Presentation TimeStamp) de l'image vidéo filtrée, exprimé en secondes, NAN si non défini
tb
base de temps de la vidéo d'entrée
11.278.2 Exemples
-
Applique un effet de vignettage simple et prononcé :
vignette=PI/4 -
Crée un vignettage scintillant :
vignette='PI/4+random(1)*PI/50':eval=frame
11.279 vmafmotion
Obtient le score de mouvement VMAF moyen d'une vidéo. C'est l'une des métriques composant le VMAF.
Le score de mouvement moyen obtenu est affiché via le système de journalisation.
Ce filtre accepte les options suivantes :
stats_file
Si spécifié, le filtre utilise le fichier indiqué pour enregistrer le score de mouvement de chaque image par rapport à l'image précédente. Lorsque le nom de fichier est "-", les données sont envoyées vers la sortie standard.
Exemple :
ffmpeg -i ref.mpg -vf vmafmotion -f null -
11.280 vpp_amf
Redimensionne (scale) et convertit l'espace colorimétrique, les caractéristiques de transfert ou les primaires colorimétriques de la vidéo d'entrée, à l'aide de la bibliothèque AMD Advanced Media Framework pour l'accélération matérielle. La définition de la largeur et de la hauteur de sortie fonctionne de la même façon que pour le filtre scale.
Ce filtre accepte les options suivantes :
w h
Définit l'expression de dimension de la vidéo de sortie. La valeur par défaut est la dimension de l'entrée.
Autorise les mêmes expressions que le filtre scale.
scale_type
Définit l'algorithme utilisé pour la mise à l'échelle :
bilinear
Bilinéaire
Il s'agit de la valeur par défaut.
bicubic
Bicubique
format
Contrôle le pixel format de sortie. Par défaut, ou si aucun n'est spécifié, le pixel format de l'entrée est utilisé.
force_original_aspect_ratio force_divisible_by
Fonctionnent de la même façon que les options homonymes du filtre scale.
reset_sar
Fonctionne de la même façon que l'option homonyme du filtre scale.
in_color_range
Remplace la plage de couleurs de l'entrée.
out_color_range
Indique la color range de sortie.
Les valeurs acceptées pour in_trc et out_trc sont :
‘studio’
Color range studio (ou restreinte, ou MPEG).
‘full’
Color range full (ou JPEG).
color_profile
Indique toutes les propriétés de couleur en une seule fois.
Les valeurs acceptées sont :
‘bt601’
BT.601
‘bt709’
BT.709
‘bt2020’
BT.2020
in_trc
Remplace les caractéristiques de transfert de l'entrée.
out_trc
Indique les caractéristiques de transfert de sortie.
Les valeurs acceptées pour in_trc et out_trc sont :
‘bt709’
BT.709
‘gamma22’
Gamma constant de 2.2
‘gamma28’
Gamma constant de 2.8
‘smpte170m’
SMPTE-170M
‘smpte240m’
SMPTE-240M
‘linear’
Linéaire
‘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 pour un contenu 10 bits
‘bt2020-12’
BT.2020 pour un contenu 12 bits
‘smpte2084’
SMPTE2084
‘smpte428’
SMPTE428
‘arib-std-b67’
ARIB_STD_B67
in_primaries
Remplace les primaires colorimétriques de l'entrée.
out_primaries
Indique les primaires colorimétriques de sortie.
Les valeurs acceptées pour in_primaries et out_primaries sont :
‘bt709’
BT.709
‘bt470m’
BT.470M
‘bt470bg’
BT.470BG ou BT.601-6 625
‘smpte170m’
SMPTE-170M ou BT.601-6 525
‘smpte240m’
SMPTE-240M
‘film’
film
‘bt2020’
BT.2020
‘smpte428’
SMPTE-428
‘smpte431’
SMPTE-431
‘smpte432’
SMPTE-432
‘jedec-p22’
Phosphores JEDEC P22
11.280.1 Exemples
-
Met l'entrée à l'échelle en 720p, en conservant le rapport d'aspect et en veillant à ce que la sortie soit en yuv420p.
vpp_amf=-2:720:format=yuv420p -
Suréchantillonne vers la 4K et change le profil de couleur en bt2020.
vpp_amf=4096:2160:color_profile=bt2020 -
Remplace les primaires d'entrée et les caractéristiques de transfert d'entrée, en changeant les deux vers bt709.
vpp_amf=color_profile=bt2020:in_trc=smpte2084:in_primaries=bt2020:out_trc=bt709:out_primaries=bt709
11.281 vstack
Empile les vidéos d'entrée verticalement.
Tous les flux doivent avoir le même pixel format et la même largeur.
Notez que ce filtre est plus rapide que l'utilisation des filtres overlay et pad pour obtenir le même résultat.
Le filtre accepte les options suivantes :
inputs
Définit le nombre de flux d'entrée. La valeur par défaut est 2.
shortest
Si la valeur est 1, force l'arrêt de la sortie dès que le plus court des flux d'entrée se termine. La valeur par défaut est 0.
11.282 w3fdif
Désentrelace la vidéo d'entrée ("w3fdif" signifie "Weston 3 Field Deinterlacing Filter").
Basé sur le procédé décrit par Martin Weston pour la BBC R&D et mis en œuvre à partir de l'algorithme de désentrelacement écrit par Jim Easterbrook pour la BBC R&D, le filtre de désentrelacement Weston 3 field utilise des coefficients de filtre calculés par la BBC R&D.
Ce filtre utilise l'information de dominance de champ contenue dans l'image pour décider lequel des deux champs de chaque paire placer en premier dans la sortie. En cas d'erreur, utilisez le filtre setfield avant le filtre w3fdif.
Il existe deux jeux de coefficients de filtre, appelés "simple" et "complex". Le jeu de coefficients utilisé peut être défini au moyen d'un paramètre optionnel :
filter
Définit les coefficients du filtre d'entrelacement. Accepte l'une des valeurs suivantes :
‘simple’
Jeu de coefficients de filtre simple.
‘complex’
Jeu de coefficients de filtre plus complexe.
La valeur par défaut est ‘complex’.
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
frame
Produit une image en sortie pour chaque image.
field
Produit une image en sortie pour chaque champ.
La valeur par défaut est field.
parity
La parité de champ d'image supposée pour la vidéo entrelacée d'entrée. Elle accepte l'une des valeurs suivantes :
tff
Suppose que le champ du haut est le premier.
bff
Suppose que le champ du bas est le premier.
auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ du haut est supposé être le premier.
deint
Spécifie quelles images désentrelacer. Accepte l'une des valeurs suivantes :
‘all’
Désentrelace toutes les images,
‘interlaced’
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est ‘all’.
11.282.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.283 waveform
Moniteur de forme d'onde vidéo.
Le moniteur de forme d'onde trace l'intensité des composantes de couleur. Par défaut, seule la luminance est prise en compte. Chaque colonne de la forme d'onde correspond à une colonne de pixels de la vidéo source.
Il accepte les options suivantes :
mode, m
Peut être soit row, soit column. La valeur par défaut est column. En mode row, le côté gauche du graphique représente la valeur 0 de la composante de couleur et le côté droit la valeur 255. En mode column, le haut représente la valeur 0 de la composante de couleur et le bas la valeur 255.
intensity, i
Définit l'intensité. Des valeurs plus faibles sont utiles pour déterminer combien de valeurs de même luminance sont réparties sur les lignes/colonnes d'entrée. La valeur par défaut est 0.04. La plage autorisée est [0, 1].
mirror, r
Définit le mode de mise en miroir. 0 signifie non mis en miroir, 1 signifie mis en miroir. En mode miroir, les valeurs plus élevées sont représentées du côté gauche pour le mode row et en haut pour le mode column. La valeur par défaut est 1 (mis en miroir).
display, d
Définit le mode d'affichage. Il accepte les valeurs suivantes :
‘overlay’
Présente des informations identiques à celles du mode parade, à ceci près que les graphiques représentant les composantes de couleur sont superposés directement les uns sur les autres.
Ce mode d'affichage facilite le repérage des différences ou similitudes relatives dans les zones de recouvrement des composantes de couleur censées être identiques, comme les blancs, gris ou noirs neutres.
‘stack’
Affiche un graphique distinct pour chaque composante de couleur, côte à côte en mode row ou l'un en dessous de l'autre en mode column.
‘parade’
Affiche un graphique distinct pour chaque composante de couleur, côte à côte en mode column ou l'un en dessous de l'autre en mode row.
L'utilisation de ce mode d'affichage permet de repérer facilement les dominantes de couleur dans les hautes lumières et les ombres d'une image, en comparant les contours des graphiques du haut et du bas de chaque forme d'onde. Comme les blancs, les gris et les noirs se caractérisent par des quantités exactement égales de rouge, de vert et de bleu, les zones neutres de l'image doivent afficher trois formes d'onde de largeur/hauteur à peu près égale. Si ce n'est pas le cas, la correction est facile à effectuer en ajustant les niveaux des trois formes d'onde.
La valeur par défaut est stack.
components, c
Définit les composantes de couleur à afficher. La valeur par défaut est 1, ce qui signifie seulement la luminance, ou la composante rouge si l'entrée est dans l'espace colorimétrique RGB. Si elle est définie par exemple à 7, les 3 composantes de couleur disponibles (le cas échéant) seront toutes affichées.
envelope, e
‘none’
Aucune enveloppe, c'est la valeur par défaut.
‘instant’
Enveloppe instantanée, les valeurs minimale et maximale présentées dans le graphique restent facilement visibles même avec une petite valeur de step.
‘peak’
Conserve dans le temps les valeurs minimale et maximale présentées dans le graphique. Ainsi, il reste possible de repérer les valeurs hors plage sans devoir observer les formes d'onde en permanence.
‘peak+instant’
Combinaison des enveloppes peak et instant.
filter, f
‘lowpass’
Aucun filtrage, c'est la valeur par défaut.
‘flat’
Combinaison de la luminance et de la chrominance.
‘aflat’
Similaire au mode précédent, mais montre la différence entre la chrominance bleue et la chrominance rouge.
‘xflat’
Similaire au mode précédent, mais utilise des couleurs différentes.
‘yflat’
Similaire au mode précédent, mais là encore avec des couleurs différentes.
‘chroma’
N'affiche que la chrominance.
‘color’
Affiche la valeur de couleur réelle sur la forme d'onde.
‘acolor’
Similaire au mode précédent, mais la luminance indique la fréquence des valeurs de chrominance.
graticule, g
Définit le graticule à afficher.
‘none’
N'affiche pas de graticule.
‘green’
Affiche un graticule vert indiquant les plages de diffusion légales.
‘orange’
Affiche un graticule orange indiquant les plages de diffusion légales.
‘invert’
Affiche un graticule inversé indiquant les plages de diffusion légales.
opacity, o
Définit l'opacité du graticule.
flags, fl
Définit les indicateurs du graticule.
‘numbers’
Dessine des nombres au-dessus des lignes. Activé par défaut.
‘dots’
Dessine des points au lieu de lignes.
scale, s
Définit l'échelle utilisée pour afficher le graticule.
‘digital’ ‘millivolts’ ‘ire’
La valeur par défaut est digital.
bgopacity, b
Définit l'opacité de l'arrière-plan.
tint0, t0 tint1, t1
Définit la teinte de sortie. Utilisé uniquement avec le filtre lowpass, lorsque l'affichage n'est pas overlay et que les pixel formats d'entrée ne sont pas RGB.
fitmode, fm
Définit le rapport d'aspect des échantillons des images vidéo de sortie. Peut être utilisé pour configurer la forme d'onde afin qu'elle ne soit pas trop étirée dans l'une des directions.
‘none’
Définit le rapport d'aspect des échantillons à 1/1.
‘size’
Définit le rapport d'aspect des échantillons pour qu'il corresponde à la taille d'entrée de la vidéo
La valeur par défaut est ‘none’.
input
Définit les formats d'entrée parmi lesquels le filtre doit choisir. Peut être ‘all’, pour choisir parmi tous les formats disponibles, ou ‘first’, pour choisir le premier format disponible. La valeur par défaut est ‘first’.
11.284 weave, doubleweave
weave prend une entrée vidéo basée sur les champs et associe chaque paire de champs successifs en une seule image, produisant un nouveau clip de hauteur double, avec une fréquence d'images et un nombre d'images réduits de moitié.
doubleweave fonctionne de la même façon que weave, mais sans réduire de moitié la fréquence d'images ni le nombre d'images.
Il accepte l'option suivante :
first_field
Définit le premier champ. Les valeurs disponibles sont :
‘top, t’
Définit l'image comme top-field-first.
‘bottom, b’
Définit l'image comme bottom-field-first.
11.284.1 Exemples
- Entrelace la vidéo à l'aide des filtres select et separatefields :
separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
11.285 xbr
Applique le filtre d'agrandissement haute qualité xBR, conçu pour le pixel art. Il suit un ensemble de règles de détection de contours, voir https://forums.libretro.com/t/xbr-algorithm-tutorial/123.
Il accepte l'option suivante :
n
Définit la dimension de mise à l'échelle : 2 pour 2xBR, 3 pour 3xBR et 4 pour 4xBR. La valeur par défaut est 3.
11.286 xcorrelate
Applique une corrélation croisée normalisée entre le premier et le second flux vidéo d'entrée.
Les dimensions du second flux vidéo d'entrée doivent être inférieures à celles du premier flux vidéo d'entrée.
Le filtre accepte les options suivantes :
planes
Définit les plans à traiter.
secondary
Définit les images vidéo secondaires du second flux vidéo d'entrée à traiter, qui peuvent être first ou all. La valeur par défaut est all.
Le filtre xcorrelate prend également en charge les options framesync.
11.287 xfade
Applique un fondu enchaîné d'un flux vidéo d'entrée vers un autre flux vidéo d'entrée. Le fondu enchaîné est appliqué pendant la durée spécifiée.
Les deux entrées doivent avoir une fréquence d'images constante et la même résolution, le même pixel format, la même fréquence d'images et la même timebase.
Le filtre accepte les options suivantes :
transition
Définit l'un des effets de transition 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’
L'effet de transition par défaut est fade.
duration
Définit la durée du fondu enchaîné en secondes. La plage est de 0 à 60 secondes. La durée par défaut est de 1 seconde.
offset
Définit le début du fondu enchaîné par rapport au premier flux d'entrée, en secondes. Le décalage par défaut est 0.
expr
Définit l'expression pour l'effet de transition personnalisé.
Les expressions peuvent utiliser les variables et fonctions suivantes :
X Y
Les coordonnées de l'échantillon courant.
W H
La largeur et la hauteur de l'image.
P
Progression de l'effet de transition.
PLANE
Plan en cours de traitement.
A
Valeur renvoyée du premier flux d'entrée à l'emplacement et au plan courants.
B
Valeur renvoyée du second flux d'entrée à l'emplacement et au plan courants.
a0(x, y) a1(x, y) a2(x, y) a3(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) de la première/deuxième/troisième/quatrième composante du premier flux d'entrée.
b0(x, y) b1(x, y) b2(x, y) b3(x, y)
Renvoie la valeur du pixel à l'emplacement (x,y) de la première/deuxième/troisième/quatrième composante du second flux d'entrée.
11.287.1 Exemples
- Effectuer un fondu enchaîné d'une vidéo d'entrée vers une autre vidéo d'entrée, avec une transition fade et une durée de transition de 2 secondes, démarrant à un décalage de 5 secondes :
ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
11.288 xmedian
Sélectionne les pixels médians parmi plusieurs vidéos d'entrée.
Le filtre accepte les options suivantes :
inputs
Définit le nombre d'entrées. La valeur par défaut est 3. La plage autorisée va de 3 à 255. Si le nombre d'entrées est pair, le résultat est la valeur moyenne entre les deux valeurs médianes.
planes
Définit les plans à filtrer. La valeur par défaut est 15, ce qui permet de traiter tous les plans.
percentile
Définit le centile médian. La valeur par défaut est 0.5. La valeur par défaut de 0.5 sélectionne toujours les valeurs médianes, tandis que 0 sélectionne les valeurs minimales et 1 les valeurs maximales.
11.288.1 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes, à l'exception de l'option inputs.
11.289 xpsnr
Obtient l'eXtended Perceptually weighted peak Signal-to-Noise Ratio (XPSNR) moyen (sur toutes les images d'entrée) et minimum (sur les moyennes de tous les plans de couleur) entre deux vidéos d'entrée.
Le XPSNR est un algorithme de mesure de distorsion à faible complexité, motivé sur le plan psychovisuel, permettant d'évaluer la différence entre deux flux vidéo ou images. Il est particulièrement utile pour quantifier objectivement les distorsions causées par les codecs vidéo et image, en alternative à un test subjectif formel. Les valeurs de sortie logarithmiques du XPSNR se situent dans une plage similaire à celles des évaluations psnr traditionnelles, mais reflètent mieux les impressions humaines de la qualité de codage visuel. Plus de détails sur la mesure XPSNR, qui représente essentiellement une variante pondérée par bloc de la mesure PSNR, sont disponibles dans les articles librement accessibles suivants :
- 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
Lorsque les résultats des évaluations XPSNR obtenues à l'aide, par exemple, de ce filtre FFmpeg sont publiés, il est fortement recommandé de faire référence aux articles ci-dessus à titre de documentation. Le filtre nécessite deux vidéos d'entrée. La première entrée est considérée comme une source de référence (généralement non distordue) et est transmise inchangée vers la sortie, tandis que la seconde entrée est un signal de test (distordu). À l'exception de la profondeur de bits, ces deux entrées vidéo doivent avoir le même pixel format. De plus, pour de meilleures performances, les deux vidéos d'entrée comparées doivent être au format de couleur YCbCr.
Les valeurs XPSNR globales obtenues mentionnées ci-dessus sont affichées par le système de journalisation. En cas d'entrée avec plusieurs plans de couleur, il est recommandé de rapporter la moyenne XPSNR minimale.
Le paramètre suivant, qui se comporte comme celui du filtre psnr, est accepté :
stats_file, f
Si spécifié, le filtre utilise le fichier nommé pour enregistrer la valeur XPSNR de chaque image et de chaque plan de couleur individuellement. Lorsque le nom de fichier est égal à "-", ces données sont envoyées vers la sortie standard.
Ce filtre prend également en charge les options framesync.
11.289.1 Exemples
-
Effectuer une analyse XPSNR de deux vidéos HD 1080p, ref_source.yuv et test_video.yuv, toutes deux à 24 images par seconde, avec un format de couleur 4:2:0, une profondeur de bits de 8, et sortie d'un fichier journal nommé "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 - -
Effectuer une analyse XPSNR de deux vidéos UHD 2160p, ref_source.yuv avec une profondeur de bits de 8 et test_video.yuv avec une profondeur de bits de 10, toutes deux à 60 images par seconde avec un format de couleur 4:2:0, sans sortie de fichier journal :
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
Empile les entrées vidéo selon une disposition personnalisée.
Tous les flux doivent avoir le même pixel format.
Le filtre accepte les options suivantes :
inputs
Définit le nombre de flux d'entrée. La valeur par défaut est 2.
layout
Spécifie la disposition des entrées. Cette option exige que la configuration de disposition souhaitée soit explicitement définie par l'utilisateur. Elle définit la position de chaque entrée vidéo dans la sortie. Chaque entrée est séparée par ’|’. Le premier nombre représente la colonne et le second représente la ligne. Les nombres commencent à 0 et sont séparés par ’_’. On peut également utiliser wX et hX, où X est l'entrée vidéo dont on prend la largeur ou la hauteur. Plusieurs valeurs peuvent être utilisées en les séparant par ’+’ ; dans ce cas, les valeurs sont additionnées.
Notez que si les entrées ont des tailles différentes, des espaces vides peuvent apparaître, l'image vidéo de sortie n'étant pas entièrement remplie. De même, des vidéos peuvent se chevaucher si leur position ne laisse pas assez d'espace pour l'image complète des vidéos adjacentes.
Pour 2 entrées, une disposition par défaut de 0_0|w0_0 (équivalente à grid=2x1) est définie. Dans tous les autres cas, l'utilisateur doit définir une disposition ou une grille. Seule l'une des options grid ou layout peut être spécifiée à la fois. Spécifier les deux entraîne une erreur.
grid
Spécifie une grille d'entrées de taille fixe. Cette option sert à créer une grille de taille fixe à partir des flux d'entrée. Définit la taille de la grille sous la forme COLUMNSxROWS. Il doit y avoir ROWS * COLUMNS flux d'entrée, qui sont disposés en une grille de ROWS lignes et COLUMNS colonnes. Lorsque cette option est utilisée, chaque flux d'entrée d'une même ligne doit avoir la même hauteur et toutes les lignes doivent avoir la même largeur.
Si grid est défini, l'option inputs est ignorée et est implicitement définie à ROWS * COLUMNS.
Pour 2 entrées, une grille par défaut de 2x1 (équivalente à layout=0_0|w0_0) est définie. Dans tous les autres cas, l'utilisateur doit définir une disposition ou une grille. Seule l'une des options grid ou layout peut être spécifiée à la fois. Spécifier les deux entraîne une erreur.
shortest
Si la valeur est 1, force l'arrêt de la sortie dès que le plus court des flux d'entrée se termine. La valeur par défaut est 0.
fill
Si une couleur valide est définie, tous les pixels inutilisés sont remplis avec cette couleur. Par défaut, fill est défini sur none, ce qui désactive l'option.
11.290.1 Exemples
- Afficher 4 entrées dans une grille 2x2.
Disposition :
input1(0, 0) | input3(w0, 0)
input2(0, h0) | input4(w0, h0)
xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
Notez que si les entrées ont des tailles différentes, des espaces vides ou des chevauchements peuvent se produire.
- Afficher 4 entrées dans une grille 1x4.
Disposition :
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
Notez que si les entrées ont des largeurs différentes, un espace inutilisé apparaît.
- Afficher 9 entrées dans une grille 3x3.
Disposition :
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
Notez que si les entrées ont des tailles différentes, des espaces vides ou des chevauchements peuvent se produire.
- Afficher 16 entrées dans une grille 4x4.
Disposition :
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
Notez que si les entrées ont des tailles différentes, des espaces vides ou des chevauchements peuvent se produire.
11.291 yadif
Désentrelace la vidéo d'entrée ("yadif" signifie "yet another deinterlacing filter").
Il accepte les paramètres suivants :
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
0, send_frame
Produit une image en sortie pour chaque image.
1, send_field
Produit une image en sortie pour chaque champ.
2, send_frame_nospatial
Comme send_frame, mais ignore la vérification d'entrelacement spatial.
3, send_field_nospatial
Comme send_field, mais ignore la vérification d'entrelacement spatial.
La valeur par défaut est send_frame.
parity
La parité de champ d'image supposée pour la vidéo entrelacée d'entrée. Elle accepte l'une des valeurs suivantes :
0, tff
Suppose que le champ du haut est le premier.
1, bff
Suppose que le champ du bas est le premier.
-1, auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ du haut est supposé être le premier.
deint
Spécifie quelles images désentrelacer. Accepte l'une des valeurs suivantes :
0, all
Désentrelace toutes les images.
1, interlaced
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est all.
11.292 yaepblur
Applique un filtre de flou tout en préservant les contours ("yaepblur" signifie "yet another edge preserving blur filter"). L'algorithme est décrit dans "J. S. Lee, Digital image enhancement and noise filtering by use of local statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
Il accepte les paramètres suivants :
radius, r
Définit le rayon de la fenêtre. La valeur par défaut est 3.
planes, p
Définit les plans à filtrer. Par défaut, seul le premier plan est traité.
sigma, s
Définit l'intensité du flou. La valeur par défaut est 128.
11.292.1 Commandes
Ce filtre prend en charge les mêmes commandes que les options.
11.293 zoompan
Applique un effet de zoom et de panoramique.
Ce filtre accepte les options suivantes :
zoom, z
Définit l'expression du zoom. La plage est 1-10. La valeur par défaut est 1.
x y
Définit l'expression de x et de y. La valeur par défaut est 0.
d
Définit l'expression de la durée en nombre d'images. Cela détermine le nombre d'images pendant lesquelles l'effet dure pour une seule image d'entrée. La valeur par défaut est 90.
s
Définit la taille de l'image de sortie, la valeur par défaut est ’hd720’.
fps
Définit la fréquence d'images de sortie, la valeur par défaut est ’25’.
Chaque expression peut contenir les constantes suivantes :
in_w, iw
Largeur d'entrée.
in_h, ih
Hauteur d'entrée.
out_w, ow
Largeur de sortie.
out_h, oh
Hauteur de sortie.
in
Nombre d'images d'entrée.
on
Nombre d'images de sortie.
in_time, it
L'horodatage d'entrée exprimé en secondes. Il vaut NAN si l'horodatage d'entrée est inconnu.
out_time, time, ot
L'horodatage de sortie exprimé en secondes.
x y
Dernière position ’x’ et ’y’ calculée à partir de l'expression ’x’ et ’y’ pour l'image d'entrée courante.
px py
’x’ et ’y’ de la dernière image de sortie de l'image d'entrée précédente, ou 0 s'il n'existait pas encore une telle image (première image d'entrée).
zoom
Dernier zoom calculé à partir de l'expression ’z’ pour l'image d'entrée courante.
pzoom
Dernier zoom calculé de la dernière image de sortie de l'image d'entrée précédente.
duration
Nombre d'images de sortie pour l'image d'entrée courante. Calculé à partir de l'expression ’d’ pour chaque image d'entrée.
pduration
nombre d'images de sortie créées pour l'image d'entrée précédente
a
Nombre rationnel : largeur d'entrée / hauteur d'entrée
sar
rapport d'aspect des échantillons
dar
rapport d'aspect d'affichage
11.293.1 Exemples
-
Effectue un zoom avant jusqu'à 1.5x avec un panoramique simultané vers un point proche du centre de l'image :
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 -
Effectue un zoom avant jusqu'à 1.5x avec un panoramique toujours centré sur l'image :
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)' -
Identique à l'exemple précédent, mais sans pause :
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)' -
Effectue un zoom avant 2x vers le centre de l'image, uniquement pendant la première seconde de la vidéo d'entrée :
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
Met à l'échelle (redimensionne) la vidéo d'entrée à l'aide de la bibliothèque z.lib : https://github.com/sekrit-twc/zimg. Pour activer la compilation de ce filtre, il faut configurer FFmpeg avec --enable-libzimg.
Le filtre zscale force le rapport d'aspect d'affichage de la sortie à être identique à celui de l'entrée, en modifiant le rapport d'aspect d'échantillonnage de la sortie.
Si le format de l'image d'entrée diffère du format demandé par le filtre suivant, le filtre zscale convertit l'entrée vers le format demandé.
11.294.1 Options
Le filtre accepte les options suivantes.
width, w height, h
Définit l'expression de la dimension de la vidéo de sortie. La valeur par défaut est la dimension de l'entrée.
Si la valeur de width ou w est 0, la largeur de l'entrée est utilisée pour la sortie. Si la valeur de height ou h est 0, la hauteur de l'entrée est utilisée pour la sortie.
Si une seule des deux valeurs vaut -n avec n >= 1, le filtre zscale utilise une valeur qui préserve le rapport d'aspect de l'image d'entrée, calculée à partir de l'autre dimension spécifiée. Il s'assure ensuite que la dimension calculée est divisible par n et ajuste la valeur si nécessaire.
Si les deux valeurs valent -n avec n >= 1, le comportement est identique à celui obtenu en définissant les deux valeurs à 0, comme décrit précédemment.
Voir ci-dessous la liste des constantes acceptées pour l'expression de dimension.
size, s
Définit la taille de la vidéo. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils.
dither, d
Définit le type de tramage.
Les valeurs possibles sont :
none ordered random error_diffusion
La valeur par défaut est none.
filter, f
Définit le type de filtre de redimensionnement.
Les valeurs possibles sont :
point bilinear bicubic spline16 spline36 spline64 lanczos
La valeur par défaut est bilinear.
range, r
Définit la plage de couleurs.
Les valeurs possibles sont :
input limited full
La valeur par défaut est identique à celle de l'entrée.
primaries, p
Définit les primaires colorimétriques.
Les valeurs possibles sont :
input 709 unspecified 170m 240m 2020
La valeur par défaut est identique à celle de l'entrée.
transfer, t
Définit les caractéristiques de transfert.
Les valeurs possibles sont :
input 709 unspecified 601 linear 2020_10 2020_12 smpte2084 iec61966-2-1 arib-std-b67
La valeur par défaut est identique à celle de l'entrée.
matrix, m
Définit la matrice d'espace colorimétrique.
Les valeurs possibles sont :
input 709 unspecified 470bg 170m 2020_ncl 2020_cl
La valeur par défaut est identique à celle de l'entrée.
rangein, rin
Définit la plage de couleurs de l'entrée.
Les valeurs possibles sont :
input limited full
La valeur par défaut est identique à celle de l'entrée.
primariesin, pin
Définit les primaires colorimétriques de l'entrée.
Les valeurs possibles sont :
input 709 unspecified 170m 240m 2020
La valeur par défaut est identique à celle de l'entrée.
transferin, tin
Définit les caractéristiques de transfert de l'entrée.
Les valeurs possibles sont :
input 709 unspecified 601 linear 2020_10 2020_12
La valeur par défaut est identique à celle de l'entrée.
matrixin, min
Définit la matrice d'espace colorimétrique de l'entrée.
Les valeurs possibles sont :
input 709 unspecified 470bg 170m 2020_ncl 2020_cl chromal, c
Définit la position de la chrominance en sortie.
Les valeurs possibles sont :
input left center topleft top bottomleft bottom chromalin, cin
Définit la position de la chrominance en entrée.
Les valeurs possibles sont :
input left center topleft top bottomleft bottom npl
Définit la luminance de crête nominale.
param_a
Paramètre A pour les filtres de mise à l'échelle. Paramètre "b" pour bicubic, et le nombre de coefficients du filtre pour lanczos.
param_b
Paramètre B pour les filtres de mise à l'échelle. Paramètre "c" pour bicubic.
Les valeurs des options w et h sont des expressions contenant les constantes suivantes :
in_w in_h
La largeur et la hauteur de l'entrée
iw ih
Elles sont identiques à in_w et in_h.
out_w out_h
La largeur et la hauteur (après mise à l'échelle) de la sortie
ow oh
Elles sont identiques à out_w et out_h
a
Identique à iw / ih
sar
rapport d'aspect d'échantillonnage de l'entrée
dar
Le rapport d'aspect d'affichage de l'entrée. Calculé à partir de (iw / ih) * sar.
hsub vsub
valeurs de sous-échantillonnage horizontal et vertical de la chrominance en entrée. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
ohsub ovsub
valeurs de sous-échantillonnage horizontal et vertical de la chrominance en sortie. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
11.294.2 Commandes
Ce filtre prend en charge les commandes suivantes :
width, w height, h
Définit l'expression de la dimension de la vidéo de sortie. La commande accepte la même syntaxe que l'option correspondante.
Si l'expression spécifiée n'est pas valide, la valeur actuelle est conservée.
12 Filtres vidéo CUDA
Voici une description des filtres vidéo CUDA Nvidia disponibles à ce jour.
Prérequis :
- Installez le Nvidia CUDA Toolkit
Remarque : si FFmpeg détecte le Nvidia CUDA Toolkit lors de la configuration, il active automatiquement les filtres CUDA sans nécessiter d'indicateur supplémentaire. Pour les activer explicitement, utilisez les options suivantes :
- Configurez FFmpeg avec
--enable-cuda-nvcc --enable-nonfree. - Configurez FFmpeg avec
--enable-cuda-llvm. Exigence supplémentaire : la bibliothèquellvmdoit être installée.
L'exécution des filtres CUDA nécessite d'initialiser un périphérique matériel et de transmettre ce périphérique à tous les filtres de tout graphe de filtres.
-init_hw_device cuda[=name][:device[,key=value...]]
Initialise un nouveau périphérique matériel de type cuda appelé name, à l'aide des paramètres de périphérique donnés.
-filter_hw_device name
Transmet le périphérique matériel appelé name à tous les filtres de tout graphe de filtres.
Pour des informations plus détaillées, voir https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Exemple d'initialisation du second périphérique CUDA du système et d'exécution des filtres scale_cuda et 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
Les filtres CUDA fonctionnant exclusivement en mémoire GPU, les données d'image doivent parfois être téléversées (hwupload) vers des surfaces matérielles associées au périphérique CUDA approprié avant le traitement, puis retéléchargées (hwdownload) vers la mémoire normale ensuite, si nécessaire. La nécessité d'utiliser hwupload ou hwdownload dépend du flux de travail spécifique :
- Si les images d'entrée sont déjà en mémoire GPU (par exemple lors de l'utilisation de
-hwaccel cudaou-hwaccel_output_format cuda), l'utilisation explicite de hwupload n'est pas nécessaire, car les données se trouvent déjà dans l'espace mémoire approprié. - Si les images d'entrée sont en mémoire CPU (par exemple des images décodées par logiciel ou traitées par des filtres basés sur le CPU), il est nécessaire d'utiliser hwupload pour transférer les données vers la mémoire GPU en vue du traitement CUDA.
- Si la sortie des filtres CUDA doit être traitée davantage par des filtres logiciels ou enregistrée dans un format non pris en charge par des encoders basés sur le GPU, hwdownload est nécessaire pour retransférer les données vers la mémoire CPU.
Notez que hwupload téléverse les données vers une surface ayant la même disposition que l'image logicielle, il peut donc être nécessaire d'ajouter un filtre format juste avant hwupload pour garantir que l'entrée est dans le bon format. De même, hwdownload peut ne pas prendre en charge tous les formats de sortie, un filtre format supplémentaire peut donc devoir être inséré juste après hwdownload dans le graphe de filtres pour garantir la compatibilité.
12.1 bilateral_cuda
Filtre bilatéral accéléré par CUDA, un filtre préservant les contours. Ce filtre est mathématiquement précis grâce à l'utilisation de l'accélération GPU. Pour une qualité de sortie optimale, utilisez un sous-échantillonnage de la chrominance au rapport un pour un, c'est-à-dire le format yuv444p.
Le filtre accepte les options suivantes :
sigmaS
Définit le sigma de la fonction gaussienne utilisée pour calculer le poids spatial, aussi appelé sigma spatial (sigma space). La plage autorisée va de 0.1 à 512. La valeur par défaut est 0.1.
sigmaR
Définit le sigma de la fonction gaussienne utilisée pour calculer le poids de la plage de couleurs, aussi appelé sigma couleur (sigma color). La plage autorisée va de 0.1 à 512. La valeur par défaut est 0.1.
window_size
Définit la taille de fenêtre de la fonction bilatérale pour déterminer le nombre de voisins sur lesquels itérer. Si le nombre saisi est pair, un est ajouté automatiquement. La plage autorisée va de 1 à 255. La valeur par défaut est 1.
12.1.1 Exemples
- Applique le filtre bilatéral à une vidéo.
./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
Désentrelace la vidéo d'entrée à l'aide de l'algorithme bwdif, mais implémenté en CUDA afin de pouvoir fonctionner au sein d'un pipeline accéléré par GPU avec nvdec et/ou nvenc.
Il accepte les paramètres suivants :
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
0, send_frame
Produit une image pour chaque image.
1, send_field
Produit une image pour chaque champ.
La valeur par défaut est send_field.
parity
La parité de champ d'image supposée pour la vidéo entrelacée en entrée. Il accepte l'une des valeurs suivantes :
0, tff
Suppose que le champ supérieur est le premier.
1, bff
Suppose que le champ inférieur est le premier.
-1, auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ supérieur est considéré comme le premier.
deint
Spécifie les images à désentrelacer. Accepte l'une des valeurs suivantes :
0, all
Désentrelace toutes les images.
1, interlaced
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est all.
12.3 chromakey_cuda
Incrustation couleur/chroma en espace colorimétrique YUV, accélérée par CUDA.
Ce filtre fonctionne comme le filtre chromakey normal, mais opère sur des images CUDA. Pour plus de détails et de paramètres, voir chromakey.
12.3.1 Exemples
-
Rend transparents tous les pixels verts de la vidéo d'entrée et l'utilise en superposition sur une autre vidéo :
./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 -
Traite deux sources logicielles, en téléversant explicitement les images :
./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
Implémentation accélérée par CUDA du filtre colorspace.
Il n'est en aucun cas aussi complet en fonctionnalités que le filtre colorspace logiciel, et ne prend en charge pour l'instant que la conversion de plage de couleurs entre les plages jpeg/full et mpeg/limited.
Le filtre accepte les options suivantes :
range
Spécifie la plage de couleurs de sortie.
Les valeurs acceptées sont :
‘tv’
Plage TV (restreinte)
‘mpeg’
Plage MPEG (restreinte)
‘pc’
Plage PC (complète)
‘jpeg’
Plage JPEG (complète)
12.5 overlay_cuda
Superpose une vidéo sur une autre.
Il s'agit de la variante CUDA du filtre overlay. Il n'accepte que des images CUDA. Les pixel formats d'entrée sous-jacents doivent correspondre.
Il prend deux entrées et produit une sortie. La première entrée est la vidéo "principale" sur laquelle la seconde entrée est superposée.
Il accepte les paramètres suivants :
x y
Définit les expressions des coordonnées x et y de la vidéo superposée sur la vidéo principale.
Elles peuvent contenir les paramètres suivants :
main_w, W main_h, H
La largeur et la hauteur de l'entrée principale.
overlay_w, w overlay_h, h
La largeur et la hauteur de l'entrée de superposition.
x y
Les valeurs calculées de x et y. Elles sont évaluées pour chaque nouvelle image.
n
L'index ordinal de l'image de l'entrée principale, à partir de 0.
pos
La position en octets dans le fichier de l'image de l'entrée principale, NAN si inconnue. Obsolète, à ne pas utiliser.
t
L'horodatage de l'image de l'entrée principale, exprimé en secondes, NAN si inconnu.
La valeur par défaut est "0" pour les deux expressions.
eval
Définit le moment où les expressions de x et y sont évaluées.
Il accepte les valeurs suivantes :
init
Évalue les expressions une seule fois lors de l'initialisation du filtre ou lorsqu'une commande est traitée.
frame
Évalue les expressions pour chaque image entrante
La valeur par défaut est frame.
eof_action
Voir framesync.
shortest
Voir framesync.
repeatlast
Voir framesync.
Ce filtre prend également en charge les options framesync.
12.6 pad_cuda
Ajoute des remplissages (padding) à un flux vidéo d'entrée à l'aide de CUDA.
Ce filtre est la version accélérée par CUDA du filtre pad. Il accepte les mêmes options et expressions et fournit les mêmes fonctionnalités de base. Pour une description détaillée des options disponibles, veuillez consulter la documentation du filtre pad.
12.6.1 Exemples
-
Ajoute une bordure noire de 200 pixels sur tous les côtés d'une image vidéo :
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 -
Ajoute un remplissage à la vidéo d'entrée pour obtenir un rapport d'aspect 16:9, en remplissant avec la couleur "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
Met à l'échelle (redimensionne) et convertit (pixel format) la vidéo d'entrée, à l'aide de noyaux CUDA accélérés. La définition de la largeur et de la hauteur de sortie fonctionne de la même manière que pour le filtre scale.
Le filtre accepte les options suivantes :
w h
Définit l'expression de la dimension de la vidéo de sortie. La valeur par défaut est la dimension de l'entrée.
Permet les mêmes expressions que le filtre scale.
interp_algo
Définit l'algorithme utilisé pour la mise à l'échelle :
nearest
Plus proche voisin
Utilisé par défaut si les paramètres d'entrée correspondent à la sortie souhaitée.
bilinear
Bilinéaire
bicubic
Bicubique
Il s'agit de la valeur par défaut.
lanczos
Lanczos
format
Contrôle le pixel format de sortie. Par défaut, ou si aucun n'est spécifié, le pixel format d'entrée est utilisé.
Le filtre ne prend pas en charge la conversion entre les pixel formats YUV et RGB.
passthrough
Si définie à 0, chaque image est traitée, même si aucune conversion n'est nécessaire. Ce mode peut être utile pour employer le filtre comme tampon face à un consommateur d'images en aval qui épuise le pool limité d'images du decoder.
Si définie à 1, les images sont transmises telles quelles si elles correspondent aux paramètres de sortie souhaités. C'est le comportement par défaut.
use_filters
Si définie à 1, filtre avec une LUT de pondération générique au lieu d'utiliser des noyaux de shader à fonction fixe. Peut être plus rapide ou plus lent selon le matériel. Une valeur de auto (par défaut) active ce mode automatiquement lorsque c'est nécessaire pour un anticrénelage correct lors d'une réduction d'échelle.
param
Paramètre spécifique à l'algorithme.
Affecte les courbes de l'algorithme bicubique.
force_original_aspect_ratio force_divisible_by
Fonctionnent de la même manière que les options identiques du filtre scale.
reset_sar
Fonctionne de la même manière que l'option identique du filtre scale.
12.7.1 Exemples
-
Met à l'échelle l'entrée en 720p, en conservant le rapport d'aspect et en garantissant que la sortie est en yuv420p.
scale_cuda=-2:720:format=yuv420p -
Effectue un suréchantillonnage vers la 4K à l'aide de l'algorithme du plus proche voisin.
scale_cuda=4096:2160:interp_algo=nearest -
N'effectue aucune conversion ni mise à l'échelle, mais copie toutes les images d'entrée dans des images nouvellement allouées. Cela peut être utile pour gérer une chaîne de filtrage et d'encodage qui, autrement, épuiserait le pool d'images du decoder.
scale_cuda=passthrough=0
12.8 thumbnail_cuda
Sélectionne l'image la plus représentative dans une séquence donnée d'images consécutives, à l'aide de CUDA.
Le filtre accepte les options suivantes :
n
Définit la taille du lot d'images à analyser ; dans un ensemble de n images, le filtre en choisit une, puis traite le lot suivant de n images jusqu'à la fin. La valeur par défaut est 100.
Le filtre conservant la trace de toute la séquence d'images, une valeur de n plus élevée entraîne une utilisation mémoire plus importante, si bien qu'une valeur élevée n'est pas recommandée.
12.8.1 Exemple
- Des miniatures sont extraites de chaque lot de n=150 images, en en sélectionnant une par lot. Les images choisies sont ensuite mises à l'échelle avec 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
Transpose les lignes et les colonnes de la vidéo d'entrée et la retourne éventuellement. Pour des exemples plus détaillés, voir le filtre vidéo transpose, qui partage en grande partie les mêmes options.
Il accepte les paramètres suivants :
dir
Spécifie la direction de la transposition.
Peut prendre l'une des valeurs suivantes :
‘cclock_flip’
Effectue une rotation de 90 degrés dans le sens antihoraire et un retournement vertical. (par défaut)
‘clock’
Effectue une rotation de 90 degrés dans le sens horaire.
‘cclock’
Effectue une rotation de 90 degrés dans le sens antihoraire.
‘clock_flip’
Effectue une rotation de 90 degrés dans le sens horaire et un retournement vertical.
‘reversal’
Effectue une rotation de 180 degrés.
‘hflip’
Effectue un retournement horizontal.
‘vflip’
Effectue un retournement vertical.
passthrough
N'applique pas la transposition si la géométrie d'entrée correspond à celle spécifiée par la valeur indiquée. Il accepte les valeurs suivantes :
‘none’
Applique toujours la transposition. (par défaut)
‘portrait’
Préserve la géométrie portrait (lorsque la hauteur >= la largeur).
‘landscape’
Préserve la géométrie paysage (lorsque la largeur >= la hauteur).
12.10 yadif_cuda
Désentrelace la vidéo d'entrée à l'aide de l'algorithme yadif, mais implémenté en CUDA afin de pouvoir fonctionner au sein d'un pipeline accéléré par GPU avec nvdec et/ou nvenc.
Il accepte les paramètres suivants :
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
0, send_frame
Produit une image pour chaque image.
1, send_field
Produit une image pour chaque champ.
2, send_frame_nospatial
Identique à send_frame, mais ignore la vérification spatiale de l'entrelacement.
3, send_field_nospatial
Identique à send_field, mais ignore la vérification spatiale de l'entrelacement.
La valeur par défaut est send_frame.
parity
La parité de champ d'image supposée pour la vidéo entrelacée en entrée. Il accepte l'une des valeurs suivantes :
0, tff
Suppose que le champ supérieur est le premier.
1, bff
Suppose que le champ inférieur est le premier.
-1, auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ supérieur est considéré comme le premier.
deint
Spécifie les images à désentrelacer. Accepte l'une des valeurs suivantes :
0, all
Désentrelace toutes les images.
1, interlaced
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est all.
13 Filtres vidéo OpenCL
Voici une description des filtres vidéo OpenCL disponibles à ce jour.
Pour activer la compilation de ces filtres, il faut configurer FFmpeg avec --enable-opencl.
L'exécution de filtres OpenCL nécessite d'initialiser un périphérique matériel et de transmettre ce périphérique à tous les filtres de n'importe quel graphe de filtres.
-init_hw_device opencl[=name][:device[,key=value...]]
Initialise un nouveau périphérique matériel de type opencl appelé name, avec les paramètres de périphérique donnés.
-filter_hw_device name
Transmet le périphérique matériel appelé name à tous les filtres de n'importe quel graphe de filtres.
Pour plus de détails, voir https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Exemple de sélection du premier périphérique sur la deuxième plateforme, en exécutant le filtre avgblur_opencl avec ses paramètres par défaut.
-init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
Étant donné que les filtres OpenCL ne peuvent pas accéder aux données d'image en mémoire normale, toutes les données d'image doivent être transférées (hwupload) vers des surfaces matérielles connectées au périphérique approprié avant d'être utilisées, puis retransférées (hwdownload) vers la mémoire normale. Notez que hwupload transfère vers une surface ayant la même disposition que l'image logicielle : il peut donc être nécessaire d'ajouter un filtre format juste avant pour obtenir l'entrée dans le bon format, et hwdownload ne prend pas en charge tous les formats en sortie : il peut être nécessaire d'insérer un filtre format supplémentaire juste après dans le graphe de filtres pour obtenir une sortie dans un format pris en charge.
13.1 avgblur_opencl
Applique un filtre de flou moyen.
Le filtre accepte les options suivantes :
sizeX
Définit le rayon horizontal. La plage est [1, 1024] et la valeur par défaut est 1.
planes
Définit les plans à filtrer. La valeur par défaut est 0xf, ce qui fait que tous les plans sont traités.
sizeY
Définit le rayon vertical. La plage est [1, 1024] et la valeur par défaut est 0. Si elle vaut zéro, la valeur de sizeX est utilisée.
13.1.1 Exemple
- Applique un filtre de flou moyen avec une taille horizontale et verticale de 3, en réglant chaque pixel de la sortie sur la valeur moyenne de la région 7x7 centrée sur lui dans l'entrée. Pour les pixels situés sur les bords de l'image, la région ne s'étend pas au-delà des limites de l'image, si bien que les coordonnées hors plage ne sont pas utilisées dans les calculs.
-i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
13.2 boxblur_opencl
Applique un algorithme boxblur à la vidéo d'entrée.
Il accepte les paramètres suivants :
luma_radius, lr luma_power, lp chroma_radius, cr chroma_power, cp alpha_radius, ar alpha_power, ap
Une description des options acceptées suit.
luma_radius, lr chroma_radius, cr alpha_radius, ar
Définit une expression pour le rayon de la boîte en pixels utilisé pour flouter le plan d'entrée correspondant.
La valeur du rayon doit être un nombre non négatif, et ne doit pas dépasser la valeur de l'expression min(w,h)/2 pour les plans de luminance et alpha, et de min(cw,ch)/2 pour les plans de chrominance.
La valeur par défaut de luma_radius est "2". Si elles ne sont pas spécifiées, chroma_radius et alpha_radius prennent par défaut la valeur correspondante définie pour luma_radius.
Les expressions peuvent contenir les constantes suivantes :
w h
La largeur et la hauteur de l'entrée, en pixels.
cw ch
La largeur et la hauteur de l'image de chrominance d'entrée, en pixels.
hsub vsub
Les valeurs de sous-échantillonnage horizontal et vertical de chrominance. Par exemple, pour le pixel format "yuv422p", hsub vaut 2 et vsub vaut 1.
luma_power, lp chroma_power, cp alpha_power, ap
Spécifie le nombre de fois où le filtre boxblur est appliqué au plan correspondant.
La valeur par défaut de luma_power est 2. Si elles ne sont pas spécifiées, chroma_power et alpha_power prennent par défaut la valeur correspondante définie pour luma_power.
Une valeur de 0 désactive l'effet.
13.2.1 Exemples
Applique le filtre boxblur, en réglant chaque pixel de la sortie sur la valeur moyenne des rayons de boîte luma_radius, chroma_radius, alpha_radius pour chaque plan respectivement. Le filtre s'applique luma_power, chroma_power, alpha_power fois sur le plan correspondant. Pour les pixels situés sur les bords de l'image, le rayon ne s'étend pas au-delà des limites de l'image, si bien que les coordonnées hors plage ne sont pas utilisées dans les calculs.
-
Applique un filtre boxblur avec le rayon luma, chroma et alpha réglé sur 2, et la puissance luma, chroma et alpha réglée sur 3. Le filtre s'exécute 3 fois avec un rayon de boîte réglé sur 2 pour chaque plan de l'image.
-i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT -
Applique un filtre boxblur avec luma_radius réglé sur 2, luma_power sur 1, chroma_radius sur 4, chroma_power sur 5, alpha_radius sur 3 et alpha_power sur 7.
Pour le plan de luminance, un rayon de boîte 2x2 s'exécute une fois.
Pour le plan de chrominance, un rayon de boîte 4x4 s'exécute 5 fois.
Pour le plan alpha, un rayon de boîte 3x3 s'exécute 7 fois.
-i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
13.3 colorkey_opencl
Incrustation par couleur dans l'espace colorimétrique RGB.
Le filtre accepte les options suivantes :
color
La couleur qui sera remplacée par de la transparence.
similarity
Pourcentage de similarité avec la couleur clé.
0.01 ne correspond qu'à la couleur clé exacte, tandis que 1.0 correspond à tout.
blend
Pourcentage de mélange.
0.0 rend les pixels soit entièrement transparents, soit pas du tout transparents.
Des valeurs plus élevées produisent des pixels semi-transparents, avec une transparence d'autant plus grande que la couleur du pixel se rapproche de la couleur clé.
13.3.1 Exemples
- Rend transparent, avec un léger mélange, chaque pixel semi-vert de l'entrée :
-i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
13.4 convolution_opencl
Applique une convolution de matrice 3x3, 5x5 ou 7x7.
Le filtre accepte les options suivantes :
0m 1m 2m 3m
Définit la matrice de chaque plan. La matrice est une séquence de 9, 25 ou 49 nombres signés. La valeur par défaut pour chaque plan est 0 0 0 0 1 0 0 0 0.
0rdiv 1rdiv 2rdiv 3rdiv
Définit le multiplicateur de la valeur calculée pour chaque plan. Si elle n'est pas définie ou vaut 0, ce sera la somme de tous les éléments de la matrice. La valeur de l'option doit être un nombre à virgule flottante supérieur ou égal à 0.0. La valeur par défaut est 1.0.
0bias 1bias 2bias 3bias
Définit le biais de chaque plan. Cette valeur est ajoutée au résultat de la multiplication. Utile pour rendre l'image globalement plus claire ou plus sombre. La valeur de l'option doit être un nombre à virgule flottante supérieur ou égal à 0.0. La valeur par défaut est 0.0.
13.4.1 Exemples
-
Applique une accentuation (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 -
Applique un flou :
-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 -
Applique un rehaussement des contours :
-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 -
Applique une détection de contours :
-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 -
Applique un détecteur de contours laplacien incluant les 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 -
Applique un effet de relief (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
Applique un effet d'érosion à la vidéo.
Ce filtre remplace le pixel par le minimum local (3x3).
Il accepte les options suivantes :
threshold0 threshold1 threshold2 threshold3
Limite le changement maximal pour chaque plan. La plage est [0, 65535] et la valeur par défaut est 65535. Si elle vaut 0, le plan reste inchangé.
coordinates
Indicateur qui spécifie le pixel de référence. La plage est [0, 255] et la valeur par défaut est 255, c'est-à-dire que les huit pixels sont utilisés.
Indicateurs vers la région de coordonnées locale 3x3 centrée sur x :
1 2 3
4 x 5
6 7 8
13.5.1 Exemple
- Applique le filtre d'érosion avec threshold0 réglé sur 30, threshold1 sur 40, threshold2 sur 50 et coordinates sur 231, en réglant chaque pixel de la sortie sur le minimum local entre les pixels : 1, 2, 3, 6, 7, 8 de la région 3x3 centrée sur lui dans l'entrée. Si la différence entre le pixel d'entrée et le minimum local dépasse le seuil du plan correspondant, le pixel de sortie est réglé sur le pixel d'entrée moins le seuil du plan correspondant.
-i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
13.6 deshake_opencl
Filtre de stabilisation vidéo basé sur des points caractéristiques.
Le filtre accepte les options suivantes :
tripod
Simule un trépied en empêchant tout mouvement de caméra par rapport à l'image d'origine. La valeur par défaut est 0.
debug
Indique si des informations de débogage supplémentaires doivent être affichées, à la fois dans la sortie traitée et dans la console.
Notez que pour voir la sortie de débogage dans la console, il faut également passer -v verbose à ffmpeg.
L'affichage des correspondances de points dans la vidéo de sortie n'est pris en charge que pour une entrée RGB.
La valeur par défaut est 0.
adaptive_crop
Indique s'il faut effectuer un léger rognage sur les bords afin de réduire la quantité de pixels en miroir.
La valeur par défaut est 1.
refine_features
Indique si les points caractéristiques doivent être affinés au niveau sous-pixel.
Cette option peut être désactivée pour un léger gain de performance, au prix de la précision.
La valeur par défaut est 1.
smooth_strength
La force du lissage appliqué à la trajectoire de la caméra, de 0.0 à 1.0.
1.0 correspond à la force de lissage maximale, tandis que des valeurs inférieures produisent un lissage moindre.
0.0 amène le filtre à choisir de manière adaptative une force de lissage image par image.
La valeur par défaut est 0.0.
smooth_window_multiplier
Contrôle la taille de la fenêtre de lissage (le nombre d'images mises en tampon pour en déterminer les informations de mouvement).
La taille de la fenêtre de lissage est déterminée en multipliant la fréquence d'images de la vidéo par ce nombre.
Les valeurs acceptables vont de 0.1 à 10.0.
Des valeurs plus élevées augmentent la quantité de données de mouvement disponibles pour déterminer comment lisser la trajectoire de la caméra, ce qui peut améliorer la fluidité, mais augmente aussi la latence et l'utilisation mémoire.
La valeur par défaut est 2.0.
13.6.1 Exemples
-
Stabilise une vidéo avec une force de lissage moyenne fixe :
-i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT -
Stabilise une vidéo avec débogage (à la fois dans la console et dans la vidéo rendue) :
-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
Applique un effet de dilatation à la vidéo.
Ce filtre remplace le pixel par le maximum local (3x3).
Il accepte les options suivantes :
threshold0 threshold1 threshold2 threshold3
Limite le changement maximal pour chaque plan. La plage est [0, 65535] et la valeur par défaut est 65535. Si elle vaut 0, le plan reste inchangé.
coordinates
Indicateur qui spécifie le pixel de référence. La plage est [0, 255] et la valeur par défaut est 255, c'est-à-dire que les huit pixels sont utilisés.
Indicateurs vers la région de coordonnées locale 3x3 centrée sur x :
1 2 3
4 x 5
6 7 8
13.7.1 Exemple
- Applique le filtre de dilatation avec threshold0 réglé sur 30, threshold1 sur 40, threshold2 sur 50 et coordinates sur 231, en réglant chaque pixel de la sortie sur le maximum local entre les pixels : 1, 2, 3, 6, 7, 8 de la région 3x3 centrée sur lui dans l'entrée. Si la différence entre le pixel d'entrée et le maximum local dépasse le seuil du plan correspondant, le pixel de sortie est réglé sur le pixel d'entrée plus le seuil du plan correspondant.
-i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
13.8 nlmeans_opencl
Filtre de débruitage Non-local Means via OpenCL ; ce filtre accepte les mêmes options que nlmeans.
13.9 overlay_opencl
Superpose une vidéo par-dessus une autre.
Il prend deux entrées et produit une sortie. La première entrée est la vidéo "principale" sur laquelle la seconde entrée est superposée. Ce filtre nécessite la même disposition mémoire pour toutes les entrées. Une conversion de format peut donc être nécessaire.
Le filtre accepte les options suivantes :
x
Définit la coordonnée x de la vidéo superposée sur la vidéo principale. La valeur par défaut est 0.
y
Définit la coordonnée y de la vidéo superposée sur la vidéo principale. La valeur par défaut est 0.
13.9.1 Exemples
-
Superpose une image LOGO dans le coin supérieur gauche de la vidéo INPUT. Les deux entrées sont au format yuv420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT -
Les entrées ont la même disposition mémoire pour les canaux de couleur ; la superposition dispose d'un plan alpha supplémentaire, par exemple INPUT est en yuv420p et LOGO en 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
Ajoute un remplissage (padding) à l'image d'entrée et place l'entrée d'origine aux coordonnées x, y fournies.
Il accepte les options suivantes :
width, w height, h
Spécifie une expression pour la taille de l'image de sortie une fois le remplissage ajouté. Si la valeur de width ou height vaut 0, la taille d'entrée correspondante est utilisée pour la sortie.
L'expression de width peut faire référence à la valeur définie par l'expression de height, et inversement.
La valeur par défaut de width et height est 0.
x y
Spécifie les décalages permettant de placer l'image d'entrée dans la zone de remplissage, par rapport au bord supérieur/gauche de l'image de sortie.
L'expression de x peut faire référence à la valeur définie par l'expression de y, et inversement.
La valeur par défaut de x et y est 0.
Si x ou y donne un nombre négatif, la valeur est modifiée de sorte que l'image d'entrée soit centrée dans la zone de remplissage.
color
Spécifie la couleur de la zone de remplissage. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils.
aspect
Effectue le remplissage vers un rapport d'aspect plutôt que vers une résolution.
La valeur des options width, height, x et y est une expression contenant les constantes suivantes :
in_w in_h
La largeur et la hauteur de la vidéo d'entrée.
iw ih
Elles sont identiques à in_w et in_h.
out_w out_h
La largeur et la hauteur de sortie (la taille de la zone de remplissage), telles que spécifiées par les expressions width et height.
ow oh
Elles sont identiques à out_w et out_h.
x y
Les décalages x et y tels que spécifiés par les expressions x et y, ou NAN s'ils ne sont pas encore spécifiés.
a
identique à iw / ih
sar
rapport d'aspect d'échantillon d'entrée
dar
rapport d'aspect d'affichage d'entrée ; identique à (iw / ih) * sar
13.11 prewitt_opencl
Applique l'opérateur de Prewitt (https://en.wikipedia.org/wiki/Prewitt_operator) au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à filtrer. La valeur par défaut est 0xf, ce qui fait que tous les plans sont traités.
scale
Définit la valeur par laquelle le résultat filtré sera multiplié. La plage est [0.0, 65535] et la valeur par défaut est 1.0.
delta
Définit la valeur qui sera ajoutée au résultat filtré. La plage est [-65535, 65535] et la valeur par défaut est 0.0.
13.11.1 Exemple
- Applique l'opérateur de Prewitt avec scale réglé sur 2 et delta sur 10.
-i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
13.12 program_opencl
Filtre la vidéo à l'aide d'un programme OpenCL.
source
Fichier source du programme OpenCL.
kernel
Nom du kernel dans le programme.
inputs
Nombre d'entrées du filtre. La valeur par défaut est 1.
size, s
Taille des images de sortie. Par défaut, identique à la première entrée.
Le filtre program_opencl prend également en charge les options framesync.
Le fichier source du programme doit contenir une fonction kernel portant le nom indiqué, qui sera exécutée une fois pour chaque plan de la sortie. Chaque exécution sur un plan est mise en file d'attente comme un NDRange global 2D distinct, avec un élément de travail (work-item) par pixel à générer. Le décalage d'ID global de chaque élément de travail correspond donc aux coordonnées d'un pixel dans l'image de destination.
La fonction kernel doit prendre les arguments suivants :
- Image de destination, __write_only image2d_t.
Cette image devient la sortie : le kernel doit l'écrire entièrement.
- Index de l'image, unsigned int.
Il s'agit d'un compteur qui commence à zéro et s'incrémente de un à chaque image.
- Images source, __read_only image2d_t.
Ce sont les images les plus récentes sur chaque entrée. Le kernel peut les lire pour générer la sortie, mais elles ne peuvent pas être écrites.
Exemples de programmes :
-
Copie l'entrée vers la sortie (la sortie doit avoir la même taille que l'entrée).
__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); } -
Applique une transformation simple, en faisant pivoter l'entrée d'une valeur croissant avec le compteur index. Les valeurs de pixel sont interpolées linéairement par le sampler, et la sortie n'a pas besoin d'avoir les mêmes dimensions que l'entrée.
__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)); } -
Mélange deux entrées ensemble, la proportion de chaque entrée utilisée variant avec le compteur 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
Remappe les pixels à l'aide du deuxième flux vidéo d'entrée (Xmap) et du troisième (Ymap).
Le pixel de destination à la position (X, Y) sera choisi depuis la position source (x, y) où x = Xmap(X, Y) et y = Ymap(X, Y). Si les valeurs de mappage sont hors plage, une valeur de pixel nulle sera utilisée pour le pixel de destination.
Les flux vidéo d'entrée Xmap et Ymap doivent avoir les mêmes dimensions. Le flux vidéo de sortie aura les dimensions des flux vidéo Xmap/Ymap. Les flux vidéo d'entrée Xmap et Ymap sont au pixel format flottant 32 bits, à un seul canal.
interp
Spécifie l'interpolation utilisée pour le remappage des pixels. Les valeurs autorisées sont near et linear. La valeur par défaut est linear.
fill
Spécifie la couleur des pixels non mappés. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Color" du manuel ffmpeg-utils. La couleur par défaut est black.
13.14 roberts_opencl
Applique l'opérateur de croix de Roberts (https://en.wikipedia.org/wiki/Roberts_cross) au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à filtrer. La valeur par défaut est 0xf, ce qui fait que tous les plans sont traités.
scale
Définit la valeur par laquelle le résultat filtré sera multiplié. La plage est [0.0, 65535] et la valeur par défaut est 1.0.
delta
Définit la valeur qui sera ajoutée au résultat filtré. La plage est [-65535, 65535] et la valeur par défaut est 0.0.
13.14.1 Exemple
- Applique l'opérateur de croix de Roberts avec scale réglé sur 2 et delta sur 10
-i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
13.15 sobel_opencl
Applique l'opérateur de Sobel (https://en.wikipedia.org/wiki/Sobel_operator) au flux vidéo d'entrée.
Le filtre accepte l'option suivante :
planes
Définit les plans à filtrer. La valeur par défaut est 0xf, ce qui fait que tous les plans sont traités.
scale
Définit la valeur par laquelle le résultat filtré sera multiplié. La plage est [0.0, 65535] et la valeur par défaut est 1.0.
delta
Définit la valeur qui sera ajoutée au résultat filtré. La plage est [-65535, 65535] et la valeur par défaut est 0.0.
13.15.1 Exemple
- Applique l'opérateur sobel avec scale réglé sur 2 et delta sur 10
-i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
13.16 tonemap_opencl
Effectue une conversion HDR(PQ/HLG) vers SDR avec mappage tonal (tone-mapping).
Il accepte les paramètres suivants :
tonemap
Spécifie l'opérateur de mappage tonal à utiliser. Identique à l'option tonemap du filtre tonemap.
param
Ajuste l'algorithme de mappage tonal. Identique à l'option param du filtre tonemap.
desat
Applique une désaturation pour les hautes lumières qui dépassent ce niveau de luminosité. Plus le paramètre est élevé, plus d'informations de couleur sont préservées. Ce réglage permet d'éviter des couleurs cramées de façon non naturelle pour les très hautes lumières, en les faisant plutôt basculer (en douceur) vers le blanc. Cela rend les images plus naturelles, au prix d'une réduction des informations sur les couleurs hors plage.
La valeur par défaut est 0.5, et l'algorithme utilisé ici diffère légèrement, pour l'instant, de la version CPU du filtre tonemap. Un réglage à 0.0 désactive cette option.
threshold
Les paramètres de l'algorithme de mappage tonal sont ajustés finement pour chaque scène. Un seuil est utilisé pour détecter si la scène a changé ou non. Si l'écart entre la luminosité moyenne de l'image courante et la moyenne courante dépasse une valeur de seuil, la luminosité moyenne et de crête de la scène est recalculée. La valeur par défaut est 0.2.
format
Spécifie le pixel format de sortie.
Les formats pris en charge à ce jour sont :
p010 nv12 range, r
Définit la plage de couleurs de sortie.
Les valeurs possibles sont :
tv/mpeg pc/jpeg
La valeur par défaut est identique à celle de l'entrée.
primaries, p
Définit les primaires de couleur de sortie.
Les valeurs possibles sont :
bt709 bt2020
La valeur par défaut est identique à celle de l'entrée.
transfer, t
Définit les caractéristiques de transfert de sortie.
Les valeurs possibles sont :
bt709 bt2020
La valeur par défaut est bt709.
matrix, m
Définit la matrice de l'espace colorimétrique de sortie.
Les valeurs possibles sont :
bt709 bt2020
La valeur par défaut est identique à celle de l'entrée.
13.16.1 Exemple
- Convertit une vidéo HDR(PQ/HLG) au format p010 avec des caractéristiques de transfert bt2020, à l'aide de l'opérateur linear.
-i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
13.17 unsharp_opencl
Accentue ou floute la vidéo d'entrée.
Il accepte les paramètres suivants :
luma_msize_x, lx
Définit la taille horizontale de la matrice de luminance. La plage est [1, 23] et la valeur par défaut est 5.
luma_msize_y, ly
Définit la taille verticale de la matrice de luminance. La plage est [1, 23] et la valeur par défaut est 5.
luma_amount, la
Définit l'intensité de l'effet sur la luminance. La plage est [-10, 10] et la valeur par défaut est 1.0.
Les valeurs négatives floutent la vidéo d'entrée, tandis que les valeurs positives l'accentuent ; une valeur de zéro désactive l'effet.
chroma_msize_x, cx
Définit la taille horizontale de la matrice de chrominance. La plage est [1, 23] et la valeur par défaut est 5.
chroma_msize_y, cy
Définit la taille verticale de la matrice de chrominance. La plage est [1, 23] et la valeur par défaut est 5.
chroma_amount, ca
Définit l'intensité de l'effet sur la chrominance. La plage est [-10, 10] et la valeur par défaut est 0.0.
Les valeurs négatives floutent la vidéo d'entrée, tandis que les valeurs positives l'accentuent ; une valeur de zéro désactive l'effet.
Tous les paramètres sont facultatifs et prennent par défaut l'équivalent de la chaîne ’5:5:1.0:5:5:0.0’.
13.17.1 Exemples
-
Applique un fort effet d'accentuation de la luminance :
-i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT -
Applique un fort flou sur les paramètres de luminance et de chrominance :
-i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
13.18 xfade_opencl
Effectue un fondu enchaîné entre deux vidéos avec un effet de transition personnalisé en utilisant OpenCL.
Elle accepte les options suivantes :
transition
Définit un des effets de transition possibles.
custom
Sélectionne un effet de transition personnalisé, la description réelle de la transition sera récupérée à partir des options source et kernel.
fade wipeleft wiperight wipeup wipedown slideleft slideright slideup slidedown
La transition par défaut est fade.
source
Fichier source du programme OpenCL pour la transition personnalisée.
kernel
Définit le nom du kernel à utiliser pour la transition personnalisée à partir du fichier source du programme.
duration
Définit la durée de la transition vidéo.
offset
Définit l'heure de début de la transition relative à la première vidéo.
Le fichier source du programme doit contenir une fonction kernel portant le nom indiqué, qui sera exécutée une fois pour chaque plan de la sortie. Chaque exécution sur un plan est mise en file d'attente comme un NDRange global 2D distinct, avec un élément de travail pour chaque pixel à générer. Le décalage d'ID global de chaque élément de travail correspond donc aux coordonnées d'un pixel dans l'image de destination.
La fonction kernel doit accepter les arguments suivants :
- Image de destination, __write_only image2d_t.
Cette image deviendra la sortie ; le kernel doit l'écrire entièrement.
- Première image source, __read_only image2d_t. Deuxième image source, __read_only image2d_t.
Ce sont les images les plus récentes de chaque entrée. Le kernel peut les lire pour générer la sortie, mais ne peut pas y écrire.
- Progression de la transition, float. Cette valeur est toujours comprise entre 0 et 1 inclus.
Exemples de programmes :
- Applique un effet de transition en rideau de points :
__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 VAAPI Video Filters
Les filtres vidéo VAAPI sont généralement utilisés avec un decoder VAAPI et un encoder VAAPI. Voici une description des filtres vidéo VAAPI.
Pour activer la compilation de ces filtres, vous devez configurer FFmpeg avec --enable-vaapi.
Pour utiliser les filtres vaapi, vous devez configurer correctement le périphérique vaapi. Pour plus d'informations, veuillez lire https://trac.ffmpeg.org/wiki/Hardware/VAAPI
14.1 overlay_vaapi
Superpose une vidéo au-dessus d'une autre.
Il prend deux entrées et a une sortie. La première entrée est la vidéo « principale » sur laquelle la seconde entrée est superposée.
Le filtre accepte les options suivantes :
x y
Définit les expressions pour les coordonnées x et y de la vidéo superposée sur la vidéo principale.
La valeur par défaut est "0" pour les deux expressions.
w h
Définit les expressions pour la largeur et la hauteur de la vidéo superposée sur la vidéo principale.
Les valeurs par défaut sont ’overlay_iw’ pour ’w’ et ’overlay_ih*w/overlay_iw’ pour ’h’.
Les expressions peuvent contenir les paramètres suivants :
main_w, W main_h, H
La largeur et la hauteur de l'entrée principale.
overlay_iw overlay_ih
La largeur et la hauteur de l'entrée superposée.
overlay_w, w overlay_h, h
La largeur et la hauteur de la sortie superposée.
overlay_x, x overlay_y, y
Position de la couche superposée à l'intérieur de main
alpha
Définit la transparence de la vidéo superposée. La plage autorisée va de 0.0 à 1.0. Une valeur plus élevée signifie une transparence plus faible. La valeur par défaut est 1.0.
eof_action
Voir framesync.
shortest
Voir framesync.
repeatlast
Voir framesync.
Ce filtre prend également en charge les options de framesync.
14.1.1 Exemples
-
Superposer une image LOGO dans le coin supérieur gauche de la vidéo INPUT. Les deux entrées de ce filtre sont au format yuv420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT -
Superposer une image LOGO au décalage (200, 100) depuis le coin supérieur gauche de la vidéo INPUT. Les entrées ont la même disposition mémoire pour les canaux de couleur, la superposition possède un plan alpha supplémentaire, comme INPUT en yuv420p, et LOGO en 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
Effectue un mappage tonal HDR vers SDR ou HDR vers HDR. Elle n'accepte pour l'instant que HDR10 en entrée.
Elle accepte les paramètres suivants :
format
Spécifie le pixel format de sortie.
La valeur par défaut est nv12 pour le tone mapping HDR vers SDR et p010 pour le tone mapping HDR vers HDR.
primaries, p
Définit les primaires de couleur de sortie.
La valeur par défaut est bt709 pour le tone mapping HDR vers SDR et identique à l'entrée pour le tone mapping HDR vers HDR.
transfer, t
Définit les caractéristiques de transfert de sortie.
La valeur par défaut est bt709 pour le tone mapping HDR vers SDR et identique à l'entrée pour le tone mapping HDR vers HDR.
matrix, m
Définit la matrice d'espace colorimétrique de sortie.
La valeur par défaut est bt709 pour le tone mapping HDR vers SDR et identique à l'entrée pour le tone mapping HDR vers HDR.
display
Définit le volume de couleur de l'affichage de référence en sortie (mastering display colour volume). Il est donné par une liste de deux valeurs séparées par ’|’, les deux valeurs étant séparées par un espace. Il définit les primaires d'affichage x et y dans l'ordre G, B, R, puis le point blanc x et y, et les luminances d'affichage nominales minimale et maximale.
Le tone mapping HDR vers HDR sera effectué lorsque cette option est définie.
light
Définit les informations de niveau de lumière du contenu en sortie. Elle accepte 2 valeurs séparées par un espace, la première entrée est le niveau de lumière maximal et la seconde entrée est le niveau de lumière moyen maximal.
Elle est ignorée pour le tone mapping HDR vers SDR, et facultative pour le tone mapping HDR vers HDR.
14.2.1 Exemple
-
Convertir une vidéo HDR (HDR10) au format p010 avec les caractéristiques de transfert bt2020
tonemap_vaapi=format=p010:t=bt2020-10 -
Convertir une vidéo HDR en vidéo HDR
tonemap_vaapi=display=7500\ 3000|34000\ 16000|13250\ 34500|15635\ 16450|500\ 10000000
14.3 hstack_vaapi
Empile des vidéos d'entrée horizontalement.
Il s'agit de la variante VA-API du filtre hstack ; chaque flux d'entrée peut avoir une hauteur différente, ce filtre réduit ou agrandit chaque flux d'entrée tout en conservant le rapport d'aspect d'origine.
Elle accepte les options suivantes :
inputs
Voir hstack.
shortest
Voir hstack.
height
Définit la hauteur de la sortie. Si la valeur est 0, ce filtre définira la hauteur de la sortie à la hauteur du premier flux d'entrée. La valeur par défaut est 0.
14.4 vstack_vaapi
Empile des vidéos d'entrée verticalement.
Il s'agit de la variante VA-API du filtre vstack ; chaque flux d'entrée peut avoir une largeur différente, ce filtre redimensionnera chaque flux d'entrée vers le bas/le haut tout en conservant le rapport d'aspect d'origine.
Elle accepte les options suivantes :
inputs
Voir vstack.
shortest
Voir vstack.
width
Définit la largeur de la sortie. Si la valeur est 0, ce filtre définira la largeur de la sortie à la largeur du premier flux d'entrée. La valeur par défaut est 0.
14.5 xstack_vaapi
Empile des entrées vidéo selon une disposition personnalisée.
Il s'agit de la variante VA-API du filtre xstack ; chaque flux d'entrée peut avoir une taille différente, ce filtre redimensionnera chaque flux d'entrée vers le bas/le haut jusqu'à la taille de sortie indiquée, ou à la taille du premier flux d'entrée.
Elle accepte les options suivantes :
inputs
Voir xstack.
shortest
Voir xstack.
layout
Voir xstack. De plus, ceci permet à l'utilisateur de fournir la taille de sortie pour chaque flux d'entrée.
xstack_vaapi=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
grid
Voir xstack.
grid_tile_size
Définit la taille de sortie pour chaque flux d'entrée lorsque grid est défini. Si cette option n'est pas définie, ce filtre définira par défaut la taille de sortie à la taille du premier flux d'entrée. Pour la syntaxe de cette option, consultez la section (ffmpeg-utils)« Video size » du manuel ffmpeg-utils.
fill
Voir xstack.
14.6 pad_vaapi
Ajoute des remplissages à l'image d'entrée et place l'entrée d'origine aux coordonnées x, y fournies.
Elle accepte les options suivantes :
width, w height, h
Spécifie une expression pour la taille de l'image de sortie avec les marges ajoutées. Si la valeur de width ou height est 0, la taille d'entrée correspondante est utilisée pour la sortie.
L'expression width peut référencer la valeur définie par l'expression height, et vice versa.
La valeur par défaut de width et height est 0.
x y
Spécifie les décalages pour placer l'image d'entrée dans la zone remplie, par rapport à la bordure supérieure/gauche de l'image de sortie.
L'expression x peut référencer la valeur définie par l'expression y, et vice versa.
La valeur par défaut de x et y est 0.
Si x ou y évaluent à un nombre négatif, ils seront modifiés de sorte que l'image d'entrée soit centrée dans la zone remplie.
color
Spécifie la couleur de la zone remplie. Pour la syntaxe de cette option, consultez la section (ffmpeg-utils)« Color » du manuel ffmpeg-utils.
aspect
Effectue le remplissage vers un rapport d'aspect plutôt que vers une résolution.
Les valeurs des options width, height, x et y sont des expressions contenant les constantes suivantes :
in_w in_h
La largeur et la hauteur de la vidéo d'entrée.
iw ih
Elles sont identiques à in_w et in_h.
out_w out_h
La largeur et la hauteur de sortie (la taille de la zone remplie), telles que spécifiées par les expressions width et height.
ow oh
Elles sont identiques à out_w et out_h.
x y
Les décalages x et y tels que spécifiés par les expressions x et y, ou NAN s'ils ne sont pas encore spécifiés.
a
identique à iw / ih
sar
rapport d'aspect des pixels de l'entrée
dar
rapport d'aspect d'affichage de l'entrée, identique à (iw / ih) * sar
14.7 drawbox_vaapi
Dessine un cadre coloré sur l'image d'entrée.
Elle accepte les paramètres suivants :
x y
Les expressions qui spécifient les coordonnées du coin supérieur gauche du cadre. La valeur par défaut est 0.
width, w height, h
Les expressions qui spécifient la largeur et la hauteur du cadre ; si elles valent 0, elles sont interprétées comme la largeur et la hauteur de l'entrée. La valeur par défaut est 0.
color, c
Spécifie la couleur du cadre à dessiner. Pour la syntaxe générale de cette option, consultez la section (ffmpeg-utils)« Color » du manuel ffmpeg-utils.
thickness, t
L'expression qui définit l'épaisseur du bord du cadre. Une valeur de fill créera un cadre rempli. La valeur par défaut est 3.
Voir ci-dessous la liste des constantes acceptées.
replace
Avec la valeur 1, les pixels du cadre dessiné écraseront les pixels de couleur et d'alpha de la vidéo. La valeur par défaut est 0, qui compose le cadre sur la vidéo d'entrée.
Les paramètres x, y, w, h et t sont des expressions contenant les constantes suivantes :
in_h, ih in_w, iw
La largeur et la hauteur de l'entrée.
x y
Les coordonnées de décalage x et y où le cadre est dessiné.
w h
La largeur et la hauteur du cadre dessiné.
t
L'épaisseur du cadre dessiné.
14.7.1 Exemples
-
Dessine un cadre noir sur le bord de l'image d'entrée :
drawbox -
Dessine un cadre de couleur rouge avec une opacité de 50 % :
drawbox=10:20:200:60:red@0.5
L'exemple précédent peut être spécifié comme suit :
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
-
Remplit le cadre de couleur rose :
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill -
Dessine un masque rouge de 2 pixels en 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 Filtres vidéo VideoToolbox
Voici une description des filtres vidéo VideoToolbox disponibles à ce jour.
Le filtre VideoToolbox dépend du framework VideoToolbox, et est détecté automatiquement lors de la compilation de ffmpeg pour une plateforme Apple telle que macOS. Ajoutez --enable-videotoolbox à configure si la détection automatique est désactivée.
15.1 scale_vt
Redimensionne et convertit les paramètres de couleur à l'aide de VTPixelTransferSession.
Le filtre accepte les options suivantes :
w h
Définit l'expression de dimension de la vidéo de sortie. La valeur par défaut est la dimension de l'entrée.
color_matrix
Définit la matrice d'espace colorimétrique de sortie.
color_primaries
Définit les primaires de couleur de sortie.
color_transfer
Définit les caractéristiques de transfert de sortie.
15.1.1 Exemples
- Effectue une conversion HDR vers SDR et redimensionne à la moitié de la taille de l'entrée
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
Transpose les lignes et les colonnes de la vidéo d'entrée et, éventuellement, la retourne. Pour des exemples plus approfondis, voir le filtre vidéo transpose, qui partage la plupart des mêmes options.
Il accepte les paramètres suivants :
dir
Spécifie la direction de transposition.
Peut prendre les valeurs suivantes :
‘cclock_flip’
Effectue une rotation de 90 degrés dans le sens antihoraire et un retournement vertical. (par défaut)
‘clock’
Effectue une rotation de 90 degrés dans le sens horaire.
‘cclock’
Effectue une rotation de 90 degrés dans le sens antihoraire.
‘clock_flip’
Effectue une rotation de 90 degrés dans le sens horaire et un retournement vertical.
‘hflip’
Retourne la vidéo d'entrée horizontalement.
‘vflip’
Retourne la vidéo d'entrée verticalement.
passthrough
N'applique pas la transposition si la géométrie d'entrée correspond à celle spécifiée par la valeur indiquée. Elle accepte les valeurs suivantes :
‘none’
Applique toujours la transposition. (par défaut)
‘portrait’
Préserve la géométrie portrait (lorsque hauteur >= largeur).
‘landscape’
Préserve la géométrie paysage (lorsque largeur >= hauteur).
16 Filtres vidéo Vulkan
Voici une description des filtres vidéo Vulkan disponibles à ce jour.
Pour activer la compilation de ces filtres, vous devez configurer FFmpeg avec --enable-vulkan et soit --enable-libglslang, soit --enable-libshaderc.
L'exécution des filtres Vulkan nécessite d'initialiser un périphérique matériel et de transmettre ce périphérique à tous les filtres de tout graphe de filtres.
-init_hw_device vulkan[=name][:device[,key=value...]]
Initialise un nouveau périphérique matériel de type vulkan appelé name, en utilisant les paramètres et options de périphérique donnés en key=value. Les options suivantes sont prises en charge :
debug
Active les couches de validation si la valeur est 1.
linear_images
Alloue des images linéaires. Ne s'applique pas au décodage.
disable_multiplane
Désactive les images multiplans. Ne s'applique pas au décodage.
avoid_host_import
Évite l'utilisation d'imports dynamiques de mémoire hôte, au profit d'un memcpy() classique dans un tampon préalablement mappé.
-filter_hw_device name
Transmet le périphérique matériel appelé name à tous les filtres de tout graphe de filtres.
Pour des informations plus détaillées, voir https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Exemple de choix du premier périphérique et d'exécution du filtre nlmeans_vulkan avec les paramètres par défaut sur celui-ci.
-init_hw_device vulkan=vk:0 -filter_hw_device vk -i INPUT -vf "hwupload,nlmeans_vulkan,hwdownload" OUTPUT
Les filtres Vulkan ne pouvant pas accéder aux données d'image en mémoire normale, toutes les données d'image doivent être téléversées (hwupload) vers des surfaces matérielles connectées au périphérique approprié avant d'être utilisées, puis téléchargées (hwdownload) de nouveau vers la mémoire normale. Notez que hwupload téléversera vers une image ayant la même disposition que l'image logicielle ; il peut donc être nécessaire d'ajouter un filtre format immédiatement avant pour obtenir l'entrée dans le bon format, et hwdownload ne prend pas en charge tous les formats en sortie — il est généralement nécessaire d'insérer un filtre format supplémentaire immédiatement après dans le graphe pour obtenir la sortie dans un format pris en charge.
16.1 avgblur_vulkan
Applique un filtre de flou moyen, mis en œuvre sur le GPU à l'aide de Vulkan.
Le filtre accepte les options suivantes :
sizeX
Définit la taille du rayon horizontal. La plage est [1, 32] et la valeur par défaut est 3.
sizeY
Définit la taille du rayon vertical. La plage est [1, 32] et la valeur par défaut est 3.
planes
Définit les plans à filtrer. La valeur par défaut est 0xf, par laquelle tous les plans sont traités.
16.2 blend_vulkan
Mélange deux images Vulkan entre elles.
Le filtre blend prend deux flux d'entrée et produit un flux de sortie ; la première entrée est la couche « top » et la seconde entrée est la couche « bottom ». Par défaut, la sortie se termine lorsque l'entrée la plus longue se termine.
Une description des options acceptées suit.
c0_mode c1_mode c2_mode c3_mode all_mode
Définit le mode de mélange pour une composante de pixel spécifique ou pour toutes les composantes de pixel dans le cas de all_mode. La valeur par défaut est normal.
Valeurs disponibles pour les modes de composante :
‘normal’ ‘multiply’
16.3 bwdif_vulkan
Désentrelaceur utilisant bwdif, l'algorithme « Bob Weaver Deinterlacing Filter », mis en œuvre sur le GPU à l'aide de Vulkan.
Il accepte les paramètres suivants :
mode
Le mode d'entrelacement à adopter. Il accepte l'une des valeurs suivantes :
0, send_frame
Produit une image en sortie pour chaque image.
1, send_field
Produit une image en sortie pour chaque champ.
La valeur par défaut est send_field.
parity
La parité de champ d'image supposée pour la vidéo entrelacée d'entrée. Elle accepte l'une des valeurs suivantes :
0, tff
Suppose que le champ du haut est le premier.
1, bff
Suppose que le champ du bas est le premier.
-1, auto
Active la détection automatique de la parité de champ.
La valeur par défaut est auto. Si l'entrelacement est inconnu ou si le decoder n'exporte pas cette information, le champ du haut est supposé être le premier.
deint
Spécifie les images à désentrelacer. Accepte l'une des valeurs suivantes :
0, all
Désentrelace toutes les images.
1, interlaced
Désentrelace uniquement les images marquées comme entrelacées.
La valeur par défaut est all.
16.4 chromaber_vulkan
Applique un effet qui simule l'aberration chromatique. Fonctionne mieux avec des entrées RVB, mais fournit un effet similaire avec des entrées YCbCr également.
dist_x
Multiplicateur de déplacement horizontal. La position de chaque pixel de chrominance sera multipliée par cette valeur, à partir du centre de l'image. La valeur par défaut est 0.
dist_y
De même, ceci définit le multiplicateur de déplacement vertical. La valeur par défaut est 0.
16.5 color_vulkan
Source vidéo qui crée une image Vulkan d'une couleur unie. Utile pour le benchmarking, ou pour la superposition.
Elle accepte les paramètres suivants :
color
La couleur à utiliser. Soit un nom, soit une valeur hexadécimale. La valeur par défaut est black.
size
La taille de l'image de sortie. La valeur par défaut est 1920x1080.
rate
La fréquence d'images de sortie. La valeur par défaut est 60 images par seconde.
duration
La durée de la vidéo. La valeur par défaut est -0.000001.
sar
Le rapport d'aspect des pixels du signal vidéo. La valeur par défaut est 1/1.
format
Le pixel format des images Vulkan de sortie. La valeur par défaut est yuv444p.
out_range
Définit la plage d'échantillons YCbCr de sortie.
Ceci permet de forcer la valeur autodétectée, ainsi que de forcer une valeur spécifique utilisée pour la sortie et l'encoder. Si elle n'est pas spécifiée, la plage dépend du pixel format. Valeurs possibles :
‘auto/unknown’
Choisit automatiquement.
‘jpeg/full/pc’
Définit la plage complète (0-255 pour une luma 8 bits).
‘mpeg/limited/tv’
Définit la plage « MPEG » (16-235 pour une luma 8 bits).
16.6 vflip_vulkan
Retourne une image verticalement.
16.7 hflip_vulkan
Retourne une image horizontalement.
16.8 flip_vulkan
Retourne une image selon les axes vertical et horizontal.
16.9 gblur_vulkan
Applique un filtre de flou gaussien sur des images Vulkan.
Le filtre accepte les options suivantes :
sigma
Définit sigma horizontal, l'écart type du flou gaussien. La valeur par défaut est 0.5.
sigmaV
Définit sigma vertical ; si négatif, il sera identique à sigma. La valeur par défaut est -1.
planes
Définit les plans à filtrer. Par défaut, tous les plans sont filtrés.
size
Définit la taille du kernel le long de l'axe horizontal. La valeur par défaut est 19.
sizeV
Définit la taille du kernel le long de l'axe vertical. La valeur par défaut est 0, ce qui fait qu'elle utilise la même valeur que size.
16.10 nlmeans_vulkan
Débruite les images à l'aide de l'algorithme Non-Local Means, implémenté sur le GPU avec Vulkan. Prend en charge davantage de pixel formats que nlmeans ou nlmeans_opencl, y compris la prise en charge du canal alpha.
Accepte les options suivantes.
s
Définit la force de débruitage pour toutes les composantes. La valeur par défaut est 1.0. Doit être comprise dans la plage [0.0, 100.0].
p
Définit la taille de patch pour tous les plans. La valeur par défaut est 7. Doit être un nombre impair compris dans la plage [0, 99].
r
Définit la taille de recherche. La valeur par défaut est 15. Doit être un nombre impair compris dans la plage [0, 99].
t
Définit le parallélisme. La valeur par défaut est 8. Doit être un nombre compris dans la plage [1, 64]. Des valeurs plus élevées utilisent davantage de VRAM, mais n'apportent pas nécessairement une plus grande vitesse. La valeur optimale dépend du matériel et de l'entrée.
s0 s1 s2 s3
Définit la force de débruitage pour une composante spécifique. La valeur par défaut est 1.0, identique à s. Doit être comprise dans la plage [0.0, 100.0]. 0.0 désactive le débruitage sur cette composante.
p0 p1 p2 p3
Définit la taille de patch pour une composante spécifique. La valeur par défaut est 7, identique à p. Doit être un nombre impair compris dans la plage [0, 99].
16.11 overlay_vulkan
Superpose une vidéo sur une autre.
Prend deux entrées et produit une seule sortie. La première entrée est la vidéo "principale" sur laquelle la seconde entrée est superposée. Ce filtre exige que toutes les entrées utilisent le même pixel format. Une conversion de format peut donc être nécessaire.
Accepte les options suivantes :
x
Définit la coordonnée x de la vidéo superposée sur la vidéo principale. La valeur par défaut est 0.
y
Définit la coordonnée y de la vidéo superposée sur la vidéo principale. La valeur par défaut est 0.
16.12 transpose_vulkan
Transpose les lignes et les colonnes de la vidéo d'entrée et peut éventuellement la retourner verticalement. Pour des exemples plus approfondis, consultez le filtre vidéo transpose, qui partage la plupart des mêmes options.
Accepte les paramètres suivants :
dir
Indique la direction de la transposition.
Peut prendre les valeurs suivantes :
‘cclock_flip’
Effectue une rotation de 90 degrés dans le sens antihoraire et un retournement vertical. (valeur par défaut)
‘clock’
Effectue une rotation de 90 degrés dans le sens horaire.
‘cclock’
Effectue une rotation de 90 degrés dans le sens antihoraire.
‘clock_flip’
Effectue une rotation de 90 degrés dans le sens horaire et un retournement vertical.
passthrough
N'applique pas la transposition si la géométrie d'entrée correspond à celle indiquée par la valeur spécifiée. Elle accepte les valeurs suivantes :
‘none’
Applique toujours la transposition. (valeur par défaut)
‘portrait’
Préserve la géométrie portrait (lorsque height >= width).
‘landscape’
Préserve la géométrie paysage (lorsque width >= height).
17 Filtres vidéo QSV
Voici une description des filtres vidéo QSV disponibles à ce jour.
Pour activer la compilation de ces filtres, vous devez configurer FFmpeg avec --enable-libmfx ou --enable-libvpl.
Pour utiliser les filtres QSV, vous devez configurer correctement le périphérique QSV. Pour plus d'informations, consultez https://trac.ffmpeg.org/wiki/Hardware/QuickSync
17.1 hstack_qsv
Empile les vidéos d'entrée horizontalement.
Il s'agit de la variante QSV du filtre hstack. Chaque flux d'entrée peut avoir une hauteur différente ; ce filtre réduit ou agrandit chaque flux d'entrée tout en conservant l'aspect d'origine.
Accepte les options suivantes :
inputs
Voir hstack.
shortest
Voir hstack.
height
Définit la hauteur de la sortie. Si la valeur est 0, ce filtre règle la hauteur de la sortie sur la hauteur du premier flux d'entrée. La valeur par défaut est 0.
17.2 vstack_qsv
Empile les vidéos d'entrée verticalement.
Il s'agit de la variante QSV du filtre vstack. Chaque flux d'entrée peut avoir une largeur différente ; ce filtre réduit ou agrandit chaque flux d'entrée tout en conservant l'aspect d'origine.
Accepte les options suivantes :
inputs
Voir vstack.
shortest
Voir vstack.
width
Définit la largeur de la sortie. Si la valeur est 0, ce filtre règle la largeur de la sortie sur la largeur du premier flux d'entrée. La valeur par défaut est 0.
17.3 xstack_qsv
Empile les entrées vidéo selon une disposition personnalisée.
Il s'agit de la variante QSV du filtre xstack.
Accepte les options suivantes :
inputs
Voir xstack.
shortest
Voir xstack.
layout
Voir xstack. Cette option permet en outre à l'utilisateur de fournir la taille de sortie pour chaque flux d'entrée.
xstack_qsv=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
grid
Voir xstack.
grid_tile_size
Définit la taille de sortie pour chaque flux d'entrée lorsque grid est défini. Si cette option n'est pas définie, ce filtre règle par défaut la taille de sortie sur la taille du premier flux d'entrée. Pour connaître la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils.
fill
Voir xstack.
18 Sources vidéo
Voici une description des sources vidéo disponibles à ce jour.
18.1 buffer
Met en tampon les images vidéo et les rend disponibles pour la chaîne de filtres.
Cette source est principalement destinée à un usage programmatique, en particulier via l'interface définie dans libavfilter/buffersrc.h.
Accepte les paramètres suivants :
video_size
Indique la taille (largeur et hauteur) des images vidéo mises en tampon. Pour connaître la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils.
width
La largeur de la vidéo d'entrée.
height
La hauteur de la vidéo d'entrée.
pix_fmt
Une chaîne représentant le pixel format des images vidéo mises en tampon. Il peut s'agir d'un nombre correspondant à un pixel format, ou d'un nom de pixel format.
time_base
Indique la base de temps supposée par les horodatages des images mises en tampon.
frame_rate
Indique la fréquence d'images attendue pour le flux vidéo.
colorspace
Une chaîne représentant l'espace colorimétrique des images vidéo mises en tampon. Il peut s'agir d'un nombre correspondant à un espace colorimétrique, ou d'un nom d'espace colorimétrique.
range
Une chaîne représentant la plage de couleurs des images vidéo mises en tampon. Il peut s'agir d'un nombre correspondant à une plage de couleurs, ou d'un nom de plage de couleurs.
alpha_mode
Une chaîne représentant le mode alpha des images vidéo mises en tampon. Il peut s'agir d'un nombre correspondant à un mode alpha, ou d'un nom de mode alpha.
pixel_aspect, sar
Le rapport d'aspect de l'échantillon (des pixels) de la vidéo d'entrée.
hw_frames_ctx
Lors de l'utilisation d'un pixel format matériel, il doit s'agir d'une référence à un AVHWFramesContext décrivant les images d'entrée.
Par exemple :
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
demande à la source d'accepter des images vidéo de taille 320x240 et de format "yuv410p", en supposant 1/24 comme base de temps des horodatages et des pixels carrés (rapport d'aspect de l'échantillon 1:1). Le pixel format nommé "yuv410p" correspondant au nombre 6 (voir la définition de l'énumération AVPixelFormat dans libavutil/pixfmt.h), cet exemple équivaut à :
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
Autrement, les options peuvent être indiquées sous la forme d'une chaîne à plat, mais cette syntaxe est obsolète :
width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
18.2 cellauto
Crée un motif généré par un automate cellulaire élémentaire.
L'état initial de l'automate cellulaire peut être défini via les options filename et pattern. Si ces options ne sont pas indiquées, un état initial est créé aléatoirement.
À chaque nouvelle image, une nouvelle ligne de la vidéo est remplie avec le résultat de la génération suivante de l'automate cellulaire. Le comportement une fois que l'image entière est remplie est défini par l'option scroll.
Accepte les options suivantes :
filename, f
Lit l'état initial de l'automate cellulaire, c'est-à-dire la ligne de départ, à partir du fichier indiqué. Dans le fichier, chaque caractère non blanc est considéré comme une cellule vivante ; un saut de ligne termine la ligne, et les caractères suivants du fichier sont ignorés.
pattern, p
Lit l'état initial de l'automate cellulaire, c'est-à-dire la ligne de départ, à partir de la chaîne indiquée.
Chaque caractère non blanc de la chaîne est considéré comme une cellule vivante ; un saut de ligne termine la ligne, et les caractères suivants de la chaîne sont ignorés.
rate, r
Définit la fréquence vidéo, c'est-à-dire le nombre d'images générées par seconde. La valeur par défaut est 25.
random_fill_ratio, ratio
Définit le taux de remplissage aléatoire de la ligne initiale de l'automate cellulaire. Il s'agit d'un nombre à virgule flottante compris entre 0 et 1 ; la valeur par défaut est 1/PHI.
Cette option est ignorée lorsqu'un fichier ou un pattern est indiqué.
random_seed, seed
Définit la graine pour remplir aléatoirement la ligne initiale ; doit être un entier compris entre 0 et UINT32_MAX. Si elle n'est pas indiquée, ou si elle est explicitement réglée à -1, le filtre tente d'utiliser une bonne graine aléatoire du mieux qu'il peut.
rule
Définit la règle de l'automate cellulaire ; il s'agit d'un nombre compris entre 0 et 255. La valeur par défaut est 110.
size, s
Définit la taille de la vidéo de sortie. Pour connaître la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils.
Si filename ou pattern est indiqué, la taille est par défaut réglée sur la largeur de la ligne d'état initial indiquée, et la hauteur est réglée sur width * PHI.
Si size est défini, il doit contenir la largeur de la chaîne pattern indiquée, et le pattern indiqué est centré dans la ligne la plus large.
Si aucun filename ni aucune chaîne pattern n'est indiqué, la valeur de size vaut par défaut "320x518" (utilisée pour un état initial généré aléatoirement).
scroll
Si la valeur est 1, fait défiler la sortie vers le haut lorsque toutes ses lignes sont déjà remplies. Si la valeur est 0, la nouvelle ligne générée est écrite par-dessus la ligne du haut juste après que la ligne du bas a été remplie. La valeur par défaut est 1.
start_full, full
Si la valeur est 1, remplit entièrement la sortie avec des lignes générées avant de produire la première image. Il s'agit du comportement par défaut ; pour le désactiver, réglez la valeur à 0.
stitch
Si la valeur est 1, assemble les bords gauche et droit de la ligne. Il s'agit du comportement par défaut ; pour le désactiver, réglez la valeur à 0.
18.2.1 Exemples
-
Lit l'état initial à partir de pattern, et indique une sortie de taille 200x400.
cellauto=f=pattern:s=200x400 -
Génère une ligne initiale aléatoire d'une largeur de 200 cellules, avec un taux de remplissage de 2/3 :
cellauto=ratio=2/3:s=200x200 -
Crée un motif généré par la règle 18, en partant d'une unique cellule vivante centrée sur une ligne initiale de largeur 100 :
cellauto=p=@:s=100x400:full=0:rule=18 -
Indique un motif initial plus élaboré :
cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
18.3 coreimagesrc
Source vidéo générée sur le GPU à l'aide de l'API CoreImage d'Apple sous OSX.
Cette source vidéo est une version spécialisée du filtre vidéo coreimage. Utilisez un générateur core image au début de la chaîne de filtres appliquée pour générer le contenu.
La source vidéo coreimagesrc accepte les options suivantes :
list_generators
Liste tous les générateurs disponibles, avec toutes leurs options respectives ainsi que les valeurs minimales et maximales possibles et les valeurs par défaut.
list_generators=true
size, s
Indique la taille de la vidéo source. Pour connaître la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils. La valeur par défaut est 320x240.
rate, r
Indique la fréquence d'images de la vidéo source, exprimée comme le nombre d'images générées par seconde. Elle doit être une chaîne au format frame_rate_num/frame_rate_den, un nombre entier, un nombre à virgule flottante ou une abréviation valide de fréquence d'images vidéo. La valeur par défaut est "25".
sar
Définit le rapport d'aspect de l'échantillon de la vidéo source.
duration, d
Définit la durée de la vidéo source. Consultez la section Time duration du manuel (ffmpeg-utils) ffmpeg-utils(1) pour connaître la syntaxe acceptée.
Si elle n'est pas indiquée, ou si la durée exprimée est négative, la vidéo est supposée être générée indéfiniment.
De plus, toutes les options du filtre vidéo coreimage sont acceptées. Une chaîne de filtres complète peut être utilisée pour traiter davantage l'entrée générée, sans transfert CPU-HOST. Consultez la documentation et les exemples de coreimage pour plus de détails.
18.3.1 Exemples
- Utilise CIQRCodeGenerator pour créer un QR code pour la page d'accueil de FFmpeg, donné comme ligne de commande complète et échappée pour le shell bash standard d'Apple :
ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
Cet exemple équivaut à l'exemple QRCode de coreimage, sans nécessiter de source vidéo nullsrc.
18.4 ddagrab
Capture le bureau Windows via l'API Desktop Duplication.
Le filtre renvoie exclusivement des images matérielles D3D11, destinées à l'encodage ou au traitement sur le GPU. Un hwdownload explicite est donc nécessaire pour tout traitement logiciel.
Accepte les options suivantes :
output_idx
Index de sortie DXGI à capturer.
Correspond généralement à l'index attribué par Windows à l'écran, moins un ; il commence donc à 0.
La valeur par défaut est la sortie 0.
draw_mouse
Indique s'il faut dessiner le curseur de la souris.
La valeur par défaut est true.
N'affecte que les curseurs matériels. Si un jeu ou une application dessine son propre curseur, celui-ci est toujours capturé.
framerate
Fréquence d'images maximale à laquelle le bureau est capturé : l'intervalle entre deux images successives ne sera pas inférieur à l'inverse de cette fréquence. Lorsque dup_frames vaut true (valeur par défaut) et que le bureau n'est pas mis à jour assez souvent, le filtre duplique une image précédente. Notez qu'aucune mise en tampon en arrière-plan n'a lieu ; ainsi, lorsque le filtre n'est pas interrogé assez souvent, l'intervalle réel entre les images peut être nettement plus grand.
La valeur par défaut est 30 FPS.
video_size
Indique la taille de la vidéo capturée.
La valeur par défaut est la taille complète de l'écran.
Rognée depuis le bas/la droite si elle est plus petite que la taille de l'écran.
offset_x
Décalage horizontal de la vidéo capturée.
offset_y
Décalage vertical de la vidéo capturée.
output_fmt
Format de sortie souhaité pour le filtre. La valeur par défaut est BGRA 8 bits.
Accepte les valeurs suivantes :
‘auto’
Transmet tous les formats de sortie pris en charge à DDA et renvoie celui que DDA décide d'utiliser.
‘8bit’ ‘bgra’
Les formats 8 bits fonctionnent toujours ; DDA effectue la conversion vers ceux-ci si nécessaire.
‘10bit’ ‘x2bgr10’
L'initialisation du filtre échoue si le format 10 bits est demandé mais indisponible.
dup_frames
Lorsque cette option vaut true (valeur par défaut), le filtre duplique des images quand le bureau n'a pas été mis à jour, afin de maintenir une fréquence d'images cible à peu près constante. Lorsqu'elle vaut false, le filtre attend que le bureau soit mis à jour (les intervalles entre les images peuvent alors varier considérablement).
18.4.1 Exemples
Capture l'écran principal et encode avec nvenc :
ffmpeg -f lavfi -i ddagrab -c:v h264_nvenc -cq 18 output.mp4
Vous pouvez également vous passer du périphérique lavfi et utiliser directement le filtre. L'exemple suivant montre aussi comment télécharger l'image et l'encoder avec libx264. Dans ce cas, une spécification explicite du format de sortie est requise :
ffmpeg -filter_complex ddagrab=output_idx=1:framerate=60,hwdownload,format=bgra -c:v libx264 -crf 18 output.mp4
Si vous voulez capturer uniquement une sous-partie du bureau, vous pouvez y parvenir en indiquant une taille plus petite et ses décalages dans l'écran :
ddagrab=video_size=800x600:offset_x=100:offset_y=100
18.5 gfxcapture
Capture des fenêtres ou des moniteurs à l'aide de l'API Windows.Graphics.Capture.
Cette source assure une capture à faible surcharge des fenêtres d'application ou de moniteurs entiers. Le filtre produit des images matérielles au format d3d11 ; utilisez hwdownload,format= si des images en mémoire système sont nécessaires.
La fenêtre à capturer peut être sélectionnée via des expressions régulières portant sur son titre, son nom de classe ou le nom de son exécutable, via des handles natifs explicites, ou via un index de moniteur ou un handle natif explicite. Une fenêtre doit correspondre à toutes les expressions fournies pour être sélectionnée. La première fenêtre correspondante est retenue, dans l'ordre où Windows les renvoie.
Les handles explicites (hwnd, hmonitor) prennent le pas sur la sélection basée sur un pattern ou un index. Si ni handle ni index de moniteur n'est fourni, la première fenêtre correspondant aux expressions régulières fournies est capturée.
Cette source ne garantit PAS un FPS stable. Elle renvoie les images au rythme fourni par le compositeur, uniquement plafonné par max_framerate. Si vous avez besoin d'une fréquence stable, ajoutez un filtre fps pour supprimer ou dupliquer des images selon les besoins.
Si la source de capture disparaît en cours de capture (fenêtre fermée, moniteur déconnecté), le filtre renvoie EOF.
Accepte les options suivantes :
window_title
Expression régulière ECMAScript comparée au titre de la fenêtre. Prend en charge un préfixe de style PCRE (?i) pour une correspondance insensible à la casse.
window_class
Comme window_title, mais comparé au nom de classe de la fenêtre.
window_exe
Comme window_title, mais comparé au nom du fichier exécutable du processus de la fenêtre.
monitor_idx
Index, débutant à zéro, du moniteur à capturer.
Peut aussi être réglé sur window pour capturer le moniteur sur lequel la fenêtre sélectionnée est affichée au moment de l'initialisation du filtre.
hwnd
Handle natif explicite de fenêtre (HWND).
hmonitor
Handle natif explicite de moniteur (HMONITOR).
capture_cursor
Capture le curseur de la souris. Activé par défaut.
capture_border
Capture toute la zone de la fenêtre, y compris ses décorations/bordure. Désactivé par défaut.
display_border
Dessine une bordure de surlignage jaune autour de la fenêtre capturée. Désactivé par défaut.
max_framerate
Fréquence d'images de capture maximale. Accepte une fréquence vidéo (par exemple 30, 60/1, 24000/1001). La valeur par défaut est 60 FPS. La fréquence réelle est celle à laquelle le compositeur restitue la fenêtre/le moniteur, plafonnée par cette option.
width
Force la largeur du canevas de sortie. Si la valeur est zéro (par défaut), la largeur initiale de la source capturée est utilisée. Si un nombre négatif est fourni, la largeur est arrondie à l'inférieur au prochain multiple de ce nombre.
Voir resize_mode.
height
Force la hauteur du canevas de sortie. Si la valeur est zéro (par défaut), la hauteur initiale de la source capturée est utilisée. Si un nombre négatif est fourni, la hauteur est arrondie à l'inférieur au prochain multiple de ce nombre.
Voir resize_mode.
crop_left
Rogne ce nombre de pixels depuis le côté gauche des images capturées.
crop_top
Rogne ce nombre de pixels depuis le côté gauche des images capturées.
crop_right
Rogne ce nombre de pixels depuis le côté gauche des images capturées.
crop_bottom
Rogne ce nombre de pixels depuis le côté gauche des images capturées.
premultiplied
Si la valeur est 1, renvoie les images avec alpha prémultiplié. La valeur par défaut est 0 (alpha direct).
resize_mode
Définit comment le contenu capturé est ajusté à la taille du canevas de sortie. Valeurs possibles :
‘crop’
Rogne (ou remplit de noir) pour atteindre la taille du canevas. (valeur par défaut)
‘scale’
Met à l'échelle la source pour remplir le canevas, ce qui peut altérer le rapport d'aspect.
‘scale_aspect’
Met à l'échelle la source pour qu'elle tienne dans le canevas tout en préservant le rapport d'aspect. La zone restante est remplie de noir.
scale_mode
Algorithme de mise à l'échelle utilisé lorsqu'un redimensionnement est nécessaire.
Valeurs possibles :
‘point’
Mise à l'échelle au plus proche voisin (pixelisée).
‘bilinear’
Filtrage bilinéaire. (valeur par défaut)
‘bicubic’
Filtrage bicubique. Potentiellement plus flou, mais avec moins d'artefacts de mise à l'échelle selon le contenu.
output_fmt
Pixel format de sortie souhaité à l'intérieur des images matérielles D3D11.
Valeurs possibles :
‘bgra’ ‘8bit’
Sortie BGRA 8 bits (valeur par défaut)
‘x2bgr10’ ‘10bit’
Sortie BGR 10 bits
‘rgbaf16’ ‘16bit’
Sortie RGBA flottante 16 bits
18.5.1 Exemples
-
Capture une fenêtre par son titre (insensible à la casse) à un maximum 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 -
Capture le moniteur 1 à sa fréquence de rafraîchissement native, en profondeur de couleur 10 bits, en mettant à l'échelle vers 1920x1080 tout en préservant l'aspect :
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 -
Capture une fenêtre par le nom de son exécutable, dessine une bordure, force la mise à l'échelle au point, à 60 fps fixes :
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
Génère plusieurs dégradés.
size, s
Définit la taille de l'image. Pour connaître la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils. La valeur par défaut est "640x480".
rate, r
Définit la fréquence d'images, exprimée comme un nombre d'images par seconde. La valeur par défaut est "25".
c0, c1, c2, c3, c4, c5, c6, c7
Définit 8 couleurs. Par défaut, chaque couleur est choisie aléatoirement.
x0, y0, y0, y1
Définit les points source et destination de la ligne de dégradé. S'ils sont négatifs ou hors plage, des points aléatoires sont choisis.
nb_colors, n
Définit le nombre de couleurs à utiliser simultanément. La plage autorisée va de 2 à 8. La valeur par défaut est 2.
seed
Définit la graine pour choisir les points de la ligne de dégradé.
duration, d
Définit la durée de la vidéo source. Consultez la section Time duration du manuel (ffmpeg-utils) ffmpeg-utils(1) pour connaître la syntaxe acceptée.
Si elle n'est pas indiquée, ou si la durée exprimée est négative, la vidéo est supposée être générée indéfiniment.
speed
Définit la vitesse de rotation des dégradés.
type, t
Définit le type de dégradés. Valeurs disponibles :
‘linear’ ‘radial’ ‘circular’ ‘spiral’ ‘square’
Le type par défaut est linear.
18.6.1 Commandes
Cette source prend en charge certaines des options ci-dessus en tant que commandes.
18.7 mandelbrot
Génère une fractale de l'ensemble de Mandelbrot, et effectue un zoom progressif vers le point indiqué par start_x et start_y.
Accepte les options suivantes :
end_pts
Définit la valeur pts finale. La valeur par défaut est 400.
end_scale
Définit la valeur d'échelle finale. Doit être une valeur à virgule flottante. La valeur par défaut est 0.3.
inner
Définit le mode de coloration interne, c'est-à-dire l'algorithme utilisé pour dessiner la région intérieure de la fractale de Mandelbrot.
Il doit prendre l'une des valeurs suivantes :
black
Définit le mode noir.
convergence
Affiche le temps jusqu'à convergence.
mincol
Définit la couleur en fonction du point le plus proche de l'origine des itérations.
period
Définit le mode période.
La valeur par défaut est mincol.
bailout
Définit la valeur de bailout. La valeur par défaut est 10.0.
maxiter
Définit le nombre maximal d'itérations effectuées par l'algorithme de rendu. La valeur par défaut est 7189.
outer
Définit le mode de coloration externe. Il doit prendre l'une des valeurs suivantes :
iteration_count
Définit le mode de comptage d'itérations.
normalized_iteration_count
Définit le mode de comptage d'itérations normalisé.
La valeur par défaut est normalized_iteration_count.
rate, r
Définit la fréquence d'images, exprimée comme un nombre d'images par seconde. La valeur par défaut est "25".
size, s
Définit la taille de l'image. Pour connaître la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils. La valeur par défaut est "640x480".
start_scale
Définit la valeur d'échelle initiale. La valeur par défaut est 3.0.
start_x
Définit la position x initiale. Doit être une valeur à virgule flottante comprise entre -100 et 100. La valeur par défaut est -0.743643887037158704752191506114774.
start_y
Définit la position y initiale. Doit être une valeur à virgule flottante comprise entre -100 et 100. La valeur par défaut est -0.131825904205311970493132056385139.
18.8 mptestsrc
Génère divers motifs de test, comme ceux générés par le filtre de test MPlayer.
La taille de la vidéo générée est fixe et vaut 512x512. Cette source est particulièrement utile pour tester des fonctionnalités d'encodage.
Accepte les options suivantes :
rate, r
Indique la fréquence d'images de la vidéo source, exprimée comme le nombre d'images générées par seconde. Elle doit être une chaîne au format frame_rate_num/frame_rate_den, un nombre entier, un nombre à virgule flottante ou une abréviation valide de fréquence d'images vidéo. La valeur par défaut est "25".
duration, d
Définit la durée de la vidéo source. Consultez la section Time duration du manuel (ffmpeg-utils) ffmpeg-utils(1) pour connaître la syntaxe acceptée.
Si elle n'est pas indiquée, ou si la durée exprimée est négative, la vidéo est supposée être générée indéfiniment.
test, t
Définit le numéro ou le nom du test à effectuer. Les tests pris en charge sont :
dc_luma dc_chroma freq_luma freq_chroma amp_luma amp_chroma cbp mv ring1 ring2 all max_frames, m
Définit le nombre maximal d'images générées pour chaque test ; la valeur par défaut est 30.
La valeur par défaut est "all", qui parcourt cycliquement la liste de tous les tests.
Quelques exemples :
mptestsrc=t=dc_luma
génère un motif de test "dc_luma".
18.9 frei0r_src
Fournit une source frei0r.
Pour activer la compilation de ce filtre, vous devez installer l'en-tête frei0r et configurer FFmpeg avec --enable-frei0r.
Cette source accepte les paramètres suivants :
size
La taille de la vidéo à générer. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils).
framerate
La fréquence d'images de la vidéo générée. Il peut s'agir d'une chaîne de la forme num/den ou d'une abréviation de fréquence d'images.
filter_name
Le nom de la source frei0r à charger. Pour plus d'informations sur frei0r et la manière de définir les paramètres, lisez la section frei0r de la documentation des filtres vidéo.
filter_params
Une liste de paramètres séparés par des ’|’ à transmettre à la source frei0r.
Par exemple, pour générer une source frei0r partik0l de taille 200x200 et de fréquence d'images 10, superposée à l'entrée principale du filtre overlay :
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
18.10 life
Génère un motif de vie.
Cette source repose sur une généralisation du jeu de la vie de John Conway.
L'entrée sourcée représente une grille de vie ; chaque pixel représente une cellule pouvant se trouver dans l'un de deux états possibles, vivante ou morte. Chaque cellule interagit avec ses huit voisines, qui sont les cellules adjacentes horizontalement, verticalement ou en diagonale.
À chaque interaction, la grille évolue selon la règle adoptée, qui précise le nombre de cellules voisines vivantes qui font qu'une cellule reste vivante ou naît. L'option rule permet de préciser la règle à adopter.
Cette source accepte les options suivantes :
filename, f
Définit le fichier à partir duquel lire l'état initial de la grille. Dans le fichier, chaque caractère non blanc est considéré comme une cellule vivante, et un saut de ligne délimite la fin de chaque rangée.
Si cette option n'est pas spécifiée, la grille initiale est générée aléatoirement.
rate, r
Définit la fréquence vidéo, c'est-à-dire le nombre d'images générées par seconde. La valeur par défaut est 25.
random_fill_ratio, ratio
Définit le taux de remplissage aléatoire de la grille aléatoire initiale. C'est un nombre à virgule flottante compris entre 0 et 1, dont la valeur par défaut est 1/PHI. Il est ignoré lorsqu'un fichier est spécifié.
random_seed, seed
Définit la graine utilisée pour remplir la grille aléatoire initiale ; elle doit être un entier compris entre 0 et UINT32_MAX. Si elle n'est pas spécifiée, ou explicitement définie à -1, le filtre essaie d'utiliser une bonne graine aléatoire au mieux.
rule
Définit la règle de vie.
Une règle peut être spécifiée avec un code du type "SNS/BNB", où NS et NB sont des suites de chiffres dans la plage 0-8 ; NS précise le nombre de cellules voisines vivantes qui font qu'une cellule vivante reste vivante, et NB le nombre de cellules voisines vivantes qui font qu'une cellule morte devienne vivante (c'est-à-dire "naisse"). "s" et "b" peuvent être utilisés à la place de "S" et "B", respectivement.
Il est également possible de spécifier une règle par un entier de 18 bits. Les 9 bits de poids fort servent à coder l'état suivant de la cellule si elle est vivante, pour chaque nombre de cellules voisines vivantes ; les bits de poids faible précisent la règle de "naissance" des nouvelles cellules. Les bits de poids plus élevé codent pour un nombre plus grand de cellules voisines. Par exemple, le nombre 6153 = (12<<9)+9 spécifie une règle de survie de 12 et une règle de naissance de 9, ce qui correspond à "S23/B03".
La valeur par défaut est "S23/B3", qui est la règle originale du jeu de la vie de Conway : elle maintient une cellule vivante si elle a 2 ou 3 cellules voisines vivantes, et fait naître une nouvelle cellule s'il y a trois cellules vivantes autour d'une cellule morte.
size, s
Définit la taille de la vidéo de sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils).
Si filename est spécifié, la taille est définie par défaut à la même taille que le fichier d'entrée. Si size est définie, elle doit contenir la taille spécifiée dans le fichier d'entrée, et la grille initiale définie dans ce fichier est centrée dans la zone résultante plus grande.
Si filename n'est pas spécifié, la valeur de size vaut par défaut "320x240" (utilisée pour une grille initiale générée aléatoirement).
stitch
Si définie à 1, recoud ensemble les bords gauche et droit de la grille, ainsi que les bords haut et bas. La valeur par défaut est 1.
mold
Définit la vitesse de moisissure des cellules. Si elle est définie, une cellule morte passe de death_color à mold_color avec un pas de mold. mold peut prendre une valeur de 0 à 255.
life_color
Définit la couleur des cellules vivantes (ou nouvellement nées).
death_color
Définit la couleur des cellules mortes. Si mold est définie, il s'agit de la première couleur utilisée pour représenter une cellule morte.
mold_color
Définit la couleur de moisissure, pour les cellules définitivement mortes et moisies.
Pour la syntaxe de ces 3 options de couleur, consultez la section "Color" du manuel ffmpeg-utils (ffmpeg-utils).
18.10.1 Exemples
-
Lit une grille depuis pattern, et la centre sur une grille de taille 300x300 pixels :
life=f=pattern:s=300x300 -
Génère une grille aléatoire de taille 200x200, avec un taux de remplissage de 2/3 :
life=ratio=2/3:s=200x200 -
Spécifie une règle personnalisée pour faire évoluer une grille générée aléatoirement :
life=rule=S14/B34 -
Exemple complet avec effet de mort lente (moisissure) via
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
Génère du bruit de Perlin.
Le bruit de Perlin est un type de bruit présentant une continuité locale dans l'espace. Cela peut être utilisé pour générer des motifs présentant une continuité dans l'espace et le temps, par exemple pour simuler de la fumée, des fluides ou un terrain.
Lorsque plusieurs octaves sont spécifiées via l'option octaves, le bruit de Perlin est généré comme une somme de composantes, chacune avec une fréquence doublée. Dans ce cas, l'option persistence précise le rapport de l'amplitude par rapport à la composante précédente. Davantage de composantes d'octave permettent de spécifier davantage de détails à haute fréquence dans le bruit généré (par exemple de petites variations de taille dues à des blocs rocheux dans un terrain généré).
18.11.1 Options
size, s
Précise la taille (largeur et hauteur) des images vidéo mises en tampon. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 320x240.
rate, r
Précise la fréquence d'images attendue pour le flux vidéo, exprimée en nombre d'images par seconde. La valeur par défaut est 25.
octaves
Précise le nombre total de composantes constituant le bruit, chacune avec une fréquence doublée. La valeur par défaut est 1.
persistence
Définit le rapport utilisé pour calculer l'amplitude de la composante d'octave suivante par rapport à l'amplitude de la composante précédente. La valeur par défaut est 1.
xscale yscale
Définit un facteur d'échelle utilisé pour multiplier les coordonnées x, y. Cela peut être utile pour définir un effet avec un motif étiré le long de l'axe x ou y. La valeur par défaut est 1.
tscale
Définit un facteur d'échelle utilisé pour multiplier la coordonnée temporelle. Cela peut être utile pour modifier la vitesse de variation temporelle. La valeur par défaut est 1.
random_mode
Définit le mode aléatoire utilisé pour calculer le motif initial.
Les valeurs prises en charge sont :
random
Calcule et utilise une graine aléatoire.
ken
Utilise le motif initial prédéfini défini par Ken Perlin dans l'article original, ce qui peut être utile pour comparer la sortie avec d'autres sources.
seed
Utilise la valeur spécifiée par l'option random_seed.
La valeur par défaut est random.
random_seed, seed
Lorsque random_mode est défini à random_seed, utilise cette valeur pour calculer le motif initial. La valeur par défaut est 0.
18.11.2 Exemples
-
Génère une seule composante :
perlin -
Utilise du bruit de Perlin avec 7 composantes, chacune avec une contribution divisée par deux à l'amplitude totale :
perlin=octaves=7:persistence=0.5 -
Enchaîne le bruit de Perlin avec lutyuv pour générer un effet noir et blanc :
perlin=octaves=3:tscale=0.3,lutyuv=y='if(lt(val\,128)\,255\,0)' -
Étire le bruit le long de l'axe y, et convertit le niveau de gris en signal rouge uniquement :
perlin=octaves=7:tscale=0.4:yscale=0.3,lutrgb=r=val:b=0:g=0
18.12 qrencodesrc
Génère un code QR à l'aide de la bibliothèque libqrencode (voir https://fukuchi.org/works/qrencode/).
Pour activer la compilation de cette source, vous devez configurer FFmpeg avec --enable-libqrencode.
Le code QR est généré à partir du texte ou du modèle de texte fourni. Le code QR correspondant est mis à l'échelle et placé dans la sortie vidéo selon les options de taille de sortie spécifiées.
Si aucun texte n'est spécifié, le code QR n'est pas généré ; une sortie colorée vide est renvoyée à la place.
Cette source accepte les options suivantes :
qrcode_width, q padded_qrcode_width, Q
Précise une expression pour la largeur du code QR rendu, avec et sans marge. L'expression qrcode_width peut faire référence à la valeur définie par l'expression padded_qrcode_width, et inversement. Par défaut, padded_qrcode_width est définie à qrcode_width, ce qui signifie qu'il n'y a pas de marge.
Ces expressions ne sont évaluées qu'une seule fois, lors de l'initialisation de la source. Voir la section Expressions de qrencode pour plus de détails.
Notez que certaines constantes manquent pour la source (par exemple x, t ou n), car elles n'ont de sens que lors de l'évaluation de l'expression pour chaque image plutôt qu'à l'initialisation.
rate, r
Précise la fréquence d'images de la vidéo sourcée, en nombre d'images générées par seconde. Cela doit être une chaîne au format frame_rate_num/frame_rate_den, un nombre entier, un nombre à virgule flottante ou une abréviation valide de fréquence d'images. La valeur par défaut est "25".
case_sensitive, cs
Demande à libqrencode d'utiliser un encodage sensible à la casse. Ceci est activé par défaut. Cela peut être désactivé pour réduire la taille de l'encodage QR.
level, l
Précise le niveau de correction d'erreur de l'encodage QR. Avec un niveau de correction plus élevé, la taille de l'encodage augmente, mais le code est plus résistant à la corruption. Le niveau le plus bas est L.
Elle accepte les valeurs suivantes :
‘L’ ‘M’ ‘Q’ ‘H’ expansion
Sélectionne la manière dont le texte d'entrée est développé. Peut être soit none, soit normal (par défaut). Voir la section Expansion de texte de qrencode pour plus de détails.
text textfile
Définit le texte à rendre. Si aucun des deux n'est spécifié, aucun code QR n'est encodé (juste une image colorée vide).
Si expansion est activée, le texte est traité comme un modèle de texte, en utilisant le mécanisme d'expansion de qrencode. Voir la section Expansion de texte de qrencode pour plus de détails.
background_color, bc foreground_color, fc
Définit la couleur du code QR et de l'arrière-plan. La valeur par défaut de foreground_color est "black", la valeur par défaut de background_color est "white".
Pour la syntaxe des options de couleur, consultez la section "Color" du manuel ffmpeg-utils (ffmpeg-utils).
18.12.1 Exemples
-
Génère un code QR encodant le texte spécifié avec la taille par défaut :
qrencodesrc=text=www.ffmpeg.org -
Identique à ci-dessous, mais en choisissant des couleurs bleu sur rose :
qrencodesrc=text=www.ffmpeg.org:bc=pink:fc=blue -
Génère un code QR d'une largeur de 200 pixels avec une marge, la largeur avec marge valant 4/3 de la largeur du code QR :
qrencodesrc=text=www.ffmpeg.org:q=200:Q=4/3*q -
Génère un code QR d'une largeur avec marge de 200 pixels, la largeur du code QR valant 3/4 de la largeur avec marge :
qrencodesrc=text=www.ffmpeg.org:Q=200:q=3/4*Q -
Génère un code QR encodant le numéro d'image :
qrencodesrc=text=%{n} -
Génère un code QR encodant l'horodatage GMT :
qrencodesrc=text=%{gmtime} -
Génère un code QR encodant l'horodatage exprimé sous forme de nombre à virgule flottante :
qrencodesrc=text=%{pts}
18.13 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc
La source allrgb renvoie des images de taille 4096x4096 de toutes les couleurs rgb.
La source allyuv renvoie des images de taille 4096x4096 de toutes les couleurs yuv.
La source color fournit une entrée uniformément colorée.
La source colorchart fournit une mire de vérification des couleurs.
La source colorspectrum fournit une entrée de spectre de couleurs.
La source haldclutsrc fournit un Hald CLUT identité. Voir aussi le filtre haldclut.
La source nullsrc renvoie des images vidéo non traitées. Elle est principalement utile pour être employée dans des outils d'analyse / débogage, ou comme source pour des filtres qui ignorent les données d'entrée.
La source pal75bars génère un motif de barres de couleur, basé sur les recommandations EBU PAL avec des niveaux de couleur à 75 %.
La source pal100bars génère un motif de barres de couleur, basé sur les recommandations EBU PAL avec des niveaux de couleur à 100 %.
La source rgbtestsrc génère un motif de test RGB utile pour détecter les problèmes RGB / BGR. Vous devriez voir une bande rouge, verte et bleue de haut en bas.
La source smptebars génère un motif de barres de couleur, basé sur la ligne directrice d'ingénierie SMPTE EG 1-1990.
La source smptehdbars génère un motif de barres de couleur, basé sur SMPTE RP 219-2002.
La source testsrc génère un motif de vidéo de test, montrant un motif de couleur, un dégradé défilant et un horodatage. Ceci est principalement destiné à des fins de test.
La source testsrc2 est similaire à testsrc, mais prend en charge davantage de pixel formats plutôt que seulement rgb24. Cela permet de l'utiliser comme entrée pour d'autres tests sans nécessiter de conversion de format.
La source yuvtestsrc génère un motif de test YUV. Vous devriez voir une bande y, cb et cr de haut en bas.
Les sources acceptent les paramètres suivants :
level
Précise le niveau du Hald CLUT, disponible uniquement dans la source haldclutsrc. Un niveau de N génère une image de N*N*N par N*N*N pixels à utiliser comme matrice identité pour les tables de correspondance 3D. Chaque composante est codée sur une échelle de 1/(N*N).
color, c
Précise la couleur de la source, disponible uniquement dans la source color. Pour la syntaxe de cette option, consultez la section "Color" du manuel ffmpeg-utils (ffmpeg-utils).
size, s
Précise la taille de la vidéo sourcée. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 320x240.
Cette option n'est pas disponible avec les filtres allrgb, allyuv et haldclutsrc.
rate, r
Précise la fréquence d'images de la vidéo sourcée, en nombre d'images générées par seconde. Cela doit être une chaîne au format frame_rate_num/frame_rate_den, un nombre entier, un nombre à virgule flottante ou une abréviation valide de fréquence d'images. La valeur par défaut est "25".
duration, d
Définit la durée de la vidéo sourcée. Voir la section Time duration du manuel ffmpeg-utils(1) (ffmpeg-utils) pour la syntaxe acceptée.
Si elle n'est pas spécifiée, ou si la durée exprimée est négative, la vidéo est supposée être générée indéfiniment.
Comme la fréquence d'images est utilisée comme base de temps, toutes les images, y compris la dernière, ont leur durée complète. Si la durée spécifiée n'est pas un multiple de la durée d'une image, elle est arrondie au supérieur.
sar
Définit le rapport d'aspect des pixels de la vidéo sourcée.
alpha
Précise l'alpha (opacité) de l'arrière-plan, disponible uniquement dans la source testsrc2. La valeur doit être comprise entre 0 (entièrement transparent) et 255 (entièrement opaque, valeur par défaut).
decimals, n
Définit le nombre de décimales à afficher dans l'horodatage, disponible uniquement dans la source testsrc.
La valeur d'horodatage affichée correspond à la valeur d'horodatage d'origine multipliée par la puissance de 10 de la valeur spécifiée. La valeur par défaut est 0.
type
Définit le type du spectre de couleurs, disponible uniquement dans la source colorspectrum. Peut être l'une des valeurs suivantes :
‘black’ ‘white’ ‘all’ patch_size
Définit la taille de chaque patch de couleur, disponible uniquement dans la source colorchart. La valeur par défaut est 64x64.
preset
Définit le préréglage de couleurs colorchecker, disponible uniquement dans la source colorchart.
Les valeurs disponibles sont :
‘reference’ ‘skintones’
La valeur par défaut est reference.
18.13.1 Exemples
-
Génère une vidéo d'une durée de 5.3 secondes, de taille 176x144 et à une fréquence d'images de 10 images par seconde :
testsrc=duration=5.3:size=qcif:rate=10 -
La description de graphe suivante génère une source rouge avec une opacité de 0.2, de taille "qcif" et à une fréquence d'images de 10 images par seconde :
color=c=red@0.2:s=qcif:r=10 -
Si le contenu d'entrée doit être ignoré,
nullsrcpeut être utilisé. La commande suivante génère du bruit dans le plan de luminance en employant le filtregeq:nullsrc=s=256x256, geq=random(1)*255:128:128
18.13.2 Commandes
La source color prend en charge les commandes suivantes :
c, color
Définit la couleur de l'image créée. Accepte la même syntaxe que l'option de couleur correspondante.
18.14 openclsrc
Génère une vidéo à l'aide d'un programme OpenCL.
source
Fichier source du programme OpenCL.
kernel
Nom du kernel dans le programme.
size, s
Taille des images à générer. Doit être définie.
format
Pixel format à utiliser pour les images générées. Doit être défini.
rate, r
Nombre d'images générées par seconde. La valeur par défaut est ’25’.
Pour le détail du fonctionnement du chargement du programme, voir le filtre program_opencl.
Exemples de programmes :
-
Génère une rampe de couleur en définissant les valeurs des pixels à partir de la position du pixel dans l'image de sortie. (Notez que cela fonctionne avec tous les pixel formats, mais la sortie générée ne sera pas la même.)
__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); } -
Génère un motif de tapis de Sierpiński, en effectuant un panoramique d'un seul pixel à chaque image.
__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
Génère une fractale de tapis/triangle de Sierpiński, et effectue un panoramique aléatoire.
Cette source accepte les options suivantes :
size, s
Définit la taille de l'image. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est "640x480".
rate, r
Définit la fréquence d'images, exprimée en nombre d'images par seconde. La valeur par défaut est "25".
seed
Définit la graine utilisée pour le panoramique aléatoire.
jump
Définit le saut maximal pour une seule destination de panoramique. La plage autorisée va de 1 à 10000.
type
Définit le type de fractale, qui peut être carpet (par défaut) ou triangle.
18.16 zoneplate
Génère un motif de vidéo de test zoneplate.
Cette source accepte les options suivantes :
size, s
Définit la taille de l'image. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est "320x240".
rate, r
Définit la fréquence d'images, exprimée en nombre d'images par seconde. La valeur par défaut est "25".
duration, d
Définit la durée de la vidéo sourcée. Voir la section Time duration du manuel ffmpeg-utils(1) (ffmpeg-utils) pour la syntaxe acceptée.
Si elle n'est pas spécifiée, ou si la durée exprimée est négative, la vidéo est supposée être générée indéfiniment.
sar
Définit le rapport d'aspect des pixels de la vidéo sourcée.
precision
Définit la précision en bits de la table de correspondance pour les calculs sinusoïdaux. La valeur par défaut est 10. La plage autorisée va de 4 à 16.
xo
Définit le décalage de l'axe horizontal pour le signal de sortie. La valeur par défaut est 0.
yo
Définit le décalage de l'axe vertical pour le signal de sortie. La valeur par défaut est 0.
to
Définit le décalage de l'axe temporel pour le signal de sortie. La valeur par défaut est 0.
k0
Définit la constante d'ordre 0, ajoutée à la phase du signal. La valeur par défaut est 0.
kx
Définit le multiplicateur de phase d'ordre 1 pour l'axe horizontal. La valeur par défaut est 0.
ky
Définit le multiplicateur de phase d'ordre 1 pour l'axe vertical. La valeur par défaut est 0.
kt
Définit le multiplicateur de phase d'ordre 1 pour l'axe temporel. La valeur par défaut est 0.
kxt, kyt, kxy
Définit les multiplicateurs de phase pour la combinaison des axes spatial et temporel. La valeur par défaut est 0.
kx2
Définit le multiplicateur de phase d'ordre 2 pour l'axe horizontal. La valeur par défaut est 0.
ky2
Définit le multiplicateur de phase d'ordre 2 pour l'axe vertical. La valeur par défaut est 0.
kt2
Définit le multiplicateur de phase d'ordre 2 pour l'axe temporel. La valeur par défaut est 0.
ku
Définit la constante ajoutée à la phase finale pour produire la composante chroma-bleue du signal. La valeur par défaut est 0.
kv
Définit la constante ajoutée à la phase finale pour produire la composante chroma-rouge du signal. La valeur par défaut est 0.
18.16.1 Commandes
Cette source prend en charge certaines des options ci-dessus en tant que commandes.
18.16.2 Exemples
-
Génère un balayage sinusoïdal de couleur horizontal :
zoneplate=ku=512:kv=0:kt2=0:kx2=256:s=wvga:xo=-426:kt=11 -
Génère un balayage sinusoïdal de couleur vertical :
zoneplate=ku=512:kv=0:kt2=0:ky2=156:s=wvga:yo=-240:kt=11 -
Génère une zoneplate circulaire :
zoneplate=ku=512:kv=100:kt2=0:ky2=256:kx2=556:s=wvga:yo=0:kt=11
19 Sinks vidéo
Voici la description des sinks vidéo disponibles à ce jour.
19.1 buffersink
Met en tampon les images vidéo, et les rend disponibles en fin de graphe de filtres.
Ce sink est principalement destiné à un usage programmatique, en particulier via l'interface définie dans libavfilter/buffersink.h ou le système d'options.
Il accepte un pointeur vers une structure AVBufferSinkContext, qui définit les formats des tampons entrants, à passer comme paramètre opaque à avfilter_init_filter pour l'initialisation.
19.2 nullsink
Sink vidéo nul : ne fait absolument rien avec la vidéo d'entrée. Il est principalement utile comme modèle et pour une utilisation dans des outils d'analyse / débogage.
20 Filtres multimédias
Voici la description des filtres multimédias disponibles à ce jour.
20.1 a3dscope
Convertit l'audio d'entrée en une sortie vidéo de scope 3D.
Le filtre accepte les options suivantes :
rate, r
Définit la fréquence d'images, exprimée en nombre d'images par seconde. La valeur par défaut est "25".
size, s
Précise la taille vidéo pour la sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est hd720.
fov
Définit le champ de vision de la caméra. La valeur par défaut est 90 degrés. La plage autorisée va de 40 à 150.
roll
Définit le roulis de la caméra.
pitch
Définit le tangage de la caméra.
yaw
Définit le lacet de la caméra.
xzoom
Définit le zoom de la caméra sur l'axe X.
yzoom
Définit le zoom de la caméra sur l'axe Y.
zzoom
Définit le zoom de la caméra sur l'axe Z.
xpos
Définit la position de la caméra sur l'axe X.
ypos
Définit la position de la caméra sur l'axe Y.
zpos
Définit la position de la caméra sur l'axe Z.
length
Définit la longueur des ondes audio affichées, en nombre d'images.
20.1.1 Commandes
Le filtre prend en charge certaines des options ci-dessus en tant que commandes.
20.2 abitscope
Convertit l'audio d'entrée en une sortie vidéo, affichant le bit scope audio.
Le filtre accepte les options suivantes :
rate, r
Définit la fréquence d'images, exprimée en nombre d'images par seconde. La valeur par défaut est "25".
size, s
Précise la taille vidéo pour la sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 1024x256.
colors
Précise une liste de couleurs séparées par un espace ou par ’|’, qui seront utilisées pour dessiner les canaux. Les couleurs non reconnues ou manquantes seront remplacées par la couleur blanche.
mode, m
Définit le mode de sortie. Peut être bars ou trace. La valeur par défaut est bars.
20.3 adrawgraph
Dessine un graphe à l'aide des métadonnées de l'audio d'entrée.
Voir drawgraph
20.4 agraphmonitor
Voir graphmonitor.
20.5 ahistogram
Convertit l'audio d'entrée en une sortie vidéo, affichant l'histogramme de volume.
Le filtre accepte les options suivantes :
dmode
Précise comment l'histogramme est calculé.
Elle accepte les valeurs suivantes :
‘single’
Utilise un seul histogramme pour tous les canaux.
‘separate’
Utilise un histogramme séparé pour chaque canal.
La valeur par défaut est single.
rate, r
Définit la fréquence d'images, exprimée en nombre d'images par seconde. La valeur par défaut est "25".
size, s
Précise la taille vidéo pour la sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est hd720.
scale
Définit l'échelle d'affichage.
Elle accepte les valeurs suivantes :
‘log’
logarithmique
‘sqrt’
racine carrée
‘cbrt’
racine cubique
‘lin’
linéaire
‘rlog’
logarithmique inversée
La valeur par défaut est log.
ascale
Définit l'échelle d'amplitude.
Elle accepte les valeurs suivantes :
‘log’
logarithmique
‘lin’
linéaire
La valeur par défaut est log.
acount
Définit le nombre d'images à accumuler dans l'histogramme. La valeur par défaut est 1. Définir cette valeur à -1 accumule toutes les images.
rheight
Définit le ratio de l'histogramme par rapport à la hauteur de la fenêtre.
slide
Définit le glissement du sonogramme.
Elle accepte les valeurs suivantes :
‘replace’
remplace les anciennes rangées par les nouvelles.
‘scroll’
défile de haut en bas.
La valeur par défaut est replace.
hmode
Définit le mode de l'histogramme.
Elle accepte les valeurs suivantes :
‘abs’
Utilise les valeurs absolues des échantillons.
‘sign’
Utilise les valeurs non modifiées des échantillons.
La valeur par défaut est abs.
20.6 aphasemeter
Mesure la phase de l'audio d'entrée, exportée comme métadonnée lavfi.aphasemeter.phase, qui représente la phase moyenne de l'image audio courante. Une sortie vidéo peut également être produite ; elle est activée par défaut. L'audio est transmis tel quel en tant que première sortie.
L'audio sera reconverti en stéréo si sa disposition des canaux diffère. La valeur de phase est comprise dans l'intervalle [-1, 1], où -1 signifie que les canaux gauche et droit sont totalement en opposition de phase et 1 que les canaux sont en phase.
Le filtre accepte les options suivantes, toutes relatives à sa sortie vidéo :
rate, r
Définit la fréquence d'images de sortie. La valeur par défaut est 25.
size, s
Définit la taille de la vidéo de sortie. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Video size" du manuel ffmpeg-utils. La valeur par défaut est 800x400.
rc gc bc
Indique le contraste des composantes rouge, verte et bleue. Les valeurs par défaut sont respectivement 2, 7 et 1. La plage autorisée est [0, 255].
mpc
Définit la couleur utilisée pour dessiner la phase médiane. Si la couleur vaut none, ce qui est la valeur par défaut, aucune valeur de phase médiane n'est dessinée.
video
Active la sortie vidéo. Activée par défaut.
20.6.1 Détection de l'opposition de phase
Le filtre détecte également les séquences en opposition de phase et les séquences mono dans les flux stéréo. Il journalise le début, la fin et la durée de la séquence lorsqu'elle dure au moins aussi longtemps que le minimum défini.
Le filtre accepte les options suivantes pour cette détection :
phasing
Active la détection mono et opposition de phase. Désactivée par défaut.
tolerance, t
Définit la tolérance de phase pour la détection mono, en rapport d'amplitude. La valeur par défaut est 0. La plage autorisée est [0, 1].
angle, a
Définit le seuil d'angle pour la détection d'opposition de phase, en degrés. La valeur par défaut est 170. La plage autorisée est [90, 180].
duration, d
Définit la durée mono ou en opposition de phase jusqu'à la notification, exprimée en secondes. La valeur par défaut est 2.
20.6.2 Exemples
- Exemple complet avec
ffmpegpour détecter 1 seconde de mono avec une tolérance de phase de 0.001 :ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
20.7 avectorscope
Convertit l'audio d'entrée en une sortie vidéo représentant le vectorscope audio.
Ce filtre sert à mesurer la différence entre les canaux d'un flux audio stéréo. Un signal monophonique, constitué de signaux gauche et droit identiques, donne une ligne verticale droite. Toute séparation stéréo se manifeste par un écart par rapport à cette ligne, créant une figure de Lissajous. Si une ligne droite (ou son écart) mais horizontale apparaît, cela indique que les canaux gauche et droit sont en opposition de phase.
Le filtre accepte les options suivantes :
mode, m
Définit le mode du vectorscope.
Les valeurs disponibles sont :
‘lissajous’
Figure de Lissajous tournée de 45 degrés.
‘lissajous_xy’
Identique à ci-dessus, mais sans rotation.
‘polar’
Forme ressemblant à un demi-cercle.
La valeur par défaut est ‘lissajous’.
size, s
Définit la taille de la vidéo de sortie. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Video size" du manuel ffmpeg-utils. La valeur par défaut est 400x400.
rate, r
Définit la fréquence d'images de sortie. La valeur par défaut est 25.
rc gc bc ac
Indique le contraste des composantes rouge, verte, bleue et alpha. Les valeurs par défaut sont respectivement 40, 160, 80 et 255. La plage autorisée est [0, 255].
rf gf bf af
Indique le fondu des composantes rouge, verte, bleue et alpha. Les valeurs par défaut sont respectivement 15, 10, 5 et 5. La plage autorisée est [0, 255].
zoom
Définit le facteur de zoom. La valeur par défaut est 1. La plage autorisée est [0, 10]. Toute valeur inférieure à 1 ajuste automatiquement le facteur de zoom à la valeur maximale possible.
draw
Définit le mode de dessin du vectorscope.
Les valeurs disponibles sont :
‘dot’
Dessine un point pour chaque échantillon.
‘line’
Dessine une ligne entre l'échantillon précédent et l'échantillon courant.
‘aaline’
Dessine une ligne anticrénelée entre l'échantillon précédent et l'échantillon courant.
La valeur par défaut est ‘dot’.
scale
Indique l'échelle d'amplitude des échantillons audio.
Les valeurs disponibles sont :
‘lin’
Linéaire.
‘sqrt’
Racine carrée.
‘cbrt’
Racine cubique.
‘log’
Logarithmique.
swap
Permute l'axe du canal gauche avec l'axe du canal droit.
mirror
Applique un effet miroir sur l'axe.
‘none’
Aucun effet miroir.
‘x’
Applique l'effet miroir uniquement sur l'axe x.
‘y’
Applique l'effet miroir uniquement sur l'axe y.
‘xy’
Applique l'effet miroir sur les deux axes.
20.7.1 Exemples
- Exemple complet utilisant
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 Commandes
Ce filtre prend en charge toutes les options ci-dessus en tant que commandes, à l'exception des options size et rate.
20.8 bench, abench
Mesure les performances d'une partie d'un filtergraph.
Le filtre accepte les options suivantes :
action
Démarre ou arrête un chronomètre.
Les valeurs disponibles sont :
‘start’
Récupère l'heure actuelle, la définit comme métadonnée de l'image (via la clé lavfi.bench.start_time), puis transmet l'image au filtre suivant.
‘stop’
Récupère l'heure actuelle et extrait la métadonnée lavfi.bench.start_time des métadonnées de l'image d'entrée afin d'obtenir l'écart de temps. L'écart de temps, la moyenne, le maximum et le minimum (respectivement t, avg, max et min) sont ensuite affichés. Les horodatages sont exprimés en secondes.
20.8.1 Exemples
- Test de performance du filtre selectivecolor :
bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
20.9 concat
Concatène des flux audio et vidéo en les enchaînant les uns après les autres.
Le filtre opère sur des segments de flux vidéo et audio synchronisés. Tous les segments doivent avoir le même nombre de flux de chaque type, ce qui correspondra également au nombre de flux en sortie.
Le filtre accepte les options suivantes :
n
Définit le nombre de segments. La valeur par défaut est 2.
v
Définit le nombre de flux vidéo en sortie, qui correspond aussi au nombre de flux vidéo dans chaque segment. La valeur par défaut est 1.
a
Définit le nombre de flux audio en sortie, qui correspond aussi au nombre de flux audio dans chaque segment. La valeur par défaut est 0.
unsafe
Active le mode non sécurisé : n'échoue pas si les segments ont un format différent.
Le filtre possède v+a sorties : d'abord v sorties vidéo, puis a sorties audio.
Il y a nx(v+a) entrées : d'abord les entrées du premier segment, dans le même ordre que les sorties, puis les entrées du deuxième segment, etc.
Des flux liés n'ont pas toujours exactement la même durée, pour diverses raisons telles que la taille d'image du codec ou un montage peu soigné. C'est pourquoi des flux synchronisés liés (par exemple une vidéo et sa piste audio) doivent être concaténés en une seule fois. Le filtre concat utilise la durée du flux le plus long de chaque segment (à l'exception du dernier) et, si nécessaire, complète les flux audio plus courts par du silence.
Pour que ce filtre fonctionne correctement, tous les segments doivent commencer à l'horodatage 0.
Tous les flux correspondants doivent avoir les mêmes paramètres dans tous les segments ; le système de filtrage sélectionne automatiquement un pixel format commun pour les flux vidéo, ainsi qu'un sample format, une fréquence d'échantillonnage et une disposition des canaux communs pour les flux audio, mais les autres réglages, comme la résolution, doivent être convertis explicitement par l'utilisateur.
Des fréquences d'images différentes sont acceptées mais entraîneront une fréquence d'images variable en sortie ; veillez à configurer le fichier de sortie pour qu'il puisse le gérer.
20.9.1 Exemples
-
Concatène un générique de début, un épisode et un générique de fin, tous en version bilingue (vidéo dans le flux 0, audio dans les flux 1 et 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 -
Concatène deux parties en traitant l'audio et la vidéo séparément, à l'aide des sources (a)movie, tout en ajustant la résolution :
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]
Notez qu'un désynchronisme se produira à la jonction si les flux audio et vidéo n'ont pas exactement la même durée dans le premier fichier.
20.9.2 Commandes
Ce filtre prend en charge les commandes suivantes :
next
Ferme le segment courant et passe au suivant
20.10 ebur128
Filtre d'analyse EBU R128. Ce filtre prend un flux audio et analyse son niveau de sonie. Par défaut, il journalise un message à une fréquence de 10Hz avec la sonie momentanée (identifiée par M), la sonie à court terme (S), la sonie intégrée (I) et la plage de sonie (LRA).
Ce filtre ne peut analyser que les flux dont le sample format est à virgule flottante double précision. Le flux d'entrée est converti vers cette spécification si nécessaire. Il peut être nécessaire d'insérer des filtres aformat et/ou aresample après ce filtre pour retrouver les paramètres d'origine.
Le filtre dispose également d'une sortie vidéo (voir l'option video) avec un graphique en temps réel permettant d'observer l'évolution de la sonie. Le graphique contient le message journalisé mentionné ci-dessus, qui n'est donc plus affiché lorsque cette option est activée, sauf si la journalisation détaillée est activée. La zone de graphique principale affiche la sonie à court terme (3 secondes d'analyse), et la jauge de droite indique la sonie momentanée (400 millisecondes), mais peut être configurée pour afficher à la place la sonie à court terme (voir gauge).
La zone verte délimite une plage cible de +/- 1LU autour de la sonie cible (-23LUFS par défaut, sauf modification via target).
Plus d'informations sur la recommandation EBU R128 relative à la sonie sur http://tech.ebu.ch/loudness.
Le filtre accepte les options suivantes :
video
Active la sortie vidéo. Le flux audio est transmis inchangé que cette option soit activée ou non. Le flux vidéo devient le premier flux de sortie si elle est activée. La valeur par défaut est 0.
size
Définit la taille de la vidéo. Cette option concerne uniquement la vidéo. Pour la syntaxe de cette option, consultez (ffmpeg-utils) section "Video size" du manuel ffmpeg-utils. La résolution par défaut et minimale est 640x480.
meter
Définit l'échelle du vumètre EBU. La valeur par défaut est 9. Les valeurs courantes sont 9 et 18, respectivement pour l'échelle EBU +9 et l'échelle EBU +18. Toute autre valeur entière comprise dans cette plage est autorisée.
metadata
Définit l'injection de métadonnées. Si la valeur est 1, l'entrée audio est segmentée en images de sortie de 100ms, chacune contenant diverses informations de sonie dans ses métadonnées. Toutes les clés de métadonnées sont préfixées par lavfi.r128..
La valeur par défaut est 0.
framelog
Force le niveau de journalisation par image.
Les valeurs disponibles sont :
‘quiet’
journalisation désactivée
‘info’
niveau de journalisation informatif
‘verbose’
niveau de journalisation détaillé
Par défaut, le niveau de journalisation est réglé sur info. Si les options video ou metadata sont activées, il passe à verbose.
peak
Définit le ou les modes de crête.
Les modes disponibles peuvent être cumulés (l'option est de type flag). Les valeurs possibles sont :
‘none’
Désactive tout mode de crête (valeur par défaut).
‘sample’
Active le mode de crête par échantillon.
Mode de crête simple recherchant la valeur d'échantillon la plus élevée. Il journalise un message pour la crête par échantillon (identifiée par SPK).
‘true’
Active le mode true-peak.
Si ce mode est activé, la recherche de crête s'effectue sur une version suréchantillonnée du flux d'entrée pour une meilleure précision de crête. Il journalise un message pour la crête true-peak (identifiée par TPK) ainsi que la crête true-peak par image (identifiée par FTPK). Ce mode nécessite une compilation avec libswresample.
dualmono
Traite les fichiers d'entrée mono comme du "dual mono". Si un fichier mono est destiné à être lu sur un système stéréo, sa mesure EBU R128 sera perceptuellement incorrecte. Si la valeur est true, cette option compense cet effet. Les fichiers d'entrée multicanaux ne sont pas affectés par cette option.
panlaw
Définit une loi de panoramique spécifique à utiliser pour la mesure des fichiers dual mono. Ce paramètre est optionnel et a pour valeur par défaut -3.01dB.
target
Définit un niveau cible spécifique (en LUFS) utilisé comme zéro relatif dans la visualisation. Ce paramètre est optionnel et a pour valeur par défaut -23LUFS, comme spécifié par l'EBU R128. Cependant, les contenus publiés en ligne peuvent privilégier un niveau de -16LUFS (par exemple pour les podcasts ou les plateformes vidéo).
gauge
Définit la valeur affichée par la jauge. Les valeurs valides sont momentary et shortterm. Par défaut, la valeur momentanée est utilisée, mais dans certains cas il peut être plus utile d'observer la valeur à court terme (par exemple pour un mixage en direct).
scale
Définit l'échelle d'affichage de la sonie. Les paramètres valides sont absolute (en LUFS) ou relative (en LU) par rapport à la cible. Cela n'affecte que la sortie vidéo, pas le résumé ni la sortie de journal continue.
integrated
Valeur exportée en lecture seule pour la sonie intégrée mesurée, en LUFS.
range
Valeur exportée en lecture seule pour la plage de sonie mesurée, en LU.
lra_low
Valeur exportée en lecture seule pour la borne basse de LRA mesurée, en LUFS.
lra_high
Valeur exportée en lecture seule pour la borne haute de LRA mesurée, en LUFS.
sample_peak
Valeur exportée en lecture seule pour la crête par échantillon mesurée, en dBFS.
true_peak
Valeur exportée en lecture seule pour la crête true peak mesurée, en dBFS.
20.10.1 Exemples
-
Graphique en temps réel avec
ffplay, avec une échelle EBU +18 :ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]" -
Effectue une analyse avec
ffmpeg:ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
20.11 interleave, ainterleave
Entrelace temporellement les images de plusieurs entrées.
interleave fonctionne avec des entrées vidéo, ainterleave avec de l'audio.
Ces filtres lisent les images de plusieurs entrées et envoient en sortie l'image la plus ancienne de la file.
Les flux d'entrée doivent avoir des valeurs d'horodatage d'image bien définies, croissant de manière monotone.
Pour transmettre une image en sortie, ces filtres doivent mettre en file au moins une image pour chaque entrée ; ils ne peuvent donc pas fonctionner si une entrée n'est pas encore terminée et ne reçoit plus d'images entrantes.
Prenons par exemple le cas où une entrée est un filtre select qui rejette systématiquement les images d'entrée. Le filtre interleave continue de lire cette entrée, mais il ne pourra jamais envoyer de nouvelles images en sortie tant que l'entrée n'a pas émis un signal de fin de flux.
De plus, selon la synchronisation des entrées, les filtres rejettent des images si une entrée reçoit plus d'images que les autres et que la file est déjà pleine.
Ces filtres acceptent les options suivantes :
nb_inputs, n
Définit le nombre d'entrées différentes ; la valeur par défaut est 2.
duration
Détermine comment identifier la fin de flux.
longest
La durée de l'entrée la plus longue. (par défaut)
shortest
La durée de l'entrée la plus courte.
first
La durée de la première entrée.
20.11.1 Exemples
-
Entrelace des images appartenant à des flux différents avec
ffmpeg:ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi -
Ajoute un effet de flou scintillant :
select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
20.12 latency, alatency
Mesure la latence de filtrage.
Indique la latence de filtrage du filtre précédent, exprimée en nombre d'échantillons audio pour les filtres audio ou en nombre d'images vidéo pour les filtres vidéo.
À la fin du flux d'entrée, le filtre indique la latence minimale et maximale mesurée pour le filtre précédent en cours d'exécution dans le filtergraph.
20.13 metadata, ametadata
Manipule les métadonnées d'image.
Ce filtre accepte les options suivantes :
mode
Définit le mode de fonctionnement du filtre.
Peut prendre l'une des valeurs suivantes :
‘select’
Si value et key sont tous deux définis, sélectionne les images possédant cette métadonnée. Si seul key est défini, sélectionne toute image possédant cette clé dans ses métadonnées.
‘add’
Ajoute une nouvelle métadonnée key et value. Si la clé existe déjà, ne fait rien.
‘modify’
Modifie la valeur d'une clé déjà présente.
‘delete’
Si value est défini, supprime uniquement les clés ayant cette valeur. Sinon, supprime la clé. Si key n'est pas défini, supprime toutes les valeurs de métadonnées de l'image.
‘print’
Affiche la clé et sa valeur si la métadonnée a été trouvée. Si key n'est pas défini, affiche toutes les valeurs de métadonnées disponibles dans l'image.
key
Définit la clé utilisée avec tous les modes. Doit être définie pour tous les modes sauf print et delete.
value
Définit la valeur de métadonnée à utiliser. Cette option est obligatoire pour les modes modify et add.
function
Indique la fonction à utiliser pour comparer la valeur de métadonnée et value.
Peut être l'une des suivantes :
‘same_str’
Les valeurs sont interprétées comme des chaînes ; renvoie vrai si la valeur de métadonnée est identique à value.
‘starts_with’
Les valeurs sont interprétées comme des chaînes ; renvoie vrai si la valeur de métadonnée commence par la chaîne de l'option value.
‘less’
Les valeurs sont interprétées comme des flottants ; renvoie vrai si la valeur de métadonnée est inférieure à value.
‘equal’
Les valeurs sont interprétées comme des flottants ; renvoie vrai si value est égal à la valeur de métadonnée.
‘greater’
Les valeurs sont interprétées comme des flottants ; renvoie vrai si la valeur de métadonnée est supérieure à value.
‘expr’
Les valeurs sont interprétées comme des flottants ; renvoie vrai si l'expression de l'option expr s'évalue à vrai.
‘ends_with’
Les valeurs sont interprétées comme des chaînes ; renvoie vrai si la valeur de métadonnée se termine par la chaîne de l'option value.
expr
Définit l'expression utilisée lorsque function vaut expr. L'expression est évaluée via l'API eval et peut contenir les constantes suivantes :
VALUE1, FRAMEVAL
Représentation flottante de value issue de la clé de métadonnée.
VALUE2, USERVAL
Représentation flottante de value telle que fournie par l'utilisateur dans l'option value.
file
Si spécifié en mode print, la sortie est écrite dans le fichier nommé. Au lieu d'un simple nom de fichier, toute URL accessible en écriture peut être indiquée. Le nom de fichier “-” est un raccourci pour la sortie standard. Si l'option file n'est pas définie, la sortie est écrite dans le journal avec le niveau AV_LOG_INFO.
direct
Réduit la mise en tampon en mode print lorsque la sortie est écrite vers une URL définie via file.
20.13.1 Exemples
-
Affiche toutes les valeurs de métadonnées des images pour la clé
lavfi.signalstats.YDIFavec des valeurs comprises entre 0 et 1.signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)' -
Affiche la sortie de silencedetect dans le fichier metadata.txt.
silencedetect,ametadata=mode=print:file=metadata.txt -
Dirige toutes les métadonnées vers un tube avec le descripteur de fichier 4.
metadata=mode=print:file='pipe\:4'
20.14 perms, aperms
Définit les permissions de lecture/écriture pour les images de sortie.
Ces filtres s'adressent principalement aux développeurs, pour tester le chemin direct dans le filtre suivant du filtergraph.
Les filtres acceptent les options suivantes :
mode
Sélectionne le mode de permissions.
Il accepte les valeurs suivantes :
‘none’
Ne fait rien. Il s'agit du comportement par défaut.
‘ro’
Rend toutes les images de sortie en lecture seule.
‘rw’
Rend toutes les images de sortie directement inscriptibles.
‘toggle’
Rend l'image en lecture seule si elle est inscriptible, et inscriptible si elle est en lecture seule.
‘random’
Rend chaque image de sortie en lecture seule ou inscriptible de manière aléatoire.
seed
Définit la graine pour le mode aléatoire ; doit être un entier compris entre 0 et UINT32_MAX. Si elle n'est pas spécifiée, ou si elle est explicitement définie à -1, le filtre s'efforce d'utiliser une bonne graine aléatoire.
Remarque : en cas de filtre inséré automatiquement entre le filtre de permissions et le suivant, la permission risque de ne pas être reçue comme prévu dans ce filtre suivant. Insérer un filtre format ou aformat avant le filtre perms/aperms permet d'éviter ce problème.
20.15 realtime, arealtime
Ralentit le filtrage pour approcher le temps réel.
Ces filtres suspendent le filtrage pendant une durée variable afin d'aligner le débit de sortie sur les horodatages d'entrée. Ils sont similaires à l'option re de ffmpeg.
Ils acceptent les options suivantes :
limit
Limite de temps pour les pauses. Toute pause plus longue est considérée comme une discontinuité d'horodatage et réinitialise le chronomètre. La valeur par défaut est 2 secondes.
speed
Facteur de vitesse pour le traitement. La valeur doit être un flottant supérieur à zéro. Des valeurs supérieures à 1.0 accélèrent le traitement au-delà du temps réel, des valeurs plus petites le ralentissent. La limite s'adapte automatiquement en conséquence. La valeur par défaut est 1.0.
Il n'est pas possible d'atteindre une vitesse de traitement supérieure à celle possible sans ces filtres.
20.15.1 Commandes
Les deux filtres prennent en charge toutes les options ci-dessus en tant que commandes.
20.16 segment, asegment
Divise un unique flux d'entrée en plusieurs flux.
Ce filtre effectue l'opération inverse des filtres concat.
segment opère sur des images vidéo, asegment sur des échantillons audio.
Ce filtre accepte les options suivantes :
timestamps
Horodatages des segments de sortie séparés par ’|’. Le premier segment démarre au début du flux d'entrée. Le dernier segment se poursuit jusqu'à la fin du flux d'entrée
frames, samples
Nombre exact d'images/échantillons pour diviser les segments.
Dans tous les cas, préfixer chaque segment par ’+’ le rend relatif au segment précédent.
20.16.1 Exemples
- Divise le flux audio d'entrée en trois flux audio de sortie, en commençant au début du flux d'entrée et en le stockant dans le 1er flux audio de sortie, en poursuivant à la 60e seconde et en le stockant dans le 2e flux audio de sortie, et enfin après la 150e seconde du flux audio d'entrée en le stockant dans le 3e flux audio de sortie :
asegment=timestamps="60|150"
20.17 select, aselect
Sélectionne les images à faire passer en sortie.
Ce filtre accepte les options suivantes :
expr, e
Définit l'expression évaluée pour chaque image d'entrée.
Si l'expression s'évalue à zéro, l'image est rejetée.
Si le résultat de l'évaluation est négatif ou NaN, l'image est envoyée vers la première sortie ; sinon elle est envoyée vers la sortie d'indice ceil(val)-1, en supposant que l'indice d'entrée commence à 0.
Par exemple, une valeur de 1.2 correspond à la sortie d'indice ceil(1.2)-1 = 2-1 = 1, c'est-à-dire la deuxième sortie.
outputs, n
Définit le nombre de sorties. La sortie vers laquelle envoyer l'image sélectionnée dépend du résultat de l'évaluation. La valeur par défaut est 1.
L'expression peut contenir les constantes suivantes :
n
Le numéro (séquentiel) de l'image filtrée, à partir de 0.
selected_n
Le numéro (séquentiel) de l'image sélectionnée, à partir de 0.
prev_selected_n
Le numéro séquentiel de la dernière image sélectionnée. Vaut NAN si non défini.
TB
La base de temps des horodatages d'entrée.
pts
Le PTS (Presentation TimeStamp) de l'image filtrée, exprimé en unités TB. Vaut NAN si non défini.
t
Le PTS de l'image filtrée, exprimé en secondes. Vaut NAN si non défini.
prev_pts
Le PTS de l'image filtrée précédente. Vaut NAN si non défini.
prev_selected_pts
Le PTS de la dernière image filtrée précédemment. Vaut NAN si non défini.
prev_selected_t
Le PTS de la dernière image sélectionnée précédemment, exprimé en secondes. Vaut NAN si non défini.
start_pts
Le premier PTS du flux qui n'est pas NAN. Reste NAN si aucun n'est trouvé.
start_t
Le premier PTS, en secondes, du flux qui n'est pas NAN. Reste NAN si aucun n'est trouvé.
pict_type (vidéo uniquement)
Le type de l'image filtrée. Il peut prendre l'une des valeurs suivantes :
I P B S SI SP BI interlace_type (vidéo uniquement)
Le type d'entrelacement de l'image. Il peut prendre l'une des valeurs suivantes :
PROGRESSIVE
L'image est progressive (non entrelacée).
TOPFIRST
L'image est top-field-first.
BOTTOMFIRST
L'image est bottom-field-first.
consumed_sample_n (audio uniquement)
le nombre d'échantillons sélectionnés avant l'image courante
samples_n (audio uniquement)
le nombre d'échantillons dans l'image courante
sample_rate (audio uniquement)
la fréquence d'échantillonnage d'entrée
key
Vaut 1 si l'image filtrée est une keyframe, 0 sinon.
pos
la position dans le fichier de l'image filtrée, -1 si l'information n'est pas disponible (par exemple pour une vidéo synthétique) ; obsolète, à ne pas utiliser
scene (vidéo uniquement)
valeur comprise entre 0 et 1 indiquant une nouvelle scène ; une valeur faible reflète une faible probabilité que l'image courante introduise une nouvelle scène, tandis qu'une valeur plus élevée signifie que l'image courante en est probablement une (voir l'exemple ci-dessous)
concatdec_select
Le demuxer concat peut ne sélectionner qu'une partie d'un fichier d'entrée concat en définissant un point d'entrée et un point de sortie, mais les paquets de sortie peuvent ne pas être entièrement contenus dans l'intervalle sélectionné. Cette variable permet de sauter les images générées par le demuxer concat qui ne sont pas exactement contenues dans l'intervalle sélectionné.
Cela fonctionne en comparant le pts de l'image aux valeurs de métadonnées de paquet lavf.concat.start_time et lavf.concat.duration, également présentes dans les images décodées.
La variable concatdec_select vaut -1 si le pts de l'image est au moins égal à start_time et que soit la métadonnée duration est absente, soit le pts de l'image est inférieur à start_time + duration, 0 sinon, et NaN si la métadonnée start_time est absente.
Cela signifie essentiellement qu'une image d'entrée est sélectionnée si son pts se situe dans l'intervalle défini par le demuxer concat.
iw (vidéo uniquement)
Représente la largeur de l'image vidéo d'entrée.
ih (vidéo uniquement)
Représente la hauteur de l'image vidéo d'entrée.
view (vidéo uniquement)
Identifiant de vue pour la vidéo multi-vue.
La valeur par défaut de l'expression select est "1".
20.17.1 Exemples
- Sélectionne toutes les images en entrée :
select
L'exemple ci-dessus est identique à :
select=1
-
Ignore toutes les images :
select=0 -
Sélectionne uniquement les images I :
select='eq(pict_type\,I)' -
Sélectionne une image sur 100 :
select='not(mod(n\,100))' -
Sélectionne uniquement les images comprises dans l'intervalle de temps 10-20 :
select=between(t\,10\,20) -
Sélectionne uniquement les images I comprises dans l'intervalle de temps 10-20 :
select=between(t\,10\,20)*eq(pict_type\,I) -
Sélectionne les images avec une distance minimale de 10 secondes :
select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)' -
Utilise aselect pour ne sélectionner que les images audio dont le nombre d'échantillons est supérieur à 100 :
aselect='gt(samples_n\,100)' -
Crée une mosaïque des premières scènes :
ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
Comparer scene à une valeur comprise entre 0.3 et 0.5 est en général un choix raisonnable.
- Envoie les images paires et impaires vers des sorties séparées, puis les compose :
select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
Sélectionne les images utiles d'un fichier ffconcat qui utilise inpoints et outpoints, mais dont les fichiers source ne sont pas exclusivement composés d'images 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
Envoie des commandes aux filtres du filtergraph.
Ces filtres lisent des commandes à envoyer aux autres filtres du filtergraph.
sendcmd doit être inséré entre deux filtres vidéo, asendcmd doit être inséré entre deux filtres audio, mais en dehors de cela ils se comportent de la même manière.
La spécification des commandes peut être fournie dans les arguments du filtre avec l'option commands, ou dans un fichier indiqué par l'option filename.
Ces filtres acceptent les options suivantes :
commands, c
Définit les commandes à lire et à envoyer aux autres filtres.
filename, f
Définit le nom du fichier contenant les commandes à lire et à envoyer aux autres filtres.
20.18.1 Syntaxe des commandes
Une description de commandes se compose d'une séquence de spécifications d'intervalle, comprenant une liste de commandes à exécuter lorsqu'un événement particulier lié à cet intervalle se produit. L'événement qui se produit correspond généralement au moment où l'heure de l'image courante entre dans un intervalle de temps donné ou en sort.
Un intervalle est indiqué avec la syntaxe suivante :
START[-END] COMMANDS;
L'intervalle de temps est indiqué par les heures START et END. END est facultatif et vaut par défaut l'heure maximale.
L'heure de l'image courante est considérée comme comprise dans l'intervalle indiqué si elle appartient à l'intervalle [START, END), c'est-à-dire lorsque l'heure est supérieure ou égale à START et inférieure à END.
COMMANDS se compose d'une séquence d'une ou plusieurs spécifications de commande, séparées par ",", relatives à cet intervalle. La syntaxe d'une spécification de commande est la suivante :
[FLAGS] TARGET COMMAND ARG
FLAGS est facultatif et indique le type d'événements liés à l'intervalle de temps qui permettent l'envoi de la commande indiquée, et doit être une séquence non vide d'indicateurs identifiants séparés par "+" ou "|" et placés entre "[" et "]".
Les indicateurs reconnus sont les suivants :
enter
La commande est envoyée lorsque l'horodatage de l'image courante entre dans l'intervalle indiqué. Autrement dit, la commande est envoyée lorsque l'horodatage de l'image précédente n'était pas dans l'intervalle donné et que celui de l'image courante l'est.
leave
La commande est envoyée lorsque l'horodatage de l'image courante sort de l'intervalle indiqué. Autrement dit, la commande est envoyée lorsque l'horodatage de l'image précédente était dans l'intervalle donné et que celui de l'image courante ne l'est plus.
expr
L'ARG de la commande est interprété comme une expression, et le résultat de cette expression est transmis en tant qu'ARG.
L'expression est évaluée par l'API eval et peut contenir les constantes suivantes :
POS
Position d'origine de l'image dans le fichier, ou undefined si elle n'est pas définie pour l'image courante. Obsolète, à ne pas utiliser.
PTS
Le presentation timestamp en entrée.
N
Le nombre de l'image d'entrée pour la vidéo ou l'audio, à partir de 0.
T
L'heure en secondes de l'image courante.
TS
L'heure de début, en secondes, de l'intervalle de commande courant.
TE
L'heure de fin, en secondes, de l'intervalle de commande courant.
TI
L'heure interpolée de l'intervalle de commande courant, TI = (T - TS) / (TE - TS).
W
La largeur de l'image vidéo.
H
La hauteur de l'image vidéo.
Si FLAGS n'est pas indiqué, une valeur par défaut de [enter] est supposée.
TARGET indique la cible de la commande, généralement le nom de la classe de filtre ou le nom d'une instance de filtre particulière.
COMMAND indique le nom de la commande pour le filtre cible.
ARG est facultatif et indique la liste facultative d'arguments pour la COMMAND donnée.
Entre deux spécifications d'intervalle, les espaces, ou les séquences de caractères commençant par # jusqu'à la fin de la ligne, sont ignorés et peuvent servir à annoter des commentaires.
Voici une description BNF simplifiée de la syntaxe de spécification des commandes :
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 Exemples
-
Indique un changement de tempo audio à la 4e seconde :
asendcmd=c='4.0 atempo tempo 1.5',atempo -
Cible une instance de filtre particulière :
asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my -
Indique une liste de commandes drawtext et hue dans un fichier.
# 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 permettant de lire et traiter la liste de commandes ci-dessus, stockée dans un fichier test.cmd, peut être indiqué avec :
sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
20.19 setpts, asetpts
Modifie le PTS (presentation timestamp) des images en entrée.
setpts fonctionne sur les images vidéo, asetpts sur les images audio.
Ce filtre accepte les options suivantes :
expr
L'expression évaluée pour chaque image afin de construire son horodatage.
strip_fps (vidéo uniquement)
Option booléenne qui détermine si les métadonnées de fréquence d'images et de durée d'image d'origine sont désactivées. Si elle est définie à true, notez qu'il convient d'indiquer explicitement une fréquence d'images raisonnable si la sortie est envoyée vers un muxer à fréquence d'images constante. La valeur par défaut est false.
L'expression est évaluée par l'API eval et peut contenir les constantes suivantes :
FRAME_RATE, FR
fréquence d'images, définie uniquement pour une vidéo à fréquence d'images constante
PTS
Le presentation timestamp en entrée
N
Le nombre de l'image d'entrée pour la vidéo, ou le nombre d'échantillons consommés, sans compter l'image courante pour l'audio, à partir de 0.
NB_CONSUMED_SAMPLES
Le nombre d'échantillons consommés, sans compter l'image courante (audio uniquement)
NB_SAMPLES, S
Le nombre d'échantillons dans l'image courante (audio uniquement)
SAMPLE_RATE, SR
La fréquence d'échantillonnage audio.
STARTPTS
Le PTS de la première image.
STARTT
l'heure en secondes de la première image
INTERLACED
Indique si l'image courante est entrelacée.
T
l'heure en secondes de l'image courante
POS
position d'origine de l'image dans le fichier, ou undefined si elle n'est pas définie pour l'image courante ; obsolète, à ne pas utiliser
PREV_INPTS
Le PTS d'entrée précédent.
PREV_INT
heure d'entrée précédente en secondes
PREV_OUTPTS
Le PTS de sortie précédent.
PREV_OUTT
heure de sortie précédente en secondes
RTCTIME
L'heure de l'horloge murale (RTC), en microsecondes. Ceci est obsolète, utilisez time(0) à la place.
RTCSTART
L'heure de l'horloge murale (RTC) au début du film, en microsecondes.
TB
La base de temps des horodatages en entrée.
T_CHANGE
Heure de la première image après application de la commande, ou heure de la première image en l'absence de commande.
20.19.1 Exemples
-
Démarre le comptage du PTS à partir de zéro
setpts=PTS-STARTPTS -
Applique un effet d'accéléré :
setpts=0.5*PTS -
Applique un effet de ralenti :
setpts=2.0*PTS -
Définit un débit fixe de 25 images par seconde :
setpts=N/(25*TB) -
Applique un effet de gigue aléatoire de +/-100 unités TB :
setpts=PTS+randomi(0, -100\,100) -
Définit un débit fixe de 25 fps avec un peu de gigue :
setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))' -
Applique un décalage de 10 secondes au PTS d'entrée :
setpts=PTS+10/TB -
Génère des horodatages à partir d'une "live source" et les recale sur la base de temps courante :
setpts='(RTCTIME - RTCSTART) / (TB * 1000000)' -
Génère des horodatages en comptant les échantillons :
asetpts=N/SR/TB
20.19.2 Commandes
Les deux filtres prennent en charge toutes les options ci-dessus en tant que commandes.
20.20 setrange
Force la plage de couleurs pour l'image vidéo de sortie.
Le filtre setrange marque la propriété de plage de couleurs pour les images de sortie. Il ne modifie pas l'image d'entrée, mais définit uniquement la propriété correspondante, ce qui affecte la façon dont l'image est traitée par les filtres suivants.
Le filtre accepte les options suivantes :
range
Les valeurs disponibles sont :
‘auto’
Conserve la même propriété de plage de couleurs.
‘unspecified, unknown’
Définit la plage de couleurs sur unspecified.
‘limited, tv, mpeg’
Définit la plage de couleurs sur limited.
‘full, pc, jpeg’
Définit la plage de couleurs sur full.
20.21 settb, asettb
Définit la base de temps à utiliser pour les horodatages des images de sortie. Il est surtout utile pour tester la configuration de la base de temps.
Il accepte les paramètres suivants :
expr, tb
L'expression évaluée pour obtenir la base de temps de sortie.
La valeur de tb est une expression arithmétique représentant un rationnel. L'expression peut contenir les constantes "AVTB" (la base de temps par défaut), "intb" (la base de temps d'entrée) et "sr" (la fréquence d'échantillonnage, audio uniquement). La valeur par défaut est "intb".
20.21.1 Exemples
-
Définit la base de temps à 1/25 :
settb=expr=1/25 -
Définit la base de temps à 1/10 :
settb=expr=0.1 -
Définit la base de temps à 1001/1000 :
settb=1+0.001 -
Définit la base de temps à 2*intb :
settb=2*intb -
Définit la valeur par défaut de la base de temps :
settb=AVTB
20.22 showcqt
Convertit l'audio d'entrée en une sortie vidéo représentant le spectre de fréquences de façon logarithmique à l'aide de l'algorithme de transformée à Q constant de Brown-Puckette avec calcul direct des coefficients dans le domaine fréquentiel (mais la transformée elle-même n'est pas vraiment à Q constant, le facteur Q étant en réalité variable/limité), avec une échelle de tons musicaux, de E0 à D#10.
Le filtre accepte les options suivantes :
size, s
Indique la taille vidéo de la sortie. Elle doit être paire. Pour la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils. La valeur par défaut est 1920x1080.
fps, rate, r
Définit la fréquence d'images de sortie. La valeur par défaut est 25.
bar_h
Définit la hauteur du bargraph. Elle doit être paire. La valeur par défaut est -1, qui calcule automatiquement la hauteur du bargraph.
axis_h
Définit la hauteur de l'axe. Elle doit être paire. La valeur par défaut est -1, qui calcule automatiquement la hauteur de l'axe.
sono_h
Définit la hauteur du sonogramme. Elle doit être paire. La valeur par défaut est -1, qui calcule automatiquement la hauteur du sonogramme.
fullhd
Définit la résolution fullhd. Cette option est obsolète, utilisez size, s à la place. La valeur par défaut est 1.
sono_v, volume
Indique l'expression du volume du sonogramme. Elle peut contenir les variables suivantes :
bar_v
l'expression évaluée de bar_v
frequency, freq, f
la fréquence à laquelle elle est évaluée
timeclamp, tc
la valeur de l'option timeclamp
ainsi que les fonctions suivantes :
a_weighting(f)
pondération A d'égale sonie
b_weighting(f)
pondération B d'égale sonie
c_weighting(f)
pondération C d'égale sonie.
La valeur par défaut est 16.
bar_v, volume2
Indique l'expression du volume du bargraph. Elle peut contenir les variables suivantes :
sono_v
l'expression évaluée de sono_v
frequency, freq, f
la fréquence à laquelle elle est évaluée
timeclamp, tc
la valeur de l'option timeclamp
ainsi que les fonctions suivantes :
a_weighting(f)
pondération A d'égale sonie
b_weighting(f)
pondération B d'égale sonie
c_weighting(f)
pondération C d'égale sonie.
La valeur par défaut est sono_v.
sono_g, gamma
Indique le gamma du sonogramme. Un gamma plus faible augmente le contraste du spectre, un gamma plus élevé augmente son étendue. La valeur par défaut est 3. La plage acceptée est [1, 7].
bar_g, gamma2
Indique le gamma du bargraph. La valeur par défaut est 1. La plage acceptée est [1, 7].
bar_t
Indique le niveau de transparence du bargraph. Une valeur plus faible rend le bargraph plus net. La valeur par défaut est 1. La plage acceptée est [0, 1].
timeclamp, tc
Indique le timeclamp de la transformée. À basse fréquence, il existe un compromis entre la précision dans le domaine temporel et dans le domaine fréquentiel. Si timeclamp est plus faible, les événements du domaine temporel sont représentés plus précisément (comme une grosse caisse rapide), sinon les événements du domaine fréquentiel sont représentés plus précisément (comme une guitare basse). La plage acceptée est [0.002, 1]. La valeur par défaut est 0.17.
attack
Définit le temps d'attaque en secondes. La valeur par défaut est 0 (désactivé). Sinon, elle limite les échantillons futurs en appliquant un fenêtrage asymétrique dans le domaine temporel, ce qui est utile lorsqu'une faible latence est requise. La plage acceptée est [0, 1].
basefreq
Indique la fréquence de base de la transformée. La valeur par défaut est 20.01523126408007475, soit une fréquence 50 cents en dessous de E0. La plage acceptée est [10, 100000].
endfreq
Indique la fréquence de fin de la transformée. La valeur par défaut est 20495.59681441799654, soit une fréquence 50 cents au-dessus de D#10. La plage acceptée est [10, 100000].
coeffclamp
Cette option est obsolète et ignorée.
tlength
Indique la longueur de la transformée dans le domaine temporel. Utilisez cette option pour contrôler le compromis de précision entre domaine temporel et domaine fréquentiel à chaque échantillon de fréquence. Elle peut contenir les variables suivantes :
frequency, freq, f
la fréquence à laquelle elle est évaluée
timeclamp, tc
la valeur de l'option timeclamp.
La valeur par défaut est 384*tc/(384+tc*f).
count
Indique le nombre de transformées par image vidéo. La valeur par défaut est 6. La plage acceptée est [1, 30].
fcount
Indique le nombre de transformées par pixel. La valeur par défaut est 0, ce qui le fait calculer automatiquement. La plage acceptée est [0, 10].
fontfile
Indique le fichier de police à utiliser avec freetype pour dessiner l'axe. S'il n'est pas indiqué, la police intégrée est utilisée. Notez que le dessin avec un fichier de police ou une police intégrée n'est pas implémenté avec des basefreq et endfreq personnalisés, utilisez plutôt l'option axisfile.
font
Indique le motif fontconfig. Sa priorité est inférieure à celle de fontfile. Le : dans le motif peut être remplacé par | pour éviter un échappement inutile.
fontcolor
Indique l'expression de la couleur de police. Il s'agit d'une expression arithmétique qui doit renvoyer une valeur entière 0xRRGGBB. Elle peut contenir les variables suivantes :
frequency, freq, f
la fréquence à laquelle elle est évaluée
timeclamp, tc
la valeur de l'option timeclamp
ainsi que les fonctions suivantes :
midi(f)
numéro midi de la fréquence f, quelques numéros midi : E0(16), C1(24), C2(36), A4(69)
r(x), g(x), b(x)
valeur rouge, verte et bleue de l'intensité x.
La valeur par défaut est 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
Indique le fichier image pour dessiner l'axe. Cette option remplace les options fontfile et fontcolor.
axis, text
Active/désactive le dessin du texte sur l'axe. Si elle est définie à 0, le dessin sur l'axe est désactivé, ignorant les options fontfile et axisfile. La valeur par défaut est 1.
csp
Définit l'espace colorimétrique. Les valeurs acceptées sont :
‘unspecified’
Unspecified (par défaut)
‘bt709’
BT.709
‘fcc’
FCC
‘bt470bg’
BT.470BG ou BT.601-6 625
‘smpte170m’
SMPTE-170M ou BT.601-6 525
‘smpte240m’
SMPTE-240M
‘bt2020ncl’
BT.2020 à luminance non constante
cscheme
Définit la palette de couleurs du spectrogramme. Il s'agit d'une liste de valeurs à virgule flottante au format left_r|left_g|left_b|right_r|right_g|right_b. La valeur par défaut est 1|0.5|0|0|0.5|1.
20.22.1 Exemples
-
Lit l'audio tout en affichant le spectre :
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]' -
Identique à l'exemple précédent, mais avec une fréquence d'images de 30 fps :
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]' -
Lecture en 1280x720 :
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]' -
Désactive l'affichage du sonogramme :
sono_h=0 -
A1 et ses harmoniques : A1, A2, (proche 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]' -
Identique à l'exemple précédent, mais avec davantage de précision dans le domaine fréquentiel :
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]' -
Volume personnalisé :
bar_v=10:sono_v=bar_v*a_weighting(f) -
Gamma personnalisé, le spectre est désormais linéaire par rapport à l'amplitude.
bar_g=2:sono_g=2 -
Équation tlength personnalisée :
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 et fontfile personnalisés, la note C est colorée en vert, les autres en bleu :
fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf -
Police personnalisée via fontconfig :
font='Courier New,Monospace,mono|bold' -
Plage de fréquences personnalisée avec un axe personnalisé utilisant un fichier image :
axisfile=myaxis.png:basefreq=40:endfreq=10000
20.23 showcwt
Convertit l'audio d'entrée en une sortie vidéo représentant le spectre de fréquences à l'aide de la transformée en ondelettes continue et de l'ondelette de Morlet.
Le filtre accepte les options suivantes :
size, s
Indique la taille vidéo de la sortie. Pour la syntaxe de cette option, consultez la section "Video size" (ffmpeg-utils) du manuel ffmpeg-utils. La valeur par défaut est 640x512.
rate, r
Définit la fréquence d'images de sortie. La valeur par défaut est 25.
scale
Définit l'échelle de fréquence utilisée. Les valeurs autorisées sont :
linear log bark mel erbs sqrt cbrt qdrt fm
La valeur par défaut est linear.
iscale
Définit l'échelle d'intensité utilisée. Les valeurs autorisées sont :
linear log sqrt cbrt qdrt
La valeur par défaut est log.
min
Définit la fréquence minimale utilisée en sortie. La valeur par défaut est 20 Hz.
max
Définit la fréquence maximale utilisée en sortie. La valeur par défaut est 20000 Hz. La limite supérieure réelle de fréquence dépend de la fréquence d'échantillonnage de l'audio en entrée et est imposée à cette valeur lorsqu'elle est définie au-delà de la fréquence de Nyquist.
imin
Définit l'intensité minimale utilisée en sortie.
imax
Définit l'intensité maximale utilisée en sortie.
logb
Définit la base logarithmique de l'intensité lumineuse lors de la conversion des valeurs d'amplitude calculées en valeurs de pixel. La plage autorisée va de 0 à 1. La valeur par défaut est 0.0001.
deviation
Définit la déviation de fréquence. Des valeurs inférieures à 1 sont davantage orientées fréquence, tandis que des valeurs supérieures à 1 sont davantage orientées temps. La plage autorisée va de 0 à 10. La valeur par défaut est 1.
pps
Définit le nombre de pixels produits par seconde sur une ligne. La plage autorisée va de 1 à 1024. La valeur par défaut est 64.
mode
Définit le mode visuel de sortie. Les valeurs autorisées sont :
magnitude
Affiche l'amplitude.
phase
Affiche uniquement la phase.
magphase
Affiche une combinaison de l'amplitude et de la phase. L'amplitude est associée à la luminosité et la phase à la couleur.
channel
Affiche une couleur unique par amplitude de canal.
stereo
Affiche une couleur unique par différence stéréo.
La valeur par défaut est magnitude.
slide
Définit la méthode de défilement de la sortie. Les valeurs autorisées sont :
replace scroll frame direction
Définit la méthode de direction pour le défilement de la sortie. Les valeurs autorisées sont :
lr
Direction de gauche à droite.
rl
Direction de droite à gauche.
ud
Direction de haut en bas.
du
Direction de bas en haut.
bar
Définit le rapport entre l'affichage du bargraph et la taille de l'affichage. La valeur par défaut est 0.
rotation
Définit la rotation des couleurs, qui doit être comprise dans la plage [-1.0, 1.0]. La valeur par défaut est 0.
20.24 showfreqs
Convertit l'audio d'entrée en une sortie vidéo représentant le spectre de puissance audio. L'amplitude audio est sur l'axe Y, tandis que la fréquence est sur l'axe X.
Le filtre accepte les options suivantes :
size, s
Précise la taille de la vidéo. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 1024x512.
rate, r
Définit la fréquence d'images. La valeur par défaut est 25.
mode
Définit le mode d'affichage. Cela détermine comment chaque bin de fréquence sera représenté.
Elle accepte les valeurs suivantes :
‘line’ ‘bar’ ‘dot’
La valeur par défaut est bar.
ascale
Définit l'échelle d'amplitude.
Elle accepte les valeurs suivantes :
‘lin’
Échelle linéaire.
‘sqrt’
Échelle en racine carrée.
‘cbrt’
Échelle en racine cubique.
‘log’
Échelle logarithmique.
La valeur par défaut est log.
fscale
Définit l'échelle de fréquence.
Elle accepte les valeurs suivantes :
‘lin’
Échelle linéaire.
‘log’
Échelle logarithmique.
‘rlog’
Échelle logarithmique inverse.
La valeur par défaut est lin.
win_size
Définit la taille de la fenêtre. La plage autorisée va de 16 à 65536.
La valeur par défaut est 2048
win_func
Définit la fonction de fenêtrage.
Elle accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hanning.
overlap
Définit le recouvrement de la fenêtre. Dans la plage [0, 1]. La valeur par défaut est 1, ce qui signifie que le recouvrement optimal pour la fonction de fenêtrage sélectionnée sera choisi.
averaging
Définit le lissage temporel. Une valeur de 0 affiche les pics maximaux actuels. La valeur par défaut est 1, ce qui signifie que le lissage temporel est désactivé.
colors
Précise une liste de couleurs séparées par un espace ou par ’|’, qui seront utilisées pour dessiner les fréquences des canaux. Les couleurs non reconnues ou manquantes seront remplacées par la couleur blanche.
cmode
Définit le mode d'affichage des canaux.
Elle accepte les valeurs suivantes :
‘combined’ ‘separate’
La valeur par défaut est combined.
minamp
Définit l'amplitude minimale utilisée par la mise à l'échelle d'amplitude log.
data
Définit le mode d'affichage des données.
Elle accepte les valeurs suivantes :
‘magnitude’ ‘phase’ ‘delay’
La valeur par défaut est magnitude.
channels
Définit les canaux à utiliser lors du traitement de l'audio. Par défaut, tous sont traités.
20.25 showspatial
Convertit l'audio d'entrée stéréo en une sortie vidéo représentant la relation spatiale entre les deux canaux.
Le filtre accepte les options suivantes :
size, s
Précise la taille de la vidéo pour la sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 512x512.
win_size
Définit la taille de la fenêtre. La plage autorisée va de 1024 à 65536. La taille par défaut est 4096.
win_func
Définit la fonction de fenêtrage.
Elle accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hann’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hann.
rate, r
Définit la fréquence d'images de sortie.
20.26 showspectrum
Convertit l'audio d'entrée en une sortie vidéo représentant le spectre de fréquences audio.
Le filtre accepte les options suivantes :
size, s
Précise la taille de la vidéo pour la sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 640x512.
slide
Précise comment le spectre doit défiler le long de la fenêtre.
Elle accepte les valeurs suivantes :
‘replace’
les échantillons recommencent à gauche lorsqu'ils atteignent la droite
‘scroll’
les échantillons défilent de droite à gauche
‘fullframe’
les images ne sont produites que lorsque les échantillons atteignent la droite
‘rscroll’
les échantillons défilent de gauche à droite
‘lreplace’
les échantillons recommencent à droite lorsqu'ils atteignent la gauche
La valeur par défaut est replace.
mode
Précise le mode d'affichage.
Elle accepte les valeurs suivantes :
‘combined’
tous les canaux sont affichés sur la même ligne
‘separate’
tous les canaux sont affichés sur des lignes séparées
La valeur par défaut est ‘combined’.
color
Précise le mode de couleur d'affichage.
Elle accepte les valeurs suivantes :
‘channel’
chaque canal est affiché dans une couleur distincte
‘intensity’
chaque canal est affiché avec le même jeu de couleurs
‘rainbow’
chaque canal est affiché avec le jeu de couleurs rainbow
‘moreland’
chaque canal est affiché avec le jeu de couleurs moreland
‘nebulae’
chaque canal est affiché avec le jeu de couleurs nebulae
‘fire’
chaque canal est affiché avec le jeu de couleurs fire
‘fiery’
chaque canal est affiché avec le jeu de couleurs fiery
‘fruit’
chaque canal est affiché avec le jeu de couleurs fruit
‘cool’
chaque canal est affiché avec le jeu de couleurs cool
‘magma’
chaque canal est affiché avec le jeu de couleurs magma
‘green’
chaque canal est affiché avec le jeu de couleurs green
‘viridis’
chaque canal est affiché avec le jeu de couleurs viridis
‘plasma’
chaque canal est affiché avec le jeu de couleurs plasma
‘cividis’
chaque canal est affiché avec le jeu de couleurs cividis
‘terrain’
chaque canal est affiché avec le jeu de couleurs terrain
La valeur par défaut est ‘channel’.
scale
Précise l'échelle utilisée pour calculer les valeurs de couleur d'intensité.
Elle accepte les valeurs suivantes :
‘lin’
linéaire
‘sqrt’
racine carrée, par défaut
‘cbrt’
racine cubique
‘log’
logarithmique
‘4thrt’
racine quatrième
‘5thrt’
racine cinquième
La valeur par défaut est ‘sqrt’.
fscale
Précise l'échelle de fréquence.
Elle accepte les valeurs suivantes :
‘lin’
linéaire
‘log’
logarithmique
La valeur par défaut est ‘lin’.
saturation
Définit le modificateur de saturation des couleurs affichées. Des valeurs négatives donnent un jeu de couleurs alternatif. 0 correspond à une absence totale de saturation. La saturation doit être comprise dans la plage [-10.0, 10.0]. La valeur par défaut est 1.
win_func
Définit la fonction de fenêtrage.
Elle accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hann’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hann.
orientation
Définit l'orientation de l'axe temps/fréquence. Peut être vertical ou horizontal. La valeur par défaut est vertical.
overlap
Définit le ratio de recouvrement de la fenêtre. La valeur par défaut est 0. Lorsque la valeur est 1, le recouvrement est réglé sur la taille recommandée pour la fonction de fenêtrage en cours d'utilisation.
gain
Définit le gain d'échelle pour le calcul des valeurs de couleur d'intensité. La valeur par défaut est 1.
data
Définit les données à afficher. Peut être magnitude (par défaut), phase, ou la phase déroulée : uphase.
rotation
Définit la rotation de couleur, qui doit être comprise dans la plage [-1.0, 1.0]. La valeur par défaut est 0.
start
Définit la fréquence de départ à partir de laquelle afficher le spectrogramme. La valeur par défaut est 0.
stop
Définit la fréquence de fin jusqu'à laquelle afficher le spectrogramme. La valeur par défaut est 0.
fps
Définit la limite supérieure de la fréquence d'images. La valeur par défaut est auto (illimitée).
legend
Dessine les axes temps et fréquence ainsi que les légendes. Désactivé par défaut.
drange
Définit la plage dynamique utilisée pour calculer les valeurs de couleur d'intensité. La valeur par défaut est 120 dBFS. La plage autorisée va de 10 à 200.
limit
Définit la limite supérieure du volume des échantillons audio d'entrée, en dBFS. La valeur par défaut est 0 dBFS. La plage autorisée va de -100 à 100.
opacity
Définit l'intensité de l'opacité lorsque le pixel format de sortie comporte une composante alpha.
L'utilisation est très proche de celle du filtre showwaves ; consultez les exemples de cette section.
20.26.1 Exemples
-
Fenêtre large avec mise à l'échelle logarithmique des couleurs :
showspectrum=s=1280x480:scale=log -
Exemple complet d'un spectre coloré et défilant par canal à l'aide de
ffplay:ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1]; [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
20.27 showspectrumpic
Convertit l'audio d'entrée en une seule image vidéo représentant le spectre de fréquences audio.
Le filtre accepte les options suivantes :
size, s
Précise la taille de la vidéo pour la sortie. Pour la syntaxe de cette option, consultez la section "Video size" du manuel ffmpeg-utils (ffmpeg-utils). La valeur par défaut est 4096x2048.
mode
Précise le mode d'affichage.
Elle accepte les valeurs suivantes :
‘combined’
tous les canaux sont affichés sur la même ligne
‘separate’
tous les canaux sont affichés sur des lignes séparées
La valeur par défaut est ‘combined’.
color
Précise le mode de couleur d'affichage.
Elle accepte les valeurs suivantes :
‘channel’
chaque canal est affiché dans une couleur distincte
‘intensity’
chaque canal est affiché avec le même jeu de couleurs
‘rainbow’
chaque canal est affiché avec le jeu de couleurs rainbow
‘moreland’
chaque canal est affiché avec le jeu de couleurs moreland
‘nebulae’
chaque canal est affiché avec le jeu de couleurs nebulae
‘fire’
chaque canal est affiché avec le jeu de couleurs fire
‘fiery’
chaque canal est affiché avec le jeu de couleurs fiery
‘fruit’
chaque canal est affiché avec le jeu de couleurs fruit
‘cool’
chaque canal est affiché avec le jeu de couleurs cool
‘magma’
chaque canal est affiché avec le jeu de couleurs magma
‘green’
chaque canal est affiché avec le jeu de couleurs green
‘viridis’
chaque canal est affiché avec le jeu de couleurs viridis
‘plasma’
chaque canal est affiché avec le jeu de couleurs plasma
‘cividis’
chaque canal est affiché avec le jeu de couleurs cividis
‘terrain’
chaque canal est affiché avec le jeu de couleurs terrain
La valeur par défaut est ‘intensity’.
scale
Précise l'échelle utilisée pour calculer les valeurs de couleur d'intensité.
Elle accepte les valeurs suivantes :
‘lin’
linéaire
‘sqrt’
racine carrée, par défaut
‘cbrt’
racine cubique
‘log’
logarithmique
‘4thrt’
racine quatrième
‘5thrt’
racine cinquième
La valeur par défaut est ‘log’.
fscale
Précise l'échelle de fréquence.
Elle accepte les valeurs suivantes :
‘lin’
linéaire
‘log’
logarithmique
La valeur par défaut est ‘lin’.
saturation
Définit le modificateur de saturation des couleurs affichées. Des valeurs négatives donnent un jeu de couleurs alternatif. 0 correspond à une absence totale de saturation. La saturation doit être comprise dans la plage [-10.0, 10.0]. La valeur par défaut est 1.
win_func
Définit la fonction de fenêtrage.
Elle accepte les valeurs suivantes :
‘rect’ ‘bartlett’ ‘hann’ ‘hanning’ ‘hamming’ ‘blackman’ ‘welch’ ‘flattop’ ‘bharris’ ‘bnuttall’ ‘bhann’ ‘sine’ ‘nuttall’ ‘lanczos’ ‘gauss’ ‘tukey’ ‘dolph’ ‘cauchy’ ‘parzen’ ‘poisson’ ‘bohman’ ‘kaiser’
La valeur par défaut est hann.
orientation
Définit l'orientation de l'axe temps/fréquence. Peut être vertical ou horizontal. La valeur par défaut est vertical.
gain
Définit le gain d'échelle pour le calcul des valeurs de couleur d'intensité. La valeur par défaut est 1.
legend
Dessine les axes temps et fréquence ainsi que les légendes. Activé par défaut.
rotation
Définit la rotation de couleur, qui doit être comprise dans la plage [-1.0, 1.0]. La valeur par défaut est 0.
start
Définit la fréquence de départ à partir de laquelle afficher le spectrogramme. La valeur par défaut est 0.
stop
Définit la fréquence de fin jusqu'à laquelle afficher le spectrogramme. La valeur par défaut est 0.
drange
Définit la plage dynamique utilisée pour calculer les valeurs de couleur d'intensité. La valeur par défaut est 120 dBFS. La plage autorisée va de 10 à 200.
limit
Définit la limite supérieure du volume des échantillons audio d'entrée, en dBFS. La valeur par défaut est 0 dBFS. La plage autorisée va de -100 à 100.
opacity
Définit l'intensité de l'opacité lorsque le pixel format de sortie comporte une composante alpha.
20.27.1 Exemples
- Extrait le spectrogramme audio d'une piste entière sous forme d'image 1024x1024 à l'aide de
ffmpeg:ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
20.28 showvolume
Convertit le volume audio d'entrée en une sortie vidéo.
Le filtre accepte les options suivantes :
rate, r
Définit la fréquence d'images.
b
Définit la largeur de la bordure. La plage autorisée est [0, 5]. La valeur par défaut est 1.
w
Définit la largeur du canal. La plage autorisée est [80, 8192]. La valeur par défaut est 400.
h
Définit la hauteur du canal. La plage autorisée est [1, 900]. La valeur par défaut est 20.
f
Définit le fondu. La plage autorisée est [0, 1]. La valeur par défaut est 0.95.
c
Définit l'expression de couleur du volume.
L'expression peut utiliser les variables suivantes :
VOLUME
Volume maximal actuel du canal, en dB.
PEAK
Pic actuel.
CHANNEL
Numéro du canal actuel, à partir de 0.
t
Si définie, affiche les noms des canaux. Activé par défaut.
v
Si définie, affiche les valeurs de volume. Activé par défaut.
o
Définit l'orientation. Peut être horizontale (h) ou verticale (v). La valeur par défaut est h.
s
Définit la taille du pas. La plage autorisée est [0, 5]. La valeur par défaut est 0, ce qui signifie que le pas est désactivé.
p
Définit l'opacité de l'arrière-plan. La plage autorisée est [0, 1]. La valeur par défaut est 0.
m
Définit le mode de mesure. Peut être peak (p) ou rms (r). La valeur par défaut est p.
ds
Définit l'échelle d'affichage. Peut être linéaire (lin) ou logarithmique (log). La valeur par défaut est lin.
dm
En secondes. Si la valeur est > 0., affiche une ligne pour le niveau maximal des secondes précédentes. Désactivé par défaut : 0.
dmc
Couleur de la ligne du maximum. Utilisée quand l'option dm est réglée sur > 0. La valeur par défaut est : orange
20.29 showwaves
Convertit l'audio d'entrée en une sortie vidéo représentant la forme d'onde des échantillons.
Le filtre accepte les options suivantes :
size, s
Indique la taille vidéo de la sortie. Pour la syntaxe de cette option, consultez (ffmpeg-utils)la section "Video size" du manuel ffmpeg-utils. La valeur par défaut est 600x240.
mode
Définit le mode d'affichage.
Les valeurs disponibles sont :
‘point’
Dessine un point pour chaque échantillon.
‘line’
Dessine une ligne verticale pour chaque échantillon.
‘p2p’
Dessine un point pour chaque échantillon et une ligne entre eux.
‘cline’
Dessine une ligne verticale centrée pour chaque échantillon.
La valeur par défaut est point.
n
Définit le nombre d'échantillons imprimés dans la même colonne. Une valeur plus élevée diminue la fréquence d'images. Doit être un entier positif. Cette option ne peut être définie que si la valeur de rate n'est pas explicitement spécifiée.
rate, r
Définit la fréquence d'images de sortie (approximative). Ceci se fait en définissant l'option n. La valeur par défaut est "25".
split_channels
Définit si les canaux doivent être dessinés séparément ou se chevaucher. La valeur par défaut est 0.
colors
Définit les couleurs, séparées par ’|’, qui servent à dessiner chaque canal.
scale
Définit l'échelle d'amplitude.
Les valeurs disponibles sont :
‘lin’
Linéaire.
‘log’
Logarithmique.
‘sqrt’
Racine carrée.
‘cbrt’
Racine cubique.
La valeur par défaut est linéaire.
draw
Définit le mode de dessin. Ceci est surtout utile lorsque n est élevé.
Les valeurs disponibles sont :
‘scale’
Met à l'échelle les valeurs de pixel pour chaque échantillon dessiné.
‘full’
Dessine chaque échantillon directement.
La valeur par défaut est scale.
20.29.1 Exemples
-
Produit en sortie l'audio du fichier d'entrée et la représentation vidéo correspondante en même temps :
amovie=a.mp3,asplit[out0],showwaves[out1] -
Crée un signal synthétique et l'affiche avec showwaves, en forçant une fréquence d'images de 30 images par seconde :
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
Convertit l'audio d'entrée en une seule image vidéo représentant la forme d'onde des échantillons.
Le filtre accepte les options suivantes :
size, s
Indique la taille vidéo de la sortie. Pour la syntaxe de cette option, consultez (ffmpeg-utils)la section "Video size" du manuel ffmpeg-utils. La valeur par défaut est 600x240.
split_channels
Définit si les canaux doivent être dessinés séparément ou se chevaucher. La valeur par défaut est 0.
colors
Définit les couleurs, séparées par ’|’, qui servent à dessiner chaque canal.
scale
Définit l'échelle d'amplitude.
Les valeurs disponibles sont :
‘lin’
Linéaire.
‘log’
Logarithmique.
‘sqrt’
Racine carrée.
‘cbrt’
Racine cubique.
La valeur par défaut est linéaire.
draw
Définit le mode de dessin.
Les valeurs disponibles sont :
‘scale’
Met à l'échelle les valeurs de pixel pour chaque échantillon dessiné.
‘full’
Dessine chaque échantillon directement.
La valeur par défaut est scale.
filter
Définit le mode du filtre.
Les valeurs disponibles sont :
‘average’
Utilise la valeur moyenne des échantillons pour chaque échantillon dessiné.
‘peak’
Utilise la valeur de crête des échantillons pour chaque échantillon dessiné.
La valeur par défaut est average.
20.30.1 Exemples
- Extrait, à l'aide de
ffmpeg, une représentation de la forme d'onde d'une piste audio entière, séparée par canal, dans une image de 1024x800 :ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
20.31 sidedata, asidedata
Supprime les données annexes de l'image, ou sélectionne des images en fonction de celles-ci.
Ce filtre accepte les options suivantes :
mode
Définit le mode de fonctionnement du filtre.
Peut être l'une des valeurs suivantes :
‘select’
Sélectionne toutes les images comportant des données annexes de type type.
‘delete’
Supprime les données annexes de type type. Si type n'est pas défini, supprime toutes les données annexes de l'image.
type
Définit le type de données annexes utilisé avec tous les modes. Doit être défini pour le mode select.
Les valeurs possibles sont :
‘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
Synthétise l'audio à partir de 2 spectres vidéo d'entrée : le premier flux d'entrée représente l'amplitude au fil du temps, et le second la phase au fil du temps. Le filtre transforme le domaine fréquentiel, tel qu'affiché dans les vidéos, pour revenir au domaine temporel, tel que présenté dans la sortie audio.
Ce filtre est conçu principalement pour inverser les sorties déjà traitées du filtre showspectrum, mais il peut aussi synthétiser du son à partir d'autres spectrogrammes. Dans ce cas, cependant, les résultats sont médiocres si les données de phase ne sont pas disponibles, car il faut alors les recréer, ce qui se fait généralement à partir d'un simple bruit aléatoire. Pour de meilleurs résultats, utilisez une sortie en niveaux de gris uniquement (mode couleur channel du filtre showspectrum), une échelle log pour la vidéo d'amplitude et une échelle lin pour la vidéo de phase. Pour produire la phase, sur la 2e vidéo, utilisez l'option data. En général, les vidéos d'entrée devraient utiliser le mode de défilement fullframe, ce qui économise les ressources nécessaires au décodage vidéo.
Le filtre accepte les options suivantes :
sample_rate
Indique la fréquence d'échantillonnage de l'audio de sortie ; elle peut différer de la fréquence d'échantillonnage de l'audio à partir duquel le spectre a été généré.
channels
Définit le nombre de canaux représentés dans les spectres vidéo d'entrée.
scale
Définit l'échelle utilisée lors de la génération du spectre d'entrée d'amplitude. Peut être lin ou log. La valeur par défaut est log.
slide
Définit le mode de défilement utilisé lors de la génération des spectres d'entrée. Peut être replace, scroll, fullframe ou rscroll. La valeur par défaut est fullframe.
win_func
Définit la fonction de fenêtrage utilisée pour la resynthèse.
overlap
Définit le chevauchement de fenêtre. Compris dans la plage [0, 1]. La valeur par défaut est 1, ce qui signifie que le chevauchement optimal est choisi pour la fonction de fenêtrage sélectionnée.
orientation
Définit l'orientation des vidéos d'entrée. Peut être vertical ou horizontal. La valeur par défaut est vertical.
20.32.1 Exemples
- Crée d'abord les vidéos d'amplitude et de phase à partir de l'audio, en supposant que l'audio est stéréo avec une fréquence d'échantillonnage de 44100, puis resynthétise les vidéos en audio avec 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
Divise l'entrée en plusieurs sorties identiques.
asplit fonctionne avec une entrée audio, split avec une entrée vidéo.
Le filtre accepte un seul paramètre qui indique le nombre de sorties. S'il n'est pas spécifié, la valeur par défaut est 2.
20.33.1 Exemples
-
Crée deux sorties distinctes à partir de la même entrée :
[in] split [out0][out1] -
Pour créer 3 sorties ou plus, il faut indiquer le nombre de sorties, comme dans :
[in] asplit=3 [out0][out1][out2] -
Crée deux sorties distinctes à partir de la même entrée, l'une rognée et l'autre complétée par un remplissage :
[in] split [splitout1][splitout2]; [splitout1] crop=100:100:0:0 [cropout]; [splitout2] pad=200:200:100:100 [padout]; -
Crée 5 copies de l'audio d'entrée avec
ffmpeg:ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
20.34 zmq, azmq
Reçoit des commandes envoyées par un client libzmq, et les transmet aux filtres du filtergraph.
zmq et azmq fonctionnent comme des filtres de transit. zmq doit être inséré entre deux filtres vidéo, azmq entre deux filtres audio. Tous deux sont capables d'envoyer des messages à tout type de filtre.
Pour activer ces filtres, vous devez installer la bibliothèque et les en-têtes libzmq, puis configurer FFmpeg avec --enable-libzmq.
Pour plus d'informations sur libzmq, voir : http://www.zeromq.org/
Les filtres zmq et azmq fonctionnent comme un serveur libzmq, qui reçoit les messages envoyés via une interface réseau définie par l'option bind_address (ou son abréviation "b"). La valeur par défaut de cette option est tcp://localhost:5555. Vous pouvez modifier cette valeur selon vos besoins, mais n'oubliez pas d'échapper tout signe ’:’ (voir l'échappement dans un filtergraph).
Le message reçu doit être de la forme :
TARGET COMMAND [ARG]
TARGET indique la cible de la commande, généralement le nom de la classe de filtre ou le nom d'une instance de filtre spécifique. Le nom d'instance de filtre par défaut suit le modèle ‘Parsed_
COMMAND indique le nom de la commande pour le filtre cible.
ARG est facultatif et indique la liste d'arguments optionnels pour la COMMAND donnée.
À la réception, le message est traité et la commande correspondante est injectée dans le filtergraph. Selon le résultat, le filtre envoie une réponse au client, adoptant le format :
ERROR_CODE ERROR_REASON
MESSAGE
MESSAGE est facultatif.
20.34.1 Exemples
Consultez tools/zmqsend pour un exemple de client zmq permettant d'envoyer les commandes traitées par ces filtres.
Considérez le filtergraph suivant, généré par ffplay. Dans cet exemple, le dernier filtre overlay a un nom d'instance. Tous les autres filtres ont des noms d'instance par défaut.
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 "
Pour changer la couleur du côté gauche de la vidéo, on peut utiliser la commande suivante :
echo Parsed_color_0 c yellow | tools/zmqsend
Pour changer le côté droit :
echo Parsed_color_1 c pink | tools/zmqsend
Pour changer la position du côté droit :
echo overlay@my x 150 | tools/zmqsend
21 Sources multimédias
Voici une description des sources multimédias disponibles à ce jour.
21.1 amovie
Elle est identique à la source movie, si ce n'est qu'elle sélectionne un flux audio par défaut.
21.2 avsynctest
Génère un test de synchronisation audio/vidéo.
Le flux généré affiche périodiquement une image vidéo flash et émet un bip sonore. Utile pour examiner les problèmes de synchronisation A/V.
Il accepte les options suivantes :
size, s
Définit la taille de la vidéo de sortie. La valeur par défaut est hd720.
framerate, fr
Définit la fréquence d'images de la vidéo de sortie. La valeur par défaut est 30.
samplerate, sr
Définit la fréquence d'échantillonnage de l'audio de sortie. La valeur par défaut est 44100.
amplitude, a
Définit l'amplitude du bip audio de sortie. La valeur par défaut est 0.7.
period, p
Définit la période du bip audio de sortie en secondes. La valeur par défaut est 3.
delay, dl
Définit le délai du flash vidéo de sortie en nombre d'images. La valeur par défaut est 0.
cycle, c
Active le cycle des délais vidéo ; désactivé par défaut.
duration, d
Définit la durée de sortie du flux. Par défaut, la durée est illimitée.
fg, bg, ag
Définit la couleur de premier plan/arrière-plan/supplémentaire.
21.2.1 Commandes
Cette source prend en charge certaines des options ci-dessus en tant que commandes.
21.3 movie
Lit un ou plusieurs flux audio et/ou vidéo à partir d'un container movie.
Il accepte les paramètres suivants :
filename
Le nom de la ressource à lire (pas nécessairement un fichier ; il peut aussi s'agir d'un périphérique ou d'un flux accessible via un protocole quelconque).
format_name, f
Indique le format supposé du movie à lire ; il peut s'agir soit du nom d'un container, soit d'un périphérique d'entrée. S'il n'est pas indiqué, le format est déterminé à partir de movie_name ou par détection automatique.
seek_point, sp
Indique le point de positionnement en secondes. Les images sont produites en sortie à partir de ce point de positionnement. Le paramètre est évalué avec av_strtod, la valeur numérique peut donc être suffixée par un postfixe IS. La valeur par défaut est "0".
streams, s
Indique les flux à lire. Plusieurs flux peuvent être indiqués, séparés par "+". La source dispose alors d'autant de sorties, dans le même ordre. La syntaxe est expliquée dans (ffmpeg)la section "Stream specifiers" du manuel ffmpeg. Deux noms spéciaux, "dv" et "da", indiquent respectivement le flux vidéo et le flux audio par défaut (les plus adaptés). La valeur par défaut est "dv", ou "da" si le filtre est appelé sous le nom "amovie".
stream_index, si
Indique l'index du flux vidéo à lire. Si la valeur est -1, le flux vidéo le plus adapté est sélectionné automatiquement. La valeur par défaut est "-1". Obsolète. Si le filtre est appelé sous le nom "amovie", il sélectionne l'audio plutôt que la vidéo.
loop
Indique combien de fois le flux doit être lu en séquence. Si la valeur est 0, le flux est bouclé indéfiniment. La valeur par défaut est "1".
Notez que lorsque le movie est bouclé, les horodatages source ne sont pas modifiés, ce qui génère des horodatages qui n'augmentent pas de manière monotone.
discontinuity
Indique la différence de temps entre images au-delà de laquelle le point est considéré comme une discontinuité d'horodatage, laquelle est supprimée en ajustant les horodatages ultérieurs.
dec_threads
Indique le nombre de threads pour le décodage
format_opts
Indique les options de format pour le fichier ouvert. Les options de format peuvent être indiquées sous la forme d'une liste de paires key=value séparées par ’:’. L'exemple suivant montre comment ajouter les options protocol_whitelist et protocol_blacklist :
ffplay -f lavfi
"movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
Cela permet de superposer une seconde vidéo par-dessus l'entrée principale d'un filtergraph, comme illustré dans ce graphique :
input -----------> deltapts0 --> overlay --> output
^
|
movie --> scale--> deltapts1 -------+
21.3.1 Exemples
-
Saute 3.2 secondes depuis le début du fichier AVI in.avi, et le superpose à l'entrée étiquetée "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] -
Lit depuis un périphérique video4linux2, et le superpose à l'entrée étiquetée "in" :
movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out] -
Lit le premier flux vidéo et le flux audio d'id 0x81 depuis dvd.vob ; la vidéo est connectée au pad nommé "video" et l'audio au pad nommé "audio" :
movie=dvd.vob:s=v:0+#0x81 [video] [audio]
21.3.2 Commandes
movie et amovie prennent tous deux en charge les commandes suivantes :
seek
Effectue un positionnement à l'aide de "av_seek_frame". La syntaxe est : seek stream_index|timestamp|flags
- stream_index : si stream_index vaut -1, un flux par défaut est sélectionné, et timestamp est automatiquement converti des unités AV_TIME_BASE vers le time_base propre au flux.
- timestamp : horodatage en unités AVStream.time_base ou, si aucun flux n'est indiqué, en unités AV_TIME_BASE.
- flags : indicateurs qui sélectionnent la direction et le mode de positionnement.
get_duration
Obtient la durée du movie en unités AV_TIME_BASE.
22 Voir aussi
ffmpeg, ffplay, ffprobe, libavfilter
23 Auteurs
Les développeurs de FFmpeg.
Pour plus de détails sur la paternité du projet, voir l'historique Git du projet (https://git.ffmpeg.org/ffmpeg), par exemple en tapant la commande git log dans le répertoire source de FFmpeg, ou en consultant le dépôt en ligne à l'adresse https://git.ffmpeg.org/ffmpeg.
Les mainteneurs des composants spécifiques sont répertoriés dans le fichier MAINTAINERS de l'arborescence du code source.
Hébergement fourni par telepoint.bg