¿Se puede usar Applescript para automatizar una sesión de grabación de pantalla en OS X?

4

Necesito realizar las siguientes tareas desde un script:

  1. Iniciar una grabación de pantalla (con audio del sistema).
  2. Después de un retraso establecido, detenga la grabación.
  3. Guardar en un archivo.
  4. Cerrar la grabación.

He intentado algunos enfoques diferentes aquí y me he topado con obstáculos. Una cosa que probé, por ejemplo, fue un script QuickTime encontrado aquí .

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

Este script no produce errores, pero tampoco guarda nada.

En el pasado, he usado iShowU HD , pero me he topado con importantes problemas de rendimiento que tienen me hizo volver al tablero de dibujo.

Estoy dispuesto a pagar por una aplicación de terceros siempre que cumpla con mis requisitos, por lo que puede sugerir cualquier cosa que pueda hacer el trabajo.

Ejecutando OS X 10.8 Mountain Lion.

    
pregunta Greg W 04.09.2012 - 23:02

2 respuestas

7

Prueba este 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

Hará una nueva grabación durante 3 segundos (edite la línea delay 3 para cambiar la longitud), que se guarda automáticamente en el directorio Movies de su directorio de inicio, luego cierra la ventana de grabación .

Si desea exportar automáticamente a un formato diferente, puede hacerlo agregando la línea export in ("" & (path to desktop) & "quicktimeFile.m4v") using settings preset "480p" antes de la línea close . Los ajustes preestablecidos que puede elegir se definen en el Archivo > Diálogo de exportación:

Verifiqueelcuadrodediálogorealparaobtenermásdetallessobrelosajustespredeterminados(tengaencuentaqueestán"hasta" en la resolución enumerada; se ajustará a los píxeles horizontales disponibles, por lo que "480p" le da 640x400 para una grabación de 16:10). Por lo que sé, no puedes hacer ajustes personalizados.

Si desea capturar los sonidos de su sistema y no el audio de entrada de micrófono / línea, consulte esta pregunta: "¿Puedo obtener el sonido del sistema junto con la grabación de la pantalla QuickTime Player?

Para los curiosos, hay un par de notas sobre por qué el script original no funciona y las peculiaridades de AppleScript de QuickTime Player:

  • La línea set newDoc […] intenta tomar el documento más reciente con la cadena "Sin título" para dar cuenta de que la referencia newScreenRecording se vuelve inválida una vez que se detiene la grabación (lo que probablemente sea una decisión de diseño deficiente, pero oh bien). Sin embargo, QuickTime Player en Lion (y posiblemente Snow Leopard) guarda automáticamente las grabaciones de pantalla como "Screen Recording", "Screen Recording 2", etc., por lo que no encontró documentos. Tenerlo solo en el documento más reciente resuelve esto, y el futuro lo prueba hasta cierto punto.

  • La línea export hace referencia a un ajuste preestablecido que ya no existe (o que se le cambió el nombre). Desafortunadamente, ni QuickTime ni AppleScript dan ningún error al respecto, simplemente falla de forma silenciosa (diseño más deficiente).

  • El diccionario de AppleScript para QuickTime Player enumera una acción save , pero no pude hacerlo funcionar. Sospecho que se eliminó la funcionalidad, pero no se eliminó la entrada del diccionario. Notará que no hay funcionalidad de Guardar en la GUI, solo exportar (y guardar automáticamente). Por lo tanto, si desea cambiar la ubicación de guardado sin exportar un archivo nuevo, deberá obtener la ubicación del archivo y luego moverlo a través del Finder.

respondido por el robmathers 05.09.2012 - 01:16
1

Recientemente escribí un script que no depende en absoluto de la versión de QuickTime.

Simplemente simula acciones reales del usuario para guardar / exportar la película. Toma como entrada el directorio al que desea exportar el archivo de película y la cantidad de segundos que desea grabar para continuar.

Revise el script (y la publicación del blog asociado) en enlace

    
respondido por el Neeraj 20.02.2013 - 14:04

Lea otras preguntas en las etiquetas