forked from G-Corp/vice
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoverview.edoc
More file actions
318 lines (220 loc) · 12.3 KB
/
Copy pathoverview.edoc
File metadata and controls
318 lines (220 loc) · 12.3 KB
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
@author Gregoire Lejeune <gregoire.lejeune@gmail.com>
@copyright 2014-2016 Grégoire Lejeune, 2016 Botsunit
@version 0.0.1
@title VICE - Video and Image Converter for Erlang/Elixir
@doc
<h3>VICE</h3>
VICE is a fork and rewrite of <a href="https://github.com/emedia-project/erlffmpeg">erlffmpeg</a>.
<h3>Video</h3>
For video conversion, VICE use ffmpeg.
<h4>Main options</h4>
<tt>{output_format, Format}</tt><br />
<tt>{input_format, Format}</tt><br />
: Force input or output file format. The format is normally auto detected for input files and guessed from the file extension for output files, so this option is not needed in most cases.
<tt>{yes, true}</tt><br />
: Overwrite output files without asking.
<tt>{encoder, [Stream, Codec]}</tt> | <tt>{encoder, Codec}</tt><br />
: Select and encoder for one or more output streams.
<tt>{decoder, [Stream, Codec]}</tt> | <tt>{decoder, Codec}</tt><br />
: Select a decoder for one or more input streams.
<tt>{duration, Duration}</tt><br />
: Stop writing the output after its duration reaches duration. Duration may be a number in seconds, or in "hh:mm:ss[.xxx]" form.
<tt>{limit_size, Limit}</tt><br />
: Set the file size limit. Limit expressed in bytes.
<tt>{input_position, Position}</tt><br />
: Seeks in the input file to position. Position may be either in seconds or in "hh:mm:ss[.xxx]" form.
<tt>{output_position, Position}</tt><br />
: Decodes but discards input until the timestamps reach position. Position may be either in seconds or in "hh:mm:ss[.xxx]" form.
<tt>{itoffset, Offset}</tt><br />
: Set the input time offset in seconds. "[-]hh:mm:ss[.xxx]" syntax is also supported. The offset is added to the timestamps of the input files.
<tt>{timestamp, Time}</tt><br />
: Set the recording timestamp in the container. The syntax for time is: <tt>now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...])|(HHMMSS[.m...]))[Z|z])</tt>
<tt>{target, Type}</tt><br />
: Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). Type may be prefixed with "pal-", "ntsc-" or "film-" to use the corresponding standard.
<tt>{dframes, Number}</tt><br />
: Set the number of data frames to record.
<tt>{frames, [Stream, Framecount]}</tt> | <tt>{frames, Framecount}</tt><br />
: Stop writing to the Stream after Framecount frames.
<tt>{qscale, [Stream, Quality]}</tt> | <tt>{qscale, Quality}</tt><br />
: Use fixed quality scale (VBR).
<tt>{filter, [Stream, Filtergraph]}</tt> | <tt>{filter, Filtergraph}</tt><br />
: Create the filtergraph specified by Siltergraph and use it to filter the Stream. (see ffmpeg-filters manual for more information about the filtergraph syntax.)
<tt>{filter_script, [Stream, Filename]}</tt> | <tt>{filter_script, Filename}</tt><br />
: This option is similar to filter, the only difference is that its argument is the name of the file from which a filtergraph description is to be read.
<tt>{pre, [Stream, PresetName]}</tt> | <tt>{pre, PresetName}</tt><br />
: Specify the preset for matching stream(s).
<h4>Video Options</h4>
<tt>{vframes, Number}</tt><br />
: Set the number of video frames to record. This is an alias for "-frames:v".
<tt>{input_frame_rate, [Stream, Fps]}</tt> | <tt>{input_frame_rate, Fps}</tt><br />
<tt>{output_frame_rate, [Stream, Fps]}</tt> | <tt>{output_frame_rate, Fps}</tt><br />
: Set frame rate (Hz value, fraction or abbreviation).
<tt>{input_frame_size, [Stream, Size]}</tt> | <tt>{input_frame_size, Size}</tt><br />
<tt>{output_frame_size, [Stream, Size]}</tt> | <tt>{output_frame_size, Size}</tt><br />
: Set frame size.
<tt>{aspect, [Stream, Aspect]}</tt> | <tt>{aspect, Aspect}</tt><br />
: Set the video display aspect ratio specified by aspect. Aspect can be a floating point number string, or a string of the form num:den, where num and den are the numerator and denominator of the aspect ratio. For example "4:3", "16:9", "1.3333", and "1.7777" are valid argument values.
<tt>{no_video_recording, true}</tt><br />
: Disable video recording.
<tt>{vcodev, Codec}</tt><br />
: Set the video codec.
<tt>{pass, [Stream, N]}</tt> | <tt>{pass, N}</tt><br />
: Select the pass number (1 or 2).
<tt>{vlang, Code}</tt><br />
: Set the ISO 639 language code (3 letters) of the current video stream.
<tt>{video_filtergraph, Filter}</tt><br />
: Create the filtergraph specified by filtergraph and use it to filter the stream.
<h4>Advanced Video Options</h4>
<tt>{input_pixel_format, [Stream, Format]}</tt> | <tt>{input_pixel_format, Format}</tt><br />
<tt>{output_pixel_format, [Stream, Format]}</tt> | <tt>{output_pixel_format, Format}</tt><br />
: Set pixel format.
<tt>{input_sws_flags, Flags}</tt><br />
<tt>{output_sws_flags, Flags}</tt><br />
: Set SwScaler flags.
<tt>{rc_override, [Stream, Override]}</tt> | <tt>{rc_override, Override}</tt><br />
: Rate control override for specific intervals
<tt>{top, [Stream, N]}</tt> | <tt>{top, N}</tt><br />
: top=1/bottom=0/auto=-1 field first
<tt>‘force_key_frames, [Stream, KeyFrame]}</tt> | <tt>{force_key_frames, KeyFrame}</tt><br />
: Force key frames at the specified timestamps, more precisely at the first frames after each specified time.
<tt>{copyinkf, [Stream, true]}</tt> | <tt>{copyinkf, true}</tt><br />
: When doing stream copy, copy also non-key frames found at the beginning.
<h4>Audio Options</h4>
<tt>{aframes, N}</tt><br />
: Set the number of audio frames to record.
<tt>{input_audio_frequency, [Stream, Frequency]}</tt> | <tt>{input_audio_frequency, Frequency}</tt><br />
<tt>{output_audio_frequency, [Stream, Frequency]}</tt> | <tt>{output_audio_frequency, Frequency}</tt><br />
: Set the audio sampling frequency.
<tt>{audio_quality, Quality}</tt><br />
: Set the audio quality (codec-specific, VBR).
<tt>{input_audio_channels, [Stream, N]}</tt> | <tt>{input_audio_channels, N}</tt><br />
<tt>{output_audio_channels, [Stream, N]}</tt> | <tt>{output_audio_channels, N}</tt><br />
: Set the number of audio channels.
<tt>{no_audio_recording, true}</tt><br />
: Disable audio recording.
<tt>{input_acodec, Codec}</tt><br />
<tt>{output_acodec, Codec}</tt><br />
Set the audio codec.
<tt>{sample_fmt, [Stream, AudioSampleFormat]}</tt> | <tt>{sample_fmt, AudioSampleFormat}</tt><br />
Set the audio sample format.
<tt>{audio_filtergraph, Filter}</tt><br />
Create the filtergraph specified by filtergraph and use it to filter the stream.
<h4>Advanced Audio options:</h4>
<tt>{guess_layout_max, Channels}</tt><br />
: If some input channel layout is not known, try to guess only if it corresponds to at most the specified number of channels.
<h4>Subtitle options:</h4>
<tt>{input_scodec, Codec}</tt><br />
<tt>{output_scodec, Codec}</tt><br />
: Set the subtitle codec.
<tt>{no_subtitle_recording, true}</tt><br />
: Disable subtitle recording.
<h4>Advanced Subtitle options:</h4>
<tt>{fix_sub_duration, true}</tt><br />
: Fix subtitles durations.
<tt>{canvas_size, Size}</tt><br />
: Set the size of the canvas used to render subtitles.
<h4>Advanced options</h4>
<tt>{map, Map}</tt><br />
: Designate one or more input streams as a source for the output file.
<tt>{map_channel, MapChannel}</tt><br />
: Map an audio channel from a given input to an output.
<tt>{map_chapters, InputFileIndex}</tt><br />
: Copy chapters from input file with index input_file_index to the next output file.
<tt>{vsync, Parameter}</tt><br />
: Video sync method.
<tt>{async, SamplePerSec}</tt><br />
: Audio sync method.
<tt>{copytb, Mode}</tt><br />
: Specify how to set the encoder timebase when stream copying.
<tt>{shortest, true}</tt><br />
: Finish encoding when the shortest input stream ends.
<tt>{dts_delta_threshold, true}</tt><br />
: Timestamp discontinuity delta threshold.
<tt>{muxdelay, Second}</tt><br />
: Set the maximum demux-decode delay.
<tt>{muxpreload, Second}</tt><br />
: Set the initial demux-decode delay.
<tt>{streamid, OSI_NV}</tt><br />
: Assign a new stream-id value to an output stream.
<tt>{bitstream_filters, [Stream, Filters]}</tt> | <tt>{bitstream_filters, Filters}</tt><br />
: Set bitstream filters for matching streams.
<tt>{timecode, Timecode}</tt><br />
: Specify Timecode for writing.
<tt>{filter_complex, Filtergraph}</tt><br />
: Define a complex filtergraph, i.e. one with arbitrary number of inputs and/or outputs.
<tt>{filter_complex_script, Filename}</tt><br />
: This option is similar to filter_complex, the only difference is that its argument is the name of the file from which a complex filtergraph description is to be read.
<tt>{accurate_seek, true}</tt><br />
: This option enables or disables accurate seeking in input files with the input_position option.
<h3>Image</h3>
For image conversion, VICE use ImageMagick.
<tt>{resize, P, percent}</tt>
<tt>{resize, P, pixels}</tt> |<br />
<tt>{resize, W, H}</tt> |<br />
<tt>{resize, W, H, percent}</tt> |<br />
<tt>{resize, W, H, ignore_ration}</tt> |<br />
<tt>{resize, W, H, no_enlarge}</tt> |<br />
<tt>{resize, W, H, no_shrink}</tt> |<br />
<tt>{resize, W, H, fill}</tt><br />
: Resize an image
<tt>{thumbnail, P, percent}</tt> |<br />
<tt>{thumbnail, P, pixels}</tt> |<br />
<tt>{thumbnail, W, H}</tt> |<br />
<tt>{thumbnail, W, H, percent}</tt> |<br />
<tt>{thumbnail, W, H, ignore_ration}</tt> |<br />
<tt>{thumbnail, W, H, no_enlarge}</tt> |<br />
<tt>{thumbnail, W, H, no_shrink}</tt> |<br />
<tt>{thumbnail, W, H, fill}</tt><br />
: Create a thumbnail of the image. This is similar to <tt>resize</tt>, except it is optimized for speed and any image profile, other than a color profile, is removed to reduce the thumbnail size.
<tt>{crop, W, H, X, Y}</tt> |<br />
<tt>{crop, W, H}</tt><br />
: Cut out a rectangular region of the image
<tt>{gravity, Gravity}</tt><br />
: Sets the current gravity suggestion for various other settings and options. Choices include: <tt>NorthWest</tt>, <tt>North</tt>, <tt>NorthEast</tt>, <tt>West</tt>, <tt>Center</tt>, <tt>East</tt>, <tt>SouthWest</tt>, <tt>South</tt>, <tt>SouthEast</tt>.
<tt>repage</tt> |<br />
<tt>'+repage'</tt><br />
: Adjust the canvas and offset information of the image
<tt>flip</tt><br />
: Create a mirror image
<tt>trim</tt><br />
: Trim an image
<tt>magnify</tt><br />
: Double the size of the image with pixel art scaling
<tt>{rotate, Degrees}</tt><br />
: Apply Paeth image rotation (using shear operations) to the image
<tt>'auto-orient'</tt><br />
: Adjusts an image so that its orientation is suitable for viewing
<tt>strip</tt><br />
: Strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.
<tt>{blur, Radius}</tt> |<br />
<tt>{blur, Radius, Sigma}</tt><br />
: Reduce image noise and reduce detail levels
<tt>{edge, Radius}</tt><br />
: Detect edges within an image
<tt>{size, Weight}</tt> |<br />
<tt>{size, Weight, Height}</tt> |<br />
<tt>{size, Weight, Height, Offset}</tt><br />
: Set the width and height of the image
<tt>{extent, W, H}</tt><br />
: Set the image size and offset
<h3>Licence</h3>
<p>
VICE is available for use under the following license, commonly known as the 3-clause (or "modified") BSD license:
</p>
<p>
Copyright (c) 2014-2015 Grégoire Lejeune<br />
Copyright (c) 2016 BotsUnit<br />
</p>
<p>
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
</p>
<p>
<ul>
<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
<li>The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.</li>
</ul>
</p>
<p>
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</p>