Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
618 connectés 

  FORUM HardWare.fr
  Video & Son
  Traitement Vidéo

  Cherche logiciel pour convertir videos en 60 fps

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cherche logiciel pour convertir videos en 60 fps

n°1873484
Profil sup​primé
Posté le 23-08-2013 à 11:09:56  answer
 

Bonjour,
 
Voilà un moment déjà que je cherche à augmenter le framerate de mes vidéos car je trouve cela beaucoup plus agréable à regarder que le classique 24 fps.
J'annonce dès à présent que je ne souhaite pas lancer un débat au sujet du 60 fps vs 30/25/24 fps, il existe déjà une multitudes de sujets comme cela sur le net.
Merci d'avance pour votre compréhension.
 
Actuellement, je parviens à regarder mes vidéos en 60 fps par traitement logiciel avec SVP (Smooth Video Project) qui fonctionne plutôt bien et pour lequel je n'ai pas
de reproches particulier à faire (pour l'instant). Cependant, je suis obligé à chaque fois de lancer le logiciel pour obtenir le résultat escompté, puisqu'en effet la vidéo
conserve son framerate d'origine.
 
Je cherche donc un petit logiciel gratuit et accessible (si possible) qui me permettrait de traiter mes vidéos pour les convertir en 60 fps pour ne plus utiliser
le traitement logiciel de SVP, et ainsi pouvoir lire mes vidéos directement sur d'autres supports (notamment ma tv) sans dépendre de mon pc.
Je suis conscient que ce genre de traitement risque de dégrader quelque peu la qualité d'origine de la vidéo (apparition d'effets indésirables, modification de la colorimétrie)
cependant je ne suis pas un expert dans le domaine et si la différence n'est pas perceptible à mes yeux cela ne me pose pas de problème...
Je m'attends également à une augmentation importante du poids du fichier, mais cela ne me dérange pas outre mesure.
 
J'ai déjà effectué des recherches à ce sujet sur le net mais je n'ai pas trouvé de logiciel qui peut convertir une vidéo et garder le résultat tel quel.
Pourtant je suis persuadé que cela existe mais je ne m'y connais vraiment pas dans ce domaine... des idées ?
 
Merci d'avance pour vos propositions :jap:

mood
Publicité
Posté le 23-08-2013 à 11:09:56  profilanswer
 

n°1873492
arnuche
Posté le 23-08-2013 à 11:58:31  profilanswer
 

Soit des logiciels de montage vidéo (payants), soit Avisynth avec le filtre InterFrame (gratuits) ;
http://forum.doom9.org/showthread.php?t=160226
 
exemple de script ;
http://forum.doom9.org/showthread. [...] ost1621666
 
Ce qui compte surtout dans ligne interframe c'est ça : NewNum=60060, NewDen=1001
C'est une manière d'écrire le framerate désiré (60060/1001 = 60).
 
Sinon il y avait les filtres MvFlowfps et mvFlowFps2 mais je crois que c'est dépassé par InterFrame.
 
