aboutsummaryrefslogtreecommitdiffstats
path: root/Readme.md
blob: 9ac951cf6426f5d4cda5fb42add3119a810c073c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
make-gif
========

despite the recent rise of libvpx, there's still something magical about the
humble animated gif and it's status as not-quite-video-or-image. however, given
the limitations of the file format, creating gifs which can hold their own
against these modern video formats is not easy.

this script aims to provide a featureful frontend to
[ffmpeg](https://ffmpeg.org/) which makes creating high-quality gifs from video
files as painless as possible, with support for things like embedding
subtitles, various dithering algorithms, cropping, and post-optimisation (via
[gifsicle](https://www.lcdf.org/gifsicle/))

just clone and run `make-gif --help` to get started!

examples
========

some example usages and their outputs:

`make-gif -o -s 36:18 -l 3 菊次郎の夏.mkv out.gif`

![default](examples/default.gif)

`make-gif -or -s 36:18 -l 3 -c 64 -d bayer2 菊次郎の夏.mkv out.gif`

![c-64_d-bayer2_r](examples/c-64_d-bayer2_r.gif)

`make-gif -o -s 36:18 -l 3 -c 8 -d bayer5 -f 15 -w 320 菊次郎の夏.mkv out.gif`

![c-8_d-bayer5_f-15](examples/c-8_d-bayer5_f-15_w-320.gif)

`make-gif -o -b -s 16:21 -l 3.5 'Christiane F.mkv' out.gif`

![subtitles](examples/subtitles.gif)

dependencies
============

in addition to being run via zsh, make-gif makes use of the following external
commands:

* **required**: `ffmpeg`, `ffprobe`, `grep`
* **optional**: `gifsicle`