floutage avec Avisynth

Modérateur : Modérateurs

Répondre
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

floutage avec Avisynth

Message par leon1789 »

Bonjour

Voici un petit script avisynth qui permet de flouter une zone rectangulaire (sous-titres ou logo) d'une vidéo.
ZoneFloue (clip v, int x, int y, int width, int height, bool "show", int "frame_begin", int "frame_end")

v désigne la vidéo
x,y désignent les coordonnées du sommet en haut à gauche du rectangle à flouter
width, height désignent respectivement la largeur et la hauteur du rectangle à flouter
show (optionnel) est un booléen qui permet, si show=true, de voir sur l'image le rectangle à flouter.
frame_begin et frame_end (optionels) désignent les images entre lesquelles on floute (frames incluses).

Le script est disponible ici : http://leon1789.perso.sfr.fr/avisynth/ZoneFloue.zip
Dans ce fichier zip, il y a la librairie mt_masktools.dll dont le script a besoin.

Exemple d'utilisation :
On veut flouter le sous-titre de cette image

(image tirée "textuellement" du film Apocalyto... :ange: )

On place un rectangle "virtuel" à l'endroit où se trouve le sous-titre :

Ici x=202 , y=320 , width=300, height=54

Pour obtenir l'image finale, le code avisynth est simplement video.ZoneFloue(202,320,300,54)


On peut aussi vouloir flouter certains passages, en précisant un ou plusieurs intervalles d'images :

Code : Tout sélectionner

video=video.zonefloue(x,y,largeur,hauteur)                                   # flou sur toute la vidéo (comme avant) 
video=video.zonefloue(x,y,largeur,hauteur, frame_end=20)                     # flou jusqu'à l'image n°20 (en partant du début) 
video=video.zonefloue(x,y,largeur,hauteur, frame_begin=30, frame_end=200)    # flou entre les images 30 et 200 
video=video.zonefloue(x,y,largeur,hauteur, frame_begin=300, frame_end=300)   # flou sur une seule image, la n°300 
video=video.zonefloue(x,y,largeur,hauteur, frame_begin=100)                  # flou à partie de l'image 100 (jusqu'à la fin de la vidéo) 
Bien sûr, les arguments x,y,largeur, hauteur peuvent être de valeurs différentes d'une ligne à l'autre.
Modifié en dernier par leon1789 le lun. 28 mars, 2016 21:08, modifié 5 fois.
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

J'ai testé ce script sur le sous-titre ci-dessus, et également sur le logo d'une chaîne de télé. Ca fonctionne bien. Mais ce ne sont que 2 exemples en définition standard. Reste à voir comment se comporte le script sur d'autres exemples et en HD (normalement, il ne doit pas y avoir davantage de soucis quand SD).
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

Franchement pas mal... Si on cherche pas le détail, on premier coup d'œil c'est vraiment bien je trouve...
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

Héhé, je vais tester ça :D
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

Waw, c'est très impressionnant, en plus pas besoin de layer avec une deuxième vidéo, le gain en ressource est aussi non négligeable, bravo Léon :D
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

Merci :)

Comparé au code implémenté de m4ng, ma proposition ZoneFloue est deux fois moins rapide (sur mon ordi). Cela dit, ZoneFloue reste très rapide tout de même (deux fois plus rapide qu'un resize de l'image par exemple).

Mais bon, le résultat de ZoneFloue n'est pas sans défaut : parfois, le floutage est assez choquant...
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

Comment ça peut être moins rapide que le code actuel de m4ng v3 vu qu'il doit gérer vidéos distinctes pour générer l'effet flou?
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

le code de m4ng est

Code : Tout sélectionner

(...)
Video2=Video
Video2=Crop(Video2, 512, 340, 82, 30)
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\VariableBlur.dll")
Video2=variableblur(Video2,rady=250,Y=3,U=3,V=3,gaussian=true)
Video=ConvertToYUY2(Video)
Video2=ConvertToYUY2(Video2)
Video=Layer(Video, Video2, "add", 255, 512, 340)
Video=ConvertToYV12(Video)
(...)
Il y a bien la variable video2 à gérer, mais la résolution de video2 est toute petite car c'est la région à flouter ( --> crop) . Du coup, l'opération de variableblur qui s'effectue dessus est rapide. Après, il y a les fonctions Convert et Layer, mais elles vont vite.

Du coté de ZoneFloue.avsi , il y a plein de manipulations de la zone à flouter (variable f dans le code) pour éliminer le logo et un masque de floutage en plus (variable masq dans le code) pour avoir les bords de la zone floutée plus "fondus" dans la vidéo.
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

Ah ouais, peut-être, chez moi ça ne se remarque pas en tout cas.
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

Mise à jour le 26 03 2016
Avatar du membre
pepsilite
The Grinch
The Grinch
Messages : 23287
Enregistré le : sam. 03 févr., 2007 19:13
Localisation : Chez moi le plus possible ...

Message par pepsilite »

Cool ...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
Répondre