index.md - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
index.md (7196B) | |
--- | |
1  | |
2 | |
3 blind is a collection of command line video editing utilities. | |
4 | |
5 Video format | |
6 ------------ | |
7 blind uses a raw video format with a simple container. A file begins wit… | |
8 plain-text line, containing the number of frames, the width, the height,… | |
9 the pixel format, all separated by a single regular blank space, without… | |
10 leading or tailing white space. After this line, which ends with an LF, … | |
11 is a NUL-byte followed by the 4 characters “uivf” (unportable, inter… | |
12 video format). This head is followed by the video frame-by-frame with ro… | |
13 frames. Pixels are independently encoded, and are encoded unscaled CIE X… | |
14 non-premultiplied alpha and without any transfer-function, with values s… | |
15 in native `double`s or optionally in native `float`s. These two configur… | |
16 are the only options, but the container format is designed so this can be | |
17 changed arbitrarily in the future. | |
18 | |
19 FAQ | |
20 --- | |
21 | |
22 ### Creating videos without graphics, are you insane? | |
23 | |
24 Yes, but see the rationale below! | |
25 | |
26 ### Doesn't raw video takes up a lot of space? | |
27 | |
28 Yes it does, a 4-channel pixel encoded with `double` takes 32 bytes. A | |
29 1280-by-720 frame with this pixel format takes 29.4912 MB (SI), which me… | |
30 can only fit almost 3391 frames in 100 GB, which is about 113 seconds or… | |
31 minutes with a framerate of 30 fps. Therefore, you probably do not want … | |
32 store anything in this format unless you know you have room for it, or i… | |
33 very small segment of your video, which unfortunately becomes a bit of a… | |
34 when reversing a video. However, when possible, feed the resulting video | |
35 directly to `blind-to-video` to convert it into a compressed, lossless v… | |
36 format, if the video is not too large, you can choose to compress it wit… | |
37 instead. | |
38 | |
39 ### For what kind of video editing is blind designed? | |
40 | |
41 It is designed for composing new videos. It is not designed for making s… | |
42 changes as this can probably be done faster with a graphical video edito… | |
43 with ffmpeg which would also be much faster. | |
44 | |
45 ### Does it support farbfeld? | |
46 | |
47 Of course. If you want to use farbfeld, you can use the `-f` flag for | |
48 `blind-to-image` and `blind-from-image`, this will cause the programs to | |
49 convert directly to or from farbfeld without using `convert(1)`. | |
50 | |
51 ### Why doesn't blind uses encode pixels like farbfeld? | |
52 | |
53 blind and farbfeld solve completely different problems. farbfeld solves … | |
54 problem of storing pictures in a simply way that can easily be viewed and | |
55 edited. blind does not try to solve the problem of storing videos, video | |
56 takes a lot of space and need compression designed especially for video … | |
57 three-dimensional raster images. Compressed video cannot be efficiently … | |
58 because compression takes too long. Instead blind solves the problem of | |
59 efficiently processing video: thousands of pictures. Because blind doesn… | |
60 to create a format for storing images, therefore it's format doesn't nee… | |
61 portable. Furthermore, due to legacy in television (namely, that of | |
62 black-and-white television), video formats do not store values in sRGB, … | |
63 rather in Y'UV, so there is next to no benefit to storing colours in sRG… | |
64 | |
65 ### Why doesn't blind use sRGB? | |
66 | |
67 If I tell you I use CIE XYZ, you will only have two questions: “how are | |
68 values stored?” and “is Y scaled to [0, 100] or [0, 1]?” When I te… | |
69 I use sRGB you have more questions: “do you support out-of-gamut colou… | |
70 “how are values stored?”, “which scale do you use?”, and “is t… | |
71 transfer-function applied?” | |
72 | |
73 CIE XYZ also has the advantage of having the brightness encoded in one o… | |
74 parameters, Y, and obtaining the chroma requires only simply conversion … | |
75 non-standardise colour model that with the same Y-value. | |
76 | |
77 ### Why does blind use CIE XYZ instead of CIE L\*a\*b\*? | |
78 | |
79 Because CIE L\*a\*b\* is not linear, meaning that it requires unnecessary | |
80 calculations when working with the colours. | |
81 | |
82 ### Why does blind use CIE XYZ instead of Y'UV or YUV? | |
83 | |
84 Y'UV has good performance for converting to sRGB and is has good subsamp… | |
85 quality, but it is not a good for editing. Y'UV is non-linear, so it has… | |
86 same disadvantages as CIE L\*a\*b\*. Y'UV does not have its transfer-fun… | |
87 applied directly to it's parameters, instead it is a linear transformati… | |
88 the sRGB with its transfer-function applied. This means that no performa… | |
89 gained during conversion to or from cooked video formats by using YUV. C… | |
90 also has the advantage that it is well-known and has a one-step conversi… | |
91 almost all colour models. It also have the advantages that it's paramete… | |
92 named X, Y, Z, which makes it very easy to choose parameter when storing… | |
93 instead of colours in a video. | |
94 | |
95 ### Doesn't blind have any audio support? | |
96 | |
97 No, it is not clear that there is actually a need for this. There are go… | |
98 tools for editing audio, and ffmpeg can be used to extract the audio | |
99 streams from a video or add it to a video. | |
100 | |
101 ### Is it really feasible to edit video without a GUI? | |
102 | |
103 Depends on what you are doing. Many things can be done without a GUI, and | |
104 some thing are easier to do without one. If you find that you need GUI it | |
105 possible to combine blind with a graphical editor. Furthermore, blind co… | |
106 used in by a graphical editor if one were to write a graphical editor to… | |
107 blind. | |
108 | |
109 Rationale | |
110 --------- | |
111 * It's source control friendly and it's easy for a user to resolve merge | |
112 conflicts and identify changes. | |
113 * Rendering can take a very long time. With this approach, the user can … | |
114 Make to only rerender parts that have been changed. | |
115 * It's possible to distribute the rendering to multiple computers, witho… | |
116 built in functionality for this, for example using a distributed Make. | |
117 * Parallelism is added for free. | |
118 * No room for buggy GUIs, which currently is a problem with the large vi… | |
119 editors for Linux. | |
120 * Less chance that the user makes a change by mistake without noticing i… | |
121 as moving a clip in the editor by mistake instead of for example resiz… | |
122 * Even old, crappy computers can be used for large projects. | |
123 * Very easy to utilise command line image editors for modify frames, or … | |
124 your own tools for custom effects. | |
125 | |
126 Development | |
127 ----------- | |
128 You can browse its [source code repository](//git.suckless.org/blind) or… | |
129 copy using git with the following command: | |
130 | |
131 git clone https://git.suckless.org/blind | |
132 | |
133 Download | |
134 -------- | |
135 * [blind-1.0](//dl.suckless.org/tools/blind-1.0.tar.gz) (2017-01-22) | |
136 * [blind-1.1](//dl.suckless.org/tools/blind-1.1.tar.gz) (2017-05-06) | |
137 | |
138 Also make sure to check your package manager. The following distributio… | |
139 provide packages: | |
140 | |
141 * [Alpine Linux](https://pkgs.alpinelinux.org/package/edge/testing/x86_6… | |
142 * [Arch Linux (AUR)](https://aur.archlinux.org/packages/blind/) | |
143 * [Arch Linux (AUR), git version](https://aur.archlinux.org/packages/bli… | |
144 | |
145 Dependencies | |
146 ------------ | |
147 * [ffmpeg](https://www.ffmpeg.org/) - for converting from or to other vi… | |
148 formats. | |
149 * [imagemagick](https://www.imagemagick.org/) - for converting regular i… | |
150 to frames. | |
151 | |
152 Links | |
153 ----- | |
154 * [Video tutorials](https://www.youtube.com/channel/UCg_nJOURt3guLtp4dQL… | |
155 | |
156 | |
157 Author | |
158 ------ | |
159 * Mattias Andrée ([email protected]) |