summaryrefslogtreecommitdiff
path: root/ges-launch.md
blob: ffea5ea0c3024a7e637fe578753852b9b1818be9 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
---
short-description: The GStreamer Editing Services prototyping tool
...

# ges-launch-1.0

**ges-launch-1.0** creates a multimedia [timeline](https://phabricator.freedesktop.org/w/gstreamer/gst-editing-services/ges-timeline/) and plays it back, or renders it to the specified format.

It can load a timeline from an existing project, or create one from the specified commands.

Updating an existing project can be done through thanks to the [GstValidate](http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-validate/html/) [scenarios](http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-validate/html/scenarios.html) using the `--set-scenario` argument, if ges-launch-1.0 has been compiled with GstValidate.

You can inspect action types with:

    ges-launch-1.0 --inspect-action-type

By default, ges-launch-1.0 is in "playback-mode".

## Synopsis

  ges-launch-1.0'  [-l <path>|--load=<path>] [-s <path>|--save=<path>]
      [-p <path>|--sample-path=<path>] [-r <path>|--sample-path-recurse=<path>]
      [-o <uri>|--outputuri=<uri>] [-f <profile>|--format=<profile>]
      [-e <profile-name>|--encoding-profile=<profile-name>]
      [-t <track-types>|--track-types=<track-types>]
      [-v <videosink>|--videosink=<videosink>]
      [-a <audiosink>---audiosink=<audiosink>]
      [-m|--mute] [--inspect-action-type[=<action-type>]]
      [--list-transitions] [--disable-mixing]
      [-r <times>|--repeat=<times>] [--set-scenario=<scenario-name]

## Define a timeline through the command line

The ges-launch-1.0 tool allows you to simply build a timeline through a dedicated set of commands:

### +clip

Adds a clip to the timeline.

See documentation for the --track-types option to ges-launch-1.0, as it
will affect the result of this command.

#### Examples:

    ges-launch-1.0 +clip /path/to/media

This will simply play the sample from its beginning to its end.

    ges-launch-1.0 +clip /path/to/media inpoint=4.0

Assuming "media" is a 10 second long media sample, this will play the sample from the 4th second to the 10th, resulting in a 6-seconds long playback.

    ges-launch-1.0 +clip /path/to/media inpoint=4.0 duration=2.0 start=4.0

Assuming "media" is an audio video sample longer than 6 seconds, this will play a black frame and silence for 4 seconds, then the sample from its 4th second to its sixth second, resulting in a 6-seconds long playback.

    ges-launch-1.0 --track-types=audio +clip /path/to/media

Assuming "media" is an audio video sample, this will only play the audio of the sample in its entirety.

    ges-launch-1.0 +clip /path/to/media1 layer=1 set-alpha 0.9 +clip /path/to/media2 layer=0

Assume media1 and media2 both contain audio and video and last for 10 seconds.

This will first add media1 in a new layer of "priority" 1, thus implicitly creating a layer of "priority" 0, the start of the clip will be 0 as no clip had been added in that layer before.

It will then add media2 in the layer of "priority" 0 which was created previously, the start of this new clip will also be 0 as no clip has been added in this layer before.

Both clips will thus overlap on two layers for 10 seconds.

The "alpha" property of the second clip will finally be set to a value of 0.9.

All this will result in a 10 seconds playback, where media2 is barely visible through media1, which is nearly opaque. If alpha was set to 0.5, both clips would be equally visible, and if it was set to 0.0, media1 would be invisible and media2 completely opaque.

#### Mandatory arguments

__path|uri:__
```
Specifies the location of the sample to make a clip from.
```

#### Options

__inpoint[i]=<inpoint>:__
```
Sets the inpoint of the clip, that is the
position in the original sample at which the clip will start outputting
data.

It is an error to have an inpoint superior to the actual duration of the original sample.

0 by default.
```

__duration[i]=<duration>:__
```
Sets the duration of the clip, that is the
duration of the media the clip will output.

It is an error to have inpoint + duration be superior to the duration of the
original sample.

The default is the duration of the original sample - the inpoint of the clip.
```

__start[s]=<start>:__

```
Sets the start of the clip, that is its position in
the timeline.

If not specified, it will be set to the duration of the layer the clip is added on,
as the expected default behaviour is to queue clips one after another.
```

__layer[l]=<layer>:__
```
Sets the layer of the clip. The video stream in
overlapping clips on different layers will be blended together according
to their alpha property, starting with the clip on the last layer. An
example is shown in the EXAMPLES section.

If not specified, it will be set to the last layer a clip has been added on, or
a first layer if no clip has been added yet.
```

#### Properties

##### Video properties

These have no effects if there is no video stream in the sample.

__alpha:__
```
This is the amount of transparency of the clip, ranging from 0.0
to 1.0 Clips overlapping on different layers will be composited
together, unless --disable-mixing has been specified, in the order of
the layers.
```

__posx:__
```
This is the x position (offset) of the clip in pixels, relatively
to the output frame of the timeline.
```

__posy:__
```
This is the y position (offset) of the clip in pixels, relatively
to the output frame of the timeline.
```

__width:__
```
This is the width in pixels that the clip will occupy in the
final output frame.
```

__height:__
```
This is the height in pixels that the clip will occupy in the final output frame.
```

##### Audio properties

__volume:__
```
This is the volume that will be set on the audio part of the
clip, ranging from 0.0 to 10.0, with 1.0 being the default.
```

__mute:__
```
Set to true to mute the audio of the clip. Default is false.
```

### +effect

#### Mandatory arguments

__bin-description:__

```
Specifies the description of a GStreamer a bin, in the gst-launch format.
```

#### Options

Properties can be set on the effect either directly in the bin-description, or separately through the set-<property-name> command, which will lookup any readable property in any of the children of the bin, and set the provided value on it.

#### Examples

    ges-launch-1.0 +clip /path/to/media +effect "agingtv"

This will apply the agingtv effect to "media" and play it back.

### set-<property-name>

Sets the property of an object (for example a clip or an effect). Trying to set a property than can't be looked up is considered an error.

By default, set-<property-name> will lookup the property on the last added object.

#### Examples

    ges-launch-1.0 +clip /path/to/media set-alpha 0.3

This will set the alpha property on "media" then play it back, assuming "media"
contains a video stream.

    ges-launch-1.0 +clip /path/to/media +effect "agingtv" set-dusts false

This will set the "dusts" property of the agingtv to false and play the
timeline back.

## Options

### Project-related options

__--load[-l]=<path>:__
```
Load project from file. The project be saved again with the --save option.
```

__-s --save=<path>:__
```
Save project to file before rendering. It can then be loaded with the --load option
```

__-p --sample-path:__
```
If some assets are missing when loading a project file, ges-launch-1.0 will try to
locate them in this path. It is especially useful when sharing a project.
```

__-r --sample-path-recurse:__
```
Identical to --sample-path, but ges-launch-1.0 will also recurse in the subfolders
to look for assets.
```

### Rendering options

__-o --outputuri=<uri>:__
```
If set, ges-launch-1.0 will render the specified timeline instead
of playing it back. The default rendering format is ogv, containing
theora and vorbis.
```

__-f --format=<profile>:__
```
Set an encoding profile on the command line. See ges-launch-1.0 help profile
for more information.
This will have no effect if no outputuri has been specified.
```
	
__-e --encoding-profile=<profile-name>:__
```
Set an encoding profile from a preset file. See ges-launch-1.0 help profile
for more information.
This will have no effect if no outputuri has been specified.
```

__-t --track-types=<track-types>:__
```
Specify the track types to be created. When loading a project, only relevant
tracks will be added to the timeline.
```

### Playback options

__-v --videosink=<videosink>:__
```
Set the videosink used for playback.
```

__-a --audiosink=<audiosink>:__
```
Set the audiosink used for playback.
```

_	_-m --mute:__
```
Mute playback output. This has no effect when rendering.
```

### Helpful options

__--inspect-action-type=<action-type>:__
```
Inspect the available action types that can be defined in a scenario set with --set-scenario.
Will list all action-types if action-type is empty.
```

__--list-transitions:__
```
List all valid transition types and exit. See ges-launch-1.0 help transition
for more information.
```

### Generic options

__--disable-mixing:__
```
Do not use mixing elements to mix layers together.
```

__-r --repeat=<times>:__
```
Set the number of times to repeat the timeline.
```

__--set-scenario:__
```
ges-launch-1.0 exposes gst-validate functionalities, such as scenarios.
Scenarios describe actions to execute, such as seeks or setting of properties.
GES implements editing-specific actions such as adding or removal of clips.
```