Czy istnieje narzędzie wiersza polecenia, które może nagrać ekran komputera i urządzenie audio, a następnie zapisać je w pliku?
Czy istnieje narzędzie wiersza polecenia, które może nagrać ekran komputera i urządzenie audio, a następnie zapisać je w pliku?
Odpowiedzi:
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
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/
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
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 scrot
moż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.
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.
Możesz użyć importu z ImageMagick, ale jest to tylko Linux. Następnie możesz przejść do terminala i wykonać:
import screenshot.png
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.