Comparaison deux mkv en images
Modérateur : Modérateurs
Comparaison deux mkv en images
Bonjour à tous,
Fan d'anime depuis très longtemps, je ne cesse de chercher la meilleure qualité pour les séries que je préfère.
Malheureusement, c'est souvent un casse-tête chinois compte tenu des différents codecs / résolutions / qualités d'encodage de chaque version.
Il y a de cela quelques années, j'avais trouvé un script avisynth qui permettait de comparer deux encodages différents en mettant une image en dessous de l'autre. On cliquait sur le fichier avisynth et ce dernier générait un nombre d'images défini pour les deux encodages, seulement depuis je l'ai perdu.
Ce que je cherche aujourd'hui s'en rapproche un peu : j'aimerais pouvoir comparer deux mkv en images à la frame près afin de voir lequel des deux a la meilleure qualité. Je sais comment le faire à la mano mais j'aimerais avoir une méthode automatique...
Est-ce que vous auriez un exemple de script à me fournir pour réaliser cela ?
Ou même une méthode qui me donne le même résultat sans avoir à passer par avisynth ?
Merci d'avance pour votre coup de main
Fan d'anime depuis très longtemps, je ne cesse de chercher la meilleure qualité pour les séries que je préfère.
Malheureusement, c'est souvent un casse-tête chinois compte tenu des différents codecs / résolutions / qualités d'encodage de chaque version.
Il y a de cela quelques années, j'avais trouvé un script avisynth qui permettait de comparer deux encodages différents en mettant une image en dessous de l'autre. On cliquait sur le fichier avisynth et ce dernier générait un nombre d'images défini pour les deux encodages, seulement depuis je l'ai perdu.
Ce que je cherche aujourd'hui s'en rapproche un peu : j'aimerais pouvoir comparer deux mkv en images à la frame près afin de voir lequel des deux a la meilleure qualité. Je sais comment le faire à la mano mais j'aimerais avoir une méthode automatique...
Est-ce que vous auriez un exemple de script à me fournir pour réaliser cela ?
Ou même une méthode qui me donne le même résultat sans avoir à passer par avisynth ?
Merci d'avance pour votre coup de main
Pour comparer deux vidéos V1 et V2, l'une sous l'autre :
Code : Tout sélectionner
V1 = ...
V2 = ...
return StackVertical(V1, V2)
Salut Subbat,
Quand je dis à la "mano" je veux dire que je lisais la vidéo 1 avec vlc, je faisais pause à une certaine frame et je faisais un screenshot, même chose pour la vidéo 2, un peu barbant quand tu veux comparer plusieurs scènes différentes...
Pour la méthode "automatique", il me semble que leon a vu juste, c'était une formule du genre stackvertical.
En gros les trois petits points sont les endroits où l'on va chercher les vidéos sur le pc ? Et comment faire pour définir le nombre d'images, le nombre de frames à sauter pour la prochaine image ?
Il faut que je me remette dans les scripts avs, cela fait au moins 3 ans que je n'y ai pas touché.
Pour que ce soit clair, il faut que j'ouvre la vidéo 1 avec m4ng et que j'édite le document texte en avs pour rajouter la vidéo 2 avec l'exemple de leon ?
Je suis pas chez moi donc je ne peux pas tester tout de suite...
Merci pour vos réponses rapides en tout cas
Quand je dis à la "mano" je veux dire que je lisais la vidéo 1 avec vlc, je faisais pause à une certaine frame et je faisais un screenshot, même chose pour la vidéo 2, un peu barbant quand tu veux comparer plusieurs scènes différentes...
Pour la méthode "automatique", il me semble que leon a vu juste, c'était une formule du genre stackvertical.
En gros les trois petits points sont les endroits où l'on va chercher les vidéos sur le pc ? Et comment faire pour définir le nombre d'images, le nombre de frames à sauter pour la prochaine image ?
Il faut que je me remette dans les scripts avs, cela fait au moins 3 ans que je n'y ai pas touché.
Pour que ce soit clair, il faut que j'ouvre la vidéo 1 avec m4ng et que j'édite le document texte en avs pour rajouter la vidéo 2 avec l'exemple de leon ?
Je suis pas chez moi donc je ne peux pas tester tout de suite...
Merci pour vos réponses rapides en tout cas
oui, c'est bien ça.Darkshaka a écrit : En gros les trois petits points sont les endroits où l'on va chercher les vidéos sur le pc ?
oui, c'est bien ça.Darkshaka a écrit : Pour que ce soit clair, il faut que j'ouvre la vidéo 1 avec m4ng et que j'édite le document texte en avs pour rajouter la vidéo 2 avec l'exemple de leon ?
heu, là je ne comprends pas.Darkshaka a écrit : Et comment faire pour définir le nombre d'images, le nombre de frames à sauter pour la prochaine image ?
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
Quelque chose comme ça doit pouvoir faire l'affaire :
Code : Tout sélectionner
# Source vidéo 1
v1 =DirectShowSource("X:\XXXXXX\1.mkv", false).Subtitle("vidéo 1").Trim(debut,fin)
# Source vidéo 2
v2 = DirectShowSource("X:\XXXXXX\2.mkv", false).Subtitle("vidéo 2").Trim(debut,fin)
StackVertical(v1, v2)
SelectEvery(intervalle, 0)
ConvertToRGB24()
ImageWriter(file="X:\XXXXXX\", type="png")
- elcascador972
- Messages : 408
- Enregistré le : sam. 14 mai, 2011 0:18
- Localisation : 14° 46' 57'' Nord / 60° 59' 37'' Ouest
Bonsoir !
La solution que donne Undergound78 au post de Darkshaka m'intéresse pour pouvoir comparer 2 vidéos l'une sous l'autre en même temps sur le même écran de PC mais...le code donné se place où exactement ? Et comment parvenir à ce "ou" ? Faut il en plaçant le code entrer le chemin des 2 vidéos dans le texte du code à la place des "XX" (je suppose que oui ) ? Bref, une explication détaillée m'intéresse fortement ! Merci par avance !
La solution que donne Undergound78 au post de Darkshaka m'intéresse pour pouvoir comparer 2 vidéos l'une sous l'autre en même temps sur le même écran de PC mais...le code donné se place où exactement ? Et comment parvenir à ce "ou" ? Faut il en plaçant le code entrer le chemin des 2 vidéos dans le texte du code à la place des "XX" (je suppose que oui ) ? Bref, une explication détaillée m'intéresse fortement ! Merci par avance !
Quand le sage montre la lune, le fou regarde le doigt
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
Mon script exporte des images des deux vidéos superposées à intervalle régulier, je sais pas si c'est exactement ce que tu veux.
Sinon oui, il faut remplacer les chemins par ceux réels et régler les paramètres début et fin pour les deux vidéos (exprimés en nombre de trames), pareil pour l'intervalle qui est à remplacer aussi par un nombre de trames.
Sinon oui, il faut remplacer les chemins par ceux réels et régler les paramètres début et fin pour les deux vidéos (exprimés en nombre de trames), pareil pour l'intervalle qui est à remplacer aussi par un nombre de trames.
- elcascador972
- Messages : 408
- Enregistré le : sam. 14 mai, 2011 0:18
- Localisation : 14° 46' 57'' Nord / 60° 59' 37'' Ouest
J'avais mal compris...je pensais qu'il permettait (via la prévisualisation de m4ng) de visionner 2 vidéos "l'une sous l'autre" pour pouvoir comparer la qualité de 2 encodages d'une même vidéo réalisés avec des codecs / paramètres différents. Mais la solution d'exporter des images prises à intervalle régulier me convient bien, à défaut du reste. Donc déjà merci !Underground78 a écrit :Mon script exporte des images des deux vidéos superposées à intervalle régulier, je sais pas si c'est exactement ce que tu veux.
Si je comprends bien, les "trames" sont le numéro des images de début et fin : en clair j'indique par ce moyen là la portion de vidéo sur laquelle je veux que les images soient extraites ? Bon, "l'intervalle" c'est l'intervalle d'extraction des images depuis les vidéos, ça j'ai bien compris. Reste que ce script...je le mets où ? Je pensais ouvrir m4ng, charger la vidéo 1, éditer le script AVIsynth, copier-coller ton script dedans mais ou ?Bref, autant je me débrouille pas trop mal pour utiliser m4ng, autant là je suis limite dépasséUnderground78 a écrit :Sinon oui, il faut remplacer les chemins par ceux réels et régler les paramètres début et fin pour les deux vidéos (exprimés en nombre de trames), pareil pour l'intervalle qui est à remplacer aussi par un nombre de trames.
Quand le sage montre la lune, le fou regarde le doigt
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
Ah bah tu peux, il suffit de reprendre le premier script proposé par Léon.elcascador972 a écrit :J'avais mal compris...je pensais qu'il permettait (via la prévisualisation de m4ng) de visionner 2 vidéos "l'une sous l'autre" pour pouvoir comparer la qualité de 2 encodages d'une même vidéo réalisés avec des codecs / paramètres différents. Mais la solution d'exporter des images prises à intervalle régulier me convient bien, à défaut du reste. Donc déjà merci !Underground78 a écrit :Mon script exporte des images des deux vidéos superposées à intervalle régulier, je sais pas si c'est exactement ce que tu veux.
Trame est ici synonyme d'image donc c'est bien le numéro des images (tu peux faire les conversions en multipliant le temps par le framerate ou en divisant le numéro de trame par le framerate).elcascador972 a écrit :Si je comprends bien, les "trames" sont le numéro des images de début et fin : en clair j'indique par ce moyen là la portion de vidéo sur laquelle je veux que les images soient extraites ? Bon, "l'intervalle" c'est l'intervalle d'extraction des images depuis les vidéos, ça j'ai bien compris. Reste que ce script...je le mets où ? Je pensais ouvrir m4ng, charger la vidéo 1, éditer le script AVIsynth, copier-coller ton script dedans mais ou ?Bref, autant je me débrouille pas trop mal pour utiliser m4ng, autant là je suis limite dépasséUnderground78 a écrit :Sinon oui, il faut remplacer les chemins par ceux réels et régler les paramètres début et fin pour les deux vidéos (exprimés en nombre de trames), pareil pour l'intervalle qui est à remplacer aussi par un nombre de trames.
Si tu veux juste comparer deux vidéos, pas la peine de passer par m4ng, tu crées un fichier .avs, tu mets le script dedans et tu mets les chemins qu'il faut puis tu ouvres dans ton lecteur classique.
- elcascador972
- Messages : 408
- Enregistré le : sam. 14 mai, 2011 0:18
- Localisation : 14° 46' 57'' Nord / 60° 59' 37'' Ouest
Hello,
J'ai testé le script avec deux vidéos et j'ai un message d'erreur :
invalid arguments to function "DirectShowSource"
(G:\ANIMES FILM\STEAMBOY\comparaison.avs, line 2).
Voici le contenu du script :
Une idée de pourquoi cela ne marche pas ?
J'ai testé le script avec deux vidéos et j'ai un message d'erreur :
invalid arguments to function "DirectShowSource"
(G:\ANIMES FILM\STEAMBOY\comparaison.avs, line 2).
Voici le contenu du script :
Code : Tout sélectionner
# Source vidéo 1
v1 =DirectShowSource("G:\ANIMES FILM\STEAMBOY\WSA.mkv", false).Subtitle("vidéo 1").Trim(debut,fin)
# Source vidéo 2
v2 = DirectShowSource("G:\ANIMES FILM\STEAMBOY\THORA.mkv", false).Subtitle("vidéo 2").Trim(debut,fin)
StackVertical(v1, v2)
SelectEvery(intervalle, 0)
ConvertToRGB24()
ImageWriter(file="G:\ANIMES FILM\STEAMBOY\", type="png")
- elcascador972
- Messages : 408
- Enregistré le : sam. 14 mai, 2011 0:18
- Localisation : 14° 46' 57'' Nord / 60° 59' 37'' Ouest
Je ne suis pas sûr mais je pense qu'il faut préciser, dans les parenthèses de DirectShowSource, après le chemin de la vidéo, quelquechose qui doit être du genre [, fps=23.976000] (c'est un exemple de valeur, il faut prendre celui de la vidéo). Je pense aussi que les valeurs de Trim dans les parenthèses en lieu et place de "début" et "fin" doivent être remplacées par des chiffres (numéros des frames de départ et de fin) mais évidemment, je laisse les experts confirmer !
Modifié en dernier par elcascador972 le mar. 13 déc., 2011 20:43, modifié 1 fois.
Quand le sage montre la lune, le fou regarde le doigt
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
Re,
J'ai essayé avec les modifs mais toujours en erreur :
Est-ce que cela peut venir de ma config pc ?
j'ai installé le dernier pack cccp et mpc hc + vlc la dernière version.
Merci
J'ai essayé avec les modifs mais toujours en erreur :
Code : Tout sélectionner
# Source vidéo 1
v1 =DirectShowSource("G:\ANIMES FILM\STEAMBOY\WSA.mkv", fps=23.976000, False).Subtitle("vidéo 1").Trim(0,10000)
# Source vidéo 2
v2 = DirectShowSource("G:\ANIMES FILM\STEAMBOY\THORA.mkv", fps=23.976000, False).Subtitle("vidéo 2").Trim(0,10000)
StackVertical(v1, v2)
SelectEvery(intervalle, 0)
ConvertToRGB24()
ImageWriter(file="G:\ANIMES FILM\STEAMBOY\", type="png")
j'ai installé le dernier pack cccp et mpc hc + vlc la dernière version.
Merci
non, ce n'est pas ça car avisynth assimile majuscules et minuscules.Underground78 a écrit :Essaie false avec un F majuscule juste pour être sûr.
en revanche, il faut préciser quel booléen de directshowsource on veut mettre à false (le second argument par défaut de directshowsource n'est pas un booléen, mais fps). Si on ne sait pas de quel booléen il s'agit, alors il n'y a qu'à effacer false !
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
C'est bon ça marche grâce à quelques retouches, merci pour les pistes !
Voici le code qui marche chez moi pour ceux qui en ont besoin :
Par contre, lorsque j'essaie de comparer les deux images l'une sur l'autre, les mauvais angles de vision de mon écran m'empêche d'avoir une bonne comparaison.
Comment faire pour faire des images pour une seule vidéo ? Je pensais utliser ensuite ce site pour avoir une meilleure comparaison.
J'ai essayé ce script mais visiblement il y a un truc qui cloche dans le stackvertical. Une idée de la syntaxe à adopter dans le cas d'une seule vidéo ?
Désolé pour pour les nombreux allers retours mais on y est presque et j'arrête de vous embêter
Voici le code qui marche chez moi pour ceux qui en ont besoin :
Code : Tout sélectionner
# Source vidéo 1
v1 =DirectShowSource("G:\ANIMES FILM\STEAMBOY\WSA.mkv", fps=23.976000, audio=False).Subtitle("WSA").Trim(0,100000)
# Source vidéo 2
v2 = DirectShowSource("G:\ANIMES FILM\STEAMBOY\THORA.mkv", fps=23.976000, audio=False).Subtitle("THORA").Trim(0,100000)
StackVertical(v1, v2)
SelectEvery(last, 300, 0)
ConvertToRGB24()
ImageWriter(file="G:\ANIMES FILM\STEAMBOY\", type="png")
Par contre, lorsque j'essaie de comparer les deux images l'une sur l'autre, les mauvais angles de vision de mon écran m'empêche d'avoir une bonne comparaison.
Comment faire pour faire des images pour une seule vidéo ? Je pensais utliser ensuite ce site pour avoir une meilleure comparaison.
J'ai essayé ce script mais visiblement il y a un truc qui cloche dans le stackvertical. Une idée de la syntaxe à adopter dans le cas d'une seule vidéo ?
Code : Tout sélectionner
# Source vidéo 1
Video=DirectShowSource("G:\ANIMES FILM\STEAMBOY\WSA.mkv", fps=23.976000, audio=False).Subtitle("WSA").Trim(0,100000)
StackVertical(Video)
SelectEvery(last, 300, 0)
ConvertToRGB24(Video)
ImageWriter(file="G:\ANIMES FILM\STEAMBOY\", type="png")
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
Le stackvertical est pour aligner 2 vidéos en hauteur, si tu n'en définis qu'une, il n'aime pas, c'est sûr ...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
- elcascador972
- Messages : 408
- Enregistré le : sam. 14 mai, 2011 0:18
- Localisation : 14° 46' 57'' Nord / 60° 59' 37'' Ouest
Je respecte l'objectif de Darkshaka mais si le but est de comparer 2 vidéos, pourquoi ne pas le faire "directement" en les lisant et non à partir d'images extraites ? Car grâce au post de Darkshaka, à l'intervention de Léon1789 puis Underground78 sur ce même post puis in fine Pepsilite sur un post perso, ce WE est né ce script :
[lightbox]http://img576.imageshack.us/img576/2858/scripypepsi.jpg[/lightbox]
Il permet de comparer en temps réel (en les lisant simultanément sur le même écran devrais je dire) 2 moitiés (gauche en l'occurrence) de 2 vidéos différentes pour peu que la résolution (l = largeur de trame et H = hauteur de trame) soit identique aux 2 vidéos. Enfin, c'est juste une proposition .
Par exemple, une illustration de la différence pour un débit de 400 kbps et 2 passes entre Xvid et x264cli (réglage "DXVA Standard Def" + slow + films") ci-dessous, réalisée avec le script (et évidemment une capture d'écran !)
[lightbox]http://img820.imageshack.us/img820/6971/colonnes.jpg[/lightbox]
La partie gauche est en XVid et la droite en X264 : regarder le détail des colonnes et le chameau en arrière plan...no comment !
[lightbox]http://img576.imageshack.us/img576/2858/scripypepsi.jpg[/lightbox]
Il permet de comparer en temps réel (en les lisant simultanément sur le même écran devrais je dire) 2 moitiés (gauche en l'occurrence) de 2 vidéos différentes pour peu que la résolution (l = largeur de trame et H = hauteur de trame) soit identique aux 2 vidéos. Enfin, c'est juste une proposition .
Par exemple, une illustration de la différence pour un débit de 400 kbps et 2 passes entre Xvid et x264cli (réglage "DXVA Standard Def" + slow + films") ci-dessous, réalisée avec le script (et évidemment une capture d'écran !)
[lightbox]http://img820.imageshack.us/img820/6971/colonnes.jpg[/lightbox]
La partie gauche est en XVid et la droite en X264 : regarder le détail des colonnes et le chameau en arrière plan...no comment !
Quand le sage montre la lune, le fou regarde le doigt
- pepsilite
- The Grinch
- Messages : 23287
- Enregistré le : sam. 03 févr., 2007 19:13
- Localisation : Chez moi le plus possible ...
Ben ouais, la momie est plus belle en x264 ...
Sauf que là, les deux images ne sont pas prises au même endroit dans la vidéo...
Sauf que là, les deux images ne sont pas prises au même endroit dans la vidéo...
06/01/2020 m4ng v6 est disponible au téléchargement en version finale : m4ng v6
- elcascador972
- Messages : 408
- Enregistré le : sam. 14 mai, 2011 0:18
- Localisation : 14° 46' 57'' Nord / 60° 59' 37'' Ouest
Effectivement, c'est La Momie... Monsieur est cinéphile ou alors tu as un truc... car reconnaitre le film en 1 image sur plus de 150 000 (me souvient plus du nombre exact), je dis "respect" .pepsilite a écrit :Ben ouais, la momie est plus belle en x264 ...
Je sais bien mais je n'ai pas l'explication. Ou plutôt, le fait est que, curieusement, en faisant quelques avances rapides sur le lecteur Windows lorsque les 2 vidéos sont lues via le script, il se produit un micro décalage qu'on voit sur la capture d'ecran . Pourtant, le débit est identique à l'encodage et le fps aussi...c'est peut-être du à Windows Vista ?pepsilite a écrit :Sauf que là, les deux images ne sont pas prises au même endroit dans la vidéo...
J'imagine qu'avec le script d'Underground78 qui extrait l'image de chaque vidéo au numéro près à un intervale déterminé, je n'aurai sans doute pas eu ce décalage...
Quand le sage montre la lune, le fou regarde le doigt