Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum DivX Video Ripp-it After Me Ri4m _ Filtres avisynth.... _ Leeoooonnnnnn !!!!!!!!!!!

Écrit par : SG1 08/05/2010 16:26

Bonjour,

Léon, j'ai besoin de tes lumières si tu es dans les parages...

Je suis en train d'encoder Avatar...

...Et je voulais ajouter une image comme je l'avais expliqué dans ce tuto :

http://forum.ripp-it.com/Tuto-Ajouter-une-image-au-tout-debut-d-un-film-t22257.html

Et puis, j'ai voulu tenter ta méthode :

Citation
Image = ImageSource("H:\Traitement\Avatar\Image\Avatar.bmp",0,0)
Image = BilinearResize(Image.ChangeFPS(Video), Video.width, Video.height)
Video = Image + Video.convertToRGB24
Return(Video)


Mais j'ai un message d'erreur !



Qu'est ce que j'ai raté ?

@+

Écrit par : SG1 10/05/2010 10:18

Bonjour,

Léon, je n'ai pas trouvé la solution, mais j'ai un autre problème...

Je n'avais pas refait d'encodage avec Ri4m depuis nos tests de Blur Subtittle...

...Et je ne peux plus encoder avec Ri4m.

Je mets mon encodage le soir, comme d'habitude, le matin l'ordi est bien arrêté comme demandé...

...Mais le film est illisible car il n'y a que la passe un et la piste audio en Wave (non encodée)...

Est-ce qu'un plugin pourrait poser problème (C'est peu probable, mais je pose la question...) ?

J'ai refait deux fois, c'est pareil...

J'avais vu passer des posts à ce sujet, mais pour les retrouver...

Merci

@+

PS : Pour info :
Le log

Citation
09/05 21:50:57 *** Ri4m [ 5.0.3b - Avisynth 2.5.7 / K-lite ]
09/05 21:50:58 *** shutdown_on ***
Input : D:\Avatar\VTS_05_1.d2v
Output : H:\Traitement\Avatar\film.avi
09/05 21:50:58 Encodage en cours :: Passe 1/2
10/05 00:42:52 Encodage en cours :: Passe 2/2
10/05 00:42:56 Finalisation en cours ::
10/05 00:43:06 ---


Le script AVS :
Citation
# **** Ripp-it & AVIsynth 2.5x script **** pass 2+

LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\undot.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\VSFilter.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MPEG2Dec3.dll")

# Video codec : Xvid
# Video bitrate : 1589655

Source="D:\Avatar\VTS_05_1.d2v"
Largeur=720
Hauteur=400
ratio =1.800000
vratio =1.800000
Crop_g=0
Crop_d=0
Crop_h=0
Crop_b=0
Indice=0.220785

Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=TextSub(Video, "D:\Avatar\Avatar2.ssa")

Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, 0.000000)
Video=AudioDub(Video, Audio)

Return(Video)


Écrit par : SG1 12/05/2010 18:07

Bonjour,

Bon, j'ai réglé le second problème...

Virtualdubmod avait conservé le paramètre « Eteindre l'ordi à la fin »... Donc quand Ri4m fermait la passe 1, ben, Virtualdubmod éteignait l'ordi, et Ri4m ne pouvait pas lancer la seconde passe... Le truc tout con...

Par contre la question du script pour l'ajout de l'image est toujours d'actualité !

@+

Écrit par : leon1789 15/05/2010 21:02

Salut SG1,

C'est (a priori) une histoire de piste audio ...

Peux-tu mettre tout le script avs du premier message ?

Écrit par : SG1 15/05/2010 21:08

Salut Léon,

Tu étais en vacances au Pôle Nord ?

.
.
.
.

Voilà la script que j'ai utilisé

Citation
# **** Ripp-it & AVIsynth 2.5x script **** pass 2+

LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\undot.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\VSFilter.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MPEG2Dec3.dll")

# Video codec : Xvid
# Video bitrate : 1589655

Source="D:\Avatar\VTS_05_1.d2v"
Largeur=720
Hauteur=402
ratio =1.800000
vratio =1.800000
Crop_g=0
Crop_d=0
Crop_h=0
Crop_b=-2
Indice=0.223016

Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=Crop(Video, crop_g, crop_h, crop_d, crop_b)
Video=TextSub(Video, "D:\Avatar\Avatar2.ssa")

Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, 0.000000)
Video=AudioDub(Video, Audio)

Return(Video)


J'ai ajouté l'image après encodage, mais, si je peux avoir la solution pour un prochain film...

@+

Écrit par : leon1789 15/05/2010 22:21

