7 votes

Peut-on utiliser Applescript pour automatiser une session d'enregistrement d'écran sous OS X ?

Je dois accomplir les tâches suivantes à partir d'un script :

  1. Lancez un enregistrement d'écran (avec le son du système).
  2. Après un délai déterminé, arrêtez l'enregistrement.
  3. Sauvegarder dans un fichier.
  4. Fermez l'enregistrement.

J'ai essayé plusieurs approches différentes ici et je me suis heurté à des obstacles. Une chose que j'ai essayée par exemple était un script QuickTime trouvé ici .

tell application "QuickTime Player"
    set newScreenRecording to new screen recording
    tell newScreenRecording
        start
        delay 10
        stop
    end tell
    set newDoc to last item of (documents whose name contains "Untitled")
    set f to "" & (path to desktop) & "quicktimeFile"
    export newDoc in f using settings preset "Quicktime Movie"
end tell

Ce script ne fait pas d'erreur, mais il ne sauvegarde rien non plus.

Dans le passé, j'ai utilisé iShowU HD mais j'ai rencontré d'importants problèmes de performances qui m'ont poussé à revenir à la planche à dessin.

Je suis prêt à payer pour une application tierce à condition qu'elle réponde à mes exigences, alors n'hésitez pas à suggérer tout ce qui pourrait faire l'affaire.

Exécution de OS X 10.8 Mountain Lion.

8voto

Ged Byrne Points 481

Essayez ce script :

tell application "QuickTime Player"
    set newScreenRecording to new screen recording
    tell newScreenRecording
        start
        delay 3
        stop
    end tell
    tell last item of documents
        close
    end tell
end tell

Il effectuera un nouvel enregistrement pendant 3 secondes (modifiez l'option delay 3 pour modifier la longueur), qui est automatiquement sauvegardé dans le fichier Films de votre répertoire d'accueil, puis ferme la fenêtre d'enregistrement.

Si vous souhaitez exporter automatiquement vers un format différent, vous pouvez le faire en ajoutant la ligne suivante export in ("" & (path to desktop) & "quicktimeFile.m4v") using settings preset "480p" avant le close ligne. Les préréglages que vous pouvez choisir sont définis dans l'onglet Fichier > Exportation dialogue :

export options

Consultez la boîte de dialogue actuelle pour plus de détails sur les préréglages (notez qu'ils sont "jusqu'à" la résolution indiquée - elle s'adaptera aux pixels horizontaux disponibles, donc "480p" vous donne 640x400 pour un enregistrement 16:10). Pour autant que je sache, vous ne pouvez pas créer de préréglages personnalisés.

Si vous souhaitez capturer les sons de votre système, et non les sons du micro ou de l'entrée en ligne, consultez cette question : Puis-je obtenir le son du système avec l'enregistrement de l'écran de QuickTime Player ?

Pour les curieux, il y a quelques notes sur la raison pour laquelle le script original ne fonctionne pas et sur les particularités AppleScript de QuickTime Player :

  • El set newDoc […] essaie de récupérer le document le plus récent contenant la chaîne "Sans titre" pour tenir compte de la newScreenRecording devient invalide dès que l'enregistrement est arrêté (ce qui est probablement une mauvaise décision de conception, mais bon). Cependant, QuickTime Player sous Lion (et peut-être Snow Leopard) enregistre automatiquement les enregistrements d'écran comme "Enregistrement d'écran", "Enregistrement d'écran 2", etc. Le fait qu'il ne récupère que le document le plus récent résout ce problème, et le protège dans une certaine mesure.

  • El export fait référence à un preset qui n'existe plus (ou qui a été renommé). Malheureusement, ni QuickTime ni AppleScript n'affichent d'erreur à ce sujet, ils échouent simplement en silence (encore une mauvaise conception).

  • Le dictionnaire AppleScript pour le lecteur QuickTime répertorie une fonction save mais je n'ai pas réussi à la faire fonctionner - je soupçonne que la fonctionnalité a été tuée, mais que l'entrée du dictionnaire n'a pas été supprimée. Vous noterez qu'il n'y a pas de fonctionnalité d'enregistrement dans l'interface graphique, seulement l'exportation (et l'enregistrement automatique). Donc, si vous voulez changer l'emplacement de sauvegarde sans exporter un nouveau fichier, vous devrez obtenir l'emplacement du fichier, puis le déplacer dans le Finder.

2voto

Neeraj Points 121

J'ai récemment écrit un script qui ne dépend pas du tout de la version de QuickTime.

Il simule simplement les actions réelles de l'utilisateur pour sauvegarder/exporter le film. Il prend en entrée le répertoire dans lequel vous souhaitez que le fichier vidéo soit exporté, et le nombre de secondes pendant lequel vous souhaitez que l'enregistrement se poursuive.

Consultez le script (et l'article de blog associé) à l'adresse suivante http://www.neerajkumar.net/blog/2013/02/16/script-à-recorder-écran-sur-mac-osx-et-sauvegarder-sur-disque/

0voto

Je n'utilise pas applescript mais c'est quand même utile ; j'ai trouvé une solution qui fonctionne très bien. Vous êtes en mesure d'enregistrer avec ffmpeg en utilisant un périphérique d'entrée appelé avfoundation .

Détails Plus d'options Options de ffmpeg

Voici un exemple de commande : ffmpeg -f avfoundation -pix_fmt yuyv422 -i "1:1" -t 10 -vf crop=1280:720:1:65 -r 30 output.mkv

  • On vous demandera peut-être ou non de préciser -pix_fmt lorsque cette option n'est pas incluse ; il peut être intéressant d'essayer d'autres formats pour voir si vous obtenez de meilleures performances.
  • Comme expliqué dans le lien détaillé, -i sélectionne à la fois l'entrée vidéo et l'entrée audio. Si vous voulez capturer l'audio en cours de lecture sur votre ordinateur, vous aurez besoin de quelque chose comme Capture audio iShowU . Pour que cela fonctionne, vous devrez appuyer sur option+F11, sélectionner iShowU Audio Capture comme périphérique d'entrée et comme périphérique de sortie. Vous remarquerez qu'une fois que vous l'avez sélectionné comme périphérique de sortie, vous ne pouvez plus entendre l'audio vous-même à travers vos haut-parleurs ou votre casque. Une solution rapide est d'ouvrir Audio MIDI Setup, créer un périphérique Multi-Output et ajouter iShowU Audio Capture et votre périphérique de sortie normal. Sélectionnez ce nouveau périphérique Multi-Output dans vos sorties audio et voilà, vous pouvez maintenant entendre l'audio et le faire capturer. Malheureusement, vous n'êtes pas en mesure de contrôler les niveaux audio maintenant... si quelqu'un connaît une solution à ce problème, faites-le moi savoir.
  • -t est la durée en secondes de l'enregistrement.
  • -vf est très utile pour le recadrage et la compensation. Le paramètre actuel est recadré à 1280 largeur 720 hauteur, avec un décalage de 1 pixel à gauche et 65 pixels à partir du haut. Vous devrez utiliser un outil tiers pour obtenir les mesures exactes en pixels de votre écran.
  • -r est le framerate

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X