FAQ utiliser des plugins virtualdub

From Avisynth wiki
Jump to: navigation, search

Contents

Où puis-je télécharger la dernière version des scripts qui importent les filtres de VirtualDub?

Les scripts AviSynth sont sur la page des fonctions partagées, ou vous pouvez télécharger un package appelé vdub_filtersv15.zip depuis [1].


Quels filtres peuvent être importés?

La plupart des filtres. Consultez la documentation correspondante.

Est-ce que ces scripts fonctionnent dans un espace de couleurs RGB ou YUV?

Vous devez convertir votre clip au format RGB32 avant d'utiliser ces scripts.


Comment créer un tel script?

Jetez un coup d'oeil à l'exemple de script suivant (ce filtre VirtualDub peut être téléchargé à partir de Donalds homepage):

Smart Bob par Donald Graft:

function VD_SmartBob(clip clip, bool show_motion, int threshold, bool motion_map_denoising)
  LoadVirtualdubPlugin("d:\bob.vdf", "_VD_SmartBob", 1)
  return clip.SeparateFields._VD_SmartBob(clip.GetParity?1:0,
    \  default(show_motion,false)?1:0, default(threshold,10),
    \  default(motion_map_denoising,true)?1:0)
}

Le plugin VirtualDub est importé avec la commande "LoadVirtualdubPlugin". Le premier argument donne le chemin d'accès au plugin, le second argument le nom du plugin qui sera utilisé dans le script et le troisième argument est appelé le preroll.

Le preroll doit être fixé au minimum au nombre de trames dont le filtre a besoin de pré-calculer pour remplir ses tampons et/ou mettre à jour ses variables internes. Ce dernier argument est utilisé dans certains filtres comme: SmartBob, SmartDeinterlace, TemporalCleaner et d'autres. La raison est qu'à cause de l'architecture de filtrage de VirtualDub les trames futures ne peuvent pas être atteintes par un filtre. Dividee l'explique ainsi: "Dans la boîte de dialogue "Add filter" de VirtualDub, certains filtres ont une valeur "Lag:" dans leur description. Je pense que c'est la valeur qui doit être utilisée comme preroll. Malheureusement, cette indication n'est pas toujours présente. Dans certains cas vous devrez deviner." Vous pouvez bien sûr demander à l'auteur du filtre.

La première étape c'est de trouver la séquence d'arguments dans la dernière ligne où on retourne le clip. Configurez le script dans VirtualDub et sélectionnez "Save processing Settings" dans le menu File ou tapez Ctrl+S. Ouvrez le fichier .vcf crée avec un éditeur de texte et vous devriez voir des lignes ressemblant à ceci:

VirtualDub.video.filters.Add("smart bob (1.1 beta 2)");
VirtualDub.video.filters.instance[0].Config(1, 0, 10, 1);

L'ordre des arguments est l'ordre qui doit être utilisé dans AviSynth. Pour comprendre le rôle de chaque argument, manipulez-les dans VirtualDub et examinez les lignes résultantes.

La deuxième étape est de tester le filtre et de le comparer avec le filtre original de VirtualDub. Pour la programmation, vous pouvez apprendre beaucoup en regardant les scripts qui sont présents dans vdub_filters.avs.

Exemple de script qui utilise la function VD_SmartBob:

Import("d:\vdub_filters.avs")
AviSource("d:\filename.avi")
ConvertToRGB32()  # seulement quand nécessaire (mais n'est pas gênant)
VD_SmartBob(false, 10, true)
ConvertBackToYUY2()  # seulement quand nécessaire

Le package vdub_filtersv15.zip est un peu obsolète car beaucoup des nouveaux filtres VirtualDub n'y sont pas présents. Si c'est le cas pour votre filtre VirtualDub et que vous ne voulez pas créer une fonction vous-même (comme VD_SmartBob), vous pouvez aussi utiliser le script suivant:

LoadVirtualdubplugin("d:\bob.vdf", "VD_SmartBob", 1)
VD_SmartBob(1, 0, 10, 1) # paramètres provenant du fichier .vcf
Personal tools