Zrzut ekranu - wiersz poleceń?

12

Czy istnieje narzędzie wiersza polecenia, które może nagrać ekran komputera i urządzenie audio, a następnie zapisać je w pliku?

Chealion
źródło
Czy jest jakiś powód, dla którego musi to być narzędzie CLI? Zyskujesz zrzut ekranu za darmo dzięki QuickTime.
igorw
Chciałbym to nazwać skryptem powłoki i zrobić to bez nadzoru.
Cześć Keith, witaj w StackOverlow. Nie wygląda to na programowanie na pierwszy rzut oka, chociaż może tak być, jeśli planujesz napisać skrypt w pliku wsadowym lub coś takiego. Możesz przeredagować go, aby nie wymykał się spod kontroli.
Brian MacKay,

Odpowiedzi:

9

Mac OS X oferuje możliwość przechwytywania statycznych zrzutów ekranu z wiersza poleceń za pomocą narzędzia o nazwie bez wyobraźni screencapture. Możesz znaleźć więcej informacji, uruchamiając man screencapture.

na przykład. screencapture ~/Desktop/picture.png


Jeśli chodzi o nagrywanie ruchu i dźwięku komputerowego, możesz to zrobić za pomocą AppleScript za pomocą QuickTime Player X, jeśli używasz Mac OS X 10.6 lub nowszego. (Jednak zdecydowanie nie jest to „cichy” i będzie działać tylko wtedy, gdy ktoś jest zalogowany)

(Nagrywanie ekranu przez 5 sekund, tylko możliwy punkt początkowy)

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
Chealion
źródło
screencapture pozwala tylko na robienie zdjęć, brak nagrań wideo lub dźwiękowych.
MacLemon,
@MacLemon: Dodano pewne wyjaśnienia.
Chealion
2
Do Twojej wiadomości, odnosząc się do wpisu na blogu, który poprawił wersję powyższego Quicktime Applescript: netjunki.org/blog/…
David
1
Wspomniany blog @David jest nadal dostępny w pamięci podręcznej Google i zauważa: „Wygląda na to, że kiedy próbujesz zadzwonić, zapisz w 10.7 quicktime, po prostu ignoruje połączenie. Lub coś w tym rodzaju. Skrypt zawiesi się tam na zawsze, a następnie upłynie limit czasu”. Dotyczy to mnie w 10.8…
ptim
2

Używam SOX i VLC do przechwytywania, crontab do planowania, XLD do tworzenia m4a i MP4Box do multipleksowania. Jest dość elastyczny, ale wymaga znajomości skryptów Bash (być może także skryptów Apple). Inspirację czerpałem ze skryptu Diego Massanti mkmp4.

podstawowe procesy do uruchomienia:

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

Planowanie nagrywania:

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

możesz dowiedzieć się, co robi skrypt: nagrywaj 3 godziny, dźwięk monofoniczny, każdego dnia roboczego o 8 rano


Nie znalazłem ani nie skompilowałem SOX obsługującego strumienie audio MPEG, stąd użycie FLAC do zaoszczędzenia miejsca; Używam XLD do konwersji na AAC-HE 16kbps, co wystarcza na głos.

Następny krok: multipleksowanie audio i wideo w celu stworzenia MP4. Jeśli nie masz nic przeciwko korzystaniu z GUI, MPEG StreamClip (lub QuickTime) również dobrze działa.

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

Używam tego codziennie do tworzenia archiwum GoToWebinar, ale kiedy następne wydanie FFmpeg obsługuje kodek G2M4, nie będę się już tym przejmować. Tak, jest też OSAscript do uruchomienia webinaru, który również wymagał pozbycia się flagi com.apple.quarantine w celu wyłączenia ostrzeżenia (Czy na pewno chcesz go otworzyć?).

spinki do mankietów:

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

rhoracio
źródło
Może to być również związane z VLC, jest mały żart o tym, jak go używać w tym poście na blogu: netjunki.org/blog/…
David
1

Możesz użyć oprogramowania ffmpeg. Aby zainstalować go na komputerze Mac, postępuj zgodnie z instrukcjami tutaj . Następnie użyj polecenia:

$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
Nehal J Wani
źródło
1
Wątpię, czy działałoby to na OSX, alsa i x11grab są prawdopodobnie dostępne tylko w wersjach ffmpeg dla Linuksa.
Adam MW
0

Do przechwytywania ekranu istnieje kilka narzędzi Open Source. Powinieneś wyszukać „zrzut ekranu” za pomocą menedżera pakietów w systemie Linux. Takie narzędzia scrotmożna wywoływać w skrypcie. Jeśli planujesz to zrobić programowo, w Imlib2 są potrzebne punkty wejścia.

Przechwytywanie dźwięku jest naprawdę nagrywaniem dla urządzenia dźwiękowego mikrofonu. To nie jest tak naprawdę migawka i powinieneś zarządzać, jak długo powinno być nagrane.

Istnieją również narzędzia, które nagrywają wideo na pulpicie.

Kriss
źródło
0

Zrzut zawartości urządzenia bufora ramki systemu Linux do pliku może być czymś podobnym do tego, czego szukasz. Poniżej zacytowałem odpowiednią część Samouczka programowania urządzenia Framebuffer w Linuksie 2.2 , spójrz. Musisz skonfigurować system, aby włączyć urządzenie buforujące ramki (sprawdź, czy masz / dev / fb0 w systemie), nie mam go na moim Ubuntu 9.04.

Gdy masz tryby tekstowe o wysokiej rozdzielczości, możesz zacząć eksperymentować. Będziesz miał urządzenie / dev / fb0, na które możesz patrzeć jak na każdy normalny plik. Aby zrobić zrzut ekranu, wszystko co musisz zrobić, to

cat / dev / fb0> ~ / sshot

Będziesz miał całkiem duży plik z zawartością pamięci karty graficznej. Teraz, jeśli wyczyścisz ekran i napiszesz

cat ~ / sshot> / dev / fb0

Powinieneś mieć wyświetlacz, który wygląda dokładnie tak jak wcześniej. Oczywiście sekunda, w której zaczynasz pisać, powraca do normy.

sauparna
źródło
0

Możesz użyć importu z ImageMagick, ale jest to tylko Linux. Następnie możesz przejść do terminala i wykonać:

import screenshot.png
karlphillip
źródło
0

Używam również systemu Snow Leopard na starzejącym się komputerze MacBook i ponieważ próbuję nauczyć się Celu C, spędzam trochę czasu na tworzeniu narzędzia, które może przechwytywać określone okna.

https://github.com/vorgos/QuickGrab

Jest to narzędzie wiersza polecenia, które przechwytuje najbardziej aktywne okno lub dowolne określone okno.

Mam nadzieję, że to pomogło.

Koleś o imieniu Ben
źródło