Tangkapan Layar - baris perintah?

12

Apakah ada alat baris perintah di luar sana yang dapat merekam layar komputer Anda dan perangkat audio dan kemudian menyimpannya ke file?

Chealion
sumber
Adakah alasan mengapa ini harus menjadi alat CLI? Anda mendapatkan tangkapan layar gratis dengan QuickTime.
igorw
Saya ingin menyebutnya dalam skrip shell dan melakukannya tanpa pengawasan.
Hai Keith, selamat datang di StackOverlow. Sekilas ini tidak tampak terkait pemrograman, meskipun sebenarnya bisa jika Anda berencana untuk skrip dalam file batch atau sesuatu. Anda mungkin ingin menulis ulang sehingga tidak tertutup.
Brian MacKay

Jawaban:

9

Mac OS X menawarkan kemampuan untuk menangkap tangkapan layar statis dari baris perintah menggunakan utilitas yang disebut tanpa imajinasi screencapture. Anda dapat menemukan informasi lebih lanjut dengan menjalankan man screencapture.

misalnya. screencapture ~/Desktop/picture.png


Sedangkan untuk merekam gerakan dan audio komputer Anda dapat melakukan ini melalui AppleScript menggunakan QuickTime Player X jika Anda menggunakan Mac OS X 10.6 atau lebih baru. (Namun itu jelas bukan "diam" dan hanya akan berjalan ketika seseorang masuk)

(Merekam layar selama 5 detik, hanya titik awal yang memungkinkan)

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
sumber
screencapture hanya memungkinkan untuk melakukan gambar diam, tidak ada rekaman video atau suara.
MacLemon
@ MacLemon: Menambahkan beberapa klarifikasi.
Chealion
2
FYI, hanya mereferensikan posting blog yang telah meningkatkan versi ke Quicktime Applescript di atas: netjunki.org/blog/…
David
1
Blog @ David menyebutkan masih tersedia di cache Google, dan mencatat: "Sepertinya ketika Anda mencoba dan memanggil save dalam 10.7, cepat saja mengabaikan panggilan. Atau sesuatu seperti itu. Script akan menggantung di sana selamanya dan kemudian waktu habis." Ini berlaku bagi saya dalam 10,8 ...
ptim
2

Saya menggunakan SOX dan VLC untuk capture, crontab untuk penjadwalan, XLD untuk membuat m4a dan MP4Box untuk multiplexing. Ini cukup fleksibel, tetapi membutuhkan pengetahuan tentang skrip Bash (mungkin juga skrip Apple) Saya menemukan inspirasi saya dalam skrip mkmp4 Diego Massanti.

proses inti untuk diluncurkan:

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

Penjadwalan rekaman:

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

Anda dapat mengetahui apa yang dilakukan skrip: rekam tangkapan 3 jam, suara mono, setiap hari kerja pukul 8 pagi


Saya tidak menemukan atau mengkompilasi SOX diaktifkan untuk stream audio MPEG, karenanya menggunakan FLAC untuk menghemat ruang; Saya menggunakan XLD untuk mengubahnya menjadi AAC-HE 16kbps, yang cukup untuk suara.

Langkah selanjutnya: multiplex audio dan video untuk membuat mp4. Jika Anda tidak keberatan menggunakan GUI, MPEG StreamClip (atau QuickTime) juga berfungsi dengan baik.

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

Saya menggunakan ini setiap hari untuk membuat arsip GoToWebinar, tetapi ketika rilis FFmpeg berikutnya mendukung codec G2M4, saya tidak akan repot lagi. Ya, ada juga OSAscript untuk meluncurkan webinar yang juga diharuskan menghapus flag com.apple.quarantine untuk menonaktifkan peringatan (Apakah Anda yakin ingin membukanya?).

tautan:

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

rhoracio
sumber
Ini mungkin terkait juga untuk VLC, ada sindiran kecil tentang cara menggunakannya dalam posting blog ini: netjunki.org/blog/…
David
1

Anda dapat menggunakan ffmpeg perangkat lunak. Untuk menginstalnya di Mac, ikuti instruksi di sini . Kemudian gunakan perintah:

$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
sumber
1
Saya ragu itu akan bekerja pada OSX, alsa dan x11grab kemungkinan hanya tersedia di linux dari ffmpeg.
Adam MW
0

Untuk menangkap layar, ada beberapa alat Open Source. Anda harus mencari "tangkapan layar" menggunakan manajer paket di Linux. Alat-alat suka scrotbisa disebut dalam skrip. Jika Anda ingin melakukannya secara terprogram, ada titik masuk yang diperlukan di Imlib2.

Menangkap suara benar-benar merekam untuk perangkat suara mikrofon. Ini sebenarnya bukan snapshot dan Anda harus mengatur berapa lama perekaman harus dilakukan. Setiap perekam suara akan melakukannya.

Ada juga alat yang membuat video dari desktop Anda.

Kriss
sumber
0

Membuang isi perangkat framebuffer Linux ke file mungkin mirip dengan yang Anda cari. Di bawah ini, saya telah mengutip bagian yang relevan dari Tutorial Pemrograman Perangkat Framebuffer Linux 2.2 , lihat. Anda perlu mengkonfigurasi sistem Anda untuk mengaktifkan perangkat framebuffer (periksa apakah Anda memiliki / dev / fb0 di sistem Anda), saya tidak memilikinya di Ubuntu 9.04 saya.

Ketika Anda sudah mendapatkan mode teks beresolusi tinggi, maka Anda dapat mulai bereksperimen. Anda akan memiliki perangkat / dev / fb0 yang dapat Anda lihat seperti file normal lainnya. Untuk mengambil tangkapan layar, yang harus Anda lakukan adalah

cat / dev / fb0> ~ / sshot

Dan Anda akan memiliki file yang cukup besar dengan isi memori kartu grafis Anda di dalamnya. Sekarang, jika Anda menghapus layar, dan ketik

cat ~ / sshot> / dev / fb0

Anda harus memiliki tampilan yang persis seperti sebelumnya. Tentu saja, setelah Anda mulai mengetik, tampilan akan kembali normal.

sauparna
sumber
0

Anda dapat menggunakan impor dari ImageMagick, tetapi hanya Linux. Kemudian Anda bisa pergi ke terminal dan menjalankan:

import screenshot.png
karlphillip
sumber
0

Saya juga menjalankan Snow Leopard pada macbook yang sudah tua dan karena saya mencoba mempelajari Objective C, saya meluangkan waktu untuk membuat alat yang dapat menangkap jendela tertentu.

https://github.com/vorgos/QuickGrab

Ini adalah alat baris perintah yang akan menangkap jendela paling aktif paling atas atau jendela yang Anda tentukan.

Harapan itu membantu.

Bung bernama Ben
sumber