Ekran Yakalama - komut satırı?


12

Bilgisayar ekranınızı ve ses cihazınızı kaydedip bir dosyaya kaydedebilen bir komut satırı aracı var mı?


Bunun CLI aracı olması için bir neden var mı? QuickTime ile ekran görüntüsünü ücretsiz olarak alabilirsiniz.
igorw

Bir kabuk komut dosyasında çağırmak ve katılımsız yapmak istiyorum.

Merhaba Keith, StackOverlow'a hoş geldiniz. Bu, bir toplu iş dosyasında veya başka bir şeyde komut dosyası oluşturmayı planlıyorsanız, bir bakışta ilgili programlama gibi görünmüyor. Elden kapanmaması için yeniden sarmak isteyebilirsiniz.
Brian MacKay

Yanıtlar:


9

Mac OS X, yaratıcı olmayan bir yardımcı program kullanarak komut satırından statik ekran görüntüleri yakalama olanağı sunar screencapture. Çalıştırarak daha fazla bilgi bulabilirsiniz man screencapture.

Örneğin. screencapture ~/Desktop/picture.png


Hareket ve bilgisayar sesini kaydetmeye gelince, Mac OS X 10.6 veya daha yenisini kullanıyorsanız, QuickTime Player X kullanarak AppleScript üzerinden yapabilirsiniz. (Ancak kesinlikle "sessiz" değildir ve yalnızca birisi giriş yaptığında çalışır)

(Ekranı 5 saniye kaydetme, sadece olası bir başlangıç ​​noktası)

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 yalnızca hareketsiz görüntü yapılmasına izin verir, video veya ses kaydı yapmaz.
MacLemon

@ MacLemon: Bazı açıklamalar eklendi.
Chealion

2
FYI, sadece yukarıdaki Quicktime Applescript
David

1
Bahsedilen blog @David hala Google'ın önbelleğinde mevcut ve not ediyor: "Görünüşe göre 10.7 quicktime'da kaydetmeyi denediğinizde ve aradığınızda çağrı yok sayılır. Bu benim için
10.8'de

2

Yakalama için SOX ve VLC, zamanlama için crontab, çoğullama için m4a ve MP4Box oluşturmak için XLD kullanıyorum. Oldukça esnektir, ancak Bash betikleri (belki de Apple betiği) bilgisi gerektirir. İlhamımı Diego Massanti'nin mkmp4 betiğinde buldum.

başlatmak için temel süreçler:

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

Kayıt zamanlaması:

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

senaryonun ne yaptığına dair bir fikir edinebilirsiniz: kayıt 3 saat yakalama, mono ses, her gün 08: 00'da


MPEG ses akışları için SOX etkin bulmadım veya derlemedim, bu nedenle biraz yer kazanmak için FLAC kullanıyorum; Ses için yeterli olan AAC-HE 16kbps'ye dönüştürmek için XLD kullanıyorum.

Sonraki adım: mp4 oluşturmak için çoklayıcı ses ve video. GUI kullanmanın sakıncası yoksa, MPEG StreamClip (veya QuickTime) da iyi bir şekilde çalışır.

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

Bu günlük GoToWebinar arşivi oluşturmak için kullanıyorum, ancak FFmpeg'in bir sonraki sürümü G2M4 codec'ini desteklediğinde, artık rahatsız etmeyeceğim. Evet, uyarıyı devre dışı bırakmak için com.apple.quarantine bayrağından kurtulmayı gerektiren web seminerini başlatmak için OSAscript de var (Açmak istediğinizden emin misiniz?).

links:

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


Bu VLC için de ilgili olabilir, bu blog yazısında nasıl kullanılacağı hakkında küçük bir alıntı var
David

1

Ffmpeg yazılımını kullanabilirsiniz. Mac'te Kurmak için, talimatları takip buraya . Ardından şu komutu kullanın:

$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
OSX, alsa ve x11grab üzerinde çalışacağından şüphe yok ki sadece ffmpeg linux yapılarında kullanılabilir.
Adam MW

0

Ekran görüntüsü yakalamak için birkaç Açık Kaynak aracı vardır. Linux'ta bir paket yöneticisi kullanarak "ekran yakalama" araması yapmalısınız. Gibi araçlar scrotbir komut dosyasında çağrılabilir. Programlı olarak yapmayı planlıyorsanız, Imlib2'de gerekli giriş noktaları vardır.

Ses yakalamak gerçekten mikrofon ses cihazı için kayıt yapıyor. Bu gerçekten bir enstantane değil ve kaydın ne kadar süre yapılması gerektiğini yönetmelisiniz.

Masaüstünüzün videosunu yapan araçlar da vardır.


0

Linux framebuffer cihazının içeriğini bir dosyaya dökmek, aradığınıza benzer bir şey olabilir. Aşağıda, Linux 2.2 Framebuffer Cihazı Programlama Eğiticisinin ilgili bölümünü alıntıladım, bir göz atın. Sisteminizi framebuffer cihazını etkinleştirecek şekilde yapılandırmanız gerekecektir (sisteminizde / dev / fb0 olup olmadığını kontrol edin), Ubuntu 9.04'ümde yok.

Yüksek çözünürlüklü metin modlarınız olduğunda denemeye başlayabilirsiniz. Herhangi bir normal dosyaya bakabileceğiniz bir cihaz / dev / fb0 cihazınız olacaktır. Ekran görüntüsü almak için tek yapmanız gereken

cat / dev / fb0> ~ / çekim

Ve grafik kartınızın belleğinin içindekileri içeren oldukça büyük bir dosyaya sahip olacaksınız. Şimdi, ekranı temizlerseniz ve şunu yazarsanız:

cat ~ / sshot> / dev / fb0

Daha önce olduğu gibi görünen bir ekranınız olmalıdır. Tabii ki, ekran yazmaya başladığınız ikinci bölüm normale döner.


0

ImageMagick'ten içe aktarmayı kullanabilirsiniz , ancak yalnızca Linux'tur. Sonra bir terminale gidip şunları yapabilirsiniz:

import screenshot.png

0

Ayrıca yaşlanan bir macbook üzerinde Snow Leopard kullanıyorum ve Objective C'yi öğrenmeye çalıştığımdan beri, belirli pencereleri yakalayabilen bir araç oluşturmak için biraz zaman harcıyorum.

https://github.com/vorgos/QuickGrab

En etkin pencereyi veya belirttiğiniz herhangi bir pencereyi yakalayan bir komut satırı aracıdır.

Umut etmek bu yardım etmek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.