Screenshot - Befehlszeile?


12

Gibt es ein Befehlszeilentool, mit dem Sie Ihren Computerbildschirm und Ihr Audiogerät aufzeichnen und in einer Datei speichern können?


Gibt es einen Grund, warum dies ein CLI-Tool sein muss? Mit QuickTime erhalten Sie kostenlos Screenshots.
igorw

Ich möchte es in einem Shell-Skript aufrufen und es unbeaufsichtigt tun.

Hallo Keith, willkommen bei StackOverlow. Dies sieht auf einen Blick nicht nach Programmierung aus, obwohl es tatsächlich sein könnte, wenn Sie planen, es in einer Batch-Datei oder so etwas zu skripten. Vielleicht möchten Sie es umformulieren, damit es nicht außer Kontrolle gerät.
Brian MacKay

Antworten:


9

Mac OS X bietet die Möglichkeit, statische Screenshots über die Befehlszeile mit einem Dienstprogramm aufzunehmen, das einfallslos aufgerufen wird screencapture. Weitere Informationen finden Sie unter Ausführen man screencapture.

z.B. screencapture ~/Desktop/picture.png


Wenn Sie Mac OS X 10.6 oder höher verwenden, können Sie dies über AppleScript mit QuickTime Player X über AppleScript aufnehmen. (Es ist jedoch definitiv nicht "still" und wird nur ausgeführt, wenn jemand angemeldet ist.)

(Aufzeichnung des Bildschirms für 5 Sekunden, nur ein möglicher Ausgangspunkt)

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

Mit screencapture können nur Standbilder, keine Video- oder Tonaufnahmen gemacht werden.
MacLemon

@ MacLemon: Einige Klarstellungen hinzugefügt.
Chealion

2
Zu Ihrer Information,
David,

1
Der erwähnte Blog @David ist immer noch im Google-Cache verfügbar und stellt fest: "Wenn Sie versuchen, in 10.7 zu speichern, wird der Anruf einfach ignoriert. Oder so etwas. Das Skript bleibt dort für immer hängen und läuft dann ab." Dies gilt für mich in 10.8…
ptim

2

Ich verwende SOX und VLC für die Erfassung, Crontab für die Planung, XLD für die Erstellung von m4a und MP4Box für das Multiplexing. Es ist ziemlich flexibel, erfordert aber Kenntnisse in Bash-Skripten (vielleicht auch in Apple-Skripten). Ich habe meine Inspiration in Diego Massantis mkmp4-Skript gefunden.

Kernprozesse zu starten:

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

Aufnahme planen:

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

Sie können sich ein Bild davon machen, was das Skript tut: 3-Stunden-Aufnahme, Mono-Sound, jeden Arbeitstag um 8 Uhr morgens


Ich habe SOX für MPEG-Audiostreams weder aktiviert noch kompiliert und daher FLAC verwendet, um Platz zu sparen. Ich verwende XLD, um es in AAC-HE 16 kbps zu konvertieren, was für Sprache ausreicht.

Nächster Schritt: Multiplexen von Audio und Video zum Erstellen von MP4. Wenn es Ihnen nichts ausmacht, die grafische Benutzeroberfläche zu verwenden, ist MPEG StreamClip (oder QuickTime) ebenfalls eine gute Wahl.

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

Ich benutze dies täglich, um ein Archiv von GoToWebinar zu erstellen, aber wenn die nächste Version von FFmpeg den G2M4-Codec unterstützt, werde ich mich nicht mehr darum kümmern. Ja, es gibt auch OSAscript zum Starten des Webinars, bei dem auch das Flag com.apple.quarantine entfernt werden musste, um die Warnung zu deaktivieren (Möchten Sie es wirklich öffnen?).

Links:

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


Dies kann auch für VLC verwandt sein, es gibt einen kleinen Witz darüber, wie man es in diesem Blog-Beitrag verwendet: netjunki.org/blog/…
David

1

Sie können die Software ffmpeg verwenden. Befolgen Sie die Anweisungen hier, um es auf einem Mac zu installieren . Verwenden Sie dann den Befehl:

$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
Ich bezweifle, dass dies unter OSX funktionieren würde. Alsa und x11grab sind wahrscheinlich nur unter Linux-Builds von ffmpeg verfügbar.
Adam MW

0

Für die Bildschirmaufnahme gibt es mehrere Open Source-Tools. Sie sollten "Screen Capture" mit einem Paketmanager unter Linux suchen. Tools wie scrotkönnen in einem Skript aufgerufen werden. Wenn Sie dies programmgesteuert planen, gibt es in Imlib2 die erforderlichen Einstiegspunkte.

Das Aufnehmen von Ton ist wirklich eine Aufnahme für ein Mikrofon-Audiogerät. Es ist nicht wirklich ein Schnappschuss und Sie sollten festlegen, wie lange die Aufnahme dauern soll. Jeder Soundrekorder reicht aus.

Es gibt auch Tools, mit denen Sie ein Video von Ihrem Desktop erstellen können.


0

Das Speichern des Inhalts des Linux-Framebuffer-Geräts in einer Datei ähnelt möglicherweise dem, wonach Sie suchen. Im Folgenden habe ich den relevanten Teil des Linux 2.2 Framebuffer Device Programming Tutorial zitiert . Sie müssen Ihr System so konfigurieren, dass das Framebuffer-Gerät aktiviert wird (überprüfen Sie, ob Sie / dev / fb0 auf Ihrem System haben). Ich habe es nicht auf meinem Ubuntu 9.04.

Wenn Sie hochauflösende Textmodi haben, können Sie mit dem Experimentieren beginnen. Sie haben ein Gerät / dev / fb0, das Sie wie jede normale Datei betrachten können. Um einen Screenshot zu machen, müssen Sie nur noch etwas tun

cat / dev / fb0> ~ / sshot

Und Sie haben eine ziemlich große Datei mit dem Inhalt des Speichers Ihrer Grafikkarte. Wenn Sie nun den Bildschirm löschen und eingeben

cat ~ / sshot> / dev / fb0

Sie sollten ein Display haben, das genau so aussieht wie zuvor. Natürlich wird die Sekunde, in der Sie mit der Eingabe der Anzeige beginnen, wieder normal.


0

Sie können den Import von ImageMagick verwenden, aber es ist nur Linux. Dann könnten Sie zu einem Terminal gehen und ausführen:

import screenshot.png

0

Ich verwende Snow Leopard auch auf einem alternden Macbook. Da ich versuche, Ziel C zu lernen, verbringe ich einige Zeit damit, ein Tool zu erstellen, mit dem bestimmte Fenster erfasst werden können.

https://github.com/vorgos/QuickGrab

Es ist ein Befehlszeilenprogramm, das das oberste aktivste Fenster oder ein von Ihnen angegebenes Fenster erfasst.

Hoffe das hat geholfen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.