C'est à la fin de ce script que tu as ajouté ceci ?

Citation
Image = ImageSource("H:\Traitement\Avatar\Image\Avatar.bmp",0,0)
Image = BilinearResize(Image.ChangeFPS(Video), Video.width, Video.height)
Video = Image + Video.convertToRGB24
Return(Video)


Écrit par : SG1 16/05/2010 08:46

Bonjour,

Citation
C'est à la fin de ce script que tu as ajouté ceci ?

...Que j'ai tenté d'ajouter ceci, oui !

Mais comme j'avais l'erreur, je suis revenu à un script traditionnel !

Mes connaissances AVS sont trop limités...

@+

Écrit par : leon1789 16/05/2010 09:06

ok, alors essaie ce script aga.gif

Citation
# **** Ripp-it & AVIsynth 2.5x script **** pass 2+

LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\undot.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\VSFilter.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MPEG2Dec3.dll")

# Video codec : Xvid
# Video bitrate : 1589655

Source="D:\Avatar\VTS_05_1.d2v"
Largeur=720
Hauteur=400
ratio =1.800000
vratio =1.800000
Crop_g=0
Crop_d=0
Crop_h=0
Crop_b=-2
Indice=0.223016

Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=Crop(Video, crop_g, crop_h, crop_d, crop_b)
Video=TextSub(Video, "D:\Avatar\Avatar2.ssa")

Image = ImageSource("H:\Traitement\Avatar\Image\Avatar.bmp",0,0)
Image = BilinearResize(Image.ChangeFPS(Video), Video.width, Video.height)
Video = Image + Video.convertToRGB24

Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, 0.000000)
Video=AudioDub(Video, Audio)

Return(Video)


Écrit par : SG1 16/05/2010 09:48

Bonjour,

interro1.gif

Ben, là je ne comprend plus... L'aperçu fonctionne dans Ri4m, je vois l'image, maintenant au début du film.

Mais qu'est ce qui change ? Les deux script me paraissent identique...

Voilà le dernier script utilisé, donc... (Je tente de retrouver le premier que j'avais utilisé, mais je pense que je ne l'avais pas sauvegardé...).

Citation
# **** Ripp-it & AVIsynth 2.5x script **** pass 2+

LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\undot.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\VSFilter.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MPEG2Dec3.dll")

# Video codec : Xvid
# Video bitrate : 1589655

Source="D:\Avatar\VTS_05_1.d2v"
Largeur=720
Hauteur=402
ratio =1.800000
vratio =1.800000
Crop_g=0
Crop_d=0
Crop_h=0
Crop_b=-2
Indice=0.223016

Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=Crop(Video, crop_g, crop_h, crop_d, crop_b)
Video=TextSub(Video, "D:\Avatar\Avatar2.ssa")

Image = ImageSource("H:\Traitement\Avatar\Avatar Screen.png",0,0)
Image = BilinearResize(Image.ChangeFPS(Video), Video.width, Video.height)
Video = Image + Video.convertToRGB24

Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, 0.000000)
Video=AudioDub(Video, Audio)

Return(Video)


Ah, si, le voilà, le premier utilisé :

Citation
# **** Ripp-it & AVIsynth 2.5x script **** pass 2+

LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\undot.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\VSFilter.dll")
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MPEG2Dec3.dll")

# Video codec : Xvid
# Video bitrate : 1589655

Source="D:\Avatar\VTS_05_1.d2v"
Largeur=720
Hauteur=400
ratio =1.800000
vratio =1.800000
Crop_g=0
Crop_d=0
Crop_h=0
Crop_b=0
Indice=0.220785

Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=VobSub(Video, "d:\avatar\avatar3_ripp-it.idx")

Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, 0.000000)
Video=AudioDub(Video, Audio)

Image = ImageSource("H:\Traitement\Avatar\Image\Avatar.bmp",0,0)
Image = BilinearResize(Image.ChangeFPS(Video), Video.width, Video.height)
Video = Image + Video.convertToRGB24

Return(Video)


@+

Écrit par : leon1789 16/05/2010 10:13

hé hé cling1.gif

