Widziałem animowane obrazy GIF rzutowań ekranów (jak ten poniżej) promowane kilka razy na tej stronie jako sposób na poprawę odpowiedzi.
Jakiego zestawu narzędzi używa się do ich tworzenia? Czy istnieje program, który robi to automatycznie, czy też ludzie biorą screencasty, przekształcają je w szereg statycznych ramek, a następnie tworzą obrazy GIF?
screencast
andrews coś
źródło
źródło
Odpowiedzi:
Zerkać
To nowa aplikacja, która pozwala łatwo nagrywać pliki GIF z ekranu.
W każdym razie pamiętaj, że pliki GIF mają bardzo ograniczoną paletę kolorów, więc ich użycie nie jest dobrym pomysłem.
Od wersji Ubuntu 18.10 możesz bezpośrednio zainstalować Peek.
W przypadku starszych wersji Ubuntu możesz zainstalować najnowsze wersje Peek z PPA .
Znajdź więcej informacji w repozytorium GitHub .
źródło
Byzanz
Najlepsze oprogramowanie, jakie kiedykolwiek znalazłem do nagrywania screencastów GIF to Byzanz.
Byzanz jest świetny, ponieważ nagrywa bezpośrednio do formatu GIF, jakość i liczba klatek na sekundę jest imponująca, przy zachowaniu minimalnego rozmiaru plików.
Instalacja
Byzanz jest teraz dostępny z repozytorium wszechświata:
Stosowanie
Po zainstalowaniu możesz uruchomić go w terminalu.
To jest mały przykład, z którym właśnie to zrobiłem
źródło
xwininfo
aby uzyskać właściwości okna.Najpierw zainstaluj to:
są to wymagane rzeczy, ImageMagick, MPlayer i Desktop Recorder. Następnie użyj Desktop Recorder, aby przechwycić część ekranu / aplikacji, która będzie używana jako screencast. Po zapisaniu nagrania przez Desktop Recorder w wideo OGV , MPlayer będzie używany do przechwytywania zrzutów ekranu JPEG, zapisując je w katalogu „wyjściowym”.
Na terminalu:
Użyj ImageMagick, aby przekonwertować zrzuty ekranu na animowane gify.
możesz zoptymalizować zrzuty ekranu w ten sposób:
źródło
gifsicle -O in.gif -o out.gif
Właśnie próbowałem i uzyskałem 100- krotną redukcję rozmiaru pliku.convert
kroków do jednego:convert output/* -layers Optimize output.gif
. Dla mnie przyspieszyło to czas przetwarzania, a także zmniejszyło plik wyjściowy. Nie widzę powodu, aby robić te kroki osobno. (Nie próbowałem-fuzz 10%
argumentu.)convert
oświadczenie sprawiło, że stało się ono ohydne. Zgodnie z dokumentacją ( imagemagick.org/script/command-line-options.php#layers )optimize
implementacja może z czasem ulec zmianie. Ale nieco poprawioneconvert
oświadczenie z-coalesce
flagą poprawiło sytuację, ale nadal nie do tego, gdzie było to do przyjęcia. Skończyło się na tym, że musiałem użyć tego-layers optimize-transparency
ustawienia, aby uzyskać najlepsze wyniki:convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif
Przegląd
Ta odpowiedź zawiera trzy skrypty powłoki:
byzanz-record-window
- Aby wybrać okno do nagrywania.byzanz-record-region
- Aby wybrać część ekranu do nagrywania.Wprowadzenie
Dzięki Bruno Pereira za przedstawienie mnie
byzanz
! Jest to bardzo przydatne do tworzenia animacji GIF. W niektórych przypadkach kolory mogą być wyłączone, ale nadrabia to rozmiar pliku. Przykład: 40 sekund, 3,7 Mb .Stosowanie
Zapisz jeden / wszystkie poniższe dwa skrypty w folderze w swoim
$PATH
. Oto przykład użycia pierwszego skryptu do wykonania screencastu z określonego okna.byzanz-record-window 30 -c output.gif
$DELAY
), w których przygotowujesz się do nagrywania.beep
funkcji)byzanz
uruchomi się.30
krok 1)byzanz
kończy się. Sygnał dźwiękowy zostanie ponownie nadany.Włączyłem
-c
flagę,byzanz-record-window
aby zilustrować, że wszelkie argumenty do mojego skryptu powłoki są dołączane dobyzanz-record
siebie.-c
Flaga mówibyzanz
się także kursor w screencast.Zobacz
man byzanz-record
lubbyzanz-record --help
po więcej szczegółów.byzanz-record-window
byzanz-record-region
Zależność:
xrectsel
od xrectsel . Sklonuj repozytorium i uruchom,make
aby uzyskać plik wykonywalny. (Jeśli protestuje, nie ma pliku makefile, uruchom./bootstrap
i./configure
przed uruchomieniem `make).Wersja GUI
byzanz-record-window
(komentarz MHC ): Pozwoliłem sobie na modyfikację skryptu za pomocą prostego dialogu GUI
źródło
notify-send
na wypadek, gdyby mój dźwięk był wyłączony.ffmpeg
Jednym z najlepszych narzędzi, których używam, jest
ffmpeg
. Może pobierać większość wideo z narzędzia do screencastu, takiego jakkazam
i konwertować je do innego formatu.Zainstaluj to z centrum oprogramowania - jest instalowane automatycznie, jeśli zainstalujesz doskonały
ubuntu-restricted-extras
pakiet.Kazam może wyświetlać w formatach wideo
mp4
lubwebm
. Zasadniczo uzyskuje się lepsze wyniki wmp4
formacie.przykładowa składnia tworzenia GIF-ów
Podstawowa składnia do konwersji wideo na gif to:
Pliki GIF przekonwertowane - szczególnie te ze standardową prędkością 25/29 klatek na sekundę mogą być bardzo duże. Na przykład - 15-sekundowe wideo 800 kb webm z prędkością 25 klatek na sekundę może przesyłać do 435 Mb!
Możesz to zmniejszyć na kilka sposobów:
częstotliwość wyświetlania klatek
Użyj opcji
-r [frame-per-second]
na przykład
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Rozmiar zmniejszony z 435 Mb do 19 Mb
limit rozmiaru pliku
Użyj opcji
-fs [filesize]
na przykład
ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Uwaga - jest to przybliżony rozmiar pliku wyjściowego, więc rozmiar może być nieco większy niż określony.
rozmiar wyjściowego wideo
Użyj opcji
-s [widthxheight]
na przykład
ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Spowodowało to zmniejszenie przykładowego rozmiaru filmu 1366 x 768 do 26 Mb
pętla na zawsze
Czasami możesz chcieć, aby GIF zapętlał się na zawsze.
Użyj opcji
-loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
dalej optymalizuj i zmniejszaj
jeśli używasz
imagemagick
convert
współczynnika rozmycia między 3% a 10%, możesz radykalnie zmniejszyć rozmiar obrazuWreszcie
połącz niektóre z tych opcji, aby zredukować do czegoś, co można zarządzać w Ask Ubuntu.
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
śledzony przez
źródło
demo.mkv
można uruchomić tego polecenia: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
jest doskonałe?-loop
. Tak by było-loop 0
. Oto działające polecenie w Ubuntu 16.04.01ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif
.+500,500
jest pozycją X, Y, aby rozpocząć prostokąt 100 x 100.xgrab
przyjmuje ekran jako dane wejściowe.Silentcast
Silentcast to kolejne świetne narzędzie do tworzenia animowanych obrazów .gif w oparciu o GUI. Jego funkcje obejmują:
4 tryby nagrywania:
Cały ekran
Okno wewnętrzne
Okno z dekoracją
Wybór niestandardowy
3 formaty wyjściowe:
.gif
.mp4
.webm
.png
(ramki).mkv
Nie wymaga instalacji (przenośny)
Niestandardowy katalog roboczy
Niestandardowe fps
Instalacja
Jeśli chcesz regularnej instalacji i używasz obsługiwanej wersji Ubuntu, możesz zainstalować Silentcast przez PPA:
Jeśli nie korzystasz z obsługiwanej wersji Ubuntu (powinieneś naprawdę zaktualizować!), Musisz pobrać najnowszą wersję ze strony GitHub i ręcznie spełnić zależności (możesz uzyskać yad i ffmpeg odpowiednio tutaj i tutaj ) lub, jeśli używasz nieco nowszej wersji, takiej jak 13.10, możesz spróbować pobrać bezpośrednio .deb .
Jeśli używasz Gnome, możesz chcieć zainstalować rozszerzenie Topicons, aby ułatwić zatrzymywanie Silentcast.
Stosowanie
Uruchom Silentcast z GUI środowiska pulpitu lub uruchom
silentcast
polecenie w terminalu. Wybierz ustawienia i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Po zakończeniu nagrywania zostanie wyświetlone okno dialogowe służące do optymalizacji końcowego wyniku przez usunięcie określonej liczby ramek.Aby uzyskać bardziej szczegółowe wskazówki dotyczące użytkowania, zapoznaj się z plikiem README, wersją GitHub online lub wersją lokalną zapisaną w programie
/usr/share/doc/silentcast
Zless lub ulubionym edytorze.Uwagi:
Silentcast jest wciąż w fazie rozwoju i chociaż jest dość stabilny, możesz napotkać pewne błędy. Jeśli to zrobisz, zgłoś je na narzędziu do śledzenia problemów GitHub w projekcie . Jeśli masz problemy z instalacją z PPA i korzystasz z obsługiwanej wersji Ubuntu, zostaw komentarz poniżej lub skontaktuj się z opiekunem (mną) na Launchpad.
źródło
Istnieje wiele rodzajów skomplikowanych i dobrze działających (przypuszczalnie) sposobów na zrobienie tego wymienionych tutaj. Jednak nigdy nie chciałem przejść przez ten proces wcześniej ani później. Po prostu używam konwertera online, który odpowiada moim potrzebom kilka razy, gdy muszę to zrobić. Korzystałem z tej strony:
http://ezgif.com/video-to-gif
To nie jest moja strona i nie jestem z nią w żaden sposób powiązany. To tylko jedna z moich zakładek i jest ich o wiele więcej.
źródło
Stworzyłem
record-gif.sh
ulepszoną wersję Roba Wbyzanz-record-region
:duration
;save_as
cel;$HOME/record.again
.).zainstalować
Stworzyłem również skrypt instalacyjny
źródło
sudo apt install autoconf byzanz
przed uruchomieniem tego skryptu. nie jest domyślnie instalowany w Ubuntuautoconf
ibyzanz
. Mógłbyś spróbowaćimagemagick
mplayer
gtk-recordmydesktop
ogv2gif.sh
z https://github.com/nicolas-raoul/ogv2gif./ogv2gif.sh yourscreencast.ogv
100% inspiracji odpowiedzią maniat1k .
źródło
Jeśli chcesz stać się jeszcze bardziej wyrafinowany, możesz użyć bardziej wyrafinowanej metody niż animowane gify z płótnem do ekranów HTMl5. Projekt x11-canvas-screencast utworzy animowane zrzuty ekranu HTML5 Canvas.
Być może widziałeś słynne przykłady tej technologii na stronie Sublime Text.
x11-canvas-screencast
posuwa tę metodę o krok dalej, włączając śledzenie kursora myszy. Oto demonstracja tego, co produkuje x11-canvas-screencastRezultat jest lepszy niż animowany gif, ponieważ nie jest ograniczony do liczby kolorów i zajmuje mniej przepustowości.
źródło
Ok, więc aby przechwytywać kliknięcia myszą, jedyne, co znalazłem, to
key-mon
(poprzez READMEscreenkey
):https://code.google.com/archive/p/key-monhttps://github.com/critiqjo/key-monsudo apt-get install key-mon
Potem ja:
key-mon
xrectsel
aby wstawić współrzędne ekranu dobyzanz
poleceniabyzanz
polecenie... i wygląda to tak:
Zauważ, że
key-mon --visible_click
po kliknięciu myszką rysuje okrąg wokół wskaźnika myszy - co wolałbym, ale w Ubuntu 14.04.5 LTS jest to nieco zepsute, ponieważ koło to nie pojawia się i znika wystarczająco szybko, aby poprawnie zilustrować kliknięcia (tj. naciska i zwalnia myszy).źródło
Niedawno stworzyłem połączoną wersję skryptów już tutaj opublikowanych.
Zasadniczo pozwala nagrywać region ekranu, ale z prostym GUI.
Dzięki za Rob W za udostępnienie tych fajnych skryptów
Oto kod (lub gist, jeśli chcesz):
źródło
Jeśli chcesz także widzieć nagrania kliknięć myszką lub naciśnięć klawiszy, najlepszym wyborem jest screenkey: https://github.com/wavexx/screenkey
źródło
screenkey
poradziłby sobie z kliknięciami myszy (wydaje się, że jest to tylko wskazanie klawiatury), jednak jego README odnosi się do tego,key-mon
co może to zrobić, zobacz moją odpowiedź poniżej.Użyj
gtk-recordmydesktop
iffmpeg
:apt-get install gtk-recordmydesktop ffmpeg
Uruchom RecordMyDesktop przechwytuj część ekranu / aplikacji, aby użyć jej jako screencast:
Utwórz
ogv2gif.sh
z następującą zawartością:Użyj tego :
Bibliografia :
źródło
Testuję wszystkie powyższe metody, okazało się, że najprostszym z nich jest:
fps jest oryginalny, a rozmiar gif jest mniejszy niż plik ogv.
źródło