Jednym z najlepszych narzędzi, których używam, jest ffmpeg
. Może pobierać większość wideo z narzędzia do screencastu, takiego jak kazam
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
lub webm
. Zasadniczo uzyskuje się lepsze wyniki w mp4
formacie.
przykładowa składnia tworzenia GIF-ów
Podstawowa składnia do konwersji wideo na gif to:
ffmpeg -i [inputvideo_filename] -pix_fmt rgb24 [output.gif]
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 obrazu
convert output.gif -fuzz 3% -layers Optimize finalgif.gif
Wreszcie
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
convert output.gif -fuzz 8% -layers Optimize finalgif.gif
przykład