Pour passer de 23.976 fps à 60 fps, il vaut peut-être mieux commencer par accélérer l'image à 24 fps (assumefps=24/1), mais alors ça accélère le son. Faut voir si ça change quelque chose ou pas. En fait non, il suffit d'encoder en 59.94 hz (puisque c'est en réalité ça la fréquence du 60hz), donc tu mets 60000 au lieu de 60060 (puisque 60000/1001 = 59.94). Ou mieux ; 2997/50, c'est plus précis (tu verras sur une calculatrice qu'il y a plus de décimales si tu fais 60000/1001).
 
edit important : concernant la fonction assumefps : si on veut obtenir un nombre à décimales genre 23.976 il faut écrire assumefps(24000, 1001) et pas assumefps(24000/1001) ; ce dernier ne tient visiblement pas compte des décimales.
 
Passer de 23.976 à 59.94 revient au même que de 24 à 60 (rapport de 2,5/1 dans les 2 cas).
Et je suppose que tu parles de 60hz entrelacé, parce que tu trouveras peu de matos capable de lire du 60p.
Ça complique un peu le script parce qu'après la ligne interframe, il faudra entrelacer l'image (garder une ligne sur deux, les paires dans un champ, les impaires dans le suivant) en rajoutant ces 3 lignes à la fin (pour passer du 60p créé par interframe à du 60i lisible par n'importe quel lecteur) ;
separatefields()
selectevery(4,0,3)
weave()


Message édité par arnuche le 14-09-2013 à 12:08:37
n°1873499
Profil sup​primé
Posté le 23-08-2013 à 12:16:19  answer
 

Merci pour ta réponse arnuche, mais il y a quand même pas mal de points que je n'ai pas compris dans ton explication...
Je ne sais pas ce qu'est une ligne interframe, et je ne comprends pas vraiment toutes les valeurs que tu montres sachant que je n'ai jamais utilisé ce type de programme...
Il n'y aurait pas un logiciel facile à prendre en mains, du genre ou tu choisis le type de format de la vidéo et le résultat que tu veux obtenir (des sortes de présélections en gros)
parce que là je suis plutôt largué :(

n°1873501
arnuche
Posté le 23-08-2013 à 12:21:10  profilanswer
 

Avisynth n'est pas simple au début, ce sont des lignes de commande à taper dans un fichier txt dont tu changes l'extension en .avs au lieu de .txt.
Puis tu l'ouvres dans un logiciel du genre Virtual Dub pour vérifier l'effet de chaque commande (ligne), et quand tu en es satisfait tu l'ouvres dans un encodeur compatible avec les fichiers avs.
En gratuit je ne vois rien d'autre. Ou alors ce sera une conversion très basique qui fera un simple dédoublement de certaines images (je crois que Tmpg enc propose la conversion de fréquence), il n'y aura pas d'interpolation donc ce sera pire que ta vidéo d'origine, or ton but est de la rendre plus fluide.

n°1873509
Profil sup​primé
Posté le 23-08-2013 à 13:15:23  answer
 

Mais Avisynth ne converti pas la vidéo s'il se contente de fichiers .avs ou .txt ?
Mon objectif est d'obtenir une vidéo dont le nombre d'images par seconde est effectivement plus élevé (idéalement 60 fps).
J'avais entendu parler de l'interpolation vidéo auparavant. Je ne vois d'ailleurs pas comment on pourrait faire autrement pour améliorer la fluidité d'une vidéo à moins de 30 fps.  
Il me semble logique qu'il soit nécessaire d'augmenter "artificiellement" le nombre d'image, mais je ne vois pas en quoi c'est un problème si cela est fait correctement.
Il y a quelques fois des effets indésirables, comme par exemple le "soap opera", mais étant données mes faibles connaissances dans le domaine je ne veux pas tenter  
d'essayer de corriger cela pour le moment, je veux juste convertir mes vidéos en hardware pour ne plus dépendre d'une solution software, c'est tout.


Message édité par Profil supprimé le 23-08-2013 à 13:18:16
n°1873513
arnuche
Posté le 23-08-2013 à 13:35:39  profilanswer
 

Avisynth est un frameserver, un intermédiaire entre ta vidéo et l'encodeur qui encodera la vidéo modifiée avec Avisynth.
La plupart des encodeurs acceptent les scripts avs.

Citation :

Il me semble logique qu'il soit nécessaire d'augmenter "artificiellement" le nombre d'image, mais je ne vois pas en quoi c'est un problème si cela est fait correctement.


C'est ce que fait InterFrame (qui fait de l'interpolation), mais tu dois te douter qu'il y a une différence entre un simple dédoublement d'images (ce que fait la commande ChangeFPS dans avisynth) et une interpolation, laquelle va créer de nouvelles images basées sur la vidéo d'origine pour la fluidifier.
Un dédoublement n'est qu'une répétition d'images pour arriver au framerate voulu. Il n'y a pas de création d'image dans ce cas, et ça ne fluidifie en rien la vidéo, au contraire. C'est le principe du 3:2 pulldown (technique servant à transformer du 24p en 60hz).
Et quand on utilise la commande ChangeFPS pour diminuer le framerate et pas l'augmenter, il n'y a plus dédoublement mais effacement de certaines images.
Avec InterFrame, toutes les images sont recalculées pour qu'il y ait une suite fluide, c'est complexe à réaliser et demande beaucoup de calculs.


Message édité par arnuche le 23-08-2013 à 13:43:07
n°1873519
Profil sup​primé
Posté le 23-08-2013 à 14:09:33  answer
 

Oui, même si je ne suis pas un connaisseur je peux comprendre la différence entre un simple dédoublement d'images et une interpolation.
C'est justement ce dernier procédé qui m'intéresse.
 
Interframe peut recalculer toutes les images pour améliorer la fluidité en se basant sur l'interpolation ? Dans ce cas c'est ce logiciel qui m'intéresse le plus.
Je sais que le traitement vidéo est particulièrement gourmand en ressources processeur. Actuellement je n'ai qu'un pentium sur ivy bridge (faute de moyens)  
mais je compte bien migrer vers un i5 3570k dès que ce sera possible.
En attendant, même si mon processeur est un peu faiblard (bien que la dénomination pentium d'aujourd'hui n'ait plus rien à voir avec celle d'auparavant)
est-il quand même possible de travailler une vidéo avec IntelFrame (disons, un mkv de 2H en 720p), quitte à ce que cela mette plus de temps ?  
Ou alors est-ce impossible en raison de manque de jeux d'instructions ou autre ?


Message édité par Profil supprimé le 23-08-2013 à 14:11:23
n°1873558
Profil sup​primé
Posté le 23-08-2013 à 19:53:21  answer
 

up

n°1873598
arnuche
Posté le 24-08-2013 à 11:15:01  profilanswer
 

Je pense que n'importe quel processeur peut convenir, j'ai fait beaucoup d'encodages avec un pc acheté en 2004 ; la seule différence c'est le temps pris pour l'encodage.
Si tu veux installer avisynth, tu peux prendre la version 2.6 alpha 4 ;
http://sourceforge.net/projects/av [...] 130114%5D/
Prends les 4 fichiers et après l'install, tu remplaces le fichier DirectShowSource.dll du dossier plugins d'avisynth par celui -là.
Le chemin de ce dossier est le suivant (sur XP) ;
C:\Program Files\AviSynth 2.5\plugins
Il est bien mis 2.5, même quand on a installé la 2.6, probablement parce que c'est une version alpha (mais qui fonctionne très bien chez moi) et que la dernière officielle est la 2.58.
Et après tu peux installer Interframe (copier/coller les dll et avsi) dans le même dossier plugins. C'est comme ça qu'on rajoute des fonctions qui ne font pas partie des fonctions de base d'avisynth (qui sont déjà très nombreuses).
Après je t'expliquerai comment faire le script.
Je précise tout de même que je n'ai jamais utilisé interframe, mais j'ai utilisé d'autres filtres donc je devrais pouvoir te dire comment l'utiliser. C'est toujours le même principe, les réglages par défaut des filtres sont souvent suffisants, il faudra juste spécifier le framerate voulu.
 
J'ai regardé les 2 vidéos (comparaison avant/après) données dans le premier post du topic InterFrame, et il faut reconnaître que c'est assez impressionnant, malgré de légers halos autour des objets en mouvement par moments (à moins que ce soit un problème de compression mais j'en doute) ;
http://forum.doom9.org/showthread.php?t=160226
N'oublions pas que l'interpolation est parmi les opérations les plus complexes à réaliser en vidéo, donc c'est déjà très bien pour du software gratuit. Les convertisseurs (hardware) pros coûtent des milliers d'€.


Message édité par arnuche le 24-08-2013 à 11:53:32
n°1873843
Profil sup​primé
Posté le 25-08-2013 à 13:29:31  answer
 

Super je te remercie pour ton aide c'est très sympa de ta part :)
Je viens d'installer AviSynth et de transférer les fichiers .dll et le .avsi de Interframe dans le dossier plugin de AviSynth.
Jusque là pas de soucis. J'attends la suite des instructions :)

mood
Publicité
Posté le 25-08-2013 à 13:29:31  profilanswer
 

n°1873858
arnuche
Posté le 25-08-2013 à 14:52:41  profilanswer
 

Bien, j'ai besoin de savoir quel est le format que tu veux ouvrir parce que ce sont des commandes différentes. Pour de l'avi, tu peux utiliser avisource, donc ça donne par exemple ;
avisource("F:\ma vidéo.avi" )
Tu tapes ça dans un fichier txt, tu changes l'extension txt par avs et tu l'ouvres dans Virtual Dub (petit programme indispensable, notamment pour vérifier les scripts avs) pour voir si ça marche.
Si c'est du mp4, du ts ou du mkv, ça peux marcher avec directshowsource à la place d'avisource (qui sont tous 2 inclus dans avisynth, pas besoin de plugin pour les faire fonctionner) mais je te conseille le plugin ffmpegsource ;
http://code.google.com/p/ffmpegsou [...] ms-2.17.7z
Tu l'extrais et tu mets les 3 fichiers dans le dossier plugins d'avisynth (et tu peux garder la doc où tu veux).
Pour ce plugin, la commande est ;
FFVideoSource("F:\ma vidéo.mkv" )
Si la vidéo est longue, il faudra quelques minutes la première fois que tu l'ouvriras avec avisynth parce que FFVideoSource doit l'indexer (il crée un fichier de quelques megas contenant des infos sur la vidéo).
 
Si tu obtiens un message du genre "there is no function named FFVideoSource" quand tu ouvres le script dans Virtual Dub, il faut charger le plugin en rajoutant en première ligne loadplugin, donc ça donnerait ;
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\ffms2.dll" )
FFVideoSource("F:\ma vidéo.mkv" )
 
Après il faut rajouter la ligne InterFrame que je n'ai pas encore essayé mais qui devrait ressembler à ça si utilisé de manière basique ;
InterFrame(NewNum=2997, NewDen=50)
=> c'est pour faire du 59.94 fps, donc si ta source est en 23.976 hz (tu peux voir ça dans MediaInfo).  
Mais si elle est pil poil en 24hz, tu la convertis en 60hz, donc tu mets NewNum=60, NewDen=1
Dans Virtual Dub, tu peux voir le framerate en allant dans file, file information.
Pour comparer un script avec et sans une des fonctions, pour ne pas devoir l'effacer et la retaper à chaque test, il suffit de rajouter le signe # au début de la ligne ;
FFVideoSource("F:\ma vidéo.mkv" )
#InterFrame(NewNum=2997, NewDen=50)
 
puis tu mets le curseur entre le # et InterFrame et tu fais enter pour mettre à la ligne ;
FFVideoSource("F:\ma vidéo.mkv" )
#
InterFrame(NewNum=2997, NewDen=50)
 
Et après tu peux remettre facilement InterFrame derrière le # en allant devant InterFrame et en appuyant sur la touche d'effacement pour remonter d'une ligne.
Tu dois bien sûr sauver le changement dans le fichier avs avant de le tester dans Virtual Dub. Tu n'es pas obligé de fermer ce dernier entre les tests, tu peux simplement aller dans file, close video file.
Puis tu modifies ton script, tu le sauves et tu le glisses sur Virtual Dub pour l'ouvrir.


Message édité par arnuche le 25-08-2013 à 15:09:41
n°1874056
Profil sup​primé
Posté le 26-08-2013 à 18:58:15  answer
 

Ca commence sérieusement à se compliquer pour moi :/
Il faut éditer le fichier txt pour chaque format différent de vidéo ?
De plus il faut encore rajouter un programme, ça commence à faire beaucoup pour ce que je veux faire je trouve...
J'essayerai mais je ne te cache pas que je suis pas super motivé là, moi qui croyais que c'était plus simple avec les logiciels gratuits ;  
si les logiciels payants sont plus complexes je ne veux même pas imaginer XD
Enfin, merci pour ton aide en tous cas.


Message édité par Profil supprimé le 26-08-2013 à 18:58:26
n°1874172
arnuche
Posté le 27-08-2013 à 12:27:21  profilanswer
 

Il n'y a pas de programme à rajouter, juste un plugin gratuit, comme celui que tu as déjà installé, ça prend 2 secondes. D'ailleurs il n'y a même pas d'installation, tu dois juste dézipper le plugin dans le répertoire plugins d'avisynth.
 
Si tu parles de Virtual Dub, c'est gratuit aussi et indispensable pour faire ce que tu veux. C'est tout petit et s'installe très vite.
http://sourceforge.net/projects/vi [...] p/download
Il permet notamment d'avancer et reculer image par image et de voir le numéro de chaque image (utile pour certaines opérations ciblées avec avisynth).
Tu en as pour 2 minutes en tout à télécharger et installer Virtual Dub et ffmpegsource.
 

Citation :

Il faut éditer le fichier txt pour chaque format différent de vidéo ?


A chaque encodage son script, c'est logique, mais il suffit de copier tous les scripts les plus courants dans un fichier txt puis tu fais un copier/coller des lignes qui t'intéressent dans un nouveau fichier txt (avec extension avs) quand tu veux faire un encodage.


Message édité par arnuche le 27-08-2013 à 12:34:40
n°1874595
arnuche
Posté le 30-08-2013 à 11:38:14  profilanswer
 

Alors, t'as essayé ?

n°1876726
arnuche
Posté le 12-09-2013 à 12:16:59  profilanswer
 

Visiblement non. :o  
 
Je l'ai testé, ça marche bien et ne consomme pas beaucoup de CPU. :)  
exemple de script qui marche (on peut mettre 1 ou plus à cores) ;

Code :
  1. avisource("L:\video en 25 fps.avi" )#25 fps
  2. assumefps(25/1)#25 fps, change rien, sert juste à bien spécifier le framerate
  3. InterFrame(NewNum=50, NewDen=1, cores=2)#50 fps, 2 fois plus d'images à la même vitesse
  4. assumefps(25/1)#retour à 25 fps, ralenti fluide


La dernière ligne ne sert bien sûr qu'à faire un ralenti, inutile si on veut lire à la même vitesse que l'original mais en plus fluide.
 
Et pour convertir du 23.976 en 59.94p, on met ça ;

Code :
  1. avisource("L:\video en 23.976 fps.avi" )
  2. assumefps(24000, 1001)#bien mettre 24000, 1001 et pas 24000/1001, ce dernier a un problème avec les décimales dont il ne tient pas compte
  3. InterFrame(NewNum=60000, NewDen=1001, cores=2)


 
et si on veut en faire une vidéo en 60 hz (59.94) entrelacé (comme le fait du 3:2 pulldown sauf que ce sera plus fluide), on fait ça ;

Code :
  1. avisource("L:\video en 23.976 fps.avi" )
  2. assumefps(24000, 1001)
  3. InterFrame(NewNum=60000, NewDen=1001, cores=2)
  4. AssumeTFF()#peut-être pas indispensable
  5. separatefields()
  6. selectevery(4,0,3)
  7. weave()


Et on l'encode en entrelacé TFF (top field first) à 59.94 hz (qu'on appelle souvent 60 hz). On peut aussi faire du bff (bottom field first) en mettant AssumeBFF() au lieu de AssumeTFF().
 
et si on a une vidéo pile-poil en 24p à transformer en 60p ;

Code :
  1. avisource("L:\video en 24 fps.avi" )
  2. assumefps(24/1)
  3. InterFrame(NewNum=60, NewDen=1, cores=2)


 
InterFrame est apparemment lié à SmoothVideo Project (SVP) qui sert à fluidifier la lecture en temps réel avec des programmes du genre MPC-HC ;
http://www.svp-team.com/wiki/Main_Page


Message édité par arnuche le 14-09-2013 à 11:56:14
n°1876944
Profil sup​primé
Posté le 14-09-2013 à 10:52:03  answer
 

Salut, je te remercie pour ton intervention effectivement j'avais laissé tomber, ça me semblait un peu trop hors de porté, et j'avais pas spécialement envie de m'investir beaucoup dedans.
Je recherchais avant tout une solution simple et rapide.
 
J'utilise déjà SVP depuis un moment, mais mon objectif était de convertir facilement une vidéo en 60fps et de la garder sous ce format (même si elle devient plus lourde)  
pour pouvoir la lire avec n'importe quel lecteur sans utiliser SVP ou tout autre logiciel d'interpolation.


Message édité par Profil supprimé le 14-09-2013 à 10:52:43
n°1876946
arnuche
Posté le 14-09-2013 à 11:13:49  profilanswer
 

Je crois que tu trouveras difficilement plus simple, surtout que j'ai donné les scripts, il n'y a plus qu'à les recopier.
Et tu n'as rien à installer puisque tu as déjà Avisynth et Interframe.
Le fichier avs que tu crées, tu peux l'ouvrir dans le programme de lecture de ton choix ou dans Virtual Dub. Ce dernier est très léger et sert surtout à visualiser les scripts Avisynth, mais il peut servir aussi à découper des fichiers avi.

n°1876947
Profil sup​primé
Posté le 14-09-2013 à 11:18:34  answer
 

Oui mais je veux garder la vidéo en 60fps sans passer à chaque fois par SVP, Virtual Dub, Avisynth ou Interframe

n°1876948
arnuche
Posté le 14-09-2013 à 11:33:39  profilanswer
 

Je crois que tu n'as pas compris un point important  :p  : tu ne dois pas utiliser avisynth à chaque fois que tu veux voir ta vidéo (contrairement à SVP), tu ne l'utilises qu'une fois pour ré-encoder ta vidéo.
Comme je le disais plus haut, avisynth est un intermédiaire entre ta vidéo et l'encodeur, bien qu'on puisse aussi ouvrir un script avisynth dans un logiciel de lecture.
Donc quand je dis que tu peux ouvrir le script dans Virtual Dub ou dans un logiciel de lecture, c'est juste pour vérifier qu'avisynth a bien fait les transformations que tu désirais, puis tu ouvres ce script dans l'encodeur de ton choix (je crois qu'ils sont quasi tous compatibles avec les scripts avisynth) et tu encodes en 60 fps.
Et après tu liras cette vidéo (qui sera donc en 60 fps) autant de fois que tu le voudras, sans avisynth et sans SVP. :)  
 
Les encodeurs ont tous des fonctions plus ou moins avancées (et certains installent et utilisent avisynth sans que ça ne se voie) mais si on veut bien contrôler les opérations, l'idéal est de faire son script avisynth soi-même et de n'utiliser l'encodeur que pour le strict minimum, à savoir la compression (en x264 par exemple). Dans ce cas on n'active pas tout ce qui concerne le filtrage, le changement de framerate, le resize ... puisqu'on le fait en amont avec avisynth.


Message édité par arnuche le 14-09-2013 à 11:33:53
n°1876949
arnuche
Posté le 14-09-2013 à 11:52:40  profilanswer
 

Petite correction concernant la fonction assumefps : il semblerait que pour les nombres à décimales genre 23.976 il vaille mieux écrire 24000, 1001 que 24000/1001 ; ce dernier ne tient visiblement pas compte des décimales (et ne fonctionne donc pas tout-à-fait comme une vraie fraction), je corrige dans mes messages ci-dessus. :)


Message édité par arnuche le 14-09-2013 à 11:57:20
n°1876953
Profil sup​primé
Posté le 14-09-2013 à 12:57:36  answer
 

Ok je te remercie pour toutes ces informations et pour ton aide, je vais essayer de regarder ça dans la journée ;)

n°1876957
arnuche
Posté le 14-09-2013 à 13:50:55  profilanswer
 

Ok, tu verras que c'est assez simple. :)  
 
Mais je participe justement à une conversation sur les ralentis fluides (sur un autre forum) et il semblerait que les résultats soient meilleurs avec le plugin SVP qu'avec Interframe, alors que ce dernier est pourtant une adaptation de SVP (en tout cas dans ce cas-là, gros ralentissement donc beaucoup de nouvelles images à créer) ;
http://www.repaire.net/forums/hd-h [...] ite-4.html
 
Quand j'aurai pigé comment ça marche, je mettrai le script ici.
Mais je trouve qu'Interframe donne de bons résultats sur du 25p converti en 50p.

n°1876968
arnuche
Posté le 14-09-2013 à 15:38:31  profilanswer
 

J'ai testé la méthode SVP, ça marche aussi, voici un exemple de script pour passer de 25 à 50 fps ;

Code :
  1. avisource("L:\video en 25 fps.avi" )#25 fps
  2. assumefps(25/1)#25 fps, change rien, sert juste à bien spécifier le framerate
  3. super = SVSuper("{gpu:0}" )#mettre 1 au lieu de 0 si carte graphique Nvidia
  4. vectors=SVAnalyse(super, "{block:{w:8,h:8,overlap:3}}" )
  5. SVSmoothFps(super, vectors, "{rate:{num:2, den:1, abs:false}, algo:21 }", url="www.svp-team.com", mt=1)
  6. assumefps(50/1)#facultatif, accélère parfois un peu la vitesse du script, donc la vitesse d'encodage


 
Mettre 1 au lieu de 0 à droite de gpu si carte graphique Nvidia avec le bon driver, comme indiqué là ;
http://www.svp-team.com/forum/viewtopic.php?id=1371
 
Le 2 à droite de num sert à multiplier par 2 le framerate, on peut aussi mettre 4, 8 ...  
Si on veut un framerate précis, par exemple pour passer de 23.976 à 59.94, il faut mettre true au lieu de false à droite de abs et spécifier les nouveaux num et den, comme dans Interframe ;

Code :
  1. SVSmoothFps(super, vectors, "{rate:{num:60000, den:1001, abs:true}, algo:21 }", url="www.svp-team.com", mt=1)


 
Si on a une version MT (Multi Thread) d'avisynth, on peut rajouter SetMTmode ;

Code :
  1. avisource("L:\video en 25 fps.avi" )
  2. assumefps(25/1)
  3. SetMTmode(2,8)
  4. super = SVSuper("{gpu:0}" )
  5. vectors=SVAnalyse(super, "{block:{w:8,h:8,overlap:3}}" )
  6. SVSmoothFps(super, vectors, "{rate:{num:2, den:1, abs:false}, algo:21 }", url="www.svp-team.com", mt=8)
  7. assumefps(50/1)


Il faut donc mettre le même chiffre à droite de mt dans la ligne SVSmoothFps que pour le 2ème chiffre de la ligne SetMTmode.
 
 
Pour faire fonctionner ce filtre, il suffit de le télécharger là (prendre SVPflow 1.0.9) ;
http://www.svp-team.com/wiki/Downl [...] art_of_SVP
et de mettre les 4 dll du zip dans le dossier plugin d'avisynth, comme d'hab.


Message édité par arnuche le 14-09-2013 à 15:47:05
n°1877098
Profil sup​primé
Posté le 15-09-2013 à 18:17:26  answer
 

Excuse-moi de ne pas avoir de signe de vie plus tôt, après tous les conseils que tu m'as donné et ta réactivité sur le forum je me sens un peu redevable...  
mais là j'ai pas pu m'en occuper je n'étais pas chez moi :(
 
Je voulais savoir avant de commencer la conversion, si c'était plus gourmand en CPU ou en GPU ? Parce que j'ai du me séparer de ma carte graphique et il me reste juste un i3 3220.  
Niveau puissance de calcul je pense que ça suffit mais je me demande s'il y a besoin de performances graphiques à la fois pour lire et pour convertir un mkv en 1080p 60fps,
ou bien si cela repose uniquement sur le CPU ?
 
Désolé ça peut sembler con comme question mais en fait je ne connais pas grand chose au monde de la conversion vidéo.


Message édité par Profil supprimé le 15-09-2013 à 18:19:55
n°1877145
arnuche
Posté le 15-09-2013 à 21:38:18  profilanswer
 

Dans le cas d'Interframe, c'est seulement le CPU, et avec SVP apparemment il y a moyen d'utiliser le GPU.
Mais je sais qu'il y a moyen de faire décoder la vidéo par le GPU (donc même avec Interframe) quand on a une Nvidia, à condition que ce soit un codec supporté par la carte, donc mpeg-2, H264 ou VC1.
Dans ce cas c'est la commande d'ouverture de la vidéo qui change ; au lieu d'avisource on a autre chose, je ne sais plus quoi mais je dois pouvoir retrouver ça s'il faut.
Pour info, je ne me suis jamais servi du GPU pour mes encodages, ça prend un peu plus de temps mais si tu as un gros encodage à faire, laisse tourner le pc pendant la nuit.
Commence déjà par tester Interframe sur une courte vidéo pour voir le résultat.

