[Résolu] 1er script Avisynth

Modérateur: Modérateurs

1er script Avisynth

Messagepar elcascador972 » Mar 24 Jan, 2012 23:33

Bonsoir !
J'essaye d'apprendre à utiliser Avisynth, ses fonctions et ses filtres, et pour cela je me suis dit que le mieux était de tenter d'écrire un script. J'ai donc écrit le script ci-dessous (totalement inutile je pense :mrgreen: mais c'était pour l'exercice).

# essai script lecture 4 vidéos image entière résolution modifiée #

Video1 = DirectShowSource( "C:\Films_rippes\v1.avi", fps=25.000000)
Video2 = DirectShowSource( "C:\Films_rippes\v2.mp4", fps=25.000000)
Video3 = DirectShowSource( "C:\Films_rippes\v3.avi", fps=25.000000)
Video4 = DirectShowSource( "C:\Films_rippes\v4.mp4", fps=25.000000)
l=720 # largeur identique aux 4 vidéos
h=400 # hauteur identique aux 4 vidéos
Video1 = LanczosResize(video1, l/2, h/2)
Video2 = LanczosResize(video2, l/2, h/2)
Video3 = LanczosResize(video3, l/2, h/2)
Video4 = LanczosResize(video4, l/2, h/2)
Video1 = Trim (Video1, 2000, 10000)
Video2 = Trim (Video2, 2000, 10000)
Video3 = Trim (Video3, 2000, 10000)
Video4 = Trim (Video4, 2000, 10000)
Video1 = ConvertToYV12(Video1)
Video2 = ConvertToYV12(Video2)
Video3 = ConvertToYV12(Video3)
Video4 = ConvertToYV12(Video4)
Video_haute = StackHorizontal(Video1, video3 )
video_basse = StackHorizontal(video4, video2 )
video = StackVertical(video_haute,video_basse)
Return (Video)


Le script fonctionne bien : aperçu ci-dessous :



Mais je me pose quelques questions auxquelles je n'ai pas réussi à répondre :roll: :

1. pourquoi cette bande noire entre les parties haute et basse ?
2. comment la supprimer : une fonction à mettre dans le script ? un paramétrage à ajouter ?
3. pourquoi y-a-t-il un espace à l'intérieur des "parties horizontales", celle du haut et celle du bas ? On voit la différence = une toute petite bande noire verticale. Bref, pourquoi ne sont elles pas jointives ?
4. pourquoi ce même espace est il de largeur différente en haut et en bas ?
5. pourquoi dans la partie basse, les 2 vidéos ne sont elles pas jointives (on voit bien le décalage et pas qu'en largeur) ?
6. et, pour départager les ex-aequo, pourquoi le bras de la momie bouge-t-il (est il lu) à des vitesses différentes car il n'a pas la même position :gna: ?

Toute aide est la bienvenue et merci par avance !
Quand le sage montre la lune, le fou regarde le doigt
Avatar de l’utilisateur
elcascador972
 
Messages: 402
Inscription: 13 Mai 2011
Localisation: 14° 46' 57'' Nord / 60° 59' 37'' Ouest

Messagepar Underground78 » Mer 25 Jan, 2012 7:26

Salut,

1) C'est très probablement des bandes noires dans les vidéos d'origine qui s'additionnent entre le haut et le bas.
2) Utile Crop pour rogner les bandes noires de chaque vidéo avant de redimensionner (fait attention au fait que ça peut casser l'aspect-ratio).
3) Voir ci-dessus.
4) Dans un cas tu as la vidéo A + la vidéo B alors que dans l'autre tu as B + A donc ce ne sont pas les mêmes bandes (gauche ou droite) qui s'additionnent dans les deux cas.
5) Toujours des histoires de bande noire.
6) DirectShowSource n'est pas "frame accurate" du coup le Trim n'est pas très précis.

:did:
Avatar de l’utilisateur
Underground78
Administrateur
Administrateur
 
Messages: 11267
Inscription: 06 Fév 2007
Localisation: France

Messagepar leon1789 » Mer 25 Jan, 2012 9:21

je suis d'accord avec Underground78, mais je complète sa réponse 2)
Underground78 a écrit:2) Utile Crop pour rogner les bandes noires de chaque vidéo avant de redimensionner (fait attention au fait que ça peut casser l'aspect-ratio).

Réaliser le crop avant le resize.

Pour réaliser le crop, genre video.crop(4, 2, -4, -6) (j'ai pris des nombres au hasard) , ne visualise qu'une seule vidéo à la fois.
Avatar de l’utilisateur
leon1789
 
Messages: 775
Inscription: 26 Aoû 2007

Messagepar elcascador972 » Mer 25 Jan, 2012 13:10

Salut !

Merci pour vos réponses très complètes ! Je m'y mets ce soir !

PS : J'ai passé un peu de temps hier à tester quelques filtres internes d'Avisynth mentionnés dans la page wikipédia ici :http://avisynth.org/mediawiki/Filtres_internes. Et pour comprendre leur fonctionnement et leur paramétrage, je suis "rentré dedans".

En fait, si j'ai bien compris l'ordre générale des choses dans avisynth, il y a "du plus grand au plus petit" :
- les scripts, qui sont écrits sous forme de texte, avec l'extension .avs et qui utilisent des filtres
- les filtres, qui sont eux-même écrits avec des "éléments de base" tels "base_clip", "overlay_clip", "use_chroma", "level", "op", etc. On dirait donc que ces éléments sont des instructions de base permettant de créer les filtres, mais en quel langage sont ils écrits ? Un langage informatique connu ou un langage propre à avisynth qui aurait créé par son développeur ?

Je suis curieux je sais... :d:
Quand le sage montre la lune, le fou regarde le doigt
Avatar de l’utilisateur
elcascador972
 
Messages: 402
Inscription: 13 Mai 2011
Localisation: 14° 46' 57'' Nord / 60° 59' 37'' Ouest

Messagepar Underground78 » Mer 25 Jan, 2012 17:42

Les filtres sont basés sur l'API (interface de programmation) fournie par AviSynth et sont écrits en C++.
Avatar de l’utilisateur
Underground78
Administrateur
Administrateur
 
Messages: 11267
Inscription: 06 Fév 2007
Localisation: France

Messagepar elcascador972 » Sam 28 Jan, 2012 0:19

Ok, bien noté !

Sinon, j'ai utilisé "crop" et ça a effectivement changé l'aspect de la vidéo. Du coup, j'ai utilisé en plus "addborders" dans le script, l'équilibre a été rétabli et je suis parvenu au résultat voulu ! Je poursuis avidement l'exploration du monde d'avisynth :mrgreen: Merci !
Quand le sage montre la lune, le fou regarde le doigt
Avatar de l’utilisateur
elcascador972
 
Messages: 402
Inscription: 13 Mai 2011
Localisation: 14° 46' 57'' Nord / 60° 59' 37'' Ouest


Retourner vers Scripts Avisynth

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités