Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum DivX Video Ripp-it After Me Ri4m _ Filtres avisynth.... _ Proposition pour ripp-it.avs

Écrit par : stryke 28/06/2003 17:25

Je pense que c'est faisable, mais au préalable il faudrait avoir votre avis ainsi que celui de Pepsi :

Le pb avec ripp-it.avs est qu'il systématiquement regénéré à  chaque encodage et qui plus est, si un filtre ne vous plait pas il faut faire la modif à  chaque fois (cas du resize si la personne préfère un bicubic plutà´t que le bilinear).

Pour avoir vu un script qui fonctionne de cette manière que pensez vous de ceci :

On garde le script ripp-it.avs mais dans lequel on inscrit en variables les valeurs de crop, de resize, on définit la source (soit par les vobs et fichier d2v) et ensuite on appelle une fonction (ex: ScriptBasique, ScriptBasBitrate, etc....)

Ces fonctions seraient quant à  elles contenues dans un autre fichier avs, le script fille, et appellé donc par le script mère ripp-it.avs.


L'intérêt serait de pouvoir personnaliser le script fille, puisque non regénéré à  chaque fois, soit :

- En modifiant les scripts internes (Basique, BasBitrate,...)

- De rajouter des scripts perso


C'est l'idée de départ je n'ai même pas essayé ce que je viens de dire (mais comme dit plus haut, le script FMF fonctionne de cette manière)

Avant d'aller plus loin, et de trouver des compétances pour réaliser ce truc (perso je vais être très rapidement limité), votre avis m'intéresse.....

Écrit par : pepsilite 28/06/2003 18:28

Euh, il y a visiblement quelque chose qui t'a echappé mon cher Stryke et qui va changer ta vie, quand tu coches [x] Script AVS le script ne sera pas regéneré tant que tu ne décocheras pas et le bouton "Edition AVS" te sert justement à  aller faire les modifs dont tu as envie...

guix_edoom7.gif yahoo.gif

Écrit par : stryke 28/06/2003 22:47

non cela ne m'a pas échappé. cling.gif

Mais lorsque tu recommences un encodage celui ci est refait (à  moins que le crop et resize soit pil-poil identique au précédent film) d'o๠ma proposition

Écrit par : pepsilite 28/06/2003 23:07

Euh, non, même en recommencant un encodage, le [x] reste coché à  moins qu'un bug m'ait échappé, ton script édité est toujours conservé...

an_kes.gif

Écrit par : pepsilite 29/06/2003 01:31

Ah, j'ai compris ton truc, tu voudrais retrouver tes réglages pour encoder un AUTRE film, oui, c pas bête, j'y avais pensé, un système de profils tous faits cling.gif

Écrit par : TiTiFonT 29/06/2003 13:53

heu ouait C faisable, et ça doit pas etre tres long a dévelloper mais ça obligerais pepsi a refaire casi toute la partie de code qui génére le avs pour que ça puisse fonctionner... apres faut voir l'intéret, perso moi je fais des copier coller good.gif ...

d'un autre coté ça pourais permettre de proposer une base pour dévelloper des scripte...

je m'explique, si qq un a dévelloper un super scripte optimiser pour les annime, il suffira de rajouter son script dans le avs fille ( ou de faire un update du avs fille) et apres on pourais l'utiliser tres facillement

en gos si j'ai bien compris, ça resemblerais a ça :

###fichier Ripp-it.avs###

source=chemin_du_d2v_du_film
crop_haut = 8
crop_bas = 16
crop_gauche = 4
crop_droit = 4
resize_largeur = 520
resize_hauteur = 288

##et apres y a plus qu'a appeler la fonction qu'on veut :

#pour faire un film normal :
video=normal(source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )

# pour utiliser le filtre bas debit faudrais utiliser ça
video=Bas_Debit(source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )

#pour un script perso :
video=perso(source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )

#pour le script spécial anime :
video=Spécial_anime(source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )


## apres y a plus qu'a renvoyer le film a vdub ( voir a rajouter le son...