n°1877151
Profil sup​primé
Posté le 15-09-2013 à 22:28:10  answer
 

Ok merci :)

n°1879725
c4m3l3on
Posté le 05-10-2013 à 02:30:07  profilanswer
 

Moi j'ai tout installé. Dans mon cas j'aimerais faire une conversion de videos HD de type .mkv qui tourne a 23.97 fps en 30fps.
 
Lorsque j'essai de convetir une video en 23.97 fps en utilisant un programme de conversion DVD de type ConvertXtoDVD, il y'a des saccade. J'imagine que ce type de logiciel interlace la video et réencode les fichier video en .vob pour etre lisible par tout lecteur DVD.  
 
J'estime qu'en convertissant la video en 30 fps avec AviSynth et les plugins que tu a indiqués et en utilisant ensuite ConvertXtoDVD, les saccades devraient avoir disparue ... Qu'en pense-tu ?? Que ferais-tu ?  

n°1879735
arnuche
Posté le 05-10-2013 à 09:29:26  profilanswer
 

Je ne connais pas ConvertXtoDVD mais il est clair que la conversion de fréquence sera mieux faite avec Avisynth.
N'oublie pas que sur dvd, si tu encodes en 30 fps (ou plutôt 29.97), ce sera du Ntsc, donc limité à 480 lignes contre 576 en Pal.
Ce qu'on fait en général si on veut un peu fluidifier du 23.976 fps, c'est simplement de l'accélérer à 25 fps (assumefps(25) dans avisynth), c'est ce qu'on appelle le Pal speed up et c'est la technique utilisée dans le monde pro pour les dvd Pal et pour la télé Pal (et Secam). Et là tu peux avoir 576 lignes et il n'y a aucune interpolation à faire, on fait juste défiler les images plus vite mais leur nombre reste le même. Mais il faut aussi accélérer le son, ce qui change sa tonalité, sauf si on fait de la compensation.
 
