Saya telah melihat gambar animasi GIF dari screen cast (seperti yang di bawah ini) dipromosikan beberapa kali di situs ini sebagai cara untuk meningkatkan jawaban.
Toolchain apa yang digunakan untuk membuat ini? Apakah ada program yang melakukan ini secara otomatis, atau apakah orang mengambil screencast, mengubahnya menjadi serangkaian bingkai statis, dan kemudian membuat gambar GIF?
screencast
andrewsomething
sumber
sumber
Jawaban:
Mengintip
Adalah aplikasi baru yang memungkinkan Anda merekam GIF dengan mudah dari layar Anda.
Bagaimanapun, perlu diingat bahwa GIF's memiliki palet warna yang sangat terbatas sehingga bukan ide yang baik untuk menggunakannya.
Sejak Ubuntu 18.10 Anda dapat menginstal Peek secara langsung.
Untuk versi Ubuntu yang lebih lama, Anda dapat menginstal Peek versi terbaru dari PPA -nya .
Temukan informasi lebih lanjut di repo GitHub .
sumber
Byzanz
Perangkat lunak terbaik yang saya temukan untuk merekam screencasts GIF adalah Byzanz.
Byzanz sangat bagus karena merekam langsung ke GIF, kualitas dan FPS sangat mengesankan dengan tetap menjaga ukuran file menjadi minimal.
Instalasi
Byzanz sekarang tersedia dari repositori semesta:
Pemakaian
Ketika diinstal, Anda dapat menjalankannya di terminal.
Ini adalah contoh kecil yang saya lakukan tadi
sumber
xwininfo
untuk mendapatkan properti jendela.Pertama instal ini:
itu adalah hal-hal yang diperlukan, ImageMagick, MPlayer dan Desktop Recorder. Kemudian gunakan Desktop Recorder untuk mengambil sebagian layar / aplikasi yang akan digunakan sebagai screencast. Setelah Perekam Desktop menyimpan rekaman ke dalam video OGV , MPlayer akan digunakan untuk mengambil screenshot JPEG, menyimpannya ke direktori 'output'.
Di terminal:
Gunakan ImageMagick untuk mengonversi tangkapan layar menjadi gif animasi.
Anda dapat mengoptimalkan tangkapan layar dengan cara ini:
sumber
gifsicle -O in.gif -o out.gif
Saya baru saja mencoba dan mendapatkan pengurangan ukuran file 100x.convert
langkah menjadi satu:convert output/* -layers Optimize output.gif
. Bagi saya, ini mempercepat waktu pemrosesan serta membuat file output lebih kecil. Saya tidak melihat alasan untuk melakukan langkah-langkah itu secara terpisah. (Saya tidak mencoba-fuzz 10%
argumennya.)convert
pernyataan itu membuatnya sangat mengerikan. Menurut dokumen ( imagemagick.org/script/command-line-options.php#layers ),optimize
implementasinya dapat berubah seiring waktu. Tapiconvert
pernyataan yang sedikit berubah dengan-coalesce
bendera memperbaiki keadaan, tetapi masih belum sampai ke tempat itu dapat diterima. Saya akhirnya harus menggunakan-layers optimize-transparency
pengaturan untuk hasil terbaik:convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif
Gambaran
Jawaban ini mengandung tiga skrip shell:
byzanz-record-window
- Untuk memilih jendela untuk merekam.byzanz-record-region
- Untuk memilih bagian layar untuk perekaman.pengantar
Terima kasih Bruno Pereira karena telah memperkenalkan saya kepada
byzanz
! Ini cukup berguna untuk membuat animasi GIF. Dalam beberapa kasus, warnanya mungkin tidak aktif, tetapi ukuran file menebusnya. Contoh: 40 detik, 3,7Mb .Pemakaian
Simpan satu / semua dari dua skrip berikut di dalam folder Anda
$PATH
. Berikut ini contoh menggunakan skrip pertama untuk membuat screencast dari jendela tertentu.byzanz-record-window 30 -c output.gif
$DELAY
), di mana Anda bersiap untuk merekam.beep
fungsi),byzanz
akan dimulai.30
langkah 1),byzanz
berakhir. Bunyi bip akan disiarkan lagi.Saya menyertakan
-c
flagbyzanz-record-window
untuk menggambarkan bahwa argumen apa pun pada skrip shell saya ditambahkan kebyzanz-record
dirinya sendiri. The-c
flag mengatakanbyzanz
juga termasuk kursor di screencast.Lihat
man byzanz-record
ataubyzanz-record --help
untuk lebih jelasnya.byzanz-record-window
byzanz-record-region
Ketergantungan:
xrectsel
dari xrectsel . Klon repositori dan jalankanmake
untuk mendapatkan executable. (Jika protes tidak ada makefile, jalankan./bootstrap
dan./configure
sebelum menjalankan `make).Versi Gui
byzanz-record-window
(komentar oleh MHC ): Saya telah mengambil kebebasan untuk memodifikasi skrip dengan dialog GUI sederhana
sumber
notify-send
juga jika suara saya tidak aktif.ffmpeg
Salah satu alat terbaik yang saya gunakan adalah
ffmpeg
. Itu dapat mengambil sebagian besar video dari alat screencast sepertikazam
dan mengubahnya ke format lain.Instal ini dari pusat perangkat lunak - ini secara otomatis diinstal jika Anda menginstal
ubuntu-restricted-extras
paket yang sangat baik .Kazam dapat menampilkan dalam format video
mp4
atauwebm
. Umumnya Anda mendapatkan hasil yang lebih baik dalammp4
format.contoh GIF membuat sintaks
Sintaks dasar untuk mengonversi video ke gif adalah:
GIF yang dikonversi - terutama yang dengan bingkai 25/29 standar per detik bisa sangat besar. Misalnya - video webk 15-detik 800Kb pada 25fps dapat menghasilkan hingga 435Mb!
Anda dapat mengurangi ini dengan sejumlah metode:
framerate
Gunakan opsi
-r [frame-per-second]
sebagai contoh
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Ukuran berkurang dari 435Mb menjadi 19Mb
batas ukuran file
Gunakan opsi
-fs [filesize]
sebagai contoh
ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Catatan - ini adalah perkiraan ukuran file output sehingga ukurannya bisa sedikit lebih besar dari yang ditentukan.
ukuran video output
Gunakan opsi
-s [widthxheight]
sebagai contoh
ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Ini mengurangi ukuran video contoh 1366x768 ke 26Mb
lingkaran selamanya
Terkadang Anda mungkin ingin GIF berulang selamanya.
Gunakan opsi
-loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
lebih lanjut mengoptimalkan dan menyusut
jika Anda menggunakan
imagemagick
convert
dengan faktor fuzz antara 3% dan 10% maka Anda dapat secara dramatis mengurangi ukuran gambarakhirnya
menggabungkan beberapa opsi ini untuk mengurangi menjadi sesuatu yang dapat dikelola untuk Tanya Ubuntu.
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
diikuti oleh
sumber
demo.mkv
Anda dapat menjalankan perintah ini:docker run --rm -v $(pwd):/tmp/video/ jrottenberg/ffmpeg -i /tmp/video/demo.mkv -framerate 1/2 -pix_fmt rgb24 -loop 0 /tmp/video/demo.gif
,sudo chown $USER:$USER demo.gif
-loop_output
...ubuntu-restricted-extras
bagus ??-loop
. Jadi itu akan terjadi-loop 0
. Ini adalah perintah yang berfungsi di Ubuntu 16.04.01ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif
.+500,500
adalah posisi X, Y untuk memulai persegi panjang 100x100.xgrab
mengambil layar sebagai input.Siar silang
Silentcast adalah alat berbasis gui lain yang bagus untuk membuat gambar animasi .gif. Fitur-fiturnya meliputi:
4 mode perekaman:
Seluruh layar
Di dalam jendela
Jendela dengan dekorasi
Pilihan khusus
3 format output:
.gif
.mp4
.webm
.png
(bingkai).mkv
Tidak perlu instalasi (portabel)
Direktori kerja khusus
Fps khusus
Instalasi
Jika Anda ingin instalasi reguler dan menjalankan versi Ubuntu yang didukung, Anda dapat menginstal Silentcast oleh PPA:
Jika Anda tidak menjalankan versi Ubuntu yang didukung (Anda harus benar-benar memutakhirkan!), Anda harus mengunduh versi terbaru dari halaman GitHub dan secara manual memenuhi dependensinya (Anda dapat membeli yad dan ffmpeg dari sini dan di sini masing-masing) atau, jika Anda menjalankan versi yang sedikit lebih baru seperti 13.10 Anda dapat mencoba mengunduh deb secara langsung .
Jika Anda menggunakan Gnome, Anda mungkin ingin menginstal ekstensi Topicons untuk membuat menghentikan Silentcast lebih mudah.
Pemakaian
Mulai Silentcast dari gui lingkungan desktop Anda atau jalankan
silentcast
perintah di terminal. Pilih pengaturan Anda dan ikuti petunjuk di layar. Setelah selesai merekam, Anda akan disajikan dialog untuk mengoptimalkan hasil akhir dengan menghapus sejumlah bingkai.Untuk panduan penggunaan lebih mendalam, lihat README, baik versi GitHub online atau versi lokal yang disimpan
/usr/share/doc/silentcast
dengan zless atau editor favorit Anda.Catatan:
Silentcast masih dalam tahap pengembangan dan meskipun cukup stabil Anda mungkin menemukan beberapa bug. Jika Anda melakukannya, silakan laporkan pada pelacak masalah GitHub proyek . Jika Anda kesulitan menginstal dari PPA dan menjalankan versi Ubuntu yang didukung tinggalkan komentar di bawah ini atau hubungi pengelola (saya) di Launchpad.
sumber
Ada segala macam cara yang rumit dan bekerja dengan baik (mungkin) untuk melakukan hal ini tercantum di sini. Namun, saya tidak pernah ingin melalui proses itu sebelum atau sejak itu. Jadi, saya cukup menggunakan konverter online yang sesuai dengan kebutuhan saya beberapa kali saya perlu melakukannya. Saya telah menggunakan situs ini:
http://ezgif.com/video-to-gif
Ini bukan situs saya dan saya tidak berafiliasi dengan mereka. Hanya ada satu di bookmark saya dan ada banyak lagi.
sumber
Saya buat
record-gif.sh
, versi perbaikan dari Rob Wbyzanz-record-region
:duration
;save_as
tujuan;$HOME/record.again
.).Pasang
Saya juga membuat skrip instalasi
sumber
sudo apt install autoconf byzanz
sebelum menjalankan skrip ini. itu tidak diinstal secara default di ubuntuautoconf
danbyzanz
. Bisakah kamu mencobanya?imagemagick
mplayer
gtk-recordmydesktop
ogv2gif.sh
dari https://github.com/nicolas-raoul/ogv2gif./ogv2gif.sh yourscreencast.ogv
100% terinspirasi dari jawaban maniat1k .
sumber
Jika Anda ingin menjadi lebih keren, Anda dapat menggunakan metode yang lebih canggih daripada animasi gif menggunakan HTMl5 canvas screencasting. Proyek x11-canvas-screencast akan membuat tangkapan layar animasi kanvas html5.
Anda mungkin telah melihat beberapa contoh terkenal dari teknologi ini di situs web Sublime Text.
x11-canvas-screencast
mengambil metode ini selangkah lebih maju dengan memasukkan pelacakan kursor mouse. Inilah demo dari apa yang dihasilkan x11-canvas-screencastHasilnya lebih baik daripada gif animasi karena tidak terbatas pada jumlah warna yang dimilikinya dan membutuhkan bandwidth yang lebih sedikit.
sumber
Ok, jadi untuk juga menangkap klik mouse, satu-satunya yang saya temukan adalah
key-mon
(melalui README dariscreenkey
):https://code.google.com/archive/p/key-monhttps://github.com/critiqjo/key-monsudo apt-get install key-mon
Maka saya:
key-mon
xrectsel
untuk membuat koordinat layar dimasukkan ke dalambyzanz
perintahbyzanz
perintah... dan terlihat seperti ini:
Catatan yang
key-mon --visible_click
akan menggambar lingkaran di sekitar penunjuk mouse pada klik mouse - yang saya lebih suka, tetapi di Ubuntu 14.04.5 LTS ini agak rusak, karena lingkaran ini tidak muncul dan menghilang cukup cepat untuk menggambarkan klik dengan benar (yaitu menekan dan melepaskan mouse).sumber
Saya baru-baru ini membuat versi gabungan dari skrip yang sudah diposting di sini.
Pada dasarnya, ini memungkinkan Anda untuk merekam wilayah layar, tetapi dengan GUI sederhana.
Terima kasih untuk Rob W karena menyediakan skrip keren itu
Berikut kodenya (atau intinya jika Anda mau):
sumber
Jika Anda juga ingin rekaman yang terlihat dari klik mouse atau pukulan tombol, maka screenkey adalah taruhan terbaik Anda: https://github.com/wavexx/screenkey
sumber
screenkey
menangani klik mouse (sepertinya hanya untuk indikasi keyboard), namun README-nya merujuk padakey-mon
yang dapat melakukan itu, lihat jawaban saya di bawah ini.Gunakan
gtk-recordmydesktop
danffmpeg
:apt-get install gtk-recordmydesktop ffmpeg
Jalankan RecordMyDesktop menangkap sebagian layar / aplikasi untuk digunakan sebagai screencast:
Buat
ogv2gif.sh
dengan konten berikut:Gunakan :
Referensi :
sumber
Saya menguji semua metode di atas, menemukan yang paling sederhana adalah:
fps asli, dan ukuran gif kurang dari file ogv.
sumber