[R] Déterminer le temps d'un Fichier video merci a Orax

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
katanes
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 07 avr. 2009 21:25
Status : Hors ligne

[R] Déterminer le temps d'un Fichier video merci a Orax

#1

Message par katanes »

Bonjour tout le monde

Sauriez vous quelle fonction ou script me permettrai de récupérer le temps d une vidéo avi ou autre......sans l ouvrir juste le temps..... :shock: J avoue n avoir aucune piste.......


Merci
Modifié en dernier par katanes le jeu. 03 sept. 2009 23:17, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...]Determiner le temps d un Fichier video

#2

Message par orax »

Avec la ligne de commande ou la DLL de Mediainfo : http://mediainfo.sourceforge.net/fr/Download/Windows. On peut obtenir plein d'infos sur les vidéos et donc je pense que le temps doit en faire partie.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
katanes
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 07 avr. 2009 21:25
Status : Hors ligne

Re: [R] Déterminer le temps d'un Fichier video

#3

Message par katanes »

Merci Orax excellent conseil effectivement mediainfo est nikel je laisse le code pour ceux qui serait dans la méme problématique....;)
► Afficher le texte
katanes
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 07 avr. 2009 21:25
Status : Hors ligne

Re: [..] Déterminer le temps d'un Fichier video

#4

Message par katanes »

Bonjour voila je suis un bloqué et je ne comprend vraiment pas le problème

Quand on le lance il fait une boucle mais ensuite erreur au niveau de la variable $sMediaInfo
J'utilise la dll mediainfo
Alors le script devrait permettre de chercher tout les .avi et en fonction de leur temps et les classer
exemple tout ceux qui font moins de 10 min

Code : Tout sélectionner

#include<Array.au3>
#include "FileListToArrayEx.au3"
#include<File.au3>
#include <ClipBoard.au3>

Dim $indice, $var_Array

$hDLL = DllOpen("C:\test\MediaInfo_DLL_0.7.20_Windows_i386_WithoutInstaller\MediaInfo.dll")
$dest = "C:\test\"
$dest2 = "C:\test\video"

; New MediaInfo handle

;Determiner nombre de .avi
Global $var_Array = _FileListToArrayEx ($dest, "*.avi", 0, "",true)
MsgBox(0,"",$var_Array[0]);Nombre de video

For $indice = 1 to $var_Array[0]
 $aMediaInfo = DllCall($hDLL, "ptr", "MediaInfo_New")
 $hMediaInfo = $aMediaInfo[0]
MsgBox(0,"hmediainfo",$hMediaInfo)

DllCall($hDLL, "dword", "MediaInfo_Open", _
        "ptr", $hMediaInfo, _ ; Handle
        "wstr", $var_Array[$indice]) ; Full path
MsgBox(0,"",$var_Array[$indice]);voir le resultat

; MediaInfo
$aMediaInfoGet = DllCall($hDLL, "wstr", "MediaInfo_Get", _
        "ptr", $hMediaInfo, _ ; Handle
        "int", 1, _ ; StreamKind <--Video
        "int", 0, _ ; StreamNumber
        "wstr", "Duration", _ ; Codec ID <-- this
        "int", 1, _ ; KindOfInfo
        "int", 0) ; KindOfSearch      ; Open


$sMediaInfo = $aMediaInfoGet[0]
MsgBox(0,"Test resulta sMediaInfo",$sMediaInfo);ici bug a la 2 e boucle résultat en ms pour résultat remplacer Duration par Duration\String
;résultat qui permet ensuite comparer
;pour les video moins de 10 min copier alors ici
;pour les video entre   10 min et 20 alors copier ici

DllCall($hDLL, "none", "MediaInfo_Close", "ptr", $hMediaInfo)
DllClose($hDLL)
sleep(1000)
Next

MsgBox(0,"","Tout est ok")







 
Merci de votre aide pour ce bug incompréhensible......si quelqu'un un a des suggestions ....
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Déterminer le temps d'un Fichier video

#5

Message par orax »

En fait, il y avait également un problème plus haut ; vous auriez pu vous en rendre compte en mettant la macro @error dans la MsgBox :

Code : Tout sélectionner

    DllCall($hDLL, "dword", "MediaInfo_Open", _
            "ptr", $hMediaInfo, _ ; Handle
            "wstr", $dest & $var_Array[$indice]) ; Full path
    MsgBox(0, [color=#FF0000]@error[/color], $dest & $var_Array[$indice]);voir le resultat
A la deuxième boucle @error valait "1".

Donc pour corriger le problème, mettez les lignes :

Code : Tout sélectionner

DllCall($hDLL, "none", "MediaInfo_Close", "ptr", $hMediaInfo)
DllClose($hDLL)
après la boucle For/Next (après le Next).
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
katanes
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 07 avr. 2009 21:25
Status : Hors ligne

Re: [..] Déterminer le temps d'un Fichier video

#6

Message par katanes »

Oui merci j ai en retour cette erreur
==> Subscript used with non-Array variable.:
$hMediaInfo = $aMediaInfo[0]
$hMediaInfo = $aMediaInfo^ ERROR

Meme en deplacer derriere Next

Mais ca avance...........merci de votre aide orax Et cool je comprend mieux @error mais la effectivement ca reste a 0 .........Mais tjrs cette meme erreur....
Modifié en dernier par katanes le jeu. 03 sept. 2009 21:55, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Déterminer le temps d'un Fichier video

#7

Message par orax »

Ben alors je vous donne mon script qui est fonctionnel chez moi.
► Afficher le texte
Je n'ai pas mis FileListToArrayEx puisque je ne l'ai pas trouvé. Et attention, j'ai changé le chemin des vidéos et de la DLL.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
katanes
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 07 avr. 2009 21:25
Status : Hors ligne

Re: [..] Déterminer le temps d'un Fichier video

#8

Message par katanes »

Mais quel crétin :shock: je fais......... effectivement c 'est du a l adresse de la dll...Non mais c 'est fou merci encore tout est fonctionnel......excellent

Merci beaucoup.....c 'est cool je peut continuer.......;)
Décidément j 'apprécie de plus en plus la communauté d'autoit
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Déterminer le temps d'un Fichier video

#9

Message par orax »

Et pour avoir un résultat différent il ne faut pas remplacer Duration par Duration\String comme c'est écrit dans le script, mais plutôt par Duration par Duration/String.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
katanes
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mar. 07 avr. 2009 21:25
Status : Hors ligne

[R] Déterminer le temps d'un Fichier video merci a orax

#10

Message par katanes »

Pour moi c 'est ok merci encore Orax :mrgreen:
Répondre