Si tu veux vraiment du 30 fps (ou plutôt 29.97, puisque sur dvd et Blu-ray on ne travaille pas pile-poil en 30 ou 60 fps mais en 29.97 et 59.94), tu peux utiliser ce script ;

Code :
  1. avisource("L:\video en 23.976 fps.avi" )
  2. assumefps(24000, 1001)
  3. lanczos4resize(720, 480)
  4. super = SVSuper("{gpu:0}" )#mettre 1 au lieu de 0 si carte graphique Nvidia
  5. vectors=SVAnalyse(super, "{block:{w:8,h:8,overlap:3}}" )
  6. SVSmoothFps(super, vectors, "{rate:{num:30000, den:1001, abs:true}, algo:21 }", url="www.svp-team.com", mt=1)
  7. assumefps(30000, 1001)


Et dans l'encodeur, tu encodes en Ntsc. Il encodera en entrelacé, bien que la source soit progressive (comme les films sur dvd Pal).
 
Sinon, quitte à changer de fréquence, autant aller jusqu'à 60 fps, c'est l'intérêt premier de ce filtre, mais il faut entrelacer à la fin du script (la norme dvd est limitée à 30i, qu'on appelle souvent erronément 60i) ;

Code :
  1. avisource("L:\video en 23.976 fps.avi" )
  2. assumefps(24000, 1001)
  3. lanczos4resize(720, 480)
  4. super = SVSuper("{gpu:0}" )#mettre 1 au lieu de 0 si carte graphique Nvidia
  5. vectors=SVAnalyse(super, "{block:{w:8,h:8,overlap:3}}" )
  6. SVSmoothFps(super, vectors, "{rate:{num:60000, den:1001, abs:true}, algo:21 }", url="www.svp-team.com", mt=1)
  7. assumefps(60000, 1001)
  8. AssumeTFF()
  9. separatefields()
  10. selectevery(4,0,3)
  11. weave()


Et tu encodes aussi en Ntsc TFF (pas BFF).
Si ta vidéo d'origine a une résolution non standard, il faudra sans doute changer les valeurs que j'ai mises à lanczos4resize et puis ajouter des bandes noires en hauteur ou en largeur (fonction addborders), mais au final ça devra faire 720*480.
 
Sinon il y a tout de même moyen de faire du PAL Speed Up et de fluidifier plus l'image qu'en 25 fps, c'est de faire du 50 fps (et on entrelace aussi à la fin). Mais il faudra accélérer le son.
Voilà le script ;

Code :
  1. avisource("L:\video en 23.976 fps.avi" )
  2. assumefps(25)#accélération à 25 fps
  3. lanczos4resize(720, 576)
  4. super = SVSuper("{gpu:0}" )#mettre 1 au lieu de 0 si carte graphique Nvidia
  5. vectors=SVAnalyse(super, "{block:{w:8,h:8,overlap:3}}" )
  6. SVSmoothFps(super, vectors, "{rate:{num:50, den:1, abs:true}, algo:21 }", url="www.svp-team.com", mt=1)
  7. assumefps(50)
  8. AssumeTFF()
  9. separatefields()
  10. selectevery(4,0,3)
  11. weave()


Et tu encodes en PAL TFF.
 
