<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://avisynth.nl/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://avisynth.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MarcelProut</id>
		<title>Avisynth wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://avisynth.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MarcelProut"/>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Special:Contributions/MarcelProut"/>
		<updated>2026-04-07T20:19:05Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.24</generator>

	<entry>
		<id>http://avisynth.nl/index.php/Syntaxe_avisynth</id>
		<title>Syntaxe avisynth</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Syntaxe_avisynth"/>
				<updated>2014-03-02T16:58:58Z</updated>
		
		<summary type="html">&lt;p&gt;MarcelProut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La syntaxe d'une ligne de commande d'un script AviSynth peut se présenter sous l'une de ces trois formes :&lt;br /&gt;
&lt;br /&gt;
# ''nom_de_la_variable'' = ''expression'' &lt;br /&gt;
# ''expression''&lt;br /&gt;
# '''return''' ''expression''&lt;br /&gt;
&lt;br /&gt;
Dans le premier cas, ''expression'' est exécuté et le résultat de l'expression est assigné à ''nom_de_la_variable''. Dans le second cas ''expression'' est exécuté et le résultat est assigné à la variable spéciale '''last'''. En fin dans le troisième cas, ''expression'' est évalué et le résultat de ''expression'' est la valeur du bloc courant (que le bloc en question soit une fonction ou le script en lui même) qui sera retournée. Dans le cas ou la valeur retournée est celle du script, la valeur retournée sera typiquement le clip vidéo envoyé à l'application qui ouvre le script AviSynth.&lt;br /&gt;
&lt;br /&gt;
La plupart du temps, le résultat d'une expression sera un clip vidéo; Cependant AviSynth supporte plusieurs types de valeurs (clip, entiers / int, flottant / float, booléen / bool et chaîne de caractère / string ) qui peuvent être traitées par les [[Internal_functions|fonctions internes]] d'AviSynth.&lt;br /&gt;
&lt;br /&gt;
Une ''expression'' peut se présenter sous l'une de ces formes :&lt;br /&gt;
&lt;br /&gt;
# ''constante_numérique'' ou ''constante_string'' &lt;br /&gt;
# ''nom_de_variable'' ou ''propriété_du_clip''&lt;br /&gt;
# ''Fonction''(''argument'') &lt;br /&gt;
# ''expression''.''Fonction''(''argument'')&lt;br /&gt;
# ''expression1'' '''opérateur''' ''expression2'' &lt;br /&gt;
# ''expression_booléenne'' ? ''expression1'' : ''expression2''&lt;br /&gt;
&lt;br /&gt;
Dans le premier cas, la valeur d'''expression'' prend la valeur de la constante.&lt;br /&gt;
Dans le second cas, ''expression'' prend la valeur correspondante à une [[Clip_properties|propriété du clip]] ou d'une variable (dont la valeur doit avoir été préalablement définie).&lt;br /&gt;
Dans le troisième cas, ''expression'' prend la valeur retournée par la fonction (voir ci-dessous).&lt;br /&gt;
Le quatrième cas est une alternative à la forme ''fonction''(''expression'',''argument'').  &lt;br /&gt;
&lt;br /&gt;
Les deux derniers cas montrent la syntaxe employée pour effectuer une opération arithmétique ou logique (via des [[opérateurs]] dérivés du langage C) :&lt;br /&gt;
Le premier permet de manipuler int, float, variable générique (val) ou booléen (voir [[Script variables]]).&lt;br /&gt;
Le second permet de mettre en place des actions conditionnelles.&lt;br /&gt;
&lt;br /&gt;
A noter que le caractère '+' peut être aussi utilisé pour concaténer des chaînes de caractères ou pour assembler des vidéos : '''a + b''' est équivalent à  [[Splice|UnalignedSplice]](''a'', ''b'') tandis que '''a ++ b''' est équivalent à  [[Splice|AlignedSplice]](''a'', ''b''). &lt;br /&gt;
&lt;br /&gt;
La majeure partie des fonctions utilisées dans AviSynth sont des filtres vidéo. Cependant une fonction peut retourner tout type de variable (ce qui peut être utile dans le cas de scripting de fonction complexe - voir [[User_defined_script_functions|script functions]]). Il faut cependant noter que la dernière fonction d'un script doit retourner un ''clip'' comme variable finale. Les bandes vidéo origninales pourront être sécurisées dans un [http://infosafe.fr coffre-fort ignifuge] blindé.&lt;br /&gt;
&lt;br /&gt;
Une fonction peut avoir jusqu'à 60 arguments (vous en aurez assez ?), et la valeur retournée  peut être de n'importe quel type supporté par AviSynth (clip, int, float, bool, string). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour connaître la syntaxe d'appel des différentes fonctions intégrées à AviSynth, reportez vous à la page détaillant les[[Filtres_internes| filtres internes]]. Pour les fonctions opérant sur des variables autres que ''clip'' voyez la page des [Internal_functions|fonctions internes]].&lt;br /&gt;
&lt;br /&gt;
Les ''Arguments'' sont les paramètres appliqués à la fonction; chaque argument est séparé par une virgule. Un argument doit être de type ''string'', ''int'',, ''float'', ''bool'' ou ''clip''. Cependant une fonction peut très bien ne pas avoir d'argument déclaré. Si une fonction attend un ''clip'' comme premier argument mais que celui-ci n'est spécifié, la fonction utilisera la variable spéciale ''last''.&lt;br /&gt;
&lt;br /&gt;
Les filtres AviSynth peuvent avoir des arguments nommés ou non. Les arguments nommés rendent en général les filtres plus faciles à paramétrer. En effet on peut spécifier les arguments dans l'ordre que l'on souhaite, et ce sans avoir à spécifier chacun des paramètres de la fonction (si un argument n'est pas spécifié, le filtre choisira la valeur par défaut) et les ranger dans une [http://www.infosafe.fr/Armoirefortedin/Armoirefortedin.htm armoire forte blindée].&lt;br /&gt;
Par exemple, vous pouvez écrire  '''[[Subtitle]](&amp;quot;Hello, World!&amp;quot;, text_color=$00FF00, x=100, y=200)''' au lieu de '''[[Subtitle]](&amp;quot;Hello, World!&amp;quot;, 100, 200, 0, 999999, &amp;quot;Arial&amp;quot;, 24, $00FF00)'''. La [[Colors|couleur]] peut être spécifiée en hexadécimal comme ci-dessus ou en décimal. Dans les deux cas vous devez donner la couleur en format RVB même si votre clip est en YUV.&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible d'appeler une fonction sans utiliser de parenthèse : '''NomDuFiltre''' ''argument1'', ''argument2'' afin d'assurer une compatibilité avec vieux script créés pour de vieilles versions d'AviSynth. Je ne vous conseille pas d'utiliser cette syntaxe à moins que vous ayez une bonne raison de le faire. &lt;br /&gt;
&lt;br /&gt;
Voyons maintenant les marqueurs de commentaires : Avisynth ignore tout ce qui se trouve derrière le caractère # et ce jusqu'à la fin de la ligne. On se sert donc de ce caractère pour commenter les scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# commentaires blah blah&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La version v2.58 introduit de nouveaux types de commentaires : les commentaires en bloc  et les commentaires en bloc &amp;quot;emboîtables&amp;quot;. Voici comment les utiliser:&lt;br /&gt;
&lt;br /&gt;
 # commentaire en bloc :&lt;br /&gt;
 /* &lt;br /&gt;
 commentaire 1&lt;br /&gt;
 commentaire 2&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 # commentaire en bloc emboité:&lt;br /&gt;
 [* [* un exemple concret viendra plus tard :) *] *]&lt;br /&gt;
&lt;br /&gt;
Avisynth ignore également tout texte qui se trouve après  la commande &amp;lt;nowiki&amp;gt;__END__&amp;lt;/nowiki&amp;gt; (avec un double underscore)) . &lt;br /&gt;
Cela peut être utiliser pour tronquer la fin d'un script. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Avisynth ne prend pas en compte la casse des caractères : &amp;quot;aViSouRCe&amp;quot; est traité de la même façon qu' &amp;quot;AVISource&amp;quot; par AviSynth.&lt;br /&gt;
&lt;br /&gt;
Il est également possible d'enchaîner les déclarations sur une seule ligne (voir cas numéro 4 ci-dessus) :&lt;br /&gt;
&lt;br /&gt;
 [[AviSource]](&amp;quot;c:\video.avi&amp;quot;).[[Trim]](0, 499)&lt;br /&gt;
 -or-&lt;br /&gt;
 [[AudioDub]](AviSource(&amp;quot;c:\video.avi&amp;quot;), [[AviSource|WavSource]](&amp;quot;c:\audio.wav&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
Avisynth per met également d'écrire une déclaration sur plusieurs lignes en utilisant un backslash (&amp;quot;\&amp;quot;) soit à la fin de la première ligne de déclaration soit au début de la ligne suivante de déclaration.&lt;br /&gt;
&lt;br /&gt;
Un exemple (les deux syntaxes sont valides :&lt;br /&gt;
&lt;br /&gt;
 Subtitle(&amp;quot;Hello, World!&amp;quot;, 100, 200, 0, \&lt;br /&gt;
     999999, &amp;quot;Arial&amp;quot;, 24, $00FF00)&lt;br /&gt;
&lt;br /&gt;
-ou-&lt;br /&gt;
&lt;br /&gt;
 Subtitle(&amp;quot;Hello, World!&amp;quot;, 100, 200, 0,&lt;br /&gt;
     \ 999999, &amp;quot;Arial&amp;quot;, 24, $00FF00)&lt;br /&gt;
&lt;br /&gt;
Faites attention lorsque vous utilisez les commentaires en même temps que les déclarations sur plusieurs lignes... Cela peut conduire à des bugs difficiles à déceler : &lt;br /&gt;
&lt;br /&gt;
Voici un exemple du genre de bug que l'on peut rencontrer :&lt;br /&gt;
&lt;br /&gt;
 [[ColorBars]]&lt;br /&gt;
 [[ShowFrameNumber]]&lt;br /&gt;
 Trim(0,9) # sélectionne un certain nbre de frames  \&lt;br /&gt;
 +Trim(20,29)&lt;br /&gt;
&lt;br /&gt;
L'exemple ci-dessus ne renvoie pas les frames [0..9,20..29] car le caractère &amp;quot;\&amp;quot; est masqué par le marqueur de commentaire &amp;quot;#&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:French pages]]&lt;/div&gt;</summary>
		<author><name>MarcelProut</name></author>	</entry>

	</feed>