Une brève introduction au filtre filter dans FFMPEG

La fonction du filtre est principalement de traiter les données audio et vidéo d'origine pour obtenir divers effets. Comme la superposition de filigranes, le retournement et le zoom de vidéos, etc.

La figure suivante montre le processus de transcodage normal, le filtre est au milieu du décodage et du codage, et la ligne pointillée indique qu'il est facultatif.

Utilisez la commande pour afficher les filtres pris en charge par ffmpeg

ffmpeg -filtres 

Afficher les paramètres détaillés d'un filtre

ffmpeg -h filter=pad

 La figure ci-dessus montre la fonction et les paramètres requis du filtre pad.

Les filtres dans ffmpeg peuvent être divisés en :

  1. sortie du filtre source uniquement
  2. filtre audio filtre audio
  3. filtre vidéo filtre vidéo
  4. filtre multimédia filtre complexe
  5. entrée du filtre de dissipation uniquement

Deux filtres spéciaux doivent être mentionnés ici : buffer et buffersink .
(1) Tampon : le tampon de filtre représente la source dans le graphique de filtre, et les données d'origine sont entrées dans ce nœud de filtre. En appelant la fonction fournie par le filtre (telle que av_buffersrc_add_frame), la trame à filtrer peut être transmise au processus de filtrage. Lors de la création de l'instance de filtre, vous devez fournir certains paramètres nécessaires concernant le format de l'image d'entrée (tels que : time_base, largeur et hauteur de l'image, format de pixel de l'image, etc.).

(2) buffersink : un filtre spécial, le filtre buffersink représente le nœud de sortie dans le graphe de filtre, et les données traitées sont sorties de ce nœud de filtre. En appelant la fonction fournie par le filtre (telle que av_buffersink_get_frame), la trame après avoir été filtrée par le processus de filtrage peut être fournie.

À l'exception des filtres de source et de puits, tous les autres filtres ont au moins une entrée et au moins une sortie.

Il peut également être simplement divisé en filtres simples et en filtres complexes.

Filtre simple : une seule entrée et une seule sortie, utilisez -vf (filtre vidéo),   -af (filtre audio) sur la ligne de commande  

 Filtre complexe : avec plusieurs entrées et sorties, utilisez  -lavfi ou -filter_complex sur la ligne de commande

Dans la figure ci-dessous, un exemple officiel de filtergrpah est donné :

 Dans ce graphique de filtres, nous pouvons voir qu'en utilisant 4 filtres

1. Utilisez le filtre divisé pour copier le flux d'entrée dans deux sorties de flux, l'une appelée main et l'autre tmp

2. Utilisez le filtre de recadrage pour recadrer le flux tmp

3. Utilisez vflip pour retourner verticalement le flux tmp

4. Utilisez la superposition pour superposer le flux tmp sur le flux principal

Il peut être exprimé à l'aide de la ligne de commande comme suit

ffmpeg -i INPUT -vf 'split [main][tmp] ; [tmp] crop=iw:ih/2:0:0,vflip [flip] ; [main][flip] superposition=0:H/2' SORTIE

Les filtres du même chemin sont séparés par des virgules (',') et les filtres de chemins différents sont séparés par des points-virgules (';').



 

Syntaxe du filtre

Syntaxe du filtre

nom_filtre=nom_param1=valeur_param1:nom_param2=valeur_param2

filter_name : est le nom du filtre, doit avoir ; ses paramètres sont facultatifs, séparés par " :" ou "+", peuvent avoir des noms de paramètres ou non ;

Par exemple:

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

Ce filtre qui extrait les composants Y, U et V de la vidéo a trois sorties, qui sont [y][u][v]. Après l'extraction, enregistrez différentes sorties dans différents fichiers

Un filtre sans entrée audio ou vidéo est appelé filtre source

Un filtre sans sortie audio et vidéo est appelé un filtre récepteur

Syntaxe de la chaîne de filtres

filtre1, filtre2,....

C'est une combinaison de plusieurs filtres, séparés par des virgules ; et chaque filtre est l'entrée et la sortie du filtre précédent ;

ffmpeg -i audio.aac -filter_complex "aresample=async=16000,adelay=316397,volume=1.0" -acodec libfdk_aac -y output.mp4

Trois filtres sont ici utilisés, respectivement sample, adelay, volume, pour former une chaîne de filtres ;

Grammaire du filtergraph

chaîne de filtres1;chaîne de filtres2;...

C'est une combinaison de plusieurs chaînes de filtres, séparées par un point-virgule ";",

ffmpeg -i INPUT -filter_complex "split [main][tmp] ; [tmp] crop=iw:ih/2:0:0, vflip [flip] ; [main][flip] overlay=0:H/2" SORTIE

Trois chaînes de filtres sont utilisées ici, à savoir :

split [main][tmp] ; // il n'a qu'un seul filtre, c'est-à-dire qu'il est divisé ; il a une entrée par défaut, c'est-à-dire la trame décodée de INPUT ;

Il y a deux sorties, identifiées par [main], [tmp] ;

[tmp] crop=iw:ih/2:0:0, vflip [flip] // Il se compose de deux filtres, à savoir crop et vflip ; une entrée [tmp], une sortie [flip] ;

[main][flip] overlay=0:H/2 // Il se compose d'un filtre, à savoir overlay, avec deux entrées, à savoir [main][flip], une sortie par défaut ;

filtre commun

  • scale : mise à l'échelle de la vidéo/image
  • superposition : superposition de vidéo/image
  • recadrage : recadrage vidéo/image
  • rogner : intercepter des clips vidéo
  • rotation : faites pivoter la vidéo à n'importe quel angle
  • film : charger des vidéos et des images tierces
  • yadif : désentrelacement
  • pad : rembourrage vidéo
  • drawtext : ajouter du texte

Je suppose que tu aimes

Origine blog.csdn.net/yunxiaobaobei/article/details/130442824
conseillé
Classement