On peut aussi faire du Pal tout en évitant le Pal Speed up en passant de 23.976 fps à 50 fps, ce qui évite de changer la durée et donc d'accélérer le son, mais l'image sera moins fluide que si tu l'accélères à 25 fps puis que tu convertis ce 25 fps en 50 (comme dans le dernier script ci-dessus).
Pour ça il suffit de ne pas mettre la 2ème ligne (assumefps(25)#accélération à 25 fps) ou de la remplacer par assumefps(24000, 1001) ; c'est toujours bien de préciser le framerate, même si on ne le change pas (je veux dire par rapport à la ligne précédente, puisque la vidéo est déjà 29.97, mais le framerate change bien sûr plus tard dans le script -à la ligne SVSmoothFps- puisque c'est le but de ce script).


Message édité par arnuche le 06-10-2013 à 10:12:03
n°1879954
c4m3l3on
Posté le 06-10-2013 à 20:44:21  profilanswer
 

avisynth open failure
Script error: there is no function named "SVSuper"
 
Il me manque des plugins ?
 
J'ai pris le premier script car c'est lui qu'il me faut pour arriver au résultat que je veux.  
 
Merci de tes explications et de ton aide, c'est TRÈS apprécié !

n°1879961
arnuche
Posté le 06-10-2013 à 21:05:07  profilanswer
 

Tu as bien installé SVPflow ?
Voir mon message posté le 14-09-2013 à 15:38:31.
lien direct ;
http://www.svp-team.com/files/gpl/svpflow-1.0.9.zip

n°1880247
c4m3l3on
Posté le 08-10-2013 à 01:53:38  profilanswer
 

Oui tous les fichiers ont été copier dans le dossier Plugins de AviSynth.
 
J'ai aussi installer "ffmpegsource", mais un message d'erreur me dit la même chose qu'avec "SVPflow". Alors j'ai mit "directshowsource" qui lui semble fonctionner mais à ce moment là, c'est SVPflow qui cause problème.

n°1880273
arnuche
Posté le 08-10-2013 à 11:20:26  profilanswer
 

Tu dois peut-être charger le plugin en ajoutant au tout début loadplugin("chemin du plugin.dll" ) (chez moi ça marche sans), sinon c'est peut-être ta version d'avisynth qui est trop vieille, j'utilise celle-là ;
http://sourceforge.net/projects/av [...] 130114%5D/
Et tu fais ça pour tous les filtres à charger, donc le script peut commencer par plusieurs lignes loadplugin avant d'avoir la commande d'ouverture (avisource, ffvideosource ...).
Il y a aussi Import("chemin de la fonction" ) pour les fonctions (scripts avs ou avsi).
 
Sinon il y a le dll AvsRecursion qui est parfois utile (cliquer sur binary et mettre le dll dans system32) ;
http://home.arcor.de/kassandro/Avs [...] ursion.htm


Message édité par arnuche le 08-10-2013 à 11:21:56
n°1880393
c4m3l3on
Posté le 09-10-2013 à 01:45:47  profilanswer
 

Alors, j'ai ajouté svpflow1.dll et svpflow2.dll et ça fonctionne. Maintenant, si je fais "save as avi" sa me dit que je vais me retrouver avec un fichier de 219 Go O_O !  
 
Je comprends pas ...

n°1880405
arnuche
Posté le 09-10-2013 à 07:54:53  profilanswer
 

Dans Virtual Dub il faut préciser le codec sinon il va sauver dans un format sans compression qui prend plein de place : va dans video, compression et là tu vois la liste des codecs disponibles (tu peux en rajouter). Dans video, tu mets aussi full processing mode au lieu de direct stream copy si tu veux encoder avec VDub (direct stream copy est utile pour découper un extrait ou changer le framerate sans ré-encoder).
Mais si tu veux du h264 ou du mpeg-2, ce n'est pas avec Virtual Dub qu'il faut encoder.


Message édité par arnuche le 09-10-2013 à 07:57:36
n°1880431
core_i9
Posté le 09-10-2013 à 11:10:07  profilanswer
 

J'avais testé interframe avec staxrip, ça marche bien, par contre faut un PC puissant pour pas y passer des heures.

n°1880443
arnuche
Posté le 09-10-2013 à 11:45:05  profilanswer
 

c4m3l3on a écrit :

si je fais "save as avi" sa me dit que je vais me retrouver avec un fichier de 219 Go O_O


Ce que tu peux faire aussi, pour tester SVPflow (ou Interframe), c'est d'encoder juste un extrait de la vidéo dans un codec lossless, par exemple Lagarith qui est je crois celui qui prend le moins de place parmi les codecs lossless (débit de +/- 50 Mbps en 720*576 @ 25 fps) ;
http://lags.leetcode.net/codec.html
Comme ça tu seras sûr que les éventuels défauts de l'image ne seront pas dus à la compression puisqu'il n'y en aura pas (c'est juste pour tester des filtres, après tu compresses bien sûr).
Tu découpes la vidéo avec Avisynth avec la fonction trim en début de script, juste après avisource ;
trim(0,999)
=> pour garder les 1000 premières images (40 secondes en 25 fps).
Dans les réglages du Lagarith il n'y a qu'un truc à faire, choisir yv12 (parce qu'il y a de fortes chances pour que ta vidéo sorte d'Avisynth en yv12 et c'est le format le plus courant). Ce codec peut convertir du rgb ou du yuy2 en yv12 et inversement mais mieux vaut faire la conversion avec Avisynth. Tu peux aussi cocher le multithread.
Quand la vidéo n'est pas en yv12, il suffit de rajouter ça dans le script ;
converttoyv12()
pour du progressif ou
converttoyv12(interlaced=true)
pour de l'entrelacé.
Sinon tu peux voir les caractéristiques (dont l'espace de couleur) de la vidéo sortant d'Avisynth en mettant à la dernière ligne ;
Info()
Puis tu l'effaces quand tu veux encoder ou tu mets ce signe devant ;
#
ce qui aura pour effet d'annuler ce qui est écrit derrière sur la même ligne pour ne pas devoir l'effacer et le retaper à chaque fois que tu veux tester des fonctions.


Message édité par arnuche le 09-10-2013 à 11:54:21
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Video & Son
  Traitement Vidéo

  Cherche logiciel pour convertir videos en 60 fps

 

Sujets relatifs
Ampli cherche enceintes.Logiciel mélange 2 sorties audio (PS3 et PC)
Convertir DTS en Dolby DigitalUtiliser un clavier maitre comme clavier arrangeur grace a un logiciel
Cherche casque nomade, 100-300 euros[Cherche]Un bon ampli 5.1 pour enceinte 100w 8ohm
Cherche Micro -CasqueRecherche logiciel amplification son vidéo
Convertir sortie audio en entrée audio (PC)Cherche un bon casque -100euros mais suis perdu dans les modèles
Plus de sujets relatifs à : Cherche logiciel pour convertir videos en 60 fps


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR