Necesito realizar las siguientes tareas desde un script:
Probé algunos enfoques diferentes aquí y me encontré con obstáculos. Una cosa que probé, por ejemplo, fue un script de QuickTime que se encuentra 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 da error, pero tampoco guarda nada.
En el pasado, usé iShowU HD , pero me encontré con importantes problemas de rendimiento que me obligaron a volver a la mesa de dibujo.
Estoy dispuesto a pagar por una aplicación de terceros siempre que cumpla con mis requisitos, así que no dude en sugerir cualquier cosa que pueda hacer el trabajo.
Ejecutando OS X 10.8 Mountain Lion.
Prueba este guión:
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 delay 3
línea para cambiar la duración), que se guardará automáticamente en el directorio Películas de su directorio de inicio y luego cerrará 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 close
línea. Los ajustes preestablecidos entre los que puede elegir se definen en el cuadro de diálogo Archivo > Exportar :
Consulte el cuadro de diálogo real para obtener más detalles sobre los ajustes preestablecidos (tenga en cuenta que están "hasta" la resolución enumerada; se ajustará a los píxeles horizontales disponibles, por lo que "480p" le brinda 640x400 para una grabación 16:10). Hasta donde yo sé, no puedes hacer ajustes preestablecidos personalizados.
Si desea capturar los sonidos del sistema y no el audio de entrada de línea/micrófono, consulte esta pregunta: ¿ Puedo obtener el sonido del sistema junto con la grabación de pantalla de 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 set newDoc […]
línea intenta tomar el documento más reciente con la cadena "Sin título" para dar cuenta de que la newScreenRecording
referencia se vuelve inválida una vez que se detiene la grabación (lo que probablemente sea una mala decisión de diseño, pero bueno). Sin embargo, QuickTime Player bajo Lion (y posiblemente Snow Leopard) guarda automáticamente las grabaciones de pantalla como "Grabación de pantalla", "Grabación de pantalla 2", etc., por lo que no encontró ningún documento. Hacer que tome solo el documento más reciente resuelve esto y lo prueba en el futuro hasta cierto punto.
La export
línea hace referencia a un ajuste preestablecido que ya no existe (o ha sido renombrado). Desafortunadamente, ni QuickTime ni AppleScript dan ningún error al respecto, simplemente fallan silenciosamente (diseño más pobre).
El diccionario AppleScript para QuickTime Player enumera una save
acción, pero no pude hacer que funcionara. Sospecho que la funcionalidad se eliminó, pero la entrada del diccionario no se eliminó. Notará que no hay funcionalidad Guardar en la GUI, solo exportar (y guardar automáticamente). Entonces, si desea cambiar la ubicación de guardado sin exportar un nuevo archivo, deberá obtener la ubicación del archivo y luego moverlo a través del Finder.
Recientemente escribí un script que no depende en absoluto de la versión de QuickTime.
Simplemente simula las acciones reales del usuario para guardar/exportar la película. Toma como entrada el directorio al que desea que se exporte el archivo de película y la cantidad de segundos que desea que continúe la grabación.
Consulte el script (y la publicación de blog asociada) en http://www.neerajkumar.net/blog/2013/02/16/script-to-record-screen-on-mac-osx-and-save-on- disco/
No uso applescript pero sigue siendo útil; Encontré una solución que funciona muy bien. Puede grabar con ffmpeg usando un dispositivo de entrada llamado avfoundation
.
Detalles Más opciones Opciones de ffmpeg
Aquí hay un comando de ejemplo:ffmpeg -f avfoundation -pix_fmt yuyv422 -i "1:1" -t 10 -vf crop=1280:720:1:65 -r 30 output.mkv
-pix_fmt
cuándo no se incluye esta opción; puede valer la pena probar otros formatos para ver si obtiene un mejor rendimiento.-i
selecciona tanto la entrada de video como la de audio. Si desea capturar el audio que se reproduce en su computadora, necesitará algo como iShowU Audio Capture. Para que eso funcione, deberá presionar la opción + F11, seleccionar iShowU Audio Capture como dispositivo de entrada y como dispositivo de salida. Notará que una vez que lo seleccione como dispositivo de salida, ya no podrá escuchar el audio a través de sus parlantes o auriculares. Una solución rápida es abrir la configuración de Audio MIDI, crear un dispositivo de salida múltiple y agregar iShowU Audio Capture y su dispositivo de salida normal. Seleccione este nuevo dispositivo de salida múltiple en sus salidas de sonido y listo, ahora puede escuchar el audio y capturarlo. Desafortunadamente, ahora no puede controlar los niveles de audio... si alguien sabe una solución a esto, hágamelo saber.-t
es el tiempo en segundos para grabar.-vf
es muy útil para recortar y compensar. La configuración actual se recorta a 1280 ancho 720 alto, desplazando 1 píxel a la izquierda y 65 píxeles desde la parte superior. Deberá usar una herramienta de terceros para obtener las medidas exactas de píxeles de su pantalla.-r
es la velocidad de fotogramas
greg w
export
se complete la línea antes de pasar a la siguiente línea. Si cierro la ventana de grabación antes de que finalice la exportación, falla. Entonces, supongo que de alguna manera necesito averiguar cuánto tiempo llevará una exportación, retrasar esa cantidad y luego cerrar la ventana.ladrones
export
aftertell last item of documents
y beforeclose
), se abre una ventana de exportación separada, se ejecuta la exportación y luego se cierra la ventana de grabación. Pero no interrumpe el proceso de exportación. Esto está usando Quicktime X en Lion.greg w
greg w
~/Movies
.ladrones
save
comando funcione para usted (no parece hacer nada en 10.7). También puede eliminar el comando de cierre y cerrarlo manualmente una vez que se haya completado la codificación.greg w
ladrones
greg w
/usr/bin/osascript
cada vez que necesito acceder a la capa de AppleScript.