les deux scripts ne sont pas identiques. Regarde bien le paragraphe où est insérée l'image et celui où le son est muxé : je les ai simplement intervertis.
Du coup, plus de soucis avs, mais en revanche il y a un décalage audio de 4 centièmes de seconde (mais comme tu dis, avec le doublage français, on n'est pas à 4 centièmes près !)

au fait, pourquoi utilises-tu une hauteur de 402 pixels ? (et non les 400 habituels)

Écrit par : SG1 16/05/2010 10:43

Bonjour,

Citation
Regarde bien le paragraphe où est insérée l'image et celui où le son est muxé : je les ai simplement intervertis.

Oui, ça j'ai remarqué, et j'ai fait un petit test avec mon premier script en inversant aussi, comme toi... J'obtiens un nouveau message d'erreur



Citation
Du coup, plus de soucis avs, mais en revanche il y a un décalage audio de 4 centièmes de seconde (mais comme tu dis, avec le doublage français, on n'est pas à 4 centièmes près !)

Il faudrait faire un recalage de 4 centièmes, mais bon...
On ne peut pas prendre un bout d'audio dans le film et le coller en même temps ?
J'en demande peut-être un peu trop, mais jusqu'à présent tu as toujours trouvé une solution... yahoo.gif

Citation
au fait, pourquoi utilises-tu une hauteur de 402 pixels ? (et non les 400 habituels)

Toujours l'oeil vif... J'étais sûr que tu allais poser la question...

En fait, j'ai encodé une première fois et j'ai remarqué un défaut du film sur une ligne du bas...
J'ai donc croppé juste le nécessaire, et rajouté 2 pixels dans la taille pour ne pas modifier mes dimensions habituelles.
Ceci dit, j'ai donc mon image qui sera allongé en hauteur de 2 pixels.
Mais comme j'ai souvent remarqué que 720x400 donnait une image légèrement aplatie...

cling.gif

@+

Écrit par : leon1789 16/05/2010 11:15

Pour éviter le décalage audio, le plus simple est de modifier un paramètre de DelayAudio : modifie la ligne
Audio=DelayAudio(Audio, 0.04)


Mettre une hauteur finale à 402 pixels me paraît "dangereux" (problèmes de compression et de compatibilité, etc.)
Oui, ri4m aplatit les images, c'est pour cela que j'utilise CropResizeBorder cling1.gif

Écrit par : SG1 16/05/2010 11:23

Bonjour,

Citation
Mettre une hauteur finale à 402 pixel est dangereux je pense (problème de compression, de compatibilité, etc.)

Compatibilité, non, puisque je rajoute 2 pixels sur la hauteur de départ... Au final, j'ai toujours du 720x400...

Citation
Pour éviter le décalage audio, le plus simple est de modifier un paramètre de DelayAudio : modifie la ligne
Audio=DelayAudio(Audio, 0.04)

Oui, ça je sais, c'est moi qui avait proposé l'astuce pour modifier le Delay au départ de l'encodage du DVD
http://forum.ripp-it.com/Astuce-decalage-audio-t17895.html

Merci pour le script de l'image... Je retenterais ça avec mon prochain film, ça m'évitera de coller l'image après encodage (c'est un peu plus complexe...)

@+

Écrit par : leon1789 16/05/2010 11:24

720x400 , ouf ! ok, je n'avais tout compris.

Tiens, stp, peux-tu poster une image (tirée directement du .vob) du film où le défaut apparaît ?

Écrit par : SG1 16/05/2010 12:00

Bonjour,

Citation
Tiens, stp, peux-tu poster une image du film où le défaut apparaît ?

Le défaut que j'ai corrigé avec le cropp de 2 pixels ?

Je crois que je n'ai pas gardé l'encodage...
Je vais recréer les conditions dans Ri4m et faire une capture...

@+

Dans Ri4m, le problème n'est pas visible sur la capture... et avec Virtualdub, on le vois légèrement en bas en agrandissant...
J'ai pris une image claire... Si tu regardes en bas entre les deux personnages, tu peux y voir un décrochement de la ligne.
La ligne est noire sur la droite de l'image.
C'est nettement plus visible après encodage !


Écrit par : leon1789 16/05/2010 12:22

merci.
ok.
C'est effectivement un problème qui se rencontre souvent.

Écrit par : SG1 16/05/2010 12:46

Et tu le corriges en général ou bien tu le laisses comme ça ?

@+

Écrit par : leon1789 16/05/2010 13:54

Je demande à CropResizeBorder de couper la ligne, tout en gardant une résolution multiple de 16.

Pas question d'avoir un bout de noir qui traine cling1.gif

Écrit par : SG1 16/05/2010 13:57

Bonjour,

Citation
Pas question d'avoir un bout de noir qui traine

gniark.gif Idem chez moi... On est trop perfectionniste !

Citation
Je demande à CropResizeBorder de couper la ligne, tout en gardant une résolution multiple de 16.

Ce qui revient au même que ce que j'ai fait sauf c'est peut-être plus simple avec CropResizeBorder...

@+

Écrit par : SG1 21/05/2010 10:08

Bonjour,

Lééoooonnnnn !!!!!!!!!!!!!!!!!!!!!!!!!!

Une nouvelle petite question, au cas où tu aurais encore un truc à me proposer au fond de tes cartons... yahoo.gif

Citation
Image = ImageSource("H:\Traitement\Avatar\Image\Avatar.bmp",0,0)
Image = BilinearResize(Image.ChangeFPS(Video), Video.width, Video.height)
Video = Image + Video.convertToRGB24


J'ai testé deux soir le rajout d'une image en début... Ça fonctionne, maintenant !

Et je me suis souvenu que pour les tests de BlurSubtitle, tu utilisais un script pour créer une mi,i-vidéo par une suite d'une même image...

Citation
v = ImageReader("C:\riam\images\mon_image.jpg", 1, 10000, 25)
Return v


J'ai testé, et ça a l'air intéressant...

Donc, question :
Y aurait-il possibilité de rajouter une série d'images identique (mélange entre les deux scripts) avec un effet de fondue noir...
...Que l'on pourrait ajouter en début de film, disons sur une durée de 3 à 5 secondes !

Je ne sais pas si je m'explique bien...

@+

Écrit par : leon1789 22/05/2010 16:57

Salut SG1

je crois comprendre : tu veux une image normalement exposée au début, puis qui "disparaît dans le noir" en quelques secondes ?
Cela est possible, je l'ai déjà fait il y a quelques temps... je retrouve les instructions avs, et je reviens.

Écrit par : leon1789 22/05/2010 17:33

Ok, je reprends l'exemple d'avatar.

La ligne temps = 5 indique le nombre de secondes du début de la transition au noir complet.
Il faut que tu mettes la valeur que tu veux, même un nombre à virgule si tu veux.

Code
(...)
Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=Crop(Video, crop_g, crop_h, crop_d, crop_b)
Video=TextSub(Video, "D:\Avatar\Avatar2.ssa")

temps = 5

nbr_images = round(temps*Video.FrameRate)
Image = ImageReader("C:\riam\images\mon_image.jpg", 1, nbr_images, video.FrameRate)
Image = BilinearResize(Image, Video.width, Video.height)
Video = Image.FadeOut(nbr_images) + Video.convertToRGB24

Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, temps)
Video=AudioDub(Video, Audio)

Return(Video)


Attention à la ligne Audio=DelayAudio(Audio, temps) pour le décalage audio nécessaire.

Si tu veux des trucs plus sophistiqués, on peut voir... cling1.gif

Écrit par : SG1 22/05/2010 18:23

Bonjour,

Citation
je crois comprendre : ...

yahoo.gif Viii... Tu as tout à fait compris...

L'image fixe, c'est bien, pratiquement pas de décalage... Encore que dans mon dernier script, j'ai modifié le délay de 4 centièmes...
Pour l'aperçu dans XP, c'est bien... Sous Seven ensuite, je ne sais pas ce que ça donnera !




Mais il faut toujours chercher mieux !

Citation
Cela est possible, je l'ai déjà fait il y a quelques temps..

Génial... Je regarde tes infos demain... Là, je part, je suis invité chez des amis icon_cheers.gif

@+

Écrit par : SG1 23/05/2010 09:49

Bonjour,

C'est génial ton truc... Toujours au top, le Léon ! yahoo.gif

Un petit détail, la fondue au noir était trop longue. J'ai donc modifié cette ligne :

Citation
Video = Image.FadeOut(nbr_images) + Video.convertToRGB24

Video = Image.FadeOut(25) + Video.convertToRGB24


La fondue devrait se faire en 1 seconde... 25 images/sec.

C'est correct ?

Et pour l'audio, j'ai testé en décalant de 5 secondes, ça marche bien...

Citation
Audio=DelayAudio(Audio, 5.000000)


@+

Écrit par : leon1789 23/05/2010 11:56

ok aga.gif

Pour 1 seconde de fondu, mets plutôt

Code
Video = Image.FadeOut(Video.FrameRate.round) + Video.convertToRGB24

car cela fonctionnera quelle que soit la video (25 fps, ou 30, ou ...)

Écrit par : SG1 23/05/2010 12:43

Bonjour,

Citation
Pour 1 seconde de fondu, mets plutôt

bof.gif Oui, mais si sur un autre film, je veux 2 secondes, je fais comment ?

Ouai, je sais, je suis chiant ! mrgreen2.gif

@+

PS :
Citation
Image = ImageReader("C:\riam\images\mon_image.jpg", 1, nbr_images, video.FrameRate)

