Ces tests, on peut les classer dans 2 types bien distincts :
- Des tests sur les paramètres du codec. Dans ce cas il faut passer par une étape d'encodage et ensuite de comparaison des différents fichiers AVI
- Des tests sur les filtres avisynth, soit différentes combinaisons de plusieurs filtres, ou des changement de paramètres sur un seul filtre (Deen par exemple...hein Jack). Dans ce cas pas besoin de passer par une étape d'encodage tout se fait en direct via le script.
Les scripts ci-dessous utilisent 4 fonctions particulières :
StackVertical (A, B, C, etc...) : Regroupe dans une même image, plusieurs images de différentes sources et les range verticalement (la première en haut, puis en dessous la 2ème etc...)
SelectEvery (X, Y) : Sélectionne 1 frame toutes les X frames en commençant à la frame Y
ImageWriter : Exporte la frame active dans un fichier image suivant le chemin, nom et format définis
Subtitle : Ajoute en haut à gauche de l'image le texte spécifié
Script pour faire des exportations d'images à partir de sources AVI.
CODE
# Encodage standard
v1 =aviSource("C:\XXXXXX\1.avi", false).Subtitle("Essai1").Trim(1,1100)
# Encodage avec etc.....
v2 = aviSource("C:\XXXXXX\2.avi", false).Subtitle("Essai2").Trim(1,1100)
# Encodage avec etc.....
v4 = aviSource("C:\XXXXXX\4.avi", false).Subtitle("Essai4").Trim(1,1100)
StackVertical(v1, v2, v4)
SelectEvery(last, 100, 0)
ConvertToRGB24()
ImageWriter(last, file="C:\XXXXXX\frm-", start=0, end=0, type="png")
crop(0,0,8,8)
v1 =aviSource("C:\XXXXXX\1.avi", false).Subtitle("Essai1").Trim(1,1100)
# Encodage avec etc.....
v2 = aviSource("C:\XXXXXX\2.avi", false).Subtitle("Essai2").Trim(1,1100)
# Encodage avec etc.....
v4 = aviSource("C:\XXXXXX\4.avi", false).Subtitle("Essai4").Trim(1,1100)
StackVertical(v1, v2, v4)
SelectEvery(last, 100, 0)
ConvertToRGB24()
ImageWriter(last, file="C:\XXXXXX\frm-", start=0, end=0, type="png")
crop(0,0,8,8)
Bien évidemment il vous faudra adapter ce script en :
- Spécifiant vos véritables chemin d'accès de vos fichiers AVI : aviSource(".....
- Spécifiant le chemin d'exportation des images créées : ImageWriter(last, file=".....
- Spécifiant le texte à afficher dans chaque image : Subtitle(".....
- Spécifiant vos valeurs de Trim
- Spécifiant vos valeurs X et Y dans SelectEvery
Ce script va réaliser sur les premières frames de chaque AVI (frames 1 à 1100) une compilation verticale des 3 sources (le nombre de sources est variable, vous pouvez en mettre autant que vous voulez mais attention à la taille finale de l'image en hauteur) et les exporter au format PNG en prenant à partir de la frame 0 une capture toutes les 100 frames (soit 0, 100, 200, 300, etc...)
Pour réaliser les captures il suffit d'ouvrir ce script dans VDM et de lancer la lecture. Le script va générer dans le répertoire C:\XXXXX les fichiers :
frm-000000.png
frm-000001.png
etc....
Pour info VDM va planter à la fin (visiblement il cherche à réaliser l'exportation de la frame 1200 ce qui n'est pas possible à cause du Trim qui bloque les vidéos jusqu'à la frame 1100)
C'est bon ? ...alors encore un peu plus compliqué...
Script pour faire des exportations d'images à partir de script avs.
CODE
Source = "C:\XXXXX\VTS_01_1.d2v"
Top = 4
Bottom = 4
Left = 4
Right = 4
DimX = 720
DimY = 544
CPUType = 2
# Script standard
V1 = Mpeg2Source( Source, idct=CPUType)
V1 = Crop(V1, Left, Top, -Right, -Bottom)
V1 = Undot(V1)
V1 = BilinearResize(V1, DimX, DimY)
V1 = Limiter(V1)
# Script Lanczos
V2 = Mpeg2Source( Source, idct=CPUType)
V2 = Crop(V2, Left, Top, -Right, -Bottom)
V2 = Undot(V2)
V2 = lanczosresize(V2, DimX, DimY)
V2 = Limiter(V2)
# Script Lanczos + Tweak
V3 = Mpeg2Source( Source, idct=CPUType)
V3 = Crop(V3, Left, Top, -Right, -Bottom)
V3 = Undot(V3)
V3 = Tweak(V3, sat=1.1, bright=2, cont=1.1)
V3 = lanczosresize(V3, DimX, DimY)
V3 = Limiter(V3)
V1=V1.Subtitle("script standard").Trim(1,1100)
V2=V2.Subtitle("script Lanczos").Trim(1,1100)
V3=V3.Subtitle("script Lanczos+Tweak").Trim(1,1100)
StackVertical(V1, V2, V3)
SelectEvery(last, 300, 0)
ConvertToRGB24()
ImageWriter(last, file="C:\XXXXX\frm-", start=0, end=0, type="png")
crop(0,0,8,8)
Top = 4
Bottom = 4
Left = 4
Right = 4
DimX = 720
DimY = 544
CPUType = 2
# Script standard
V1 = Mpeg2Source( Source, idct=CPUType)
V1 = Crop(V1, Left, Top, -Right, -Bottom)
V1 = Undot(V1)
V1 = BilinearResize(V1, DimX, DimY)
V1 = Limiter(V1)
# Script Lanczos
V2 = Mpeg2Source( Source, idct=CPUType)
V2 = Crop(V2, Left, Top, -Right, -Bottom)
V2 = Undot(V2)
V2 = lanczosresize(V2, DimX, DimY)
V2 = Limiter(V2)
# Script Lanczos + Tweak
V3 = Mpeg2Source( Source, idct=CPUType)
V3 = Crop(V3, Left, Top, -Right, -Bottom)
V3 = Undot(V3)
V3 = Tweak(V3, sat=1.1, bright=2, cont=1.1)
V3 = lanczosresize(V3, DimX, DimY)
V3 = Limiter(V3)
V1=V1.Subtitle("script standard").Trim(1,1100)
V2=V2.Subtitle("script Lanczos").Trim(1,1100)
V3=V3.Subtitle("script Lanczos+Tweak").Trim(1,1100)
StackVertical(V1, V2, V3)
SelectEvery(last, 300, 0)
ConvertToRGB24()
ImageWriter(last, file="C:\XXXXX\frm-", start=0, end=0, type="png")
crop(0,0,8,8)
Dans ce cas il vous faudra aussi adapter ce script en :
- Spécifiant le chemin d'exportation des images créées : ImageWriter(last, file=".....
- Spécifiant le texte à afficher dans chaque image : Subtitle(".....
- Spécifiant vos scripts avs (Ne prenez sourtout les miens en exemple)
- Spécifiant vos valeurs de Trim
- Spécifiant vos valeurs X et Y dans SelectEvery
Allez pour être définitivement complet, et pour éviter de faire un script aussi "lourd", vous pouvez utiliser des scripts avs externes.
Par exemple et pour revenir sur des terrains connus : Utiliser le script de RIAM + des variantes
CODE
v1 =import("C:\Program Files\Ripp-it_AM\dlls\Ripp-it.avs").Subtitle("Std RIAM").trim(0,1100)
v2 =import("C:\????????\essai.avs").Subtitle("Mon Essai").trim(0,1100)
StackVertical(v1, v2, v4)
SelectEvery(last, 300, 0)
ConvertToRGB24()
ImageWriter(last, file="C:\????????\frm-", start=0, end=0, type="png")
crop(0,0,8,8)
v2 =import("C:\????????\essai.avs").Subtitle("Mon Essai").trim(0,1100)
StackVertical(v1, v2, v4)
SelectEvery(last, 300, 0)
ConvertToRGB24()
ImageWriter(last, file="C:\????????\frm-", start=0, end=0, type="png")
crop(0,0,8,8)
Là aussi il vous faudra spécifier vos valeurs.
2 remarques :
- L'origine de ce script n'est pas de moi, j'en remercie son auteur. Malheureusement je ne me souviens plus o๠j'ai trouvé ça...
- Pour que cela fonctionne correctement (bien que non testé) je pense qu'il faut absolument avoir les mêmes dimensions de resize, le StackVertical risque de ne pas aimer sinon
Amusez vous bien.........