return(Video)



### fille.avs devrais resembler a ça :###


function normal (source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )
{
[...]
}

function bas_débit (source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )
{
[...]
}

function spécial_anime (source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )
{
[...]
}

function perso (source, crop_haut , crop_bas, crop_gauche, crop_droit, resize_largeur, resize_hauteur )
{
[...]
}



voila est-ce ça l'idée ?, ou j'ai rien compris encore comme d'hab gloups.gif

Écrit par : stryke 29/06/2003 16:54

Non, vous avez tous les 2 parfaitement compris... ziiio.gif

Effectivement on peut ensuite enrichir le script fille avec les meilleurs scripts proposés sur le forum...ce qui serait une autre approche par rapport à  ce qui se fait :$:

Les puristes vont crier au scandale, que chaque film est différent et qu'il nécessite un script adapté, etc.....mais je crois que l'on ne joue pas dans la même cour et de plus je considère avisynth comme un jouet (pour s'amuser)


Ton code TiTiFont est bien l'idée que je m'en faisais....

A voir, mais je rajouterai bien dans le script ripp-it une variable supplémentaire (pour choisir le type de source : vob ou d2v) :

Type_source=vob (ou d2v)


et dans le script fille :

video=(Type_source==vob) ? MPEGSource(LesVobs) : MPEG2Source(LeD2V)


A vous de voir si l'idée de départ est intéressante, effectivement çà  demande la modif de toute la partie du code qui génère le fichier ripp-it.avs euh.gif


PS : Il serait peut être intéressant d'intégrer la version 1.08 de mpeg2dec3.dll, elle permet d'utiliser de nouveaux idct (6 et 7) et aux dires des cadors c'est le 7 qu'il faut utiliser.

EDIT : pour les possesseurs d'un P4 l'idct=5 et non 7 comme dit précédemment

Écrit par : pepsilite 29/06/2003 16:59

Non, vous avez tous les 2 parfaitement compris... ziiio.gif 

Effectivement on peut ensuite enrichir le script fille avec les meilleurs scripts proposés sur le forum...ce qui serait une autre approche par rapport à  ce qui se fait  :$: 

Les puristes vont crier au scandale, que chaque film est différent et qu'il nécessite un script adapté, etc.....mais je crois que l'on ne joue pas dans la même cour et de plus je considère avisynth comme un jouet (pour s'amuser)

Voué, moi aussi yahoo1.gif

Ton code TiTiFont est bien l'idée que je m'en faisais....

A voir, mais je rajouterai bien dans le script ripp-it une variable supplémentaire (pour choisir le type de source : vob ou d2v) :

Type_source=vob    (ou d2v)

Euh, tu as vu que dans la 1.18 on peut maintenant le choisir dans les paramètres de Ripp-it?

et dans le script fille :

A vous de voir si l'idée de départ est intéressante, effectivement çà  demande la modif de toute la partie du code qui génère le fichier ripp-it.avs  euh.gif 

Ouais... Ben pour l'instant... Non  hop1.gif 

PS : Il serait peut être intéressant d'intégrer la version 1.08 de  mpeg2dec3.dll, elle permet d'utiliser de nouveaux idtc (6 et 7) et aux dires des cadors c'est le 7 qu'il faut utiliser.

Ou ké lé?

Écrit par : TiTiFonT 29/06/2003 17:12

video=(Type_source==vob) ? MPEGSource(LesVobs) : MPEG2Source(LeD2V)


héhé je vois que tu tripatouille dans le conditionnel euh.gif le pb C que il faudrais en plus passer a avisynth 2.52 pour que ça marche beuh.gif

Écrit par : rol 29/06/2003 19:02

Le 2.52 fonctionne avec rippit cling.gif

Écrit par : daddydivx 29/06/2003 20:57

Ou ké lé?


aile lé là  :

http://nic.dnsalias.com/MPEG2Dec3v108.zip

Écrit par : stryke 29/06/2003 21:33


A voir, mais je rajouterai bien dans le script ripp-it une variable supplémentaire (pour choisir le type de source : vob ou d2v) :

Type_source=vob    (ou d2v)

Euh, tu as vu que dans la 1.18 on peut maintenant le choisir dans les paramètres de Ripp-it?

Oui j'ai vu et c'est justement parce que tu proposes le choix entre ces deux types de source qu'il faudrait également avoir une variable supplémentaire pour ce type de script (mère/fille)




video=(Type_source==vob) ? MPEGSource(LesVobs) : MPEG2Source(LeD2V)


héhé je vois que tu tripatouille dans le conditionnel euh.gif le pb C que il faudrais en plus passer a avisynth 2.52 pour que ça marche beuh.gif

En fait je tripatouille pas trop, j'ai simplement lu pas mal de chose. Par contre je savais pas qu'il fallait passer à  la v2.52....merci de l'info euh.gif


Bon ben Pepsi qui commençait à  ne plus savoir quoi faire comme release...l'en v'la une euh.gif

Tu fais quoi pendant tes vacances ?? guix_mdr.gif guix_jesors.png

Écrit par : pepsilite 29/06/2003 21:56

Je dors ... glass.gif

Écrit par : TiTiFonT 29/06/2003 22:39

Le 2.52 fonctionne avec rippit  cling.gif

je sais bien, puisse que C celle que j'utilise yahoo1.gif
mais je voulais dire par la, qu'il faudra que tous le mond y passe pour que ça marche cling.gif

pis pendant qu'on y est, je pense que ça dois s'écrir comme ça en langages avisynth cling.gif

fichier Ripp-it.avs :
# **** Ripp-it & 0AVIsynth 2.5x script ****



LoadPlugin("C:MediaRIPP-I~1dllsundot.dll")

LoadPlugin("C:MediaRIPP-I~1dllsdecomb.dll")

LoadPlugin("C:MediaRIPP-I~1dllsMPEG2Dec3.dll")

Import("C:MediaRIPP-I~1dllsfonctions.avs")





# Variables

source = "G:Minorityvts_01_1.d2v"

Resize_H = 384

Resize_L = 704

crop_gauche = 0

crop_haut = 0

crop_droit = 0

crop_bas = 0





#appel de la fonction

Video= Basdebit(source, Resize_H, Resize_L, crop_gauche, crop_haut, crop_droit, crop_bas)



#Et le traditionnel :

Return(Video)


fichier fonctions :
function Normal(string source, int Resize_H, int Resize_L, int crop_gauche, int crop_haut, int crop_droit, int crop_bas)

    {

    Video=mpeg2Source(source)

    Video=ChangeFPS(Video,25.000)

    Video=Undot(Video)

    Video=BilinearResize(Video, Resize_L, Resize_H)

    Video=Crop(Video, crop_gauche, crop_haut, crop_droit, crop_bas)

    Return(Video)

    }



function Basdebit(string source, int Resize_H, int Resize_L, int crop_gauche, int crop_haut, int crop_droit, int crop_bas)

    {

    Video=mpeg2Source(source)

    Video=ChangeFPS(Video,25.000)

    Video=Undot(Video)

    Video=BilinearResize(Video, Resize_L, Resize_H)

    Video=Crop(Video, crop_gauche, crop_haut, crop_droit, crop_bas)

    video=Convolution3D (video,0, 6, 10, 6, 8, 2.8, 0)

    Video=FluxSmooth(Video,4,4)

    Return(Video)

    }

Écrit par : stryke 30/06/2003 07:21

je testerai ceci se soir, le seul pb qui j'y vois est que là  le script est basé sur le fichier d2v. Hors dans la nouvelle version, Pepsi autorise soit une source à  partir des vob (version initiale de ripp-it) ou une source à  partir du fichier d2v.

Donc 2 solutions :

- soit dans le script mère ripp-it.avs il y a la ligne mpegsource ou mpeg2source en fonction du choix utilisateur

- soit ajout d'une variable dans le script mère en fonction du choix utilisateur + test conditionnel dans script fille

Écrit par : stryke 30/06/2003 16:02




Ou ké lé?


aile lé là :

http://nic.dnsalias.com/MPEG2Dec3v108.zip



Pack plugins avisynth à l'adresse de Sagittaire

-http://jfl1974.free.fr/HTM/Download.htm (lien hs)

Le convolution3D est également plus récent....si je me souviens bien

Écrit par : stryke 30/06/2003 22:51

J'ai testé ton code TiTiFonT, VDM l'accepte sans broncher euh.gif

J'ai rajouté quelques lignes pour prendre en compte :

- Les portions
- si utilisation de vobs ou de fichier d2v.

Pour cela il y a un test sur la variable "Source_Type", si d2v on utilise le plugin mpeg2source sinon on utilise mpegsource. A ce sujet la version avisynth de ripp-it accepte les lignes conditionnelles cling.gif

Fichier ripp-it.avs

# **** Ripp-it & AVIsynth 2.5x script ****





# ---------- Chargement des plugins ----------



# --> Chemin à  définir suivant config PC



LoadPlugin("E:PROGRA~1RIPP-I~1dllsundot.dll")

LoadPlugin("E:PROGRA~1RIPP-I~1dllsdecomb.dll")

LoadPlugin("E:PROGRA~1RIPP-I~1dllsMPEG2Dec3.dll")

Import("E:PROGRA~1RIPP-I~1dllsfonctions.avs")



# --------------------------------------------







# ---------- Définition des Variables ----------



# Source vidéo --> Chemin à  définir suivant config PC

source = "C:PLANET~1V3VTS_01_1.d2v"

Type_Source = "d2v"   # "d2v" ou "vob"



# Taille de l'image

Resize_L = 640

Resize_H = 360



# Valeurs de Crop

Crop_Gauche = 20

Crop_Haut = 0

Crop_Droit = -20

Crop_Bas = 0



# Valeurs de Portion

Portion_Debut = 0

Portion_Fin = 0



# -----------------------------------------------







# ----------    Appel de la fonction   ----------



video= Normal(source, Type_Source, Resize_H, Resize_L, Crop_Gauche, Crop_Haut, Crop_Droit, Crop_Bas, Portion_Debut, Portion_Fin)



# ------------------------------------------------







# La partie sous titre







# La partie audio







Return(Video)



fichier fonctions.avs
# Fonction interne Ripp-it : Script standard

#

function Normal(string Source, string Type_Source, int Resize_H, int Resize_L, int Crop_Gauche, int Crop_Haut, int Crop_Droit, int Crop_Bas, int Portion_Debut, int Portion_Fin)

  {

  Video = (Type_Source == "d2v") ? mpeg2Source(source, idct=0) : mpegSource(source)

  video = Trim(video, Portion_Debut, Portion_Fin)

  Video = ChangeFPS(Video,25.000)

  Video = Undot(Video)

  Video = BilinearResize(Video, Resize_L, Resize_H)

  Video = Crop(Video, Crop_Gauche, Crop_Haut, Crop_Droit, Crop_Bas)

  Return(Video)

  }







# Fonction interne Ripp-it : Script bas bitrate

#

function BasDebit(string Source, int Resize_H, int Resize_L, int Crop_Gauche, int Crop_Haut, int Crop_Droit, int Crop_Bas, int Portion_Debut, int Portion_Fin)

  {

  Video = (Type_Source == "d2v") ? mpeg2Source(source, idct=0) : mpegSource(source)

  video = Trim(video, Portion_Debut, Portion_Fin)

  Video = ChangeFPS(Video,25.000)

  Video = Undot(Video)

  Video = BilinearResize(Video, Resize_L, Resize_H)

  Video = Crop(Video, Crop_Gauche, Crop_Haut, Crop_Droit, Crop_Bas)

  video = Convolution3D (video,0, 6, 10, 6, 8, 2.8, 0)

  Video = FluxSmooth(Video,4,4)

  Return(Video)

  }







# Fonction interne Ripp-it : Script désentrelacement

#

function Desentrelace(string Source, int Resize_H, int Resize_L, int Crop_Gauche, int Crop_Haut, int Crop_Droit, int Crop_Bas, int Portion_Debut, int Portion_Fin)

  {

  Video = (Type_Source == "d2v") ? mpeg2Source(source, idct=0) : mpegSource(source)

  video = Trim(video, Portion_Debut, Portion_Fin)







  Return(Video)

  }









# ----------- Fonctions personnelles ----------





# Fonction standard avec Bicubic au lieu de Bilinear

#

function Perso_Std(string Source, int Resize_H, int Resize_L, int Crop_Gauche, int Crop_Haut, int Crop_Droit, int Crop_Bas, int Portion_Debut, int Portion_Fin)

  {

  Video = (Type_Source == "d2v") ? mpeg2Source(source, idct=0) : mpegSource(source)

  video = Trim(video, Portion_Debut, Portion_Fin)

  Video = ChangeFPS(Video,25.000)

  Video = Undot(Video)

  Video = BicubicResize(Video, Resize_L, Resize_H,0,0.5)

  Video = Crop(Video, Crop_Gauche, Crop_Haut, Crop_Droit, Crop_Bas)

  video = Trim(video,0,0)

  video = Limiter(video)

  Return(Video)

  }


Ces 2 scripts fonctionnent, ils suffit de les copier dans le dossier dlls de ripp-it et de modifier les chemins des plugins + import et source video

Pour changer de script il suffit de modifier l'appel de fonction dans le fichier ripp-it.avs (à  la place de normal mettre : BasDebit, desentrelace, Perso_Std). Attention desentrelace est vide

# ----------    Appel de la fonction   ----------



video= Normal(source, Type_Source, Resize_H, Resize_L, Crop_Gauche, Crop_Haut, Crop_Droit, Crop_Bas, Portion_Debut, Portion_Fin)



# ------------------------------------------------


Y a juste un truc qui me chifonne, dans la doc de sygma21 il nous dit la chose suivante (en gros) :

- Un entier est une chaine de chiffres auquel on peut associer le signe + ou -
- Une variable de ce type : +1 est considérée comme nombre à  virgule flottante.

Tu as défini les valeurs de crop comme nombre entier (si int veut bien dire ce que je pense.... fait chi** que je sois une vrai buse en C) dans les fonctions, et pourtant j'ai envoyé une valeur négative dans les variables et VDM m'a bien retourné la vidéo correctement croppée hem.gif

En théorie dans les fonctions il aurait fallu un truc de ce genre :

  Video = Crop(Video, Crop_Gauche, Crop_Haut, - Crop_Droit, - Crop_Bas)


Bon un mystère pour moi..... hop1.gif

Dès que j'ai un moment j'essaierai d'encoder avec ces scripts

Écrit par : TiTiFonT 30/06/2003 23:22

bin si je me souvient bien Int veut dire integer ( entier en anglais) mais un entier peux etre négatif (-1 est un entier...) d'apres ce que je me rappelle de mes vieux cours de math, les entier forcement positif s'appelle des entiers naturels ( mais la je doute un peu... good.gif )

sinon bien ton script, il fais plus pro qu le mien cling.gif
Mais pour son implantation dans ripp-it, on en a un poil parler avec pepsi et ça parais pas etre pour tout de suite donc C pas vraiment la peine de te fixer dessus.... beuh.gif mais bon peut etre qu'un jours...

pour l'instant a vrais dire il me semble pas que ça apporte un plus spécial, donc C peu etre pour ça que ça tente pas pepsi plus que ça... le seul intérais est pour les bidouilleur d'avisynth et je crois qu'on est pas la majorité des utilisateur de ripp-it good.gif

apres si on veux allez plus loin, je serais tenter de rajouté 2 variable a la liste : l'indice de qualité et le taux de compression, ça permettrais de faire des filtre auto adaptatif selon les films ( oui, j'entend bien les puristes marmoner que C n'importe quoi et que un vrais filtre aviisynth ne peut pas etre automatique...) mais ça me parais etre sympa pour faire des encodage sans se prendre la tete euh.gif mais la y a un packet de boulot... snif.gif

Écrit par : stryke 30/06/2003 23:55

C'est exact -1 est également un entier euh.gif
Une question sur les entiers (moi je programme qu'en VB et les entiers en VB vont de - 64 000 et des cacahuètes jusqu'à  64 000 et des cacahuètes) dans le script, j'ai passé des valeurs de 100 000 et plus dans le trim et de nouveau le script n'a pas bronché. Un entier en C çà  monte jusqu'à  combien ?



Voilà  à  quoi je faisais référence par rapport au guide avisynth de sygma21, un extrait de son guide :

Un entier est une chaîne de chiffre que l'on peut associer avec les symboles + ou - en début de chaîne. Un nombre à  virgule flottante est une chaîne de chiffres avec un point inséré quelque part à  l'intérieur de la chaîne, on peut utilisé également les symboles + ou - placé au début du nombre. Par exemple +1. est considéré comme un nombre à  virgule flottante


Bon peut être que la syntaxe a évolué avec les dernières versions d'avisynth bbbb1.gif



Pour les scripts, bah oui c'est dans les mains de Pepsi.... je voulais juste vérifier que je n'avais pas raconté des bétises dans mon premier post euh.gif


Pour tes 2 paramètres supplémentaires ... voué bonne idée .... enfin y'en a peut être qui feront une drole de tête lorsqu'ils s'apercevront que le script à  resizé la vidéo en plus petit si l'indice ou la compression n'est pas bon an_ouarf.gif

Écrit par : TiTiFonT 01/07/2003 18:22

oué euh.gif bin alors il suffit de mettre une variable booléène style "force_no_resize"....

pour l'histoir deu int, je crois que stygmata parle de "+1." (le point faisant partie du chiffre et non un caractére de ponctuation) sous entendu +1.00 et la effectivement C bien un float.
pour ce qui est de la "taille" d'un entier en C je sais pas trop, et si je ne me goure pas, il existe aussi plusieur int ( par exemple double int ) donc je peux pas trop te dire mais je pense pas que ça te limite dans tes script cling1.gif

Écrit par : rol 01/07/2003 18:26

Truc de ouf tout ça yahoo.gif

Écrit par : thebattou 09/04/2004 14:08

Je comprend pas pq le mien marche pas? qd je prévisualise, l'image est saccadée et si je teste la compressibilité il ne trouve pas de valeur et le test dure 2 min!!! guix_sign-hein.gif

LoadPlugin("C:Program FilesAviSynth 2.5pluginsmpeg2dec3.dll")  

LoadPlugin("C:Program FilesAviSynth 2.5pluginsMasktools.dll")    

LoadPlugin("C:Program FilesAviSynth 2.5pluginsUnfilter.dll")    

LoadPlugin("C:Program FilesAviSynth 2.5pluginsFluxsmooth.dll")  

LoadPlugin("C:Program FilesAviSynth 2.5pluginsundot.dll")  

Source="F:MESDOC~1MESVID~1DVDRIP~1OCEAN'~1VTS_01_1.d2v"



largeur=720

hauteur=288

ratio  =1.800000

vratio =1.800000

Crop_g=0

Crop_d=0

Crop_h=56

Crop_b=-56

Indice=0.148812

Video=mpeg2Source(Source)

video=HybridFupp(video,largeur,hauteur,preset="high")



Return(Video)


C peut étre à  cause du filtre Hybridfupp

Écrit par : lauden 09/04/2004 14:16

STP évite de poster le même problème dans différentes rubriques. na.gif

Pour le filtre je t'ai fait une réponse dans l'autre section.

Pour le test de compressibilité, essaie d'utiliser un nom de chemin plus simple (au moins sans espaces)

Écrit par : stryke 09/04/2004 16:52

ça c'est du déterrage de post......

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