FAQ utiliser des plugins virtualdub
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. Lisez 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 au script d'exemple 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 accédées 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.
The first step is to find out the sequence of the arguments in the last line where the clip is returned. Configure the script in VirtualDub and select "Save processing Settings" in the File Menu or press Ctrl+S. Open the created .vcf file with a text editor and you should see lines like this:
VirtualDub.video.filters.Add("smart bob (1.1 beta 2)"); VirtualDub.video.filters.instance[0].Config(1, 0, 10, 1);
The order of the arguments is the one that has to be used in AviSynth. To find the role of the arguments, play with them in VirtualDub and examine the resulting lines.
The second step is to test the filter and to compare it with the VirtualDub filter itself. For the programming itself you can learn a lot by looking at the script which are already contained in vdub_filters.avs.
Example script which uses the function VD_SmartBob:
Import("d:\vdub_filters.avs") AviSource("d:\filename.avi") ConvertToRGB32() # only when necessary (but doesn't hurt) VD_SmartBob(false, 10, true) ConvertBackToYUY2() # only when necessary
The package vdub_filtersv15.zip is a bit outdated since many new VirtualDub filter are not in it. If that's the case for your VirtualDub filter and you don't want to create a function yourself (such as VD_SmartBob), could also use the following script:
LoadVirtualdubplugin("d:\bob.vdf", "VD_SmartBob", 1) VD_SmartBob(1, 0, 10, 1) # parameters taken from the .vcf file