Screen Capture - riga di comando?


12

Esiste uno strumento da riga di comando in grado di registrare lo schermo del computer e il dispositivo audio e salvarlo in un file?


Qual è il motivo per cui questo deve essere uno strumento CLI? Ottieni l'acquisizione dello schermo gratuitamente con QuickTime.
Vigilia,

Vorrei chiamarlo in uno script di shell e farlo incustodito.

Ciao Keith, benvenuto su StackOverlow. Questo non sembra un aspetto legato alla programmazione, anche se in realtà potrebbe esserlo se stai pianificando di copiarlo in un file batch o qualcosa del genere. Potresti voler riformularlo in modo che non venga chiuso fuori mano.
Brian MacKay,

Risposte:


9

Mac OS X offre la possibilità di acquisire schermate statiche dalla riga di comando utilizzando un'utilità chiamata in modo privo di fantasia screencapture. Puoi trovare ulteriori informazioni eseguendo man screencapture.

per esempio. screencapture ~/Desktop/picture.png


Per quanto riguarda la registrazione di movimento e audio del computer, puoi farlo tramite AppleScript utilizzando QuickTime Player X se stai utilizzando Mac OS X 10.6 o versioni successive. (Tuttavia non è sicuramente "silenzioso" e funzionerà solo quando qualcuno è loggato)

(Registrazione dello schermo per 5 secondi, solo un possibile punto di partenza)

tell application "QuickTime Player"
    --activate
    new screen recording
    start document 1
    delay 5
    stop document 1
    save document 1 in file "/tmp/test.mov"
    quit
end tell

screencapture consente solo di fare fermi immagine, nessuna registrazione video o audio.
MacLemon,

@MacLemon: aggiunti alcuni chiarimenti.
Chealion,

2
Cordiali saluti, ho appena fatto riferimento a un post sul blog che ha migliorato la versione di Quicktime Applescript sopra: netjunki.org/blog/…
David

1
Il blog @David menzionato è ancora disponibile nella cache di Google e osserva: "Sembra che quando provi a chiamare il salvataggio in 10,7 quicktime ignori semplicemente la chiamata. O qualcosa del genere. Lo script rimarrà lì per sempre e poi scadrà". Questo è vero per me nel 10,8 ...
ptim

2

Sto usando SOX e VLC per l'acquisizione, crontab per la pianificazione, XLD per creare m4a e MP4Box per il multiplexing. È abbastanza flessibile, ma richiede la conoscenza degli script di Bash (forse anche di Apple). Ho trovato la mia ispirazione nello script mkmp4 di Diego Massanti.

processi fondamentali per l'avvio:

rec -q -c $C -r 48000 -b 16 $AFILE trim 0 $HH:$MM:00 &

VLC -I dummy screen:// --screen-fps=25 --quiet --sout "#transcode{vcodec=h264,vb=3072}:standard{access=file,mux=mp4,dst=$FILE}" --run-time $TIME vlc://quit

Pianificazione della registrazione:

crontab -l
0       8       *       *       1-5     ~/capture.sh 3 0 recording-name 1

puoi farti un'idea di cosa sta facendo la sceneggiatura: registra 3 ore di acquisizione, suono mono, ogni giorno lavorativo alle 8:00


Non ho trovato né compilato SOX abilitato per i flussi audio MPEG, quindi utilizzando FLAC per risparmiare spazio; Sto usando XLD per convertirlo in AAC-HE 16kbps, che è abbastanza per la voce.

Passaggio successivo: audio e video multiplex per creare mp4. Se non ti dispiace usare la GUI, allora MPEG StreamClip (o QuickTime) funziona anche bene.

MP4Box -add $1.m4a -sbr -add $1.m4v -fps $2.0 -inter 500 $1.mp4

Lo sto usando quotidianamente per creare l'archivio di GoToWebinar, ma quando la prossima versione di FFmpeg supporta il codec G2M4, non mi preoccuperò più. Sì, c'è anche OSAscript per avviare il webinar che ha richiesto anche di eliminare il flag com.apple.quarantine per disabilitare l'avviso (Sei sicuro di voler aprirlo?).

links:

http://blog.massanti.com/2008/09/26/mkmp4-automated-h264-aacplus-encoder-script-mac-linux/


Questo può essere correlato anche per VLC, c'è una piccola battuta su come usarlo in questo post del blog: netjunki.org/blog/…
David

1

È possibile utilizzare il software ffmpeg. Per installarlo su un Mac, segui le istruzioni qui . Quindi utilizzare il comando:

$ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y output.mkv

1
Dubito che funzionerebbe su OSX, alsa e x11grab sono probabilmente disponibili solo su build linux di ffmpeg.
Adam MW,

0

Per catturare lo schermo, ci sono diversi strumenti Open Source. Dovresti cercare "screen capture" usando un gestore di pacchetti su Linux. Strumenti come scrotpossono essere richiamati in uno script. Se hai intenzione di farlo programmaticamente, ci sono i punti di ingresso necessari in Imlib2.

Catturare il suono è davvero la registrazione per il dispositivo audio del microfono. Non è in realtà un'istantanea e dovresti gestire per quanto tempo dovrebbe essere eseguita la registrazione. Farà qualsiasi registratore di suoni.

Ci sono anche strumenti che rendono un video del tuo desktop.


0

Scaricare il contenuto del dispositivo framebuffer Linux in un file può essere qualcosa di simile a quello che stai cercando. Di seguito, ho citato la parte pertinente del Tutorial di programmazione del dispositivo Framebuffer Linux 2.2 , dai un'occhiata. Dovrai configurare il tuo sistema per abilitare il dispositivo framebuffer (controlla se hai / dev / fb0 sul tuo sistema), non ce l'ho sul mio Ubuntu 9.04.

Quando hai modalità di testo ad alta risoluzione, puoi iniziare a sperimentare. Avrai un dispositivo / dev / fb0 che puoi guardare come un normale file. Per fare uno screenshot, tutto ciò che devi fare è

cat / dev / fb0> ~ / sshot

E avrai un file abbastanza grande con il contenuto della memoria della scheda grafica all'interno. Ora, se si cancella lo schermo e si digita

cat ~ / sshot> / dev / fb0

Dovresti avere un display esattamente come prima. Naturalmente, la seconda parte in cui si inizia a digitare il display ritorna normale.


0

Puoi usare l' importazione da ImageMagick, ma è solo Linux. Quindi potresti andare su un terminale ed eseguire:

import screenshot.png

0

Sto anche eseguendo Snow Leopard su un vecchio macbook e poiché sto cercando di imparare l'obiettivo C, passo un po 'di tempo a costruire uno strumento in grado di catturare finestre specifiche.

https://github.com/vorgos/QuickGrab

È uno strumento da riga di comando che acquisirà la finestra più attiva in alto o qualsiasi finestra specificata.

Spero che abbia aiutato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.