Au fait, le terme « nbr_images » il faut le remplacer par un chiffre ou le laisser comme ça ?
Et le chiffre 1, juste avant, ça correspond à quoi ?

Écrit par : leon1789 23/05/2010 16:26

Voilà une nouvelle version où tu indiques la durée de l'intro et le temps de fondu.
Ceci fonctionne quel que soit le fps de la vidéo.

Code
(...)
Video=mpeg2Source(Source)
Video=Undot(Video)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=Crop(Video, crop_g, crop_h, crop_d, crop_b)
Video=TextSub(Video, "D:\Avatar\Avatar2.ssa")

# modifier seulement ces deux valeurs (en secondes)
# pour indiquer le temps total de l'exposition de l'image  --> temps
# pour indiquer la durée du fondu  --> temps_fondu

temps = 5        
temps_fondu = 1.5

# ne pas toucher les lignes ci-dessous

nbr_images = round(temps*Video.FrameRate)
nbr_images_fondu = round(temps_fondu*Video.FrameRate)
Image = ImageReader("C:\riam\images\imag(2).jpg", 2, nbr_images, video.FrameRate)
Image = BilinearResize(Image, Video.width, Video.height)
Video = Image.FadeOut(nbr_images_fondu) + Video.convertToRGB24


Audio=WAVsource("H:\Traitement\Avatar\audio0.wav")
Audio=DelayAudio(Audio, temps)
Video=AudioDub(Video, Audio)

Return(Video)



Par exemple, si tu veux voir l'image pendant 5.4 secondes dont un fondu de 1.3 seconde,
tu mets temps = 5.4 et temps_fondu = 1.3 aga.gif

Si tu touches les lignes du script, tu risques de le rendre incorrect.
Pour répondre à ta question sur ImageReader : ImageReader(le nom du fichier, image de début , image de fin, FPS)


Écrit par : SG1 23/05/2010 16:55

Bonjour,

Citation
si tu veux voir l'image pendant 5.4 secondes

Oula... Je suis pas perfectionniste à ce point... Un compte rond en secondes ira déjà très bien !
Mais c'est toujours bon de savoir que l'on peut le faire...

Citation
Pour répondre à ta question sur ImageReader :

Là, je crois que je n'ai pas tout pigé...

Ton dernier script :
Citation
ImageReader("C:\riam\images\imag(2).jpg", 2, nbr_images, video.FrameRate)

Ton explication :
Citation
ImageReader : ImageReader(le nom du fichier, image de début , image de fin, FPS)


le nom du fichier / C:\riam\images\imag(2).jpg : OK !
image de début / 2 : Avant il y avait un 1, maintenant, c'est 2 ?
image de fin / nbr_images : Là j'ai pas suivi...
FPS / video.FrameRate : OK !

@+

Écrit par : SG1 06/06/2010 13:17

Bonjour,

Un petit complément...

Sur le même principe d'une image répétée sur un certain nombre de secondes... Peut-on faire suivre plusieurs images de la même manière ?

J'avais dans l'idée d'utiliser des images GIF ou PNG avec transparence pour créer un genre d'animation de quelques secondes...

@+

Écrit par : leon1789 14/06/2010 19:37

Salut SG1

C'est possible, mais tu as combien d'images à mettre à la suite ?

Écrit par : SG1 14/06/2010 20:35

Bonjour,

Citation (leon1789 @ lundi 14 juin 2010 à 20:37) *
Salut SG1

C'est possible, mais tu as combien d'images à mettre à la suite ?


Ben, c'est à dire, je n'y ai pas vraiment réfléchi avant de savoir si c'était possible !

Pour Avatar, par exemple, j'avais dans l'idée de faire défiler en fondu les personnages principaux... De 3 à 5 images, je dirais... Pendant 5 à 10 secondes.

Il ne faut pas non plus que ça soit trop long...

@+

Écrit par : leon1789 15/06/2010 14:10

Le plus simple est peut-être que tu recopies 3 ou 4 fois le paragraphe d'insertion d'images dans le script avs pour les 3 ou 4 images que tu veux faire voir.

Écrit par : SG1 15/06/2010 14:16

Bonjour,

Citation
tu recopies 3 ou 4 fois le paragraphe d'insertion d'images

C'est pas plus compliqué ?
Bon, alors, même moi je devrais y arriver... gniark.gif

Je ferais un essai dès que possible...

(Là, je suis au boulot... yahoo3.gif )
C'est quand même bien quand on a pas le patron dans le dos...

@+

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)