Bonjour
Je remonte ce vieux fil sur lequel je suis retombé par hasard en faisant des recherches, parce qu'ayant trouvé en grande partie la réponse, je n'arrive pas à régler un point de détail qui se dérange.
Tout d'abord, voici la solution qui me permet de capturer des séquences : il s'agit d'un script en AppleScript utilisant QuickTime Player (chez moi actuellement en version 7.6.4). Ma caméra est branchée sur la prise Firewire de mon Mac et est en fonctionnement lorsque le script démarre.
Bloc de code:
[COLOR="Blue"][COLOR="DimGray"]-- Dossier de sauvegarde des captures vidéo : ~/Séquences/MesCaptures/[/COLOR]
[B]property[/B] [COLOR="DarkGreen"]_NomDossier[/COLOR] [COLOR="Black"]: "Movies:MesCaptures:"[/COLOR]
[COLOR="DimGray"]-- Durée d'une capture vidéo : 10 secondes[/COLOR]
[B]property[/B] [COLOR="DarkGreen"]_Duree[/COLOR] [COLOR="Black"]: 10[/COLOR]
[B]try[/B]
[B]tell[/B] application [COLOR="Black"]"QuickTime Player"[/COLOR]
[COLOR="DimGray"]-- Nouvelle séquence QuickTime[/COLOR]
new movie recording
[COLOR="DimGray"]-- Nom du prochain fichier vidéo[/COLOR]
[B]set[/B] [COLOR="DarkGreen"]_DossierDestination[/COLOR] [B]to[/B] [COLOR="Black"](([/COLOR]path [B]to[/B] home folder) [B]as[/B] string[COLOR="Black"][COLOR="Black"])[/COLOR] &[/COLOR] [COLOR="DarkGreen"]_NomDossier[/COLOR]
[B]set[/B] [COLOR="DarkGreen"]_Date_Heure[/COLOR] [B]to[/B] do shell script[COLOR="Black"] "/bin/date +%Y%m%d-%H%M%S"[/COLOR]
[B]set[/B] [COLOR="DarkGreen"]_FichierDestination[/COLOR] [B]to[/B] [COLOR="Black"]([/COLOR]quoted form [B]of[/B] POSIX path [B]of[/B] ([COLOR="DarkGreen"]_DossierDestination[/COLOR] [COLOR="Black"]&[/COLOR] [COLOR="DarkGreen"]_Date_Heure[/COLOR] [COLOR="Black"]& ".mov"))[/COLOR] [B]as[/B] string
[COLOR="DimGray"]-- Début de l'enregistrement[/COLOR]
start recording [COLOR="Black"]1[/COLOR]
[COLOR="DimGray"]-- Attente[/COLOR]
delay [COLOR="DarkGreen"]_Duree[/COLOR]
[COLOR="DimGray"]-- Fin de l'enregistrement[/COLOR]
stop recording [COLOR="Black"]1[/COLOR]
[COLOR="DimGray"]-- Récupération du nom de la séquence créée[/COLOR]
[B]set[/B] [COLOR="DarkGreen"]_FichierSequence[/COLOR] [B]to[/B] [COLOR="Black"]([/COLOR]quoted form [B]of[/B] POSIX path [B]of[/B] [COLOR="Black"](([/COLOR]original file [B]of[/B] document [COLOR="Black"]1)[/COLOR] [B]as[/B] string[COLOR="Black"]))[/COLOR]
[COLOR="DimGray"]-- Fermeture de la fenêtre de la séquence enregistrée[/COLOR]
close document [COLOR="Black"]1[/COLOR]
[COLOR="DimGray"]-- Sauvegarde de la séquence dans le dossier des captures vidéo[/COLOR]
do shell script [COLOR="Black"]"mv " &[/COLOR] [COLOR="DarkGreen"]_FichierSequence[/COLOR] [COLOR="Black"]& " " &[/COLOR] [COLOR="DarkGreen"]_FichierDestination[/COLOR]
[B]end tell[/B]
[COLOR="DimGray"]-- En cas d'erreur[/COLOR]
[B]on error[/B] [COLOR="DarkGreen"]_MessageErreur[/COLOR] number [COLOR="DarkGreen"]_NumeroErreur[/COLOR]
[COLOR="DimGray"]-- Enregistre l'erreur dans le fichier de log situé dans le dossier "maison"[/COLOR]
do shell script [COLOR="Black"]"/bin/date +\"%Y-%m-%d %H:%M:%S [" &[/COLOR] [COLOR="DarkGreen"]_NumeroErreur[/COLOR] [COLOR="Black"]& "] - " &[/COLOR] [COLOR="DarkGreen"] _MessageErreur[/COLOR] [COLOR="Black"]& "\" >> ~/MesCaptures.log"[/COLOR]
[B]end try[/B][/COLOR]
Ce script est lancé de façon périodique à l'aide d'un autre moyen (iCal, cron, un autre script, etc.
- je ne m'étendrai pas là-dessus, compte tenu que ce type de question a déjà été traité plusieurs fois sur les forums).
Mon problème tient au fait que je n'arrive pas à contrôler précisément la durée de l'enregistrement.
Il y a en effet un délai entre l'envoi de la commande de mise en route de l'enregistrement dans QuickTime («
start recording ») et son démarrage effectif. Au final, la séquence est plus courte que prévu de plusieurs secondes, et surtout la réduction de la durée est aléatoire.
Or, j'aurais souhaité obtenir des séquences d'une durée sinon
exacte, au moins
constante.
Notez que je n'utilise pour le moment que la commande «
delay » pour fixer la durée. J'ai tenté d'utiliser la propriété «
state » de l'élément «
recording » pour connaître le moment du démarrage de l'enregistrement, mais je n'y suis pas parvenu (je n'ai pas trouvé la syntaxe correcte pour en tirer parti).
Alors si vous aviez une idée sur la question... merci d'avance.