chenjoya commited on
Commit
d11178d
1 Parent(s): 8dd73c6

Upload 236 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. ffmpeg/GPLv3.txt +674 -0
  3. ffmpeg/ffmpeg +3 -0
  4. ffmpeg/ffprobe +3 -0
  5. ffmpeg/manpages/ffmpeg-all.txt +0 -0
  6. ffmpeg/manpages/ffmpeg-bitstream-filters.txt +890 -0
  7. ffmpeg/manpages/ffmpeg-codecs.txt +0 -0
  8. ffmpeg/manpages/ffmpeg-devices.txt +1915 -0
  9. ffmpeg/manpages/ffmpeg-filters.txt +0 -0
  10. ffmpeg/manpages/ffmpeg-formats.txt +0 -0
  11. ffmpeg/manpages/ffmpeg-protocols.txt +1960 -0
  12. ffmpeg/manpages/ffmpeg-resampler.txt +259 -0
  13. ffmpeg/manpages/ffmpeg-scaler.txt +156 -0
  14. ffmpeg/manpages/ffmpeg-utils.txt +1267 -0
  15. ffmpeg/manpages/ffmpeg.txt +0 -0
  16. ffmpeg/manpages/ffprobe.txt +1008 -0
  17. ffmpeg/model/000-PLEASE-README.TXT +4 -0
  18. ffmpeg/model/other_models/model_V8a.model +3 -0
  19. ffmpeg/model/other_models/nflx_v1.json +42 -0
  20. ffmpeg/model/other_models/nflx_v1.pkl +3 -0
  21. ffmpeg/model/other_models/nflx_v1.pkl.model +3 -0
  22. ffmpeg/model/other_models/nflx_vmaff_rf_v1.pkl +3 -0
  23. ffmpeg/model/other_models/nflx_vmaff_rf_v2.pkl +3 -0
  24. ffmpeg/model/other_models/nflxall_libsvmnusvr_currentbest.pkl +3 -0
  25. ffmpeg/model/other_models/nflxall_libsvmnusvr_currentbest.pkl.model +3 -0
  26. ffmpeg/model/other_models/nflxall_vmafv1.pkl +3 -0
  27. ffmpeg/model/other_models/nflxall_vmafv1.pkl.model +3 -0
  28. ffmpeg/model/other_models/nflxall_vmafv2.pkl +3 -0
  29. ffmpeg/model/other_models/nflxall_vmafv2.pkl.model +3 -0
  30. ffmpeg/model/other_models/nflxall_vmafv3.pkl +3 -0
  31. ffmpeg/model/other_models/nflxall_vmafv3.pkl.model +3 -0
  32. ffmpeg/model/other_models/nflxall_vmafv3a.pkl +3 -0
  33. ffmpeg/model/other_models/nflxall_vmafv3a.pkl.model +3 -0
  34. ffmpeg/model/other_models/nflxall_vmafv4.pkl +3 -0
  35. ffmpeg/model/other_models/nflxall_vmafv4.pkl.model +3 -0
  36. ffmpeg/model/other_models/nflxtrain_libsvmnusvr_currentbest.pkl +3 -0
  37. ffmpeg/model/other_models/nflxtrain_libsvmnusvr_currentbest.pkl.model +3 -0
  38. ffmpeg/model/other_models/nflxtrain_norm_type_none.json +45 -0
  39. ffmpeg/model/other_models/nflxtrain_norm_type_none.pkl +3 -0
  40. ffmpeg/model/other_models/nflxtrain_norm_type_none.pkl.model +3 -0
  41. ffmpeg/model/other_models/nflxtrain_vmafv1.pkl +3 -0
  42. ffmpeg/model/other_models/nflxtrain_vmafv1.pkl.model +3 -0
  43. ffmpeg/model/other_models/nflxtrain_vmafv2.pkl +3 -0
  44. ffmpeg/model/other_models/nflxtrain_vmafv2.pkl.model +3 -0
  45. ffmpeg/model/other_models/nflxtrain_vmafv3.pkl +3 -0
  46. ffmpeg/model/other_models/nflxtrain_vmafv3.pkl.model +3 -0
  47. ffmpeg/model/other_models/nflxtrain_vmafv3a.pkl +3 -0
  48. ffmpeg/model/other_models/nflxtrain_vmafv3a.pkl.model +3 -0
  49. ffmpeg/model/other_models/niqe_v0.1.pkl +3 -0
  50. ffmpeg/model/other_models/vmaf_4k_v0.6.1rc.pkl +3 -0
.gitattributes CHANGED
@@ -35,3 +35,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  bicycle.mp4 filter=lfs diff=lfs merge=lfs -text
37
  cooking.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  bicycle.mp4 filter=lfs diff=lfs merge=lfs -text
37
  cooking.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ ffmpeg/ffmpeg filter=lfs diff=lfs merge=lfs -text
39
+ ffmpeg/ffprobe filter=lfs diff=lfs merge=lfs -text
ffmpeg/GPLv3.txt ADDED
@@ -0,0 +1,674 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+ Preamble
9
+
10
+ The GNU General Public License is a free, copyleft license for
11
+ software and other kinds of works.
12
+
13
+ The licenses for most software and other practical works are designed
14
+ to take away your freedom to share and change the works. By contrast,
15
+ the GNU General Public License is intended to guarantee your freedom to
16
+ share and change all versions of a program--to make sure it remains free
17
+ software for all its users. We, the Free Software Foundation, use the
18
+ GNU General Public License for most of our software; it applies also to
19
+ any other work released this way by its authors. You can apply it to
20
+ your programs, too.
21
+
22
+ When we speak of free software, we are referring to freedom, not
23
+ price. Our General Public Licenses are designed to make sure that you
24
+ have the freedom to distribute copies of free software (and charge for
25
+ them if you wish), that you receive source code or can get it if you
26
+ want it, that you can change the software or use pieces of it in new
27
+ free programs, and that you know you can do these things.
28
+
29
+ To protect your rights, we need to prevent others from denying you
30
+ these rights or asking you to surrender the rights. Therefore, you have
31
+ certain responsibilities if you distribute copies of the software, or if
32
+ you modify it: responsibilities to respect the freedom of others.
33
+
34
+ For example, if you distribute copies of such a program, whether
35
+ gratis or for a fee, you must pass on to the recipients the same
36
+ freedoms that you received. You must make sure that they, too, receive
37
+ or can get the source code. And you must show them these terms so they
38
+ know their rights.
39
+
40
+ Developers that use the GNU GPL protect your rights with two steps:
41
+ (1) assert copyright on the software, and (2) offer you this License
42
+ giving you legal permission to copy, distribute and/or modify it.
43
+
44
+ For the developers' and authors' protection, the GPL clearly explains
45
+ that there is no warranty for this free software. For both users' and
46
+ authors' sake, the GPL requires that modified versions be marked as
47
+ changed, so that their problems will not be attributed erroneously to
48
+ authors of previous versions.
49
+
50
+ Some devices are designed to deny users access to install or run
51
+ modified versions of the software inside them, although the manufacturer
52
+ can do so. This is fundamentally incompatible with the aim of
53
+ protecting users' freedom to change the software. The systematic
54
+ pattern of such abuse occurs in the area of products for individuals to
55
+ use, which is precisely where it is most unacceptable. Therefore, we
56
+ have designed this version of the GPL to prohibit the practice for those
57
+ products. If such problems arise substantially in other domains, we
58
+ stand ready to extend this provision to those domains in future versions
59
+ of the GPL, as needed to protect the freedom of users.
60
+
61
+ Finally, every program is threatened constantly by software patents.
62
+ States should not allow patents to restrict development and use of
63
+ software on general-purpose computers, but in those that do, we wish to
64
+ avoid the special danger that patents applied to a free program could
65
+ make it effectively proprietary. To prevent this, the GPL assures that
66
+ patents cannot be used to render the program non-free.
67
+
68
+ The precise terms and conditions for copying, distribution and
69
+ modification follow.
70
+
71
+ TERMS AND CONDITIONS
72
+
73
+ 0. Definitions.
74
+
75
+ "This License" refers to version 3 of the GNU General Public License.
76
+
77
+ "Copyright" also means copyright-like laws that apply to other kinds of
78
+ works, such as semiconductor masks.
79
+
80
+ "The Program" refers to any copyrightable work licensed under this
81
+ License. Each licensee is addressed as "you". "Licensees" and
82
+ "recipients" may be individuals or organizations.
83
+
84
+ To "modify" a work means to copy from or adapt all or part of the work
85
+ in a fashion requiring copyright permission, other than the making of an
86
+ exact copy. The resulting work is called a "modified version" of the
87
+ earlier work or a work "based on" the earlier work.
88
+
89
+ A "covered work" means either the unmodified Program or a work based
90
+ on the Program.
91
+
92
+ To "propagate" a work means to do anything with it that, without
93
+ permission, would make you directly or secondarily liable for
94
+ infringement under applicable copyright law, except executing it on a
95
+ computer or modifying a private copy. Propagation includes copying,
96
+ distribution (with or without modification), making available to the
97
+ public, and in some countries other activities as well.
98
+
99
+ To "convey" a work means any kind of propagation that enables other
100
+ parties to make or receive copies. Mere interaction with a user through
101
+ a computer network, with no transfer of a copy, is not conveying.
102
+
103
+ An interactive user interface displays "Appropriate Legal Notices"
104
+ to the extent that it includes a convenient and prominently visible
105
+ feature that (1) displays an appropriate copyright notice, and (2)
106
+ tells the user that there is no warranty for the work (except to the
107
+ extent that warranties are provided), that licensees may convey the
108
+ work under this License, and how to view a copy of this License. If
109
+ the interface presents a list of user commands or options, such as a
110
+ menu, a prominent item in the list meets this criterion.
111
+
112
+ 1. Source Code.
113
+
114
+ The "source code" for a work means the preferred form of the work
115
+ for making modifications to it. "Object code" means any non-source
116
+ form of a work.
117
+
118
+ A "Standard Interface" means an interface that either is an official
119
+ standard defined by a recognized standards body, or, in the case of
120
+ interfaces specified for a particular programming language, one that
121
+ is widely used among developers working in that language.
122
+
123
+ The "System Libraries" of an executable work include anything, other
124
+ than the work as a whole, that (a) is included in the normal form of
125
+ packaging a Major Component, but which is not part of that Major
126
+ Component, and (b) serves only to enable use of the work with that
127
+ Major Component, or to implement a Standard Interface for which an
128
+ implementation is available to the public in source code form. A
129
+ "Major Component", in this context, means a major essential component
130
+ (kernel, window system, and so on) of the specific operating system
131
+ (if any) on which the executable work runs, or a compiler used to
132
+ produce the work, or an object code interpreter used to run it.
133
+
134
+ The "Corresponding Source" for a work in object code form means all
135
+ the source code needed to generate, install, and (for an executable
136
+ work) run the object code and to modify the work, including scripts to
137
+ control those activities. However, it does not include the work's
138
+ System Libraries, or general-purpose tools or generally available free
139
+ programs which are used unmodified in performing those activities but
140
+ which are not part of the work. For example, Corresponding Source
141
+ includes interface definition files associated with source files for
142
+ the work, and the source code for shared libraries and dynamically
143
+ linked subprograms that the work is specifically designed to require,
144
+ such as by intimate data communication or control flow between those
145
+ subprograms and other parts of the work.
146
+
147
+ The Corresponding Source need not include anything that users
148
+ can regenerate automatically from other parts of the Corresponding
149
+ Source.
150
+
151
+ The Corresponding Source for a work in source code form is that
152
+ same work.
153
+
154
+ 2. Basic Permissions.
155
+
156
+ All rights granted under this License are granted for the term of
157
+ copyright on the Program, and are irrevocable provided the stated
158
+ conditions are met. This License explicitly affirms your unlimited
159
+ permission to run the unmodified Program. The output from running a
160
+ covered work is covered by this License only if the output, given its
161
+ content, constitutes a covered work. This License acknowledges your
162
+ rights of fair use or other equivalent, as provided by copyright law.
163
+
164
+ You may make, run and propagate covered works that you do not
165
+ convey, without conditions so long as your license otherwise remains
166
+ in force. You may convey covered works to others for the sole purpose
167
+ of having them make modifications exclusively for you, or provide you
168
+ with facilities for running those works, provided that you comply with
169
+ the terms of this License in conveying all material for which you do
170
+ not control copyright. Those thus making or running the covered works
171
+ for you must do so exclusively on your behalf, under your direction
172
+ and control, on terms that prohibit them from making any copies of
173
+ your copyrighted material outside their relationship with you.
174
+
175
+ Conveying under any other circumstances is permitted solely under
176
+ the conditions stated below. Sublicensing is not allowed; section 10
177
+ makes it unnecessary.
178
+
179
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180
+
181
+ No covered work shall be deemed part of an effective technological
182
+ measure under any applicable law fulfilling obligations under article
183
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184
+ similar laws prohibiting or restricting circumvention of such
185
+ measures.
186
+
187
+ When you convey a covered work, you waive any legal power to forbid
188
+ circumvention of technological measures to the extent such circumvention
189
+ is effected by exercising rights under this License with respect to
190
+ the covered work, and you disclaim any intention to limit operation or
191
+ modification of the work as a means of enforcing, against the work's
192
+ users, your or third parties' legal rights to forbid circumvention of
193
+ technological measures.
194
+
195
+ 4. Conveying Verbatim Copies.
196
+
197
+ You may convey verbatim copies of the Program's source code as you
198
+ receive it, in any medium, provided that you conspicuously and
199
+ appropriately publish on each copy an appropriate copyright notice;
200
+ keep intact all notices stating that this License and any
201
+ non-permissive terms added in accord with section 7 apply to the code;
202
+ keep intact all notices of the absence of any warranty; and give all
203
+ recipients a copy of this License along with the Program.
204
+
205
+ You may charge any price or no price for each copy that you convey,
206
+ and you may offer support or warranty protection for a fee.
207
+
208
+ 5. Conveying Modified Source Versions.
209
+
210
+ You may convey a work based on the Program, or the modifications to
211
+ produce it from the Program, in the form of source code under the
212
+ terms of section 4, provided that you also meet all of these conditions:
213
+
214
+ a) The work must carry prominent notices stating that you modified
215
+ it, and giving a relevant date.
216
+
217
+ b) The work must carry prominent notices stating that it is
218
+ released under this License and any conditions added under section
219
+ 7. This requirement modifies the requirement in section 4 to
220
+ "keep intact all notices".
221
+
222
+ c) You must license the entire work, as a whole, under this
223
+ License to anyone who comes into possession of a copy. This
224
+ License will therefore apply, along with any applicable section 7
225
+ additional terms, to the whole of the work, and all its parts,
226
+ regardless of how they are packaged. This License gives no
227
+ permission to license the work in any other way, but it does not
228
+ invalidate such permission if you have separately received it.
229
+
230
+ d) If the work has interactive user interfaces, each must display
231
+ Appropriate Legal Notices; however, if the Program has interactive
232
+ interfaces that do not display Appropriate Legal Notices, your
233
+ work need not make them do so.
234
+
235
+ A compilation of a covered work with other separate and independent
236
+ works, which are not by their nature extensions of the covered work,
237
+ and which are not combined with it such as to form a larger program,
238
+ in or on a volume of a storage or distribution medium, is called an
239
+ "aggregate" if the compilation and its resulting copyright are not
240
+ used to limit the access or legal rights of the compilation's users
241
+ beyond what the individual works permit. Inclusion of a covered work
242
+ in an aggregate does not cause this License to apply to the other
243
+ parts of the aggregate.
244
+
245
+ 6. Conveying Non-Source Forms.
246
+
247
+ You may convey a covered work in object code form under the terms
248
+ of sections 4 and 5, provided that you also convey the
249
+ machine-readable Corresponding Source under the terms of this License,
250
+ in one of these ways:
251
+
252
+ a) Convey the object code in, or embodied in, a physical product
253
+ (including a physical distribution medium), accompanied by the
254
+ Corresponding Source fixed on a durable physical medium
255
+ customarily used for software interchange.
256
+
257
+ b) Convey the object code in, or embodied in, a physical product
258
+ (including a physical distribution medium), accompanied by a
259
+ written offer, valid for at least three years and valid for as
260
+ long as you offer spare parts or customer support for that product
261
+ model, to give anyone who possesses the object code either (1) a
262
+ copy of the Corresponding Source for all the software in the
263
+ product that is covered by this License, on a durable physical
264
+ medium customarily used for software interchange, for a price no
265
+ more than your reasonable cost of physically performing this
266
+ conveying of source, or (2) access to copy the
267
+ Corresponding Source from a network server at no charge.
268
+
269
+ c) Convey individual copies of the object code with a copy of the
270
+ written offer to provide the Corresponding Source. This
271
+ alternative is allowed only occasionally and noncommercially, and
272
+ only if you received the object code with such an offer, in accord
273
+ with subsection 6b.
274
+
275
+ d) Convey the object code by offering access from a designated
276
+ place (gratis or for a charge), and offer equivalent access to the
277
+ Corresponding Source in the same way through the same place at no
278
+ further charge. You need not require recipients to copy the
279
+ Corresponding Source along with the object code. If the place to
280
+ copy the object code is a network server, the Corresponding Source
281
+ may be on a different server (operated by you or a third party)
282
+ that supports equivalent copying facilities, provided you maintain
283
+ clear directions next to the object code saying where to find the
284
+ Corresponding Source. Regardless of what server hosts the
285
+ Corresponding Source, you remain obligated to ensure that it is
286
+ available for as long as needed to satisfy these requirements.
287
+
288
+ e) Convey the object code using peer-to-peer transmission, provided
289
+ you inform other peers where the object code and Corresponding
290
+ Source of the work are being offered to the general public at no
291
+ charge under subsection 6d.
292
+
293
+ A separable portion of the object code, whose source code is excluded
294
+ from the Corresponding Source as a System Library, need not be
295
+ included in conveying the object code work.
296
+
297
+ A "User Product" is either (1) a "consumer product", which means any
298
+ tangible personal property which is normally used for personal, family,
299
+ or household purposes, or (2) anything designed or sold for incorporation
300
+ into a dwelling. In determining whether a product is a consumer product,
301
+ doubtful cases shall be resolved in favor of coverage. For a particular
302
+ product received by a particular user, "normally used" refers to a
303
+ typical or common use of that class of product, regardless of the status
304
+ of the particular user or of the way in which the particular user
305
+ actually uses, or expects or is expected to use, the product. A product
306
+ is a consumer product regardless of whether the product has substantial
307
+ commercial, industrial or non-consumer uses, unless such uses represent
308
+ the only significant mode of use of the product.
309
+
310
+ "Installation Information" for a User Product means any methods,
311
+ procedures, authorization keys, or other information required to install
312
+ and execute modified versions of a covered work in that User Product from
313
+ a modified version of its Corresponding Source. The information must
314
+ suffice to ensure that the continued functioning of the modified object
315
+ code is in no case prevented or interfered with solely because
316
+ modification has been made.
317
+
318
+ If you convey an object code work under this section in, or with, or
319
+ specifically for use in, a User Product, and the conveying occurs as
320
+ part of a transaction in which the right of possession and use of the
321
+ User Product is transferred to the recipient in perpetuity or for a
322
+ fixed term (regardless of how the transaction is characterized), the
323
+ Corresponding Source conveyed under this section must be accompanied
324
+ by the Installation Information. But this requirement does not apply
325
+ if neither you nor any third party retains the ability to install
326
+ modified object code on the User Product (for example, the work has
327
+ been installed in ROM).
328
+
329
+ The requirement to provide Installation Information does not include a
330
+ requirement to continue to provide support service, warranty, or updates
331
+ for a work that has been modified or installed by the recipient, or for
332
+ the User Product in which it has been modified or installed. Access to a
333
+ network may be denied when the modification itself materially and
334
+ adversely affects the operation of the network or violates the rules and
335
+ protocols for communication across the network.
336
+
337
+ Corresponding Source conveyed, and Installation Information provided,
338
+ in accord with this section must be in a format that is publicly
339
+ documented (and with an implementation available to the public in
340
+ source code form), and must require no special password or key for
341
+ unpacking, reading or copying.
342
+
343
+ 7. Additional Terms.
344
+
345
+ "Additional permissions" are terms that supplement the terms of this
346
+ License by making exceptions from one or more of its conditions.
347
+ Additional permissions that are applicable to the entire Program shall
348
+ be treated as though they were included in this License, to the extent
349
+ that they are valid under applicable law. If additional permissions
350
+ apply only to part of the Program, that part may be used separately
351
+ under those permissions, but the entire Program remains governed by
352
+ this License without regard to the additional permissions.
353
+
354
+ When you convey a copy of a covered work, you may at your option
355
+ remove any additional permissions from that copy, or from any part of
356
+ it. (Additional permissions may be written to require their own
357
+ removal in certain cases when you modify the work.) You may place
358
+ additional permissions on material, added by you to a covered work,
359
+ for which you have or can give appropriate copyright permission.
360
+
361
+ Notwithstanding any other provision of this License, for material you
362
+ add to a covered work, you may (if authorized by the copyright holders of
363
+ that material) supplement the terms of this License with terms:
364
+
365
+ a) Disclaiming warranty or limiting liability differently from the
366
+ terms of sections 15 and 16 of this License; or
367
+
368
+ b) Requiring preservation of specified reasonable legal notices or
369
+ author attributions in that material or in the Appropriate Legal
370
+ Notices displayed by works containing it; or
371
+
372
+ c) Prohibiting misrepresentation of the origin of that material, or
373
+ requiring that modified versions of such material be marked in
374
+ reasonable ways as different from the original version; or
375
+
376
+ d) Limiting the use for publicity purposes of names of licensors or
377
+ authors of the material; or
378
+
379
+ e) Declining to grant rights under trademark law for use of some
380
+ trade names, trademarks, or service marks; or
381
+
382
+ f) Requiring indemnification of licensors and authors of that
383
+ material by anyone who conveys the material (or modified versions of
384
+ it) with contractual assumptions of liability to the recipient, for
385
+ any liability that these contractual assumptions directly impose on
386
+ those licensors and authors.
387
+
388
+ All other non-permissive additional terms are considered "further
389
+ restrictions" within the meaning of section 10. If the Program as you
390
+ received it, or any part of it, contains a notice stating that it is
391
+ governed by this License along with a term that is a further
392
+ restriction, you may remove that term. If a license document contains
393
+ a further restriction but permits relicensing or conveying under this
394
+ License, you may add to a covered work material governed by the terms
395
+ of that license document, provided that the further restriction does
396
+ not survive such relicensing or conveying.
397
+
398
+ If you add terms to a covered work in accord with this section, you
399
+ must place, in the relevant source files, a statement of the
400
+ additional terms that apply to those files, or a notice indicating
401
+ where to find the applicable terms.
402
+
403
+ Additional terms, permissive or non-permissive, may be stated in the
404
+ form of a separately written license, or stated as exceptions;
405
+ the above requirements apply either way.
406
+
407
+ 8. Termination.
408
+
409
+ You may not propagate or modify a covered work except as expressly
410
+ provided under this License. Any attempt otherwise to propagate or
411
+ modify it is void, and will automatically terminate your rights under
412
+ this License (including any patent licenses granted under the third
413
+ paragraph of section 11).
414
+
415
+ However, if you cease all violation of this License, then your
416
+ license from a particular copyright holder is reinstated (a)
417
+ provisionally, unless and until the copyright holder explicitly and
418
+ finally terminates your license, and (b) permanently, if the copyright
419
+ holder fails to notify you of the violation by some reasonable means
420
+ prior to 60 days after the cessation.
421
+
422
+ Moreover, your license from a particular copyright holder is
423
+ reinstated permanently if the copyright holder notifies you of the
424
+ violation by some reasonable means, this is the first time you have
425
+ received notice of violation of this License (for any work) from that
426
+ copyright holder, and you cure the violation prior to 30 days after
427
+ your receipt of the notice.
428
+
429
+ Termination of your rights under this section does not terminate the
430
+ licenses of parties who have received copies or rights from you under
431
+ this License. If your rights have been terminated and not permanently
432
+ reinstated, you do not qualify to receive new licenses for the same
433
+ material under section 10.
434
+
435
+ 9. Acceptance Not Required for Having Copies.
436
+
437
+ You are not required to accept this License in order to receive or
438
+ run a copy of the Program. Ancillary propagation of a covered work
439
+ occurring solely as a consequence of using peer-to-peer transmission
440
+ to receive a copy likewise does not require acceptance. However,
441
+ nothing other than this License grants you permission to propagate or
442
+ modify any covered work. These actions infringe copyright if you do
443
+ not accept this License. Therefore, by modifying or propagating a
444
+ covered work, you indicate your acceptance of this License to do so.
445
+
446
+ 10. Automatic Licensing of Downstream Recipients.
447
+
448
+ Each time you convey a covered work, the recipient automatically
449
+ receives a license from the original licensors, to run, modify and
450
+ propagate that work, subject to this License. You are not responsible
451
+ for enforcing compliance by third parties with this License.
452
+
453
+ An "entity transaction" is a transaction transferring control of an
454
+ organization, or substantially all assets of one, or subdividing an
455
+ organization, or merging organizations. If propagation of a covered
456
+ work results from an entity transaction, each party to that
457
+ transaction who receives a copy of the work also receives whatever
458
+ licenses to the work the party's predecessor in interest had or could
459
+ give under the previous paragraph, plus a right to possession of the
460
+ Corresponding Source of the work from the predecessor in interest, if
461
+ the predecessor has it or can get it with reasonable efforts.
462
+
463
+ You may not impose any further restrictions on the exercise of the
464
+ rights granted or affirmed under this License. For example, you may
465
+ not impose a license fee, royalty, or other charge for exercise of
466
+ rights granted under this License, and you may not initiate litigation
467
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
468
+ any patent claim is infringed by making, using, selling, offering for
469
+ sale, or importing the Program or any portion of it.
470
+
471
+ 11. Patents.
472
+
473
+ A "contributor" is a copyright holder who authorizes use under this
474
+ License of the Program or a work on which the Program is based. The
475
+ work thus licensed is called the contributor's "contributor version".
476
+
477
+ A contributor's "essential patent claims" are all patent claims
478
+ owned or controlled by the contributor, whether already acquired or
479
+ hereafter acquired, that would be infringed by some manner, permitted
480
+ by this License, of making, using, or selling its contributor version,
481
+ but do not include claims that would be infringed only as a
482
+ consequence of further modification of the contributor version. For
483
+ purposes of this definition, "control" includes the right to grant
484
+ patent sublicenses in a manner consistent with the requirements of
485
+ this License.
486
+
487
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
488
+ patent license under the contributor's essential patent claims, to
489
+ make, use, sell, offer for sale, import and otherwise run, modify and
490
+ propagate the contents of its contributor version.
491
+
492
+ In the following three paragraphs, a "patent license" is any express
493
+ agreement or commitment, however denominated, not to enforce a patent
494
+ (such as an express permission to practice a patent or covenant not to
495
+ sue for patent infringement). To "grant" such a patent license to a
496
+ party means to make such an agreement or commitment not to enforce a
497
+ patent against the party.
498
+
499
+ If you convey a covered work, knowingly relying on a patent license,
500
+ and the Corresponding Source of the work is not available for anyone
501
+ to copy, free of charge and under the terms of this License, through a
502
+ publicly available network server or other readily accessible means,
503
+ then you must either (1) cause the Corresponding Source to be so
504
+ available, or (2) arrange to deprive yourself of the benefit of the
505
+ patent license for this particular work, or (3) arrange, in a manner
506
+ consistent with the requirements of this License, to extend the patent
507
+ license to downstream recipients. "Knowingly relying" means you have
508
+ actual knowledge that, but for the patent license, your conveying the
509
+ covered work in a country, or your recipient's use of the covered work
510
+ in a country, would infringe one or more identifiable patents in that
511
+ country that you have reason to believe are valid.
512
+
513
+ If, pursuant to or in connection with a single transaction or
514
+ arrangement, you convey, or propagate by procuring conveyance of, a
515
+ covered work, and grant a patent license to some of the parties
516
+ receiving the covered work authorizing them to use, propagate, modify
517
+ or convey a specific copy of the covered work, then the patent license
518
+ you grant is automatically extended to all recipients of the covered
519
+ work and works based on it.
520
+
521
+ A patent license is "discriminatory" if it does not include within
522
+ the scope of its coverage, prohibits the exercise of, or is
523
+ conditioned on the non-exercise of one or more of the rights that are
524
+ specifically granted under this License. You may not convey a covered
525
+ work if you are a party to an arrangement with a third party that is
526
+ in the business of distributing software, under which you make payment
527
+ to the third party based on the extent of your activity of conveying
528
+ the work, and under which the third party grants, to any of the
529
+ parties who would receive the covered work from you, a discriminatory
530
+ patent license (a) in connection with copies of the covered work
531
+ conveyed by you (or copies made from those copies), or (b) primarily
532
+ for and in connection with specific products or compilations that
533
+ contain the covered work, unless you entered into that arrangement,
534
+ or that patent license was granted, prior to 28 March 2007.
535
+
536
+ Nothing in this License shall be construed as excluding or limiting
537
+ any implied license or other defenses to infringement that may
538
+ otherwise be available to you under applicable patent law.
539
+
540
+ 12. No Surrender of Others' Freedom.
541
+
542
+ If conditions are imposed on you (whether by court order, agreement or
543
+ otherwise) that contradict the conditions of this License, they do not
544
+ excuse you from the conditions of this License. If you cannot convey a
545
+ covered work so as to satisfy simultaneously your obligations under this
546
+ License and any other pertinent obligations, then as a consequence you may
547
+ not convey it at all. For example, if you agree to terms that obligate you
548
+ to collect a royalty for further conveying from those to whom you convey
549
+ the Program, the only way you could satisfy both those terms and this
550
+ License would be to refrain entirely from conveying the Program.
551
+
552
+ 13. Use with the GNU Affero General Public License.
553
+
554
+ Notwithstanding any other provision of this License, you have
555
+ permission to link or combine any covered work with a work licensed
556
+ under version 3 of the GNU Affero General Public License into a single
557
+ combined work, and to convey the resulting work. The terms of this
558
+ License will continue to apply to the part which is the covered work,
559
+ but the special requirements of the GNU Affero General Public License,
560
+ section 13, concerning interaction through a network will apply to the
561
+ combination as such.
562
+
563
+ 14. Revised Versions of this License.
564
+
565
+ The Free Software Foundation may publish revised and/or new versions of
566
+ the GNU General Public License from time to time. Such new versions will
567
+ be similar in spirit to the present version, but may differ in detail to
568
+ address new problems or concerns.
569
+
570
+ Each version is given a distinguishing version number. If the
571
+ Program specifies that a certain numbered version of the GNU General
572
+ Public License "or any later version" applies to it, you have the
573
+ option of following the terms and conditions either of that numbered
574
+ version or of any later version published by the Free Software
575
+ Foundation. If the Program does not specify a version number of the
576
+ GNU General Public License, you may choose any version ever published
577
+ by the Free Software Foundation.
578
+
579
+ If the Program specifies that a proxy can decide which future
580
+ versions of the GNU General Public License can be used, that proxy's
581
+ public statement of acceptance of a version permanently authorizes you
582
+ to choose that version for the Program.
583
+
584
+ Later license versions may give you additional or different
585
+ permissions. However, no additional obligations are imposed on any
586
+ author or copyright holder as a result of your choosing to follow a
587
+ later version.
588
+
589
+ 15. Disclaimer of Warranty.
590
+
591
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599
+
600
+ 16. Limitation of Liability.
601
+
602
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610
+ SUCH DAMAGES.
611
+
612
+ 17. Interpretation of Sections 15 and 16.
613
+
614
+ If the disclaimer of warranty and limitation of liability provided
615
+ above cannot be given local legal effect according to their terms,
616
+ reviewing courts shall apply local law that most closely approximates
617
+ an absolute waiver of all civil liability in connection with the
618
+ Program, unless a warranty or assumption of liability accompanies a
619
+ copy of the Program in return for a fee.
620
+
621
+ END OF TERMS AND CONDITIONS
622
+
623
+ How to Apply These Terms to Your New Programs
624
+
625
+ If you develop a new program, and you want it to be of the greatest
626
+ possible use to the public, the best way to achieve this is to make it
627
+ free software which everyone can redistribute and change under these terms.
628
+
629
+ To do so, attach the following notices to the program. It is safest
630
+ to attach them to the start of each source file to most effectively
631
+ state the exclusion of warranty; and each file should have at least
632
+ the "copyright" line and a pointer to where the full notice is found.
633
+
634
+ <one line to give the program's name and a brief idea of what it does.>
635
+ Copyright (C) <year> <name of author>
636
+
637
+ This program is free software: you can redistribute it and/or modify
638
+ it under the terms of the GNU General Public License as published by
639
+ the Free Software Foundation, either version 3 of the License, or
640
+ (at your option) any later version.
641
+
642
+ This program is distributed in the hope that it will be useful,
643
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
644
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645
+ GNU General Public License for more details.
646
+
647
+ You should have received a copy of the GNU General Public License
648
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
649
+
650
+ Also add information on how to contact you by electronic and paper mail.
651
+
652
+ If the program does terminal interaction, make it output a short
653
+ notice like this when it starts in an interactive mode:
654
+
655
+ <program> Copyright (C) <year> <name of author>
656
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657
+ This is free software, and you are welcome to redistribute it
658
+ under certain conditions; type `show c' for details.
659
+
660
+ The hypothetical commands `show w' and `show c' should show the appropriate
661
+ parts of the General Public License. Of course, your program's commands
662
+ might be different; for a GUI interface, you would use an "about box".
663
+
664
+ You should also get your employer (if you work as a programmer) or school,
665
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
666
+ For more information on this, and how to apply and follow the GNU GPL, see
667
+ <http://www.gnu.org/licenses/>.
668
+
669
+ The GNU General Public License does not permit incorporating your program
670
+ into proprietary programs. If your program is a subroutine library, you
671
+ may consider it more useful to permit linking proprietary applications with
672
+ the library. If this is what you want to do, use the GNU Lesser General
673
+ Public License instead of this License. But first, please read
674
+ <http://www.gnu.org/philosophy/why-not-lgpl.html>.
ffmpeg/ffmpeg ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2856e9a87be9ab140e199ef06d64ea635a17b2e1246c3f3ac7ce09fbdc412b7c
3
+ size 79822176
ffmpeg/ffprobe ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f7667d1b4c2bb00e0e355617d79a419ba5a2c166c20072f95ae7513ccd1cabba
3
+ size 79657600
ffmpeg/manpages/ffmpeg-all.txt ADDED
The diff for this file is too large to render. See raw diff
 
ffmpeg/manpages/ffmpeg-bitstream-filters.txt ADDED
@@ -0,0 +1,890 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFMPEG-BITSTREAM-FILTERS(1) FFMPEG-BITSTREAM-FILTERS(1)
2
+
3
+ NAME
4
+ ffmpeg-bitstream-filters - FFmpeg bitstream filters
5
+
6
+ DESCRIPTION
7
+ This document describes the bitstream filters provided by the
8
+ libavcodec library.
9
+
10
+ A bitstream filter operates on the encoded stream data, and performs
11
+ bitstream level modifications without performing decoding.
12
+
13
+ BITSTREAM FILTERS
14
+ When you configure your FFmpeg build, all the supported bitstream
15
+ filters are enabled by default. You can list all available ones using
16
+ the configure option "--list-bsfs".
17
+
18
+ You can disable all the bitstream filters using the configure option
19
+ "--disable-bsfs", and selectively enable any bitstream filter using the
20
+ option "--enable-bsf=BSF", or you can disable a particular bitstream
21
+ filter using the option "--disable-bsf=BSF".
22
+
23
+ The option "-bsfs" of the ff* tools will display the list of all the
24
+ supported bitstream filters included in your build.
25
+
26
+ The ff* tools have a -bsf option applied per stream, taking a comma-
27
+ separated list of filters, whose parameters follow the filter name
28
+ after a '='.
29
+
30
+ ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
31
+
32
+ Below is a description of the currently available bitstream filters,
33
+ with their parameters, if any.
34
+
35
+ aac_adtstoasc
36
+ Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
37
+ bitstream.
38
+
39
+ This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
40
+ header and removes the ADTS header.
41
+
42
+ This filter is required for example when copying an AAC stream from a
43
+ raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
44
+ to MOV/MP4 files and related formats such as 3GP or M4A. Please note
45
+ that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
46
+
47
+ av1_metadata
48
+ Modify metadata embedded in an AV1 stream.
49
+
50
+ td Insert or remove temporal delimiter OBUs in all temporal units of
51
+ the stream.
52
+
53
+ insert
54
+ Insert a TD at the beginning of every TU which does not already
55
+ have one.
56
+
57
+ remove
58
+ Remove the TD from the beginning of every TU which has one.
59
+
60
+ color_primaries
61
+ transfer_characteristics
62
+ matrix_coefficients
63
+ Set the color description fields in the stream (see AV1 section
64
+ 6.4.2).
65
+
66
+ color_range
67
+ Set the color range in the stream (see AV1 section 6.4.2; note that
68
+ this cannot be set for streams using BT.709 primaries, sRGB
69
+ transfer characteristic and identity (RGB) matrix coefficients).
70
+
71
+ tv Limited range.
72
+
73
+ pc Full range.
74
+
75
+ chroma_sample_position
76
+ Set the chroma sample location in the stream (see AV1 section
77
+ 6.4.2). This can only be set for 4:2:0 streams.
78
+
79
+ vertical
80
+ Left position (matching the default in MPEG-2 and H.264).
81
+
82
+ colocated
83
+ Top-left position.
84
+
85
+ tick_rate
86
+ Set the tick rate (time_scale / num_units_in_display_tick) in the
87
+ timing info in the sequence header.
88
+
89
+ num_ticks_per_picture
90
+ Set the number of ticks in each picture, to indicate that the
91
+ stream has a fixed framerate. Ignored if tick_rate is not also
92
+ set.
93
+
94
+ delete_padding
95
+ Deletes Padding OBUs.
96
+
97
+ chomp
98
+ Remove zero padding at the end of a packet.
99
+
100
+ dca_core
101
+ Extract the core from a DCA/DTS stream, dropping extensions such as
102
+ DTS-HD.
103
+
104
+ dump_extra
105
+ Add extradata to the beginning of the filtered packets except when said
106
+ packets already exactly begin with the extradata that is intended to be
107
+ added.
108
+
109
+ freq
110
+ The additional argument specifies which packets should be filtered.
111
+ It accepts the values:
112
+
113
+ k
114
+ keyframe
115
+ add extradata to all key packets
116
+
117
+ e
118
+ all add extradata to all packets
119
+
120
+ If not specified it is assumed k.
121
+
122
+ For example the following ffmpeg command forces a global header (thus
123
+ disabling individual packet headers) in the H.264 packets generated by
124
+ the "libx264" encoder, but corrects them by adding the header stored in
125
+ extradata to the key packets:
126
+
127
+ ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
128
+
129
+ dv_error_marker
130
+ Blocks in DV which are marked as damaged are replaced by blocks of the
131
+ specified color.
132
+
133
+ color
134
+ The color to replace damaged blocks by
135
+
136
+ sta A 16 bit mask which specifies which of the 16 possible error status
137
+ values are to be replaced by colored blocks. 0xFFFE is the default
138
+ which replaces all non 0 error status values.
139
+
140
+ ok No error, no concealment
141
+
142
+ err Error, No concealment
143
+
144
+ res Reserved
145
+
146
+ notok
147
+ Error or concealment
148
+
149
+ notres
150
+ Not reserved
151
+
152
+ Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
153
+ The specific error status code
154
+
155
+ see page 44-46 or section 5.5 of
156
+ <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
157
+
158
+ eac3_core
159
+ Extract the core from a E-AC-3 stream, dropping extra channels.
160
+
161
+ extract_extradata
162
+ Extract the in-band extradata.
163
+
164
+ Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
165
+ headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
166
+ band" (i.e. as a part of the bitstream containing the coded frames) or
167
+ "out of band" (e.g. on the container level). This latter form is called
168
+ "extradata" in FFmpeg terminology.
169
+
170
+ This bitstream filter detects the in-band headers and makes them
171
+ available as extradata.
172
+
173
+ remove
174
+ When this option is enabled, the long-term headers are removed from
175
+ the bitstream after extraction.
176
+
177
+ filter_units
178
+ Remove units with types in or not in a given set from the stream.
179
+
180
+ pass_types
181
+ List of unit types or ranges of unit types to pass through while
182
+ removing all others. This is specified as a '|'-separated list of
183
+ unit type values or ranges of values with '-'.
184
+
185
+ remove_types
186
+ Identical to pass_types, except the units in the given set removed
187
+ and all others passed through.
188
+
189
+ The types used by pass_types and remove_types correspond to NAL unit
190
+ types (nal_unit_type) in H.264, HEVC and H.266 (see Table 7-1 in the
191
+ H.264 and HEVC specifications or Table 5 in the H.266 specification),
192
+ to marker values for JPEG (without 0xFF prefix) and to start codes
193
+ without start code prefix (i.e. the byte following the 0x000001) for
194
+ MPEG-2. For VP8 and VP9, every unit has type zero.
195
+
196
+ Extradata is unchanged by this transformation, but note that if the
197
+ stream contains inline parameter sets then the output may be unusable
198
+ if they are removed.
199
+
200
+ For example, to remove all non-VCL NAL units from an H.264 stream:
201
+
202
+ ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
203
+
204
+ To remove all AUDs, SEI and filler from an H.265 stream:
205
+
206
+ ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
207
+
208
+ To remove all user data from a MPEG-2 stream, including Closed
209
+ Captions:
210
+
211
+ ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=178' OUTPUT
212
+
213
+ To remove all SEI from a H264 stream, including Closed Captions:
214
+
215
+ ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=6' OUTPUT
216
+
217
+ To remove all prefix and suffix SEI from a HEVC stream, including
218
+ Closed Captions and dynamic HDR:
219
+
220
+ ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=39|40' OUTPUT
221
+
222
+ hapqa_extract
223
+ Extract Rgb or Alpha part of an HAPQA file, without recompression, in
224
+ order to create an HAPQ or an HAPAlphaOnly file.
225
+
226
+ texture
227
+ Specifies the texture to keep.
228
+
229
+ color
230
+ alpha
231
+
232
+ Convert HAPQA to HAPQ
233
+
234
+ ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov
235
+
236
+ Convert HAPQA to HAPAlphaOnly
237
+
238
+ ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov
239
+
240
+ h264_metadata
241
+ Modify metadata embedded in an H.264 stream.
242
+
243
+ aud Insert or remove AUD NAL units in all access units of the stream.
244
+
245
+ pass
246
+ insert
247
+ remove
248
+
249
+ Default is pass.
250
+
251
+ sample_aspect_ratio
252
+ Set the sample aspect ratio of the stream in the VUI parameters.
253
+ See H.264 table E-1.
254
+
255
+ overscan_appropriate_flag
256
+ Set whether the stream is suitable for display using overscan or
257
+ not (see H.264 section E.2.1).
258
+
259
+ video_format
260
+ video_full_range_flag
261
+ Set the video format in the stream (see H.264 section E.2.1 and
262
+ table E-2).
263
+
264
+ colour_primaries
265
+ transfer_characteristics
266
+ matrix_coefficients
267
+ Set the colour description in the stream (see H.264 section E.2.1
268
+ and tables E-3, E-4 and E-5).
269
+
270
+ chroma_sample_loc_type
271
+ Set the chroma sample location in the stream (see H.264 section
272
+ E.2.1 and figure E-1).
273
+
274
+ tick_rate
275
+ Set the tick rate (time_scale / num_units_in_tick) in the VUI
276
+ parameters. This is the smallest time unit representable in the
277
+ stream, and in many cases represents the field rate of the stream
278
+ (double the frame rate).
279
+
280
+ fixed_frame_rate_flag
281
+ Set whether the stream has fixed framerate - typically this
282
+ indicates that the framerate is exactly half the tick rate, but the
283
+ exact meaning is dependent on interlacing and the picture structure
284
+ (see H.264 section E.2.1 and table E-6).
285
+
286
+ zero_new_constraint_set_flags
287
+ Zero constraint_set4_flag and constraint_set5_flag in the SPS.
288
+ These bits were reserved in a previous version of the H.264 spec,
289
+ and thus some hardware decoders require these to be zero. The
290
+ result of zeroing this is still a valid bitstream.
291
+
292
+ crop_left
293
+ crop_right
294
+ crop_top
295
+ crop_bottom
296
+ Set the frame cropping offsets in the SPS. These values will
297
+ replace the current ones if the stream is already cropped.
298
+
299
+ These fields are set in pixels. Note that some sizes may not be
300
+ representable if the chroma is subsampled or the stream is
301
+ interlaced (see H.264 section 7.4.2.1.1).
302
+
303
+ sei_user_data
304
+ Insert a string as SEI unregistered user data. The argument must
305
+ be of the form UUID+string, where the UUID is as hex digits
306
+ possibly separated by hyphens, and the string can be anything.
307
+
308
+ For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
309
+ the string ``hello'' associated with the given UUID.
310
+
311
+ delete_filler
312
+ Deletes both filler NAL units and filler SEI messages.
313
+
314
+ display_orientation
315
+ Insert, extract or remove Display orientation SEI messages. See
316
+ H.264 section D.1.27 and D.2.27 for syntax and semantics.
317
+
318
+ pass
319
+ insert
320
+ remove
321
+ extract
322
+
323
+ Default is pass.
324
+
325
+ Insert mode works in conjunction with "rotate" and "flip" options.
326
+ Any pre-existing Display orientation messages will be removed in
327
+ insert or remove mode. Extract mode attaches the display matrix to
328
+ the packet as side data.
329
+
330
+ rotate
331
+ Set rotation in display orientation SEI (anticlockwise angle in
332
+ degrees). Range is -360 to +360. Default is NaN.
333
+
334
+ flip
335
+ Set flip in display orientation SEI.
336
+
337
+ horizontal
338
+ vertical
339
+
340
+ Default is unset.
341
+
342
+ level
343
+ Set the level in the SPS. Refer to H.264 section A.3 and tables
344
+ A-1 to A-5.
345
+
346
+ The argument must be the name of a level (for example, 4.2), a
347
+ level_idc value (for example, 42), or the special name auto
348
+ indicating that the filter should attempt to guess the level from
349
+ the input stream properties.
350
+
351
+ h264_mp4toannexb
352
+ Convert an H.264 bitstream from length prefixed mode to start code
353
+ prefixed mode (as defined in the Annex B of the ITU-T H.264
354
+ specification).
355
+
356
+ This is required by some streaming formats, typically the MPEG-2
357
+ transport stream format (muxer "mpegts").
358
+
359
+ For example to remux an MP4 file containing an H.264 stream to mpegts
360
+ format with ffmpeg, you can use the command:
361
+
362
+ ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
363
+
364
+ Please note that this filter is auto-inserted for MPEG-TS (muxer
365
+ "mpegts") and raw H.264 (muxer "h264") output formats.
366
+
367
+ h264_redundant_pps
368
+ This applies a specific fixup to some Blu-ray streams which contain
369
+ redundant PPSs modifying irrelevant parameters of the stream which
370
+ confuse other transformations which require correct extradata.
371
+
372
+ hevc_metadata
373
+ Modify metadata embedded in an HEVC stream.
374
+
375
+ aud Insert or remove AUD NAL units in all access units of the stream.
376
+
377
+ insert
378
+ remove
379
+ sample_aspect_ratio
380
+ Set the sample aspect ratio in the stream in the VUI parameters.
381
+
382
+ video_format
383
+ video_full_range_flag
384
+ Set the video format in the stream (see H.265 section E.3.1 and
385
+ table E.2).
386
+
387
+ colour_primaries
388
+ transfer_characteristics
389
+ matrix_coefficients
390
+ Set the colour description in the stream (see H.265 section E.3.1
391
+ and tables E.3, E.4 and E.5).
392
+
393
+ chroma_sample_loc_type
394
+ Set the chroma sample location in the stream (see H.265 section
395
+ E.3.1 and figure E.1).
396
+
397
+ tick_rate
398
+ Set the tick rate in the VPS and VUI parameters (time_scale /
399
+ num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
400
+ set a constant framerate in the stream. Note that it is likely to
401
+ be overridden by container parameters when the stream is in a
402
+ container.
403
+
404
+ num_ticks_poc_diff_one
405
+ Set poc_proportional_to_timing_flag in VPS and VUI and use this
406
+ value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
407
+ 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
408
+
409
+ crop_left
410
+ crop_right
411
+ crop_top
412
+ crop_bottom
413
+ Set the conformance window cropping offsets in the SPS. These
414
+ values will replace the current ones if the stream is already
415
+ cropped.
416
+
417
+ These fields are set in pixels. Note that some sizes may not be
418
+ representable if the chroma is subsampled (H.265 section
419
+ 7.4.3.2.1).
420
+
421
+ level
422
+ Set the level in the VPS and SPS. See H.265 section A.4 and tables
423
+ A.6 and A.7.
424
+
425
+ The argument must be the name of a level (for example, 5.1), a
426
+ general_level_idc value (for example, 153 for level 5.1), or the
427
+ special name auto indicating that the filter should attempt to
428
+ guess the level from the input stream properties.
429
+
430
+ hevc_mp4toannexb
431
+ Convert an HEVC/H.265 bitstream from length prefixed mode to start code
432
+ prefixed mode (as defined in the Annex B of the ITU-T H.265
433
+ specification).
434
+
435
+ This is required by some streaming formats, typically the MPEG-2
436
+ transport stream format (muxer "mpegts").
437
+
438
+ For example to remux an MP4 file containing an HEVC stream to mpegts
439
+ format with ffmpeg, you can use the command:
440
+
441
+ ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
442
+
443
+ Please note that this filter is auto-inserted for MPEG-TS (muxer
444
+ "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
445
+
446
+ imxdump
447
+ Modifies the bitstream to fit in MOV and to be usable by the Final Cut
448
+ Pro decoder. This filter only applies to the mpeg2video codec, and is
449
+ likely not needed for Final Cut Pro 7 and newer with the appropriate
450
+ -tag:v.
451
+
452
+ For example, to remux 30 MB/sec NTSC IMX to MOV:
453
+
454
+ ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
455
+
456
+ mjpeg2jpeg
457
+ Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
458
+
459
+ MJPEG is a video codec wherein each video frame is essentially a JPEG
460
+ image. The individual frames can be extracted without loss, e.g. by
461
+
462
+ ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
463
+
464
+ Unfortunately, these chunks are incomplete JPEG images, because they
465
+ lack the DHT segment required for decoding. Quoting from
466
+ <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
467
+
468
+ Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
469
+ commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
470
+ fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
471
+ table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
472
+ use basic Huffman encoding, not arithmetic or progressive. . . . You
473
+ can indeed extract the MJPEG frames and decode them with a regular JPEG
474
+ decoder, but you have to prepend the DHT segment to them, or else the
475
+ decoder won't have any idea how to decompress the data. The exact table
476
+ necessary is given in the OpenDML spec."
477
+
478
+ This bitstream filter patches the header of frames extracted from an
479
+ MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
480
+ produce fully qualified JPEG images.
481
+
482
+ ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
483
+ exiftran -i -9 frame*.jpg
484
+ ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
485
+
486
+ mjpegadump
487
+ Add an MJPEG A header to the bitstream, to enable decoding by
488
+ Quicktime.
489
+
490
+ mov2textsub
491
+ Extract a representable text file from MOV subtitles, stripping the
492
+ metadata header from each subtitle packet.
493
+
494
+ See also the text2movsub filter.
495
+
496
+ mpeg2_metadata
497
+ Modify metadata embedded in an MPEG-2 stream.
498
+
499
+ display_aspect_ratio
500
+ Set the display aspect ratio in the stream.
501
+
502
+ The following fixed values are supported:
503
+
504
+ 4/3
505
+ 16/9
506
+ 221/100
507
+
508
+ Any other value will result in square pixels being signalled
509
+ instead (see H.262 section 6.3.3 and table 6-3).
510
+
511
+ frame_rate
512
+ Set the frame rate in the stream. This is constructed from a table
513
+ of known values combined with a small multiplier and divisor - if
514
+ the supplied value is not exactly representable, the nearest
515
+ representable value will be used instead (see H.262 section 6.3.3
516
+ and table 6-4).
517
+
518
+ video_format
519
+ Set the video format in the stream (see H.262 section 6.3.6 and
520
+ table 6-6).
521
+
522
+ colour_primaries
523
+ transfer_characteristics
524
+ matrix_coefficients
525
+ Set the colour description in the stream (see H.262 section 6.3.6
526
+ and tables 6-7, 6-8 and 6-9).
527
+
528
+ mpeg4_unpack_bframes
529
+ Unpack DivX-style packed B-frames.
530
+
531
+ DivX-style packed B-frames are not valid MPEG-4 and were only a
532
+ workaround for the broken Video for Windows subsystem. They use more
533
+ space, can cause minor AV sync issues, require more CPU power to decode
534
+ (unless the player has some decoded picture queue to compensate the
535
+ 2,0,2,0 frame per packet style) and cause trouble if copied into a
536
+ standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
537
+ not be able to decode them, since they are not valid MPEG-4.
538
+
539
+ For example to fix an AVI file containing an MPEG-4 stream with DivX-
540
+ style packed B-frames using ffmpeg, you can use the command:
541
+
542
+ ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
543
+
544
+ noise
545
+ Damages the contents of packets or simply drops them without damaging
546
+ the container. Can be used for fuzzing or testing error
547
+ resilience/concealment.
548
+
549
+ Parameters:
550
+
551
+ amount
552
+ Accepts an expression whose evaluation per-packet determines how
553
+ often bytes in that packet will be modified. A value below 0 will
554
+ result in a variable frequency. Default is 0 which results in no
555
+ modification. However, if neither amount nor drop is specified,
556
+ amount will be set to -1. See below for accepted variables.
557
+
558
+ drop
559
+ Accepts an expression evaluated per-packet whose value determines
560
+ whether that packet is dropped. Evaluation to a positive value
561
+ results in the packet being dropped. Evaluation to a negative value
562
+ results in a variable chance of it being dropped, roughly inverse
563
+ in proportion to the magnitude of the value. Default is 0 which
564
+ results in no drops. See below for accepted variables.
565
+
566
+ dropamount
567
+ Accepts a non-negative integer, which assigns a variable chance of
568
+ it being dropped, roughly inverse in proportion to the value.
569
+ Default is 0 which results in no drops. This option is kept for
570
+ backwards compatibility and is equivalent to setting drop to a
571
+ negative value with the same magnitude i.e. "dropamount=4" is the
572
+ same as "drop=-4". Ignored if drop is also specified.
573
+
574
+ Both "amount" and "drop" accept expressions containing the following
575
+ variables:
576
+
577
+ n The index of the packet, starting from zero.
578
+
579
+ tb The timebase for packet timestamps.
580
+
581
+ pts Packet presentation timestamp.
582
+
583
+ dts Packet decoding timestamp.
584
+
585
+ nopts
586
+ Constant representing AV_NOPTS_VALUE.
587
+
588
+ startpts
589
+ First non-AV_NOPTS_VALUE PTS seen in the stream.
590
+
591
+ startdts
592
+ First non-AV_NOPTS_VALUE DTS seen in the stream.
593
+
594
+ duration
595
+ d Packet duration, in timebase units.
596
+
597
+ pos Packet position in input; may be -1 when unknown or not set.
598
+
599
+ size
600
+ Packet size, in bytes.
601
+
602
+ key Whether packet is marked as a keyframe.
603
+
604
+ state
605
+ A pseudo random integer, primarily derived from the content of
606
+ packet payload.
607
+
608
+ Examples
609
+
610
+ Apply modification to every byte but don't drop any packets.
611
+
612
+ ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
613
+
614
+ Drop every video packet not marked as a keyframe after timestamp 30s
615
+ but do not modify any of the remaining packets.
616
+
617
+ ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
618
+
619
+ Drop one second of audio every 10 seconds and add some random noise to
620
+ the rest.
621
+
622
+ ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
623
+
624
+ null
625
+ This bitstream filter passes the packets through unchanged.
626
+
627
+ pcm_rechunk
628
+ Repacketize PCM audio to a fixed number of samples per packet or a
629
+ fixed packet rate per second. This is similar to the asetnsamples audio
630
+ filter but works on audio packets instead of audio frames.
631
+
632
+ nb_out_samples, n
633
+ Set the number of samples per each output audio packet. The number
634
+ is intended as the number of samples per each channel. Default
635
+ value is 1024.
636
+
637
+ pad, p
638
+ If set to 1, the filter will pad the last audio packet with
639
+ silence, so that it will contain the same number of samples (or
640
+ roughly the same number of samples, see frame_rate) as the previous
641
+ ones. Default value is 1.
642
+
643
+ frame_rate, r
644
+ This option makes the filter output a fixed number of packets per
645
+ second instead of a fixed number of samples per packet. If the
646
+ audio sample rate is not divisible by the frame rate then the
647
+ number of samples will not be constant but will vary slightly so
648
+ that each packet will start as close to the frame boundary as
649
+ possible. Using this option has precedence over nb_out_samples.
650
+
651
+ You can generate the well known 1602-1601-1602-1601-1602 pattern of
652
+ 48kHz audio for NTSC frame rate using the frame_rate option.
653
+
654
+ ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
655
+
656
+ pgs_frame_merge
657
+ Merge a sequence of PGS Subtitle segments ending with an "end of
658
+ display set" segment into a single packet.
659
+
660
+ This is required by some containers that support PGS subtitles (muxer
661
+ "matroska").
662
+
663
+ prores_metadata
664
+ Modify color property metadata embedded in prores stream.
665
+
666
+ color_primaries
667
+ Set the color primaries. Available values are:
668
+
669
+ auto
670
+ Keep the same color primaries property (default).
671
+
672
+ unknown
673
+ bt709
674
+ bt470bg
675
+ BT601 625
676
+
677
+ smpte170m
678
+ BT601 525
679
+
680
+ bt2020
681
+ smpte431
682
+ DCI P3
683
+
684
+ smpte432
685
+ P3 D65
686
+
687
+ transfer_characteristics
688
+ Set the color transfer. Available values are:
689
+
690
+ auto
691
+ Keep the same transfer characteristics property (default).
692
+
693
+ unknown
694
+ bt709
695
+ BT 601, BT 709, BT 2020
696
+
697
+ smpte2084
698
+ SMPTE ST 2084
699
+
700
+ arib-std-b67
701
+ ARIB STD-B67
702
+
703
+ matrix_coefficients
704
+ Set the matrix coefficient. Available values are:
705
+
706
+ auto
707
+ Keep the same colorspace property (default).
708
+
709
+ unknown
710
+ bt709
711
+ smpte170m
712
+ BT 601
713
+
714
+ bt2020nc
715
+
716
+ Set Rec709 colorspace for each frame of the file
717
+
718
+ ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
719
+
720
+ Set Hybrid Log-Gamma parameters for each frame of the file
721
+
722
+ ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
723
+
724
+ remove_extra
725
+ Remove extradata from packets.
726
+
727
+ It accepts the following parameter:
728
+
729
+ freq
730
+ Set which frame types to remove extradata from.
731
+
732
+ k Remove extradata from non-keyframes only.
733
+
734
+ keyframe
735
+ Remove extradata from keyframes only.
736
+
737
+ e, all
738
+ Remove extradata from all frames.
739
+
740
+ setts
741
+ Set PTS and DTS in packets.
742
+
743
+ It accepts the following parameters:
744
+
745
+ ts
746
+ pts
747
+ dts Set expressions for PTS, DTS or both.
748
+
749
+ duration
750
+ Set expression for duration.
751
+
752
+ time_base
753
+ Set output time base.
754
+
755
+ The expressions are evaluated through the eval API and can contain the
756
+ following constants:
757
+
758
+ N The count of the input packet. Starting from 0.
759
+
760
+ TS The demux timestamp in input in case of "ts" or "dts" option or
761
+ presentation timestamp in case of "pts" option.
762
+
763
+ POS The original position in the file of the packet, or undefined if
764
+ undefined for the current packet
765
+
766
+ DTS The demux timestamp in input.
767
+
768
+ PTS The presentation timestamp in input.
769
+
770
+ DURATION
771
+ The duration in input.
772
+
773
+ STARTDTS
774
+ The DTS of the first packet.
775
+
776
+ STARTPTS
777
+ The PTS of the first packet.
778
+
779
+ PREV_INDTS
780
+ The previous input DTS.
781
+
782
+ PREV_INPTS
783
+ The previous input PTS.
784
+
785
+ PREV_INDURATION
786
+ The previous input duration.
787
+
788
+ PREV_OUTDTS
789
+ The previous output DTS.
790
+
791
+ PREV_OUTPTS
792
+ The previous output PTS.
793
+
794
+ PREV_OUTDURATION
795
+ The previous output duration.
796
+
797
+ NEXT_DTS
798
+ The next input DTS.
799
+
800
+ NEXT_PTS
801
+ The next input PTS.
802
+
803
+ NEXT_DURATION
804
+ The next input duration.
805
+
806
+ TB The timebase of stream packet belongs.
807
+
808
+ TB_OUT
809
+ The output timebase.
810
+
811
+ SR The sample rate of stream packet belongs.
812
+
813
+ NOPTS
814
+ The AV_NOPTS_VALUE constant.
815
+
816
+ For example, to set PTS equal to DTS (not recommended if B-frames are
817
+ involved):
818
+
819
+ ffmpeg -i INPUT -c:a copy -bsf:a setts=pts=DTS out.mkv
820
+
821
+ showinfo
822
+ Log basic packet information. Mainly useful for testing, debugging, and
823
+ development.
824
+
825
+ text2movsub
826
+ Convert text subtitles to MOV subtitles (as used by the "mov_text"
827
+ codec) with metadata headers.
828
+
829
+ See also the mov2textsub filter.
830
+
831
+ trace_headers
832
+ Log trace output containing all syntax elements in the coded stream
833
+ headers (everything above the level of individual coded blocks). This
834
+ can be useful for debugging low-level stream issues.
835
+
836
+ Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
837
+ the build only a subset of these may be available.
838
+
839
+ truehd_core
840
+ Extract the core from a TrueHD stream, dropping ATMOS data.
841
+
842
+ vp9_metadata
843
+ Modify metadata embedded in a VP9 stream.
844
+
845
+ color_space
846
+ Set the color space value in the frame header. Note that any frame
847
+ set to RGB will be implicitly set to PC range and that RGB is
848
+ incompatible with profiles 0 and 2.
849
+
850
+ unknown
851
+ bt601
852
+ bt709
853
+ smpte170
854
+ smpte240
855
+ bt2020
856
+ rgb
857
+ color_range
858
+ Set the color range value in the frame header. Note that any value
859
+ imposed by the color space will take precedence over this value.
860
+
861
+ tv
862
+ pc
863
+
864
+ vp9_superframe
865
+ Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
866
+ fixes merging of split/segmented VP9 streams where the alt-ref frame
867
+ was split from its visible counterpart.
868
+
869
+ vp9_superframe_split
870
+ Split VP9 superframes into single frames.
871
+
872
+ vp9_raw_reorder
873
+ Given a VP9 stream with correct timestamps but possibly out of order,
874
+ insert additional show-existing-frame packets to correct the ordering.
875
+
876
+ SEE ALSO
877
+ ffmpeg(1), ffplay(1), ffprobe(1), libavcodec(3)
878
+
879
+ AUTHORS
880
+ The FFmpeg developers.
881
+
882
+ For details about the authorship, see the Git history of the project
883
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
884
+ the FFmpeg source directory, or browsing the online repository at
885
+ <https://git.ffmpeg.org/ffmpeg>.
886
+
887
+ Maintainers for the specific components are listed in the file
888
+ MAINTAINERS in the source code tree.
889
+
890
+ FFMPEG-BITSTREAM-FILTERS(1)
ffmpeg/manpages/ffmpeg-codecs.txt ADDED
The diff for this file is too large to render. See raw diff
 
ffmpeg/manpages/ffmpeg-devices.txt ADDED
@@ -0,0 +1,1915 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFMPEG-DEVICES(1) FFMPEG-DEVICES(1)
2
+
3
+ NAME
4
+ ffmpeg-devices - FFmpeg devices
5
+
6
+ DESCRIPTION
7
+ This document describes the input and output devices provided by the
8
+ libavdevice library.
9
+
10
+ DEVICE OPTIONS
11
+ The libavdevice library provides the same interface as libavformat.
12
+ Namely, an input device is considered like a demuxer, and an output
13
+ device like a muxer, and the interface and generic device options are
14
+ the same provided by libavformat (see the ffmpeg-formats manual).
15
+
16
+ In addition each input or output device may support so-called private
17
+ options, which are specific for that component.
18
+
19
+ Options may be set by specifying -option value in the FFmpeg tools, or
20
+ by setting the value explicitly in the device "AVFormatContext" options
21
+ or using the libavutil/opt.h API for programmatic use.
22
+
23
+ INPUT DEVICES
24
+ Input devices are configured elements in FFmpeg which enable accessing
25
+ the data coming from a multimedia device attached to your system.
26
+
27
+ When you configure your FFmpeg build, all the supported input devices
28
+ are enabled by default. You can list all available ones using the
29
+ configure option "--list-indevs".
30
+
31
+ You can disable all the input devices using the configure option
32
+ "--disable-indevs", and selectively enable an input device using the
33
+ option "--enable-indev=INDEV", or you can disable a particular input
34
+ device using the option "--disable-indev=INDEV".
35
+
36
+ The option "-devices" of the ff* tools will display the list of
37
+ supported input devices.
38
+
39
+ A description of the currently available input devices follows.
40
+
41
+ alsa
42
+ ALSA (Advanced Linux Sound Architecture) input device.
43
+
44
+ To enable this input device during configuration you need libasound
45
+ installed on your system.
46
+
47
+ This device allows capturing from an ALSA device. The name of the
48
+ device to capture has to be an ALSA card identifier.
49
+
50
+ An ALSA identifier has the syntax:
51
+
52
+ hw:<CARD>[,<DEV>[,<SUBDEV>]]
53
+
54
+ where the DEV and SUBDEV components are optional.
55
+
56
+ The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
57
+ identifier, device number and subdevice number (-1 means any).
58
+
59
+ To see the list of cards currently recognized by your system check the
60
+ files /proc/asound/cards and /proc/asound/devices.
61
+
62
+ For example to capture with ffmpeg from an ALSA device with card id 0,
63
+ you may run the command:
64
+
65
+ ffmpeg -f alsa -i hw:0 alsaout.wav
66
+
67
+ For more information see:
68
+ <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
69
+
70
+ Options
71
+
72
+ sample_rate
73
+ Set the sample rate in Hz. Default is 48000.
74
+
75
+ channels
76
+ Set the number of channels. Default is 2.
77
+
78
+ android_camera
79
+ Android camera input device.
80
+
81
+ This input devices uses the Android Camera2 NDK API which is available
82
+ on devices with API level 24+. The availability of android_camera is
83
+ autodetected during configuration.
84
+
85
+ This device allows capturing from all cameras on an Android device,
86
+ which are integrated into the Camera2 NDK API.
87
+
88
+ The available cameras are enumerated internally and can be selected
89
+ with the camera_index parameter. The input file string is discarded.
90
+
91
+ Generally the back facing camera has index 0 while the front facing
92
+ camera has index 1.
93
+
94
+ Options
95
+
96
+ video_size
97
+ Set the video size given as a string such as 640x480 or hd720.
98
+ Falls back to the first available configuration reported by Android
99
+ if requested video size is not available or by default.
100
+
101
+ framerate
102
+ Set the video framerate. Falls back to the first available
103
+ configuration reported by Android if requested framerate is not
104
+ available or by default (-1).
105
+
106
+ camera_index
107
+ Set the index of the camera to use. Default is 0.
108
+
109
+ input_queue_size
110
+ Set the maximum number of frames to buffer. Default is 5.
111
+
112
+ avfoundation
113
+ AVFoundation input device.
114
+
115
+ AVFoundation is the currently recommended framework by Apple for
116
+ streamgrabbing on OSX >= 10.7 as well as on iOS.
117
+
118
+ The input filename has to be given in the following syntax:
119
+
120
+ -i "[[VIDEO]:[AUDIO]]"
121
+
122
+ The first entry selects the video input while the latter selects the
123
+ audio input. The stream has to be specified by the device name or the
124
+ device index as shown by the device list. Alternatively, the video
125
+ and/or audio input device can be chosen by index using the
126
+
127
+ B<-video_device_index E<lt>INDEXE<gt>>
128
+
129
+ and/or
130
+
131
+ B<-audio_device_index E<lt>INDEXE<gt>>
132
+
133
+ , overriding any device name or index given in the input filename.
134
+
135
+ All available devices can be enumerated by using -list_devices true,
136
+ listing all device names and corresponding indices.
137
+
138
+ There are two device name aliases:
139
+
140
+ "default"
141
+ Select the AVFoundation default device of the corresponding type.
142
+
143
+ "none"
144
+ Do not record the corresponding media type. This is equivalent to
145
+ specifying an empty device name or index.
146
+
147
+ Options
148
+
149
+ AVFoundation supports the following options:
150
+
151
+ -list_devices <TRUE|FALSE>
152
+ If set to true, a list of all available input devices is given
153
+ showing all device names and indices.
154
+
155
+ -video_device_index <INDEX>
156
+ Specify the video device by its index. Overrides anything given in
157
+ the input filename.
158
+
159
+ -audio_device_index <INDEX>
160
+ Specify the audio device by its index. Overrides anything given in
161
+ the input filename.
162
+
163
+ -pixel_format <FORMAT>
164
+ Request the video device to use a specific pixel format. If the
165
+ specified format is not supported, a list of available formats is
166
+ given and the first one in this list is used instead. Available
167
+ pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
168
+ rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
169
+ bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
170
+ yuv422p10, yuv444p10,
171
+ yuv420p, nv12, yuyv422, gray"
172
+
173
+ -framerate
174
+ Set the grabbing frame rate. Default is "ntsc", corresponding to a
175
+ frame rate of "30000/1001".
176
+
177
+ -video_size
178
+ Set the video frame size.
179
+
180
+ -capture_cursor
181
+ Capture the mouse pointer. Default is 0.
182
+
183
+ -capture_mouse_clicks
184
+ Capture the screen mouse clicks. Default is 0.
185
+
186
+ -capture_raw_data
187
+ Capture the raw device data. Default is 0. Using this option may
188
+ result in receiving the underlying data delivered to the
189
+ AVFoundation framework. E.g. for muxed devices that sends raw DV
190
+ data to the framework (like tape-based camcorders), setting this
191
+ option to false results in extracted video frames captured in the
192
+ designated pixel format only. Setting this option to true results
193
+ in receiving the raw DV stream untouched.
194
+
195
+ Examples
196
+
197
+ o Print the list of AVFoundation supported devices and exit:
198
+
199
+ $ ffmpeg -f avfoundation -list_devices true -i ""
200
+
201
+ o Record video from video device 0 and audio from audio device 0 into
202
+ out.avi:
203
+
204
+ $ ffmpeg -f avfoundation -i "0:0" out.avi
205
+
206
+ o Record video from video device 2 and audio from audio device 1 into
207
+ out.avi:
208
+
209
+ $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
210
+
211
+ o Record video from the system default video device using the pixel
212
+ format bgr0 and do not record any audio into out.avi:
213
+
214
+ $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
215
+
216
+ o Record raw DV data from a suitable input device and write the
217
+ output into out.dv:
218
+
219
+ $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
220
+
221
+ bktr
222
+ BSD video input device. Deprecated and will be removed - please contact
223
+ the developers if you are interested in maintaining it.
224
+
225
+ Options
226
+
227
+ framerate
228
+ Set the frame rate.
229
+
230
+ video_size
231
+ Set the video frame size. Default is "vga".
232
+
233
+ standard
234
+ Available values are:
235
+
236
+ pal
237
+ ntsc
238
+ secam
239
+ paln
240
+ palm
241
+ ntscj
242
+
243
+ decklink
244
+ The decklink input device provides capture capabilities for Blackmagic
245
+ DeckLink devices.
246
+
247
+ To enable this input device, you need the Blackmagic DeckLink SDK and
248
+ you need to configure with the appropriate "--extra-cflags" and
249
+ "--extra-ldflags". On Windows, you need to run the IDL files through
250
+ widl.
251
+
252
+ DeckLink is very picky about the formats it supports. Pixel format of
253
+ the input can be set with raw_format. Framerate and video size must be
254
+ determined for your device with -list_formats 1. Audio sample rate is
255
+ always 48 kHz and the number of channels can be 2, 8 or 16. Note that
256
+ all audio channels are bundled in one single audio track.
257
+
258
+ Options
259
+
260
+ list_devices
261
+ If set to true, print a list of devices and exit. Defaults to
262
+ false. This option is deprecated, please use the "-sources" option
263
+ of ffmpeg to list the available input devices.
264
+
265
+ list_formats
266
+ If set to true, print a list of supported formats and exit.
267
+ Defaults to false.
268
+
269
+ format_code <FourCC>
270
+ This sets the input video format to the format given by the FourCC.
271
+ To see the supported values of your device(s) use list_formats.
272
+ Note that there is a FourCC 'pal ' that can also be used as pal (3
273
+ letters). Default behavior is autodetection of the input video
274
+ format, if the hardware supports it.
275
+
276
+ raw_format
277
+ Set the pixel format of the captured video. Available values are:
278
+
279
+ auto
280
+ This is the default which means 8-bit YUV 422 or 8-bit ARGB if
281
+ format autodetection is used, 8-bit YUV 422 otherwise.
282
+
283
+ uyvy422
284
+ 8-bit YUV 422.
285
+
286
+ yuv422p10
287
+ 10-bit YUV 422.
288
+
289
+ argb
290
+ 8-bit RGB.
291
+
292
+ bgra
293
+ 8-bit RGB.
294
+
295
+ rgb10
296
+ 10-bit RGB.
297
+
298
+ teletext_lines
299
+ If set to nonzero, an additional teletext stream will be captured
300
+ from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
301
+ or 1080p) sources are supported. In case of HD sources, OP47
302
+ packets are decoded.
303
+
304
+ This option is a bitmask of the SD PAL VBI lines captured,
305
+ specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
306
+ in the mask. Selected lines which do not contain teletext
307
+ information will be ignored. You can use the special all constant
308
+ to select all possible lines, or standard to skip lines 6, 318 and
309
+ 319, which are not compatible with all receivers.
310
+
311
+ For SD sources, ffmpeg needs to be compiled with
312
+ "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
313
+ models you have to capture in 10 bit mode.
314
+
315
+ channels
316
+ Defines number of audio channels to capture. Must be 2, 8 or 16.
317
+ Defaults to 2.
318
+
319
+ duplex_mode
320
+ Sets the decklink device duplex/profile mode. Must be unset, half,
321
+ full, one_sub_device_full, one_sub_device_half,
322
+ two_sub_device_full, four_sub_device_half Defaults to unset.
323
+
324
+ Note: DeckLink SDK 11.0 have replaced the duplex property by a
325
+ profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
326
+ profile is shared between any 2 sub-devices that utilize the same
327
+ connectors. For the DeckLink 8K Pro, a profile is shared between
328
+ all 4 sub-devices. So DeckLink 8K Pro support four profiles.
329
+
330
+ Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
331
+ one_sub_device_full, one_sub_device_half, two_sub_device_full,
332
+ four_sub_device_half
333
+
334
+ Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
335
+ full
336
+
337
+ timecode_format
338
+ Timecode type to include in the frame and video stream metadata.
339
+ Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
340
+ vitc, vitc2, or serial. Defaults to none (not included).
341
+
342
+ In order to properly support 50/60 fps timecodes, the ordering of
343
+ the queried timecode types for rp188any is HFR, VITC1, VITC2 and
344
+ LTC for >30 fps content. Note that this is slightly different to
345
+ the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
346
+ VITC2.
347
+
348
+ video_input
349
+ Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
350
+ component, composite or s_video. Defaults to unset.
351
+
352
+ audio_input
353
+ Sets the audio input source. Must be unset, embedded, aes_ebu,
354
+ analog, analog_xlr, analog_rca or microphone. Defaults to unset.
355
+
356
+ video_pts
357
+ Sets the video packet timestamp source. Must be video, audio,
358
+ reference, wallclock or abs_wallclock. Defaults to video.
359
+
360
+ audio_pts
361
+ Sets the audio packet timestamp source. Must be video, audio,
362
+ reference, wallclock or abs_wallclock. Defaults to audio.
363
+
364
+ draw_bars
365
+ If set to true, color bars are drawn in the event of a signal loss.
366
+ Defaults to true.
367
+
368
+ queue_size
369
+ Sets maximum input buffer size in bytes. If the buffering reaches
370
+ this value, incoming frames will be dropped. Defaults to
371
+ 1073741824.
372
+
373
+ audio_depth
374
+ Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
375
+
376
+ decklink_copyts
377
+ If set to true, timestamps are forwarded as they are without
378
+ removing the initial offset. Defaults to false.
379
+
380
+ timestamp_align
381
+ Capture start time alignment in seconds. If set to nonzero, input
382
+ frames are dropped till the system timestamp aligns with configured
383
+ value. Alignment difference of up to one frame duration is
384
+ tolerated. This is useful for maintaining input synchronization
385
+ across N different hardware devices deployed for 'N-way'
386
+ redundancy. The system time of different hardware devices should be
387
+ synchronized with protocols such as NTP or PTP, before using this
388
+ option. Note that this method is not foolproof. In some border
389
+ cases input synchronization may not happen due to thread scheduling
390
+ jitters in the OS. Either sync could go wrong by 1 frame or in a
391
+ rarer case timestamp_align seconds. Defaults to 0.
392
+
393
+ wait_for_tc (bool)
394
+ Drop frames till a frame with timecode is received. Sometimes
395
+ serial timecode isn't received with the first input frame. If that
396
+ happens, the stored stream timecode will be inaccurate. If this
397
+ option is set to true, input frames are dropped till a frame with
398
+ timecode is received. Option timecode_format must be specified.
399
+ Defaults to false.
400
+
401
+ enable_klv(bool)
402
+ If set to true, extracts KLV data from VANC and outputs KLV
403
+ packets. KLV VANC packets are joined based on MID and PSC fields
404
+ and aggregated into one KLV packet. Defaults to false.
405
+
406
+ Examples
407
+
408
+ o List input devices:
409
+
410
+ ffmpeg -sources decklink
411
+
412
+ o List supported formats:
413
+
414
+ ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
415
+
416
+ o Capture video clip at 1080i50:
417
+
418
+ ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
419
+
420
+ o Capture video clip at 1080i50 10 bit:
421
+
422
+ ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
423
+
424
+ o Capture video clip at 1080i50 with 16 audio channels:
425
+
426
+ ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
427
+
428
+ dshow
429
+ Windows DirectShow input device.
430
+
431
+ DirectShow support is enabled when FFmpeg is built with the mingw-w64
432
+ project. Currently only audio and video devices are supported.
433
+
434
+ Multiple devices may be opened as separate inputs, but they may also be
435
+ opened on the same input, which should improve synchronism between
436
+ them.
437
+
438
+ The input name should be in the format:
439
+
440
+ <TYPE>=<NAME>[:<TYPE>=<NAME>]
441
+
442
+ where TYPE can be either audio or video, and NAME is the device's name
443
+ or alternative name..
444
+
445
+ Options
446
+
447
+ If no options are specified, the device's defaults are used. If the
448
+ device does not support the requested options, it will fail to open.
449
+
450
+ video_size
451
+ Set the video size in the captured video.
452
+
453
+ framerate
454
+ Set the frame rate in the captured video.
455
+
456
+ sample_rate
457
+ Set the sample rate (in Hz) of the captured audio.
458
+
459
+ sample_size
460
+ Set the sample size (in bits) of the captured audio.
461
+
462
+ channels
463
+ Set the number of channels in the captured audio.
464
+
465
+ list_devices
466
+ If set to true, print a list of devices and exit.
467
+
468
+ list_options
469
+ If set to true, print a list of selected device's options and exit.
470
+
471
+ video_device_number
472
+ Set video device number for devices with the same name (starts at
473
+ 0, defaults to 0).
474
+
475
+ audio_device_number
476
+ Set audio device number for devices with the same name (starts at
477
+ 0, defaults to 0).
478
+
479
+ pixel_format
480
+ Select pixel format to be used by DirectShow. This may only be set
481
+ when the video codec is not set or set to rawvideo.
482
+
483
+ audio_buffer_size
484
+ Set audio device buffer size in milliseconds (which can directly
485
+ impact latency, depending on the device). Defaults to using the
486
+ audio device's default buffer size (typically some multiple of
487
+ 500ms). Setting this value too low can degrade performance. See
488
+ also
489
+ <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
490
+
491
+ video_pin_name
492
+ Select video capture pin to use by name or alternative name.
493
+
494
+ audio_pin_name
495
+ Select audio capture pin to use by name or alternative name.
496
+
497
+ crossbar_video_input_pin_number
498
+ Select video input pin number for crossbar device. This will be
499
+ routed to the crossbar device's Video Decoder output pin. Note
500
+ that changing this value can affect future invocations (sets a new
501
+ default) until system reboot occurs.
502
+
503
+ crossbar_audio_input_pin_number
504
+ Select audio input pin number for crossbar device. This will be
505
+ routed to the crossbar device's Audio Decoder output pin. Note
506
+ that changing this value can affect future invocations (sets a new
507
+ default) until system reboot occurs.
508
+
509
+ show_video_device_dialog
510
+ If set to true, before capture starts, popup a display dialog to
511
+ the end user, allowing them to change video filter properties and
512
+ configurations manually. Note that for crossbar devices, adjusting
513
+ values in this dialog may be needed at times to toggle between PAL
514
+ (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
515
+ etc. Changing these values can enable different scan rates/frame
516
+ rates and avoiding green bars at the bottom, flickering scan lines,
517
+ etc. Note that with some devices, changing these properties can
518
+ also affect future invocations (sets new defaults) until system
519
+ reboot occurs.
520
+
521
+ show_audio_device_dialog
522
+ If set to true, before capture starts, popup a display dialog to
523
+ the end user, allowing them to change audio filter properties and
524
+ configurations manually.
525
+
526
+ show_video_crossbar_connection_dialog
527
+ If set to true, before capture starts, popup a display dialog to
528
+ the end user, allowing them to manually modify crossbar pin
529
+ routings, when it opens a video device.
530
+
531
+ show_audio_crossbar_connection_dialog
532
+ If set to true, before capture starts, popup a display dialog to
533
+ the end user, allowing them to manually modify crossbar pin
534
+ routings, when it opens an audio device.
535
+
536
+ show_analog_tv_tuner_dialog
537
+ If set to true, before capture starts, popup a display dialog to
538
+ the end user, allowing them to manually modify TV channels and
539
+ frequencies.
540
+
541
+ show_analog_tv_tuner_audio_dialog
542
+ If set to true, before capture starts, popup a display dialog to
543
+ the end user, allowing them to manually modify TV audio (like mono
544
+ vs. stereo, Language A,B or C).
545
+
546
+ audio_device_load
547
+ Load an audio capture filter device from file instead of searching
548
+ it by name. It may load additional parameters too, if the filter
549
+ supports the serialization of its properties to. To use this an
550
+ audio capture source has to be specified, but it can be anything
551
+ even fake one.
552
+
553
+ audio_device_save
554
+ Save the currently used audio capture filter device and its
555
+ parameters (if the filter supports it) to a file. If a file with
556
+ the same name exists it will be overwritten.
557
+
558
+ video_device_load
559
+ Load a video capture filter device from file instead of searching
560
+ it by name. It may load additional parameters too, if the filter
561
+ supports the serialization of its properties to. To use this a
562
+ video capture source has to be specified, but it can be anything
563
+ even fake one.
564
+
565
+ video_device_save
566
+ Save the currently used video capture filter device and its
567
+ parameters (if the filter supports it) to a file. If a file with
568
+ the same name exists it will be overwritten.
569
+
570
+ use_video_device_timestamps
571
+ If set to false, the timestamp for video frames will be derived
572
+ from the wallclock instead of the timestamp provided by the capture
573
+ device. This allows working around devices that provide unreliable
574
+ timestamps.
575
+
576
+ Examples
577
+
578
+ o Print the list of DirectShow supported devices and exit:
579
+
580
+ $ ffmpeg -list_devices true -f dshow -i dummy
581
+
582
+ o Open video device Camera:
583
+
584
+ $ ffmpeg -f dshow -i video="Camera"
585
+
586
+ o Open second video device with name Camera:
587
+
588
+ $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
589
+
590
+ o Open video device Camera and audio device Microphone:
591
+
592
+ $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
593
+
594
+ o Print the list of supported options in selected device and exit:
595
+
596
+ $ ffmpeg -list_options true -f dshow -i video="Camera"
597
+
598
+ o Specify pin names to capture by name or alternative name, specify
599
+ alternative device name:
600
+
601
+ $ ffmpeg -f dshow -audio_pin_name "Audio Out" -video_pin_name 2 -i video=video="@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ca465100-deb0-4d59-818f-8c477184adf6}":audio="Microphone"
602
+
603
+ o Configure a crossbar device, specifying crossbar pins, allow user
604
+ to adjust video capture properties at startup:
605
+
606
+ $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
607
+ -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
608
+
609
+ fbdev
610
+ Linux framebuffer input device.
611
+
612
+ The Linux framebuffer is a graphic hardware-independent abstraction
613
+ layer to show graphics on a computer monitor, typically on the console.
614
+ It is accessed through a file device node, usually /dev/fb0.
615
+
616
+ For more detailed information read the file
617
+ Documentation/fb/framebuffer.txt included in the Linux source tree.
618
+
619
+ See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
620
+
621
+ To record from the framebuffer device /dev/fb0 with ffmpeg:
622
+
623
+ ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
624
+
625
+ You can take a single screenshot image with the command:
626
+
627
+ ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
628
+
629
+ Options
630
+
631
+ framerate
632
+ Set the frame rate. Default is 25.
633
+
634
+ gdigrab
635
+ Win32 GDI-based screen capture device.
636
+
637
+ This device allows you to capture a region of the display on Windows.
638
+
639
+ Amongst options for the imput filenames are such elements as:
640
+
641
+ desktop
642
+
643
+ or
644
+
645
+ title=<window_title>
646
+
647
+ or
648
+
649
+ hwnd=<window_hwnd>
650
+
651
+ The first option will capture the entire desktop, or a fixed region of
652
+ the desktop. The second and third options will instead capture the
653
+ contents of a single window, regardless of its position on the screen.
654
+
655
+ For example, to grab the entire desktop using ffmpeg:
656
+
657
+ ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
658
+
659
+ Grab a 640x480 region at position "10,20":
660
+
661
+ ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
662
+
663
+ Grab the contents of the window named "Calculator"
664
+
665
+ ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
666
+
667
+ Options
668
+
669
+ draw_mouse
670
+ Specify whether to draw the mouse pointer. Use the value 0 to not
671
+ draw the pointer. Default value is 1.
672
+
673
+ framerate
674
+ Set the grabbing frame rate. Default value is "ntsc", corresponding
675
+ to a frame rate of "30000/1001".
676
+
677
+ show_region
678
+ Show grabbed region on screen.
679
+
680
+ If show_region is specified with 1, then the grabbing region will
681
+ be indicated on screen. With this option, it is easy to know what
682
+ is being grabbed if only a portion of the screen is grabbed.
683
+
684
+ Note that show_region is incompatible with grabbing the contents of
685
+ a single window.
686
+
687
+ For example:
688
+
689
+ ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
690
+
691
+ video_size
692
+ Set the video frame size. The default is to capture the full screen
693
+ if desktop is selected, or the full window size if
694
+ title=window_title is selected.
695
+
696
+ offset_x
697
+ When capturing a region with video_size, set the distance from the
698
+ left edge of the screen or desktop.
699
+
700
+ Note that the offset calculation is from the top left corner of the
701
+ primary monitor on Windows. If you have a monitor positioned to the
702
+ left of your primary monitor, you will need to use a negative
703
+ offset_x value to move the region to that monitor.
704
+
705
+ offset_y
706
+ When capturing a region with video_size, set the distance from the
707
+ top edge of the screen or desktop.
708
+
709
+ Note that the offset calculation is from the top left corner of the
710
+ primary monitor on Windows. If you have a monitor positioned above
711
+ your primary monitor, you will need to use a negative offset_y
712
+ value to move the region to that monitor.
713
+
714
+ iec61883
715
+ FireWire DV/HDV input device using libiec61883.
716
+
717
+ To enable this input device, you need libiec61883, libraw1394 and
718
+ libavc1394 installed on your system. Use the configure option
719
+ "--enable-libiec61883" to compile with the device enabled.
720
+
721
+ The iec61883 capture device supports capturing from a video device
722
+ connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
723
+ FireWire stack (juju). This is the default DV/HDV input method in Linux
724
+ Kernel 2.6.37 and later, since the old FireWire stack was removed.
725
+
726
+ Specify the FireWire port to be used as input file, or "auto" to choose
727
+ the first port connected.
728
+
729
+ Options
730
+
731
+ dvtype
732
+ Override autodetection of DV/HDV. This should only be used if auto
733
+ detection does not work, or if usage of a different device type
734
+ should be prohibited. Treating a DV device as HDV (or vice versa)
735
+ will not work and result in undefined behavior. The values auto,
736
+ dv and hdv are supported.
737
+
738
+ dvbuffer
739
+ Set maximum size of buffer for incoming data, in frames. For DV,
740
+ this is an exact value. For HDV, it is not frame exact, since HDV
741
+ does not have a fixed frame size.
742
+
743
+ dvguid
744
+ Select the capture device by specifying its GUID. Capturing will
745
+ only be performed from the specified device and fails if no device
746
+ with the given GUID is found. This is useful to select the input if
747
+ multiple devices are connected at the same time. Look at
748
+ /sys/bus/firewire/devices to find out the GUIDs.
749
+
750
+ Examples
751
+
752
+ o Grab and show the input of a FireWire DV/HDV device.
753
+
754
+ ffplay -f iec61883 -i auto
755
+
756
+ o Grab and record the input of a FireWire DV/HDV device, using a
757
+ packet buffer of 100000 packets if the source is HDV.
758
+
759
+ ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
760
+
761
+ jack
762
+ JACK input device.
763
+
764
+ To enable this input device during configuration you need libjack
765
+ installed on your system.
766
+
767
+ A JACK input device creates one or more JACK writable clients, one for
768
+ each audio channel, with name client_name:input_N, where client_name is
769
+ the name provided by the application, and N is a number which
770
+ identifies the channel. Each writable client will send the acquired
771
+ data to the FFmpeg input device.
772
+
773
+ Once you have created one or more JACK readable clients, you need to
774
+ connect them to one or more JACK writable clients.
775
+
776
+ To connect or disconnect JACK clients you can use the jack_connect and
777
+ jack_disconnect programs, or do it through a graphical interface, for
778
+ example with qjackctl.
779
+
780
+ To list the JACK clients and their properties you can invoke the
781
+ command jack_lsp.
782
+
783
+ Follows an example which shows how to capture a JACK readable client
784
+ with ffmpeg.
785
+
786
+ # Create a JACK writable client with name "ffmpeg".
787
+ $ ffmpeg -f jack -i ffmpeg -y out.wav
788
+
789
+ # Start the sample jack_metro readable client.
790
+ $ jack_metro -b 120 -d 0.2 -f 4000
791
+
792
+ # List the current JACK clients.
793
+ $ jack_lsp -c
794
+ system:capture_1
795
+ system:capture_2
796
+ system:playback_1
797
+ system:playback_2
798
+ ffmpeg:input_1
799
+ metro:120_bpm
800
+
801
+ # Connect metro to the ffmpeg writable client.
802
+ $ jack_connect metro:120_bpm ffmpeg:input_1
803
+
804
+ For more information read: <http://jackaudio.org/>
805
+
806
+ Options
807
+
808
+ channels
809
+ Set the number of channels. Default is 2.
810
+
811
+ kmsgrab
812
+ KMS video input device.
813
+
814
+ Captures the KMS scanout framebuffer associated with a specified CRTC
815
+ or plane as a DRM object that can be passed to other hardware
816
+ functions.
817
+
818
+ Requires either DRM master or CAP_SYS_ADMIN to run.
819
+
820
+ If you don't understand what all of that means, you probably don't want
821
+ this. Look at x11grab instead.
822
+
823
+ Options
824
+
825
+ device
826
+ DRM device to capture on. Defaults to /dev/dri/card0.
827
+
828
+ format
829
+ Pixel format of the framebuffer. This can be autodetected if you
830
+ are running Linux 5.7 or later, but needs to be provided for
831
+ earlier versions. Defaults to bgr0, which is the most common
832
+ format used by the Linux console and Xorg X server.
833
+
834
+ format_modifier
835
+ Format modifier to signal on output frames. This is necessary to
836
+ import correctly into some APIs. It can be autodetected if you are
837
+ running Linux 5.7 or later, but will need to be provided explicitly
838
+ when needed in earlier versions. See the libdrm documentation for
839
+ possible values.
840
+
841
+ crtc_id
842
+ KMS CRTC ID to define the capture source. The first active plane
843
+ on the given CRTC will be used.
844
+
845
+ plane_id
846
+ KMS plane ID to define the capture source. Defaults to the first
847
+ active plane found if neither crtc_id nor plane_id are specified.
848
+
849
+ framerate
850
+ Framerate to capture at. This is not synchronised to any page
851
+ flipping or framebuffer changes - it just defines the interval at
852
+ which the framebuffer is sampled. Sampling faster than the
853
+ framebuffer update rate will generate independent frames with the
854
+ same content. Defaults to 30.
855
+
856
+ Examples
857
+
858
+ o Capture from the first active plane, download the result to normal
859
+ frames and encode. This will only work if the framebuffer is both
860
+ linear and mappable - if not, the result may be scrambled or fail
861
+ to download.
862
+
863
+ ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
864
+
865
+ o Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
866
+ to NV12 and encode as H.264.
867
+
868
+ ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
869
+
870
+ o To capture only part of a plane the output can be cropped - this
871
+ can be used to capture a single window, as long as it has a known
872
+ absolute position and size. For example, to capture and encode the
873
+ middle quarter of a 1920x1080 plane:
874
+
875
+ ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,crop=960:540:480:270,scale_vaapi=960:540:nv12' -c:v h264_vaapi output.mp4
876
+
877
+ lavfi
878
+ Libavfilter input virtual device.
879
+
880
+ This input device reads data from the open output pads of a libavfilter
881
+ filtergraph.
882
+
883
+ For each filtergraph open output, the input device will create a
884
+ corresponding stream which is mapped to the generated output. The
885
+ filtergraph is specified through the option graph.
886
+
887
+ Options
888
+
889
+ graph
890
+ Specify the filtergraph to use as input. Each video open output
891
+ must be labelled by a unique string of the form "outN", where N is
892
+ a number starting from 0 corresponding to the mapped input stream
893
+ generated by the device. The first unlabelled output is
894
+ automatically assigned to the "out0" label, but all the others need
895
+ to be specified explicitly.
896
+
897
+ The suffix "+subcc" can be appended to the output label to create
898
+ an extra stream with the closed captions packets attached to that
899
+ output (experimental; only for EIA-608 / CEA-708 for now). The
900
+ subcc streams are created after all the normal streams, in the
901
+ order of the corresponding stream. For example, if there is
902
+ "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
903
+ subcc for stream #7 and stream #44 is subcc for stream #19.
904
+
905
+ If not specified defaults to the filename specified for the input
906
+ device.
907
+
908
+ graph_file
909
+ Set the filename of the filtergraph to be read and sent to the
910
+ other filters. Syntax of the filtergraph is the same as the one
911
+ specified by the option graph.
912
+
913
+ dumpgraph
914
+ Dump graph to stderr.
915
+
916
+ Examples
917
+
918
+ o Create a color video stream and play it back with ffplay:
919
+
920
+ ffplay -f lavfi -graph "color=c=pink [out0]" dummy
921
+
922
+ o As the previous example, but use filename for specifying the graph
923
+ description, and omit the "out0" label:
924
+
925
+ ffplay -f lavfi color=c=pink
926
+
927
+ o Create three different video test filtered sources and play them:
928
+
929
+ ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
930
+
931
+ o Read an audio stream from a file using the amovie source and play
932
+ it back with ffplay:
933
+
934
+ ffplay -f lavfi "amovie=test.wav"
935
+
936
+ o Read an audio stream and a video stream and play it back with
937
+ ffplay:
938
+
939
+ ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
940
+
941
+ o Dump decoded frames to images and closed captions to a file
942
+ (experimental):
943
+
944
+ ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
945
+
946
+ libcdio
947
+ Audio-CD input device based on libcdio.
948
+
949
+ To enable this input device during configuration you need libcdio
950
+ installed on your system. It requires the configure option
951
+ "--enable-libcdio".
952
+
953
+ This device allows playing and grabbing from an Audio-CD.
954
+
955
+ For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
956
+ may run the command:
957
+
958
+ ffmpeg -f libcdio -i /dev/sr0 cd.wav
959
+
960
+ Options
961
+
962
+ speed
963
+ Set drive reading speed. Default value is 0.
964
+
965
+ The speed is specified CD-ROM speed units. The speed is set through
966
+ the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
967
+ specifying a value too large will result in using the fastest
968
+ speed.
969
+
970
+ paranoia_mode
971
+ Set paranoia recovery mode flags. It accepts one of the following
972
+ values:
973
+
974
+ disable
975
+ verify
976
+ overlap
977
+ neverskip
978
+ full
979
+
980
+ Default value is disable.
981
+
982
+ For more information about the available recovery modes, consult
983
+ the paranoia project documentation.
984
+
985
+ libdc1394
986
+ IIDC1394 input device, based on libdc1394 and libraw1394.
987
+
988
+ Requires the configure option "--enable-libdc1394".
989
+
990
+ Options
991
+
992
+ framerate
993
+ Set the frame rate. Default is "ntsc", corresponding to a frame
994
+ rate of "30000/1001".
995
+
996
+ pixel_format
997
+ Select the pixel format. Default is "uyvy422".
998
+
999
+ video_size
1000
+ Set the video size given as a string such as "640x480" or "hd720".
1001
+ Default is "qvga".
1002
+
1003
+ openal
1004
+ The OpenAL input device provides audio capture on all systems with a
1005
+ working OpenAL 1.1 implementation.
1006
+
1007
+ To enable this input device during configuration, you need OpenAL
1008
+ headers and libraries installed on your system, and need to configure
1009
+ FFmpeg with "--enable-openal".
1010
+
1011
+ OpenAL headers and libraries should be provided as part of your OpenAL
1012
+ implementation, or as an additional download (an SDK). Depending on
1013
+ your installation you may need to specify additional flags via the
1014
+ "--extra-cflags" and "--extra-ldflags" for allowing the build system to
1015
+ locate the OpenAL headers and libraries.
1016
+
1017
+ An incomplete list of OpenAL implementations follows:
1018
+
1019
+ Creative
1020
+ The official Windows implementation, providing hardware
1021
+ acceleration with supported devices and software fallback. See
1022
+ <http://openal.org/>.
1023
+
1024
+ OpenAL Soft
1025
+ Portable, open source (LGPL) software implementation. Includes
1026
+ backends for the most common sound APIs on the Windows, Linux,
1027
+ Solaris, and BSD operating systems. See
1028
+ <http://kcat.strangesoft.net/openal.html>.
1029
+
1030
+ Apple
1031
+ OpenAL is part of Core Audio, the official Mac OS X Audio
1032
+ interface. See
1033
+ <http://developer.apple.com/technologies/mac/audio-and-video.html>
1034
+
1035
+ This device allows one to capture from an audio input device handled
1036
+ through OpenAL.
1037
+
1038
+ You need to specify the name of the device to capture in the provided
1039
+ filename. If the empty string is provided, the device will
1040
+ automatically select the default device. You can get the list of the
1041
+ supported devices by using the option list_devices.
1042
+
1043
+ Options
1044
+
1045
+ channels
1046
+ Set the number of channels in the captured audio. Only the values 1
1047
+ (monaural) and 2 (stereo) are currently supported. Defaults to 2.
1048
+
1049
+ sample_size
1050
+ Set the sample size (in bits) of the captured audio. Only the
1051
+ values 8 and 16 are currently supported. Defaults to 16.
1052
+
1053
+ sample_rate
1054
+ Set the sample rate (in Hz) of the captured audio. Defaults to
1055
+ 44.1k.
1056
+
1057
+ list_devices
1058
+ If set to true, print a list of devices and exit. Defaults to
1059
+ false.
1060
+
1061
+ Examples
1062
+
1063
+ Print the list of OpenAL supported devices and exit:
1064
+
1065
+ $ ffmpeg -list_devices true -f openal -i dummy out.ogg
1066
+
1067
+ Capture from the OpenAL device DR-BT101 via PulseAudio:
1068
+
1069
+ $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
1070
+
1071
+ Capture from the default device (note the empty string '' as filename):
1072
+
1073
+ $ ffmpeg -f openal -i '' out.ogg
1074
+
1075
+ Capture from two devices simultaneously, writing to two different
1076
+ files, within the same ffmpeg command:
1077
+
1078
+ $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
1079
+
1080
+ Note: not all OpenAL implementations support multiple simultaneous
1081
+ capture - try the latest OpenAL Soft if the above does not work.
1082
+
1083
+ oss
1084
+ Open Sound System input device.
1085
+
1086
+ The filename to provide to the input device is the device node
1087
+ representing the OSS input device, and is usually set to /dev/dsp.
1088
+
1089
+ For example to grab from /dev/dsp using ffmpeg use the command:
1090
+
1091
+ ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
1092
+
1093
+ For more information about OSS see:
1094
+ <http://manuals.opensound.com/usersguide/dsp.html>
1095
+
1096
+ Options
1097
+
1098
+ sample_rate
1099
+ Set the sample rate in Hz. Default is 48000.
1100
+
1101
+ channels
1102
+ Set the number of channels. Default is 2.
1103
+
1104
+ pulse
1105
+ PulseAudio input device.
1106
+
1107
+ To enable this output device you need to configure FFmpeg with
1108
+ "--enable-libpulse".
1109
+
1110
+ The filename to provide to the input device is a source device or the
1111
+ string "default"
1112
+
1113
+ To list the PulseAudio source devices and their properties you can
1114
+ invoke the command pactl list sources.
1115
+
1116
+ More information about PulseAudio can be found on
1117
+ <http://www.pulseaudio.org>.
1118
+
1119
+ Options
1120
+
1121
+ server
1122
+ Connect to a specific PulseAudio server, specified by an IP
1123
+ address. Default server is used when not provided.
1124
+
1125
+ name
1126
+ Specify the application name PulseAudio will use when showing
1127
+ active clients, by default it is the "LIBAVFORMAT_IDENT" string.
1128
+
1129
+ stream_name
1130
+ Specify the stream name PulseAudio will use when showing active
1131
+ streams, by default it is "record".
1132
+
1133
+ sample_rate
1134
+ Specify the samplerate in Hz, by default 48kHz is used.
1135
+
1136
+ channels
1137
+ Specify the channels in use, by default 2 (stereo) is set.
1138
+
1139
+ frame_size
1140
+ This option does nothing and is deprecated.
1141
+
1142
+ fragment_size
1143
+ Specify the size in bytes of the minimal buffering fragment in
1144
+ PulseAudio, it will affect the audio latency. By default it is set
1145
+ to 50 ms amount of data.
1146
+
1147
+ wallclock
1148
+ Set the initial PTS using the current time. Default is 1.
1149
+
1150
+ Examples
1151
+
1152
+ Record a stream from default device:
1153
+
1154
+ ffmpeg -f pulse -i default /tmp/pulse.wav
1155
+
1156
+ sndio
1157
+ sndio input device.
1158
+
1159
+ To enable this input device during configuration you need libsndio
1160
+ installed on your system.
1161
+
1162
+ The filename to provide to the input device is the device node
1163
+ representing the sndio input device, and is usually set to /dev/audio0.
1164
+
1165
+ For example to grab from /dev/audio0 using ffmpeg use the command:
1166
+
1167
+ ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
1168
+
1169
+ Options
1170
+
1171
+ sample_rate
1172
+ Set the sample rate in Hz. Default is 48000.
1173
+
1174
+ channels
1175
+ Set the number of channels. Default is 2.
1176
+
1177
+ video4linux2, v4l2
1178
+ Video4Linux2 input video device.
1179
+
1180
+ "v4l2" can be used as alias for "video4linux2".
1181
+
1182
+ If FFmpeg is built with v4l-utils support (by using the
1183
+ "--enable-libv4l2" configure option), it is possible to use it with the
1184
+ "-use_libv4l2" input device option.
1185
+
1186
+ The name of the device to grab is a file device node, usually Linux
1187
+ systems tend to automatically create such nodes when the device (e.g.
1188
+ an USB webcam) is plugged into the system, and has a name of the kind
1189
+ /dev/videoN, where N is a number associated to the device.
1190
+
1191
+ Video4Linux2 devices usually support a limited set of widthxheight
1192
+ sizes and frame rates. You can check which are supported using
1193
+ -list_formats all for Video4Linux2 devices. Some devices, like TV
1194
+ cards, support one or more standards. It is possible to list all the
1195
+ supported standards using -list_standards all.
1196
+
1197
+ The time base for the timestamps is 1 microsecond. Depending on the
1198
+ kernel version and configuration, the timestamps may be derived from
1199
+ the real time clock (origin at the Unix Epoch) or the monotonic clock
1200
+ (origin usually at boot time, unaffected by NTP or manual changes to
1201
+ the clock). The -timestamps abs or -ts abs option can be used to force
1202
+ conversion into the real time clock.
1203
+
1204
+ Some usage examples of the video4linux2 device with ffmpeg and ffplay:
1205
+
1206
+ o List supported formats for a video4linux2 device:
1207
+
1208
+ ffplay -f video4linux2 -list_formats all /dev/video0
1209
+
1210
+ o Grab and show the input of a video4linux2 device:
1211
+
1212
+ ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
1213
+
1214
+ o Grab and record the input of a video4linux2 device, leave the frame
1215
+ rate and size as previously set:
1216
+
1217
+ ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
1218
+
1219
+ For more information about Video4Linux, check <http://linuxtv.org/>.
1220
+
1221
+ Options
1222
+
1223
+ standard
1224
+ Set the standard. Must be the name of a supported standard. To get
1225
+ a list of the supported standards, use the list_standards option.
1226
+
1227
+ channel
1228
+ Set the input channel number. Default to -1, which means using the
1229
+ previously selected channel.
1230
+
1231
+ video_size
1232
+ Set the video frame size. The argument must be a string in the form
1233
+ WIDTHxHEIGHT or a valid size abbreviation.
1234
+
1235
+ pixel_format
1236
+ Select the pixel format (only valid for raw video input).
1237
+
1238
+ input_format
1239
+ Set the preferred pixel format (for raw video) or a codec name.
1240
+ This option allows one to select the input format, when several are
1241
+ available.
1242
+
1243
+ framerate
1244
+ Set the preferred video frame rate.
1245
+
1246
+ list_formats
1247
+ List available formats (supported pixel formats, codecs, and frame
1248
+ sizes) and exit.
1249
+
1250
+ Available values are:
1251
+
1252
+ all Show all available (compressed and non-compressed) formats.
1253
+
1254
+ raw Show only raw video (non-compressed) formats.
1255
+
1256
+ compressed
1257
+ Show only compressed formats.
1258
+
1259
+ list_standards
1260
+ List supported standards and exit.
1261
+
1262
+ Available values are:
1263
+
1264
+ all Show all supported standards.
1265
+
1266
+ timestamps, ts
1267
+ Set type of timestamps for grabbed frames.
1268
+
1269
+ Available values are:
1270
+
1271
+ default
1272
+ Use timestamps from the kernel.
1273
+
1274
+ abs Use absolute timestamps (wall clock).
1275
+
1276
+ mono2abs
1277
+ Force conversion from monotonic to absolute timestamps.
1278
+
1279
+ Default value is "default".
1280
+
1281
+ use_libv4l2
1282
+ Use libv4l2 (v4l-utils) conversion functions. Default is 0.
1283
+
1284
+ vfwcap
1285
+ VfW (Video for Windows) capture input device.
1286
+
1287
+ The filename passed as input is the capture driver number, ranging from
1288
+ 0 to 9. You may use "list" as filename to print a list of drivers. Any
1289
+ other filename will be interpreted as device number 0.
1290
+
1291
+ Options
1292
+
1293
+ video_size
1294
+ Set the video frame size.
1295
+
1296
+ framerate
1297
+ Set the grabbing frame rate. Default value is "ntsc", corresponding
1298
+ to a frame rate of "30000/1001".
1299
+
1300
+ x11grab
1301
+ X11 video input device.
1302
+
1303
+ To enable this input device during configuration you need libxcb
1304
+ installed on your system. It will be automatically detected during
1305
+ configuration.
1306
+
1307
+ This device allows one to capture a region of an X11 display.
1308
+
1309
+ The filename passed as input has the syntax:
1310
+
1311
+ [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
1312
+
1313
+ hostname:display_number.screen_number specifies the X11 display name of
1314
+ the screen to grab from. hostname can be omitted, and defaults to
1315
+ "localhost". The environment variable DISPLAY contains the default
1316
+ display name.
1317
+
1318
+ x_offset and y_offset specify the offsets of the grabbed area with
1319
+ respect to the top-left border of the X11 screen. They default to 0.
1320
+
1321
+ Check the X11 documentation (e.g. man X) for more detailed information.
1322
+
1323
+ Use the xdpyinfo program for getting basic information about the
1324
+ properties of your X11 display (e.g. grep for "name" or "dimensions").
1325
+
1326
+ For example to grab from :0.0 using ffmpeg:
1327
+
1328
+ ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
1329
+
1330
+ Grab at position "10,20":
1331
+
1332
+ ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
1333
+
1334
+ Options
1335
+
1336
+ select_region
1337
+ Specify whether to select the grabbing area graphically using the
1338
+ pointer. A value of 1 prompts the user to select the grabbing area
1339
+ graphically by clicking and dragging. A single click with no
1340
+ dragging will select the whole screen. A region with zero width or
1341
+ height will also select the whole screen. This option overwrites
1342
+ the video_size, grab_x, and grab_y options. Default value is 0.
1343
+
1344
+ draw_mouse
1345
+ Specify whether to draw the mouse pointer. A value of 0 specifies
1346
+ not to draw the pointer. Default value is 1.
1347
+
1348
+ follow_mouse
1349
+ Make the grabbed area follow the mouse. The argument can be
1350
+ "centered" or a number of pixels PIXELS.
1351
+
1352
+ When it is specified with "centered", the grabbing region follows
1353
+ the mouse pointer and keeps the pointer at the center of region;
1354
+ otherwise, the region follows only when the mouse pointer reaches
1355
+ within PIXELS (greater than zero) to the edge of region.
1356
+
1357
+ For example:
1358
+
1359
+ ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
1360
+
1361
+ To follow only when the mouse pointer reaches within 100 pixels to
1362
+ edge:
1363
+
1364
+ ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
1365
+
1366
+ framerate
1367
+ Set the grabbing frame rate. Default value is "ntsc", corresponding
1368
+ to a frame rate of "30000/1001".
1369
+
1370
+ show_region
1371
+ Show grabbed region on screen.
1372
+
1373
+ If show_region is specified with 1, then the grabbing region will
1374
+ be indicated on screen. With this option, it is easy to know what
1375
+ is being grabbed if only a portion of the screen is grabbed.
1376
+
1377
+ region_border
1378
+ Set the region border thickness if -show_region 1 is used. Range
1379
+ is 1 to 128 and default is 3 (XCB-based x11grab only).
1380
+
1381
+ For example:
1382
+
1383
+ ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
1384
+
1385
+ With follow_mouse:
1386
+
1387
+ ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
1388
+
1389
+ window_id
1390
+ Grab this window, instead of the whole screen. Default value is 0,
1391
+ which maps to the whole screen (root window).
1392
+
1393
+ The id of a window can be found using the xwininfo program,
1394
+ possibly with options -tree and -root.
1395
+
1396
+ If the window is later enlarged, the new area is not recorded.
1397
+ Video ends when the window is closed, unmapped (i.e., iconified) or
1398
+ shrunk beyond the video size (which defaults to the initial window
1399
+ size).
1400
+
1401
+ This option disables options follow_mouse and select_region.
1402
+
1403
+ video_size
1404
+ Set the video frame size. Default is the full desktop or window.
1405
+
1406
+ grab_x
1407
+ grab_y
1408
+ Set the grabbing region coordinates. They are expressed as offset
1409
+ from the top left corner of the X11 window and correspond to the
1410
+ x_offset and y_offset parameters in the device name. The default
1411
+ value for both options is 0.
1412
+
1413
+ OUTPUT DEVICES
1414
+ Output devices are configured elements in FFmpeg that can write
1415
+ multimedia data to an output device attached to your system.
1416
+
1417
+ When you configure your FFmpeg build, all the supported output devices
1418
+ are enabled by default. You can list all available ones using the
1419
+ configure option "--list-outdevs".
1420
+
1421
+ You can disable all the output devices using the configure option
1422
+ "--disable-outdevs", and selectively enable an output device using the
1423
+ option "--enable-outdev=OUTDEV", or you can disable a particular input
1424
+ device using the option "--disable-outdev=OUTDEV".
1425
+
1426
+ The option "-devices" of the ff* tools will display the list of enabled
1427
+ output devices.
1428
+
1429
+ A description of the currently available output devices follows.
1430
+
1431
+ alsa
1432
+ ALSA (Advanced Linux Sound Architecture) output device.
1433
+
1434
+ Examples
1435
+
1436
+ o Play a file on default ALSA device:
1437
+
1438
+ ffmpeg -i INPUT -f alsa default
1439
+
1440
+ o Play a file on soundcard 1, audio device 7:
1441
+
1442
+ ffmpeg -i INPUT -f alsa hw:1,7
1443
+
1444
+ AudioToolbox
1445
+ AudioToolbox output device.
1446
+
1447
+ Allows native output to CoreAudio devices on OSX.
1448
+
1449
+ The output filename can be empty (or "-") to refer to the default
1450
+ system output device or a number that refers to the device index as
1451
+ shown using: "-list_devices true".
1452
+
1453
+ Alternatively, the audio input device can be chosen by index using the
1454
+
1455
+ B<-audio_device_index E<lt>INDEXE<gt>>
1456
+
1457
+ , overriding any device name or index given in the input filename.
1458
+
1459
+ All available devices can be enumerated by using -list_devices true,
1460
+ listing all device names, UIDs and corresponding indices.
1461
+
1462
+ Options
1463
+
1464
+ AudioToolbox supports the following options:
1465
+
1466
+ -audio_device_index <INDEX>
1467
+ Specify the audio device by its index. Overrides anything given in
1468
+ the output filename.
1469
+
1470
+ Examples
1471
+
1472
+ o Print the list of supported devices and output a sine wave to the
1473
+ default device:
1474
+
1475
+ $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -list_devices true -
1476
+
1477
+ o Output a sine wave to the device with the index 2, overriding any
1478
+ output filename:
1479
+
1480
+ $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -audio_device_index 2 -
1481
+
1482
+ caca
1483
+ CACA output device.
1484
+
1485
+ This output device allows one to show a video stream in CACA window.
1486
+ Only one CACA window is allowed per application, so you can have only
1487
+ one instance of this output device in an application.
1488
+
1489
+ To enable this output device you need to configure FFmpeg with
1490
+ "--enable-libcaca". libcaca is a graphics library that outputs text
1491
+ instead of pixels.
1492
+
1493
+ For more information about libcaca, check:
1494
+ <http://caca.zoy.org/wiki/libcaca>
1495
+
1496
+ Options
1497
+
1498
+ window_title
1499
+ Set the CACA window title, if not specified default to the filename
1500
+ specified for the output device.
1501
+
1502
+ window_size
1503
+ Set the CACA window size, can be a string of the form widthxheight
1504
+ or a video size abbreviation. If not specified it defaults to the
1505
+ size of the input video.
1506
+
1507
+ driver
1508
+ Set display driver.
1509
+
1510
+ algorithm
1511
+ Set dithering algorithm. Dithering is necessary because the picture
1512
+ being rendered has usually far more colours than the available
1513
+ palette. The accepted values are listed with "-list_dither
1514
+ algorithms".
1515
+
1516
+ antialias
1517
+ Set antialias method. Antialiasing smoothens the rendered image and
1518
+ avoids the commonly seen staircase effect. The accepted values are
1519
+ listed with "-list_dither antialiases".
1520
+
1521
+ charset
1522
+ Set which characters are going to be used when rendering text. The
1523
+ accepted values are listed with "-list_dither charsets".
1524
+
1525
+ color
1526
+ Set color to be used when rendering text. The accepted values are
1527
+ listed with "-list_dither colors".
1528
+
1529
+ list_drivers
1530
+ If set to true, print a list of available drivers and exit.
1531
+
1532
+ list_dither
1533
+ List available dither options related to the argument. The
1534
+ argument must be one of "algorithms", "antialiases", "charsets",
1535
+ "colors".
1536
+
1537
+ Examples
1538
+
1539
+ o The following command shows the ffmpeg output is an CACA window,
1540
+ forcing its size to 80x25:
1541
+
1542
+ ffmpeg -i INPUT -c:v rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
1543
+
1544
+ o Show the list of available drivers and exit:
1545
+
1546
+ ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
1547
+
1548
+ o Show the list of available dither colors and exit:
1549
+
1550
+ ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
1551
+
1552
+ decklink
1553
+ The decklink output device provides playback capabilities for
1554
+ Blackmagic DeckLink devices.
1555
+
1556
+ To enable this output device, you need the Blackmagic DeckLink SDK and
1557
+ you need to configure with the appropriate "--extra-cflags" and
1558
+ "--extra-ldflags". On Windows, you need to run the IDL files through
1559
+ widl.
1560
+
1561
+ DeckLink is very picky about the formats it supports. Pixel format is
1562
+ always uyvy422, framerate, field order and video size must be
1563
+ determined for your device with -list_formats 1. Audio sample rate is
1564
+ always 48 kHz.
1565
+
1566
+ Options
1567
+
1568
+ list_devices
1569
+ If set to true, print a list of devices and exit. Defaults to
1570
+ false. This option is deprecated, please use the "-sinks" option of
1571
+ ffmpeg to list the available output devices.
1572
+
1573
+ list_formats
1574
+ If set to true, print a list of supported formats and exit.
1575
+ Defaults to false.
1576
+
1577
+ preroll
1578
+ Amount of time to preroll video in seconds. Defaults to 0.5.
1579
+
1580
+ duplex_mode
1581
+ Sets the decklink device duplex/profile mode. Must be unset, half,
1582
+ full, one_sub_device_full, one_sub_device_half,
1583
+ two_sub_device_full, four_sub_device_half Defaults to unset.
1584
+
1585
+ Note: DeckLink SDK 11.0 have replaced the duplex property by a
1586
+ profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
1587
+ profile is shared between any 2 sub-devices that utilize the same
1588
+ connectors. For the DeckLink 8K Pro, a profile is shared between
1589
+ all 4 sub-devices. So DeckLink 8K Pro support four profiles.
1590
+
1591
+ Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
1592
+ one_sub_device_full, one_sub_device_half, two_sub_device_full,
1593
+ four_sub_device_half
1594
+
1595
+ Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
1596
+ full
1597
+
1598
+ timing_offset
1599
+ Sets the genlock timing pixel offset on the used output. Defaults
1600
+ to unset.
1601
+
1602
+ link
1603
+ Sets the SDI video link configuration on the used output. Must be
1604
+ unset, single link SDI, dual link SDI or quad link SDI. Defaults
1605
+ to unset.
1606
+
1607
+ sqd Enable Square Division Quad Split mode for Quad-link SDI output.
1608
+ Must be unset, true or false. Defaults to unset.
1609
+
1610
+ level_a
1611
+ Enable SMPTE Level A mode on the used output. Must be unset, true
1612
+ or false. Defaults to unset.
1613
+
1614
+ vanc_queue_size
1615
+ Sets maximum output buffer size in bytes for VANC data. If the
1616
+ buffering reaches this value, outgoing VANC data will be dropped.
1617
+ Defaults to 1048576.
1618
+
1619
+ Examples
1620
+
1621
+ o List output devices:
1622
+
1623
+ ffmpeg -sinks decklink
1624
+
1625
+ o List supported formats:
1626
+
1627
+ ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
1628
+
1629
+ o Play video clip:
1630
+
1631
+ ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
1632
+
1633
+ o Play video clip with non-standard framerate or video size:
1634
+
1635
+ ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
1636
+
1637
+ fbdev
1638
+ Linux framebuffer output device.
1639
+
1640
+ The Linux framebuffer is a graphic hardware-independent abstraction
1641
+ layer to show graphics on a computer monitor, typically on the console.
1642
+ It is accessed through a file device node, usually /dev/fb0.
1643
+
1644
+ For more detailed information read the file
1645
+ Documentation/fb/framebuffer.txt included in the Linux source tree.
1646
+
1647
+ Options
1648
+
1649
+ xoffset
1650
+ yoffset
1651
+ Set x/y coordinate of top left corner. Default is 0.
1652
+
1653
+ Examples
1654
+
1655
+ Play a file on framebuffer device /dev/fb0. Required pixel format
1656
+ depends on current framebuffer settings.
1657
+
1658
+ ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
1659
+
1660
+ See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
1661
+
1662
+ opengl
1663
+ OpenGL output device. Deprecated and will be removed.
1664
+
1665
+ To enable this output device you need to configure FFmpeg with
1666
+ "--enable-opengl".
1667
+
1668
+ This output device allows one to render to OpenGL context. Context may
1669
+ be provided by application or default SDL window is created.
1670
+
1671
+ When device renders to external context, application must implement
1672
+ handlers for following messages: "AV_DEV_TO_APP_CREATE_WINDOW_BUFFER" -
1673
+ create OpenGL context on current thread.
1674
+ "AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER" - make OpenGL context current.
1675
+ "AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER" - swap buffers.
1676
+ "AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER" - destroy OpenGL context.
1677
+ Application is also required to inform a device about current
1678
+ resolution by sending "AV_APP_TO_DEV_WINDOW_SIZE" message.
1679
+
1680
+ Options
1681
+
1682
+ background
1683
+ Set background color. Black is a default.
1684
+
1685
+ no_window
1686
+ Disables default SDL window when set to non-zero value.
1687
+ Application must provide OpenGL context and both "window_size_cb"
1688
+ and "window_swap_buffers_cb" callbacks when set.
1689
+
1690
+ window_title
1691
+ Set the SDL window title, if not specified default to the filename
1692
+ specified for the output device. Ignored when no_window is set.
1693
+
1694
+ window_size
1695
+ Set preferred window size, can be a string of the form widthxheight
1696
+ or a video size abbreviation. If not specified it defaults to the
1697
+ size of the input video, downscaled according to the aspect ratio.
1698
+ Mostly usable when no_window is not set.
1699
+
1700
+ Examples
1701
+
1702
+ Play a file on SDL window using OpenGL rendering:
1703
+
1704
+ ffmpeg -i INPUT -f opengl "window title"
1705
+
1706
+ oss
1707
+ OSS (Open Sound System) output device.
1708
+
1709
+ pulse
1710
+ PulseAudio output device.
1711
+
1712
+ To enable this output device you need to configure FFmpeg with
1713
+ "--enable-libpulse".
1714
+
1715
+ More information about PulseAudio can be found on
1716
+ <http://www.pulseaudio.org>
1717
+
1718
+ Options
1719
+
1720
+ server
1721
+ Connect to a specific PulseAudio server, specified by an IP
1722
+ address. Default server is used when not provided.
1723
+
1724
+ name
1725
+ Specify the application name PulseAudio will use when showing
1726
+ active clients, by default it is the "LIBAVFORMAT_IDENT" string.
1727
+
1728
+ stream_name
1729
+ Specify the stream name PulseAudio will use when showing active
1730
+ streams, by default it is set to the specified output name.
1731
+
1732
+ device
1733
+ Specify the device to use. Default device is used when not
1734
+ provided. List of output devices can be obtained with command
1735
+ pactl list sinks.
1736
+
1737
+ buffer_size
1738
+ buffer_duration
1739
+ Control the size and duration of the PulseAudio buffer. A small
1740
+ buffer gives more control, but requires more frequent updates.
1741
+
1742
+ buffer_size specifies size in bytes while buffer_duration specifies
1743
+ duration in milliseconds.
1744
+
1745
+ When both options are provided then the highest value is used
1746
+ (duration is recalculated to bytes using stream parameters). If
1747
+ they are set to 0 (which is default), the device will use the
1748
+ default PulseAudio duration value. By default PulseAudio set buffer
1749
+ duration to around 2 seconds.
1750
+
1751
+ prebuf
1752
+ Specify pre-buffering size in bytes. The server does not start with
1753
+ playback before at least prebuf bytes are available in the buffer.
1754
+ By default this option is initialized to the same value as
1755
+ buffer_size or buffer_duration (whichever is bigger).
1756
+
1757
+ minreq
1758
+ Specify minimum request size in bytes. The server does not request
1759
+ less than minreq bytes from the client, instead waits until the
1760
+ buffer is free enough to request more bytes at once. It is
1761
+ recommended to not set this option, which will initialize this to a
1762
+ value that is deemed sensible by the server.
1763
+
1764
+ Examples
1765
+
1766
+ Play a file on default device on default server:
1767
+
1768
+ ffmpeg -i INPUT -f pulse "stream name"
1769
+
1770
+ sdl
1771
+ SDL (Simple DirectMedia Layer) output device. Deprecated and will be
1772
+ removed.
1773
+
1774
+ For monitoring purposes in FFmpeg, pipes and a video player such as
1775
+ ffplay can be used:
1776
+
1777
+ ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -
1778
+
1779
+ "sdl2" can be used as alias for "sdl".
1780
+
1781
+ This output device allows one to show a video stream in an SDL window.
1782
+ Only one SDL window is allowed per application, so you can have only
1783
+ one instance of this output device in an application.
1784
+
1785
+ To enable this output device you need libsdl installed on your system
1786
+ when configuring your build.
1787
+
1788
+ For more information about SDL, check: <http://www.libsdl.org/>
1789
+
1790
+ Options
1791
+
1792
+ window_borderless
1793
+ Set SDL window border off. Default value is 0 (enable window
1794
+ border).
1795
+
1796
+ window_enable_quit
1797
+ Enable quit action (using window button or keyboard key) when non-
1798
+ zero value is provided. Default value is 1 (enable quit action).
1799
+
1800
+ window_fullscreen
1801
+ Set fullscreen mode when non-zero value is provided. Default value
1802
+ is zero.
1803
+
1804
+ window_size
1805
+ Set the SDL window size, can be a string of the form widthxheight
1806
+ or a video size abbreviation. If not specified it defaults to the
1807
+ size of the input video, downscaled according to the aspect ratio.
1808
+
1809
+ window_title
1810
+ Set the SDL window title, if not specified default to the filename
1811
+ specified for the output device.
1812
+
1813
+ window_x
1814
+ window_y
1815
+ Set the position of the window on the screen.
1816
+
1817
+ Interactive commands
1818
+
1819
+ The window created by the device can be controlled through the
1820
+ following interactive commands.
1821
+
1822
+ q, ESC
1823
+ Quit the device immediately.
1824
+
1825
+ Examples
1826
+
1827
+ The following command shows the ffmpeg output is an SDL window, forcing
1828
+ its size to the qcif format:
1829
+
1830
+ ffmpeg -i INPUT -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
1831
+
1832
+ sndio
1833
+ sndio audio output device.
1834
+
1835
+ v4l2
1836
+ Video4Linux2 output device.
1837
+
1838
+ xv
1839
+ XV (XVideo) output device.
1840
+
1841
+ This output device allows one to show a video stream in a X Window
1842
+ System window.
1843
+
1844
+ Options
1845
+
1846
+ display_name
1847
+ Specify the hardware display name, which determines the display and
1848
+ communications domain to be used.
1849
+
1850
+ The display name or DISPLAY environment variable can be a string in
1851
+ the format hostname[:number[.screen_number]].
1852
+
1853
+ hostname specifies the name of the host machine on which the
1854
+ display is physically attached. number specifies the number of the
1855
+ display server on that host machine. screen_number specifies the
1856
+ screen to be used on that server.
1857
+
1858
+ If unspecified, it defaults to the value of the DISPLAY environment
1859
+ variable.
1860
+
1861
+ For example, "dual-headed:0.1" would specify screen 1 of display 0
1862
+ on the machine named ``dual-headed''.
1863
+
1864
+ Check the X11 specification for more detailed information about the
1865
+ display name format.
1866
+
1867
+ window_id
1868
+ When set to non-zero value then device doesn't create new window,
1869
+ but uses existing one with provided window_id. By default this
1870
+ options is set to zero and device creates its own window.
1871
+
1872
+ window_size
1873
+ Set the created window size, can be a string of the form
1874
+ widthxheight or a video size abbreviation. If not specified it
1875
+ defaults to the size of the input video. Ignored when window_id is
1876
+ set.
1877
+
1878
+ window_x
1879
+ window_y
1880
+ Set the X and Y window offsets for the created window. They are
1881
+ both set to 0 by default. The values may be ignored by the window
1882
+ manager. Ignored when window_id is set.
1883
+
1884
+ window_title
1885
+ Set the window title, if not specified default to the filename
1886
+ specified for the output device. Ignored when window_id is set.
1887
+
1888
+ For more information about XVideo see <http://www.x.org/>.
1889
+
1890
+ Examples
1891
+
1892
+ o Decode, display and encode video input with ffmpeg at the same
1893
+ time:
1894
+
1895
+ ffmpeg -i INPUT OUTPUT -f xv display
1896
+
1897
+ o Decode and display the input video to multiple X11 windows:
1898
+
1899
+ ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
1900
+
1901
+ SEE ALSO
1902
+ ffmpeg(1), ffplay(1), ffprobe(1), libavdevice(3)
1903
+
1904
+ AUTHORS
1905
+ The FFmpeg developers.
1906
+
1907
+ For details about the authorship, see the Git history of the project
1908
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
1909
+ the FFmpeg source directory, or browsing the online repository at
1910
+ <https://git.ffmpeg.org/ffmpeg>.
1911
+
1912
+ Maintainers for the specific components are listed in the file
1913
+ MAINTAINERS in the source code tree.
1914
+
1915
+ FFMPEG-DEVICES(1)
ffmpeg/manpages/ffmpeg-filters.txt ADDED
The diff for this file is too large to render. See raw diff
 
ffmpeg/manpages/ffmpeg-formats.txt ADDED
The diff for this file is too large to render. See raw diff
 
ffmpeg/manpages/ffmpeg-protocols.txt ADDED
@@ -0,0 +1,1960 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFMPEG-PROTOCOLS(1) FFMPEG-PROTOCOLS(1)
2
+
3
+ NAME
4
+ ffmpeg-protocols - FFmpeg protocols
5
+
6
+ DESCRIPTION
7
+ This document describes the input and output protocols provided by the
8
+ libavformat library.
9
+
10
+ PROTOCOL OPTIONS
11
+ The libavformat library provides some generic global options, which can
12
+ be set on all the protocols. In addition each protocol may support so-
13
+ called private options, which are specific for that component.
14
+
15
+ Options may be set by specifying -option value in the FFmpeg tools, or
16
+ by setting the value explicitly in the "AVFormatContext" options or
17
+ using the libavutil/opt.h API for programmatic use.
18
+
19
+ The list of supported options follows:
20
+
21
+ protocol_whitelist list (input)
22
+ Set a ","-separated list of allowed protocols. "ALL" matches all
23
+ protocols. Protocols prefixed by "-" are disabled. All protocols
24
+ are allowed by default but protocols used by an another protocol
25
+ (nested protocols) are restricted to a per protocol subset.
26
+
27
+ PROTOCOLS
28
+ Protocols are configured elements in FFmpeg that enable access to
29
+ resources that require specific protocols.
30
+
31
+ When you configure your FFmpeg build, all the supported protocols are
32
+ enabled by default. You can list all available ones using the configure
33
+ option "--list-protocols".
34
+
35
+ You can disable all the protocols using the configure option
36
+ "--disable-protocols", and selectively enable a protocol using the
37
+ option "--enable-protocol=PROTOCOL", or you can disable a particular
38
+ protocol using the option "--disable-protocol=PROTOCOL".
39
+
40
+ The option "-protocols" of the ff* tools will display the list of
41
+ supported protocols.
42
+
43
+ All protocols accept the following options:
44
+
45
+ rw_timeout
46
+ Maximum time to wait for (network) read/write operations to
47
+ complete, in microseconds.
48
+
49
+ A description of the currently available protocols follows.
50
+
51
+ amqp
52
+ Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
53
+ based publish-subscribe communication protocol.
54
+
55
+ FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
56
+ separate AMQP broker must also be run. An example open-source AMQP
57
+ broker is RabbitMQ.
58
+
59
+ After starting the broker, an FFmpeg client may stream data to the
60
+ broker using the command:
61
+
62
+ ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
63
+
64
+ Where hostname and port (default is 5672) is the address of the broker.
65
+ The client may also set a user/password for authentication. The default
66
+ for both fields is "guest". Name of virtual host on broker can be set
67
+ with vhost. The default value is "/".
68
+
69
+ Muliple subscribers may stream from the broker using the command:
70
+
71
+ ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
72
+
73
+ In RabbitMQ all data published to the broker flows through a specific
74
+ exchange, and each subscribing client has an assigned queue/buffer.
75
+ When a packet arrives at an exchange, it may be copied to a client's
76
+ queue depending on the exchange and routing_key fields.
77
+
78
+ The following options are supported:
79
+
80
+ exchange
81
+ Sets the exchange to use on the broker. RabbitMQ has several
82
+ predefined exchanges: "amq.direct" is the default exchange, where
83
+ the publisher and subscriber must have a matching routing_key;
84
+ "amq.fanout" is the same as a broadcast operation (i.e. the data is
85
+ forwarded to all queues on the fanout exchange independent of the
86
+ routing_key); and "amq.topic" is similar to "amq.direct", but
87
+ allows for more complex pattern matching (refer to the RabbitMQ
88
+ documentation).
89
+
90
+ routing_key
91
+ Sets the routing key. The default value is "amqp". The routing key
92
+ is used on the "amq.direct" and "amq.topic" exchanges to decide
93
+ whether packets are written to the queue of a subscriber.
94
+
95
+ pkt_size
96
+ Maximum size of each packet sent/received to the broker. Default is
97
+ 131072. Minimum is 4096 and max is any large value (representable
98
+ by an int). When receiving packets, this sets an internal buffer
99
+ size in FFmpeg. It should be equal to or greater than the size of
100
+ the published packets to the broker. Otherwise the received message
101
+ may be truncated causing decoding errors.
102
+
103
+ connection_timeout
104
+ The timeout in seconds during the initial connection to the broker.
105
+ The default value is rw_timeout, or 5 seconds if rw_timeout is not
106
+ set.
107
+
108
+ delivery_mode mode
109
+ Sets the delivery mode of each message sent to broker. The
110
+ following values are accepted:
111
+
112
+ persistent
113
+ Delivery mode set to "persistent" (2). This is the default
114
+ value. Messages may be written to the broker's disk depending
115
+ on its setup.
116
+
117
+ non-persistent
118
+ Delivery mode set to "non-persistent" (1). Messages will stay
119
+ in broker's memory unless the broker is under memory pressure.
120
+
121
+ async
122
+ Asynchronous data filling wrapper for input stream.
123
+
124
+ Fill data in a background thread, to decouple I/O operation from demux
125
+ thread.
126
+
127
+ async:<URL>
128
+ async:http://host/resource
129
+ async:cache:http://host/resource
130
+
131
+ bluray
132
+ Read BluRay playlist.
133
+
134
+ The accepted options are:
135
+
136
+ angle
137
+ BluRay angle
138
+
139
+ chapter
140
+ Start chapter (1...N)
141
+
142
+ playlist
143
+ Playlist to read (BDMV/PLAYLIST/?????.mpls)
144
+
145
+ Examples:
146
+
147
+ Read longest playlist from BluRay mounted to /mnt/bluray:
148
+
149
+ bluray:/mnt/bluray
150
+
151
+ Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
152
+ from chapter 2:
153
+
154
+ -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
155
+
156
+ cache
157
+ Caching wrapper for input stream.
158
+
159
+ Cache the input stream to temporary file. It brings seeking capability
160
+ to live streams.
161
+
162
+ The accepted options are:
163
+
164
+ read_ahead_limit
165
+ Amount in bytes that may be read ahead when seeking isn't
166
+ supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
167
+ 65536.
168
+
169
+ URL Syntax is
170
+
171
+ cache:<URL>
172
+
173
+ concat
174
+ Physical concatenation protocol.
175
+
176
+ Read and seek from many resources in sequence as if they were a unique
177
+ resource.
178
+
179
+ A URL accepted by this protocol has the syntax:
180
+
181
+ concat:<URL1>|<URL2>|...|<URLN>
182
+
183
+ where URL1, URL2, ..., URLN are the urls of the resource to be
184
+ concatenated, each one possibly specifying a distinct protocol.
185
+
186
+ For example to read a sequence of files split1.mpeg, split2.mpeg,
187
+ split3.mpeg with ffplay use the command:
188
+
189
+ ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
190
+
191
+ Note that you may need to escape the character "|" which is special for
192
+ many shells.
193
+
194
+ concatf
195
+ Physical concatenation protocol using a line break delimited list of
196
+ resources.
197
+
198
+ Read and seek from many resources in sequence as if they were a unique
199
+ resource.
200
+
201
+ A URL accepted by this protocol has the syntax:
202
+
203
+ concatf:<URL>
204
+
205
+ where URL is the url containing a line break delimited list of
206
+ resources to be concatenated, each one possibly specifying a distinct
207
+ protocol. Special characters must be escaped with backslash or single
208
+ quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
209
+ manual.
210
+
211
+ For example to read a sequence of files split1.mpeg, split2.mpeg,
212
+ split3.mpeg listed in separate lines within a file split.txt with
213
+ ffplay use the command:
214
+
215
+ ffplay concatf:split.txt
216
+
217
+ Where split.txt contains the lines:
218
+
219
+ split1.mpeg
220
+ split2.mpeg
221
+ split3.mpeg
222
+
223
+ crypto
224
+ AES-encrypted stream reading protocol.
225
+
226
+ The accepted options are:
227
+
228
+ key Set the AES decryption key binary block from given hexadecimal
229
+ representation.
230
+
231
+ iv Set the AES decryption initialization vector binary block from
232
+ given hexadecimal representation.
233
+
234
+ Accepted URL formats:
235
+
236
+ crypto:<URL>
237
+ crypto+<URL>
238
+
239
+ data
240
+ Data in-line in the URI. See
241
+ <http://en.wikipedia.org/wiki/Data_URI_scheme>.
242
+
243
+ For example, to convert a GIF file given inline with ffmpeg:
244
+
245
+ ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
246
+
247
+ fd
248
+ File descriptor access protocol.
249
+
250
+ The accepted syntax is:
251
+
252
+ fd: -fd <file_descriptor>
253
+
254
+ If fd is not specified, by default the stdout file descriptor will be
255
+ used for writing, stdin for reading. Unlike the pipe protocol, fd
256
+ protocol has seek support if it corresponding to a regular file. fd
257
+ protocol doesn't support pass file descriptor via URL for security.
258
+
259
+ This protocol accepts the following options:
260
+
261
+ blocksize
262
+ Set I/O operation maximum block size, in bytes. Default value is
263
+ "INT_MAX", which results in not limiting the requested block size.
264
+ Setting this value reasonably low improves user termination request
265
+ reaction time, which is valuable if data transmission is slow.
266
+
267
+ fd Set file descriptor.
268
+
269
+ file
270
+ File access protocol.
271
+
272
+ Read from or write to a file.
273
+
274
+ A file URL can have the form:
275
+
276
+ file:<filename>
277
+
278
+ where filename is the path of the file to read.
279
+
280
+ An URL that does not have a protocol prefix will be assumed to be a
281
+ file URL. Depending on the build, an URL that looks like a Windows path
282
+ with the drive letter at the beginning will also be assumed to be a
283
+ file URL (usually not the case in builds for unix-like systems).
284
+
285
+ For example to read from a file input.mpeg with ffmpeg use the command:
286
+
287
+ ffmpeg -i file:input.mpeg output.mpeg
288
+
289
+ This protocol accepts the following options:
290
+
291
+ truncate
292
+ Truncate existing files on write, if set to 1. A value of 0
293
+ prevents truncating. Default value is 1.
294
+
295
+ blocksize
296
+ Set I/O operation maximum block size, in bytes. Default value is
297
+ "INT_MAX", which results in not limiting the requested block size.
298
+ Setting this value reasonably low improves user termination request
299
+ reaction time, which is valuable for files on slow medium.
300
+
301
+ follow
302
+ If set to 1, the protocol will retry reading at the end of the
303
+ file, allowing reading files that still are being written. In order
304
+ for this to terminate, you either need to use the rw_timeout
305
+ option, or use the interrupt callback (for API users).
306
+
307
+ seekable
308
+ Controls if seekability is advertised on the file. 0 means non-
309
+ seekable, -1 means auto (seekable for normal files, non-seekable
310
+ for named pipes).
311
+
312
+ Many demuxers handle seekable and non-seekable resources
313
+ differently, overriding this might speed up opening certain files
314
+ at the cost of losing some features (e.g. accurate seeking).
315
+
316
+ ftp
317
+ FTP (File Transfer Protocol).
318
+
319
+ Read from or write to remote resources using FTP protocol.
320
+
321
+ Following syntax is required.
322
+
323
+ ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
324
+
325
+ This protocol accepts the following options.
326
+
327
+ timeout
328
+ Set timeout in microseconds of socket I/O operations used by the
329
+ underlying low level operation. By default it is set to -1, which
330
+ means that the timeout is not specified.
331
+
332
+ ftp-user
333
+ Set a user to be used for authenticating to the FTP server. This is
334
+ overridden by the user in the FTP URL.
335
+
336
+ ftp-password
337
+ Set a password to be used for authenticating to the FTP server.
338
+ This is overridden by the password in the FTP URL, or by ftp-
339
+ anonymous-password if no user is set.
340
+
341
+ ftp-anonymous-password
342
+ Password used when login as anonymous user. Typically an e-mail
343
+ address should be used.
344
+
345
+ ftp-write-seekable
346
+ Control seekability of connection during encoding. If set to 1 the
347
+ resource is supposed to be seekable, if set to 0 it is assumed not
348
+ to be seekable. Default value is 0.
349
+
350
+ NOTE: Protocol can be used as output, but it is recommended to not do
351
+ it, unless special care is taken (tests, customized server
352
+ configuration etc.). Different FTP servers behave in different way
353
+ during seek operation. ff* tools may produce incomplete content due to
354
+ server limitations.
355
+
356
+ gopher
357
+ Gopher protocol.
358
+
359
+ gophers
360
+ Gophers protocol.
361
+
362
+ The Gopher protocol with TLS encapsulation.
363
+
364
+ hls
365
+ Read Apple HTTP Live Streaming compliant segmented stream as a uniform
366
+ one. The M3U8 playlists describing the segments can be remote HTTP
367
+ resources or local files, accessed using the standard file protocol.
368
+ The nested protocol is declared by specifying "+proto" after the hls
369
+ URI scheme name, where proto is either "file" or "http".
370
+
371
+ hls+http://host/path/to/remote/resource.m3u8
372
+ hls+file://path/to/local/resource.m3u8
373
+
374
+ Using this protocol is discouraged - the hls demuxer should work just
375
+ as well (if not, please report the issues) and is more complete. To
376
+ use the hls demuxer instead, simply use the direct URLs to the m3u8
377
+ files.
378
+
379
+ http
380
+ HTTP (Hyper Text Transfer Protocol).
381
+
382
+ This protocol accepts the following options:
383
+
384
+ seekable
385
+ Control seekability of connection. If set to 1 the resource is
386
+ supposed to be seekable, if set to 0 it is assumed not to be
387
+ seekable, if set to -1 it will try to autodetect if it is seekable.
388
+ Default value is -1.
389
+
390
+ chunked_post
391
+ If set to 1 use chunked Transfer-Encoding for posts, default is 1.
392
+
393
+ content_type
394
+ Set a specific content type for the POST messages or for listen
395
+ mode.
396
+
397
+ http_proxy
398
+ set HTTP proxy to tunnel through e.g. http://example.com:1234
399
+
400
+ headers
401
+ Set custom HTTP headers, can override built in default headers. The
402
+ value must be a string encoding the headers.
403
+
404
+ multiple_requests
405
+ Use persistent connections if set to 1, default is 0.
406
+
407
+ post_data
408
+ Set custom HTTP post data.
409
+
410
+ referer
411
+ Set the Referer header. Include 'Referer: URL' header in HTTP
412
+ request.
413
+
414
+ user_agent
415
+ Override the User-Agent header. If not specified the protocol will
416
+ use a string describing the libavformat build. ("Lavf/<version>")
417
+
418
+ reconnect_at_eof
419
+ If set then eof is treated like an error and causes reconnection,
420
+ this is useful for live / endless streams.
421
+
422
+ reconnect_streamed
423
+ If set then even streamed/non seekable streams will be reconnected
424
+ on errors.
425
+
426
+ reconnect_on_network_error
427
+ Reconnect automatically in case of TCP/TLS errors during connect.
428
+
429
+ reconnect_on_http_error
430
+ A comma separated list of HTTP status codes to reconnect on. The
431
+ list can include specific status codes (e.g. '503') or the strings
432
+ '4xx' / '5xx'.
433
+
434
+ reconnect_delay_max
435
+ Sets the maximum delay in seconds after which to give up
436
+ reconnecting
437
+
438
+ mime_type
439
+ Export the MIME type.
440
+
441
+ http_version
442
+ Exports the HTTP response version number. Usually "1.0" or "1.1".
443
+
444
+ icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
445
+ the server supports this, the metadata has to be retrieved by the
446
+ application by reading the icy_metadata_headers and
447
+ icy_metadata_packet options. The default is 1.
448
+
449
+ icy_metadata_headers
450
+ If the server supports ICY metadata, this contains the ICY-specific
451
+ HTTP reply headers, separated by newline characters.
452
+
453
+ icy_metadata_packet
454
+ If the server supports ICY metadata, and icy was set to 1, this
455
+ contains the last non-empty metadata packet sent by the server. It
456
+ should be polled in regular intervals by applications interested in
457
+ mid-stream metadata updates.
458
+
459
+ cookies
460
+ Set the cookies to be sent in future requests. The format of each
461
+ cookie is the same as the value of a Set-Cookie HTTP response
462
+ field. Multiple cookies can be delimited by a newline character.
463
+
464
+ offset
465
+ Set initial byte offset.
466
+
467
+ end_offset
468
+ Try to limit the request to bytes preceding this offset.
469
+
470
+ method
471
+ When used as a client option it sets the HTTP method for the
472
+ request.
473
+
474
+ When used as a server option it sets the HTTP method that is going
475
+ to be expected from the client(s). If the expected and the
476
+ received HTTP method do not match the client will be given a Bad
477
+ Request response. When unset the HTTP method is not checked for
478
+ now. This will be replaced by autodetection in the future.
479
+
480
+ listen
481
+ If set to 1 enables experimental HTTP server. This can be used to
482
+ send data when used as an output option, or read data from a client
483
+ with HTTP POST when used as an input option. If set to 2 enables
484
+ experimental multi-client HTTP server. This is not yet implemented
485
+ in ffmpeg.c and thus must not be used as a command line option.
486
+
487
+ # Server side (sending):
488
+ ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
489
+
490
+ # Client side (receiving):
491
+ ffmpeg -i http://<server>:<port> -c copy somefile.ogg
492
+
493
+ # Client can also be done with wget:
494
+ wget http://<server>:<port> -O somefile.ogg
495
+
496
+ # Server side (receiving):
497
+ ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
498
+
499
+ # Client side (sending):
500
+ ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
501
+
502
+ # Client can also be done with wget:
503
+ wget --post-file=somefile.ogg http://<server>:<port>
504
+
505
+ send_expect_100
506
+ Send an Expect: 100-continue header for POST. If set to 1 it will
507
+ send, if set to 0 it won't, if set to -1 it will try to send if it
508
+ is applicable. Default value is -1.
509
+
510
+ auth_type
511
+ Set HTTP authentication type. No option for Digest, since this
512
+ method requires getting nonce parameters from the server first and
513
+ can't be used straight away like Basic.
514
+
515
+ none
516
+ Choose the HTTP authentication type automatically. This is the
517
+ default.
518
+
519
+ basic
520
+ Choose the HTTP basic authentication.
521
+
522
+ Basic authentication sends a Base64-encoded string that
523
+ contains a user name and password for the client. Base64 is not
524
+ a form of encryption and should be considered the same as
525
+ sending the user name and password in clear text (Base64 is a
526
+ reversible encoding). If a resource needs to be protected,
527
+ strongly consider using an authentication scheme other than
528
+ basic authentication. HTTPS/TLS should be used with basic
529
+ authentication. Without these additional security
530
+ enhancements, basic authentication should not be used to
531
+ protect sensitive or valuable information.
532
+
533
+ HTTP Cookies
534
+
535
+ Some HTTP requests will be denied unless cookie values are passed in
536
+ with the request. The cookies option allows these cookies to be
537
+ specified. At the very least, each cookie must specify a value along
538
+ with a path and domain. HTTP requests that match both the domain and
539
+ path will automatically include the cookie value in the HTTP Cookie
540
+ header field. Multiple cookies can be delimited by a newline.
541
+
542
+ The required syntax to play a stream specifying a cookie is:
543
+
544
+ ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
545
+
546
+ Icecast
547
+ Icecast protocol (stream to Icecast servers)
548
+
549
+ This protocol accepts the following options:
550
+
551
+ ice_genre
552
+ Set the stream genre.
553
+
554
+ ice_name
555
+ Set the stream name.
556
+
557
+ ice_description
558
+ Set the stream description.
559
+
560
+ ice_url
561
+ Set the stream website URL.
562
+
563
+ ice_public
564
+ Set if the stream should be public. The default is 0 (not public).
565
+
566
+ user_agent
567
+ Override the User-Agent header. If not specified a string of the
568
+ form "Lavf/<version>" will be used.
569
+
570
+ password
571
+ Set the Icecast mountpoint password.
572
+
573
+ content_type
574
+ Set the stream content type. This must be set if it is different
575
+ from audio/mpeg.
576
+
577
+ legacy_icecast
578
+ This enables support for Icecast versions < 2.4.0, that do not
579
+ support the HTTP PUT method but the SOURCE method.
580
+
581
+ tls Establish a TLS (HTTPS) connection to Icecast.
582
+
583
+ icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
584
+
585
+ ipfs
586
+ InterPlanetary File System (IPFS) protocol support. One can access
587
+ files stored on the IPFS network through so-called gateways. These are
588
+ http(s) endpoints. This protocol wraps the IPFS native protocols
589
+ (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
590
+ should) host their own node which means this protocol will use one's
591
+ local gateway to access files on the IPFS network.
592
+
593
+ This protocol accepts the following options:
594
+
595
+ gateway
596
+ Defines the gateway to use. When not set, the protocol will first
597
+ try locating the local gateway by looking at $IPFS_GATEWAY,
598
+ $IPFS_PATH and "$HOME/.ipfs/", in that order.
599
+
600
+ One can use this protocol in 2 ways. Using IPFS:
601
+
602
+ ffplay ipfs://<hash>
603
+
604
+ Or the IPNS protocol (IPNS is mutable IPFS):
605
+
606
+ ffplay ipns://<hash>
607
+
608
+ mmst
609
+ MMS (Microsoft Media Server) protocol over TCP.
610
+
611
+ mmsh
612
+ MMS (Microsoft Media Server) protocol over HTTP.
613
+
614
+ The required syntax is:
615
+
616
+ mmsh://<server>[:<port>][/<app>][/<playpath>]
617
+
618
+ md5
619
+ MD5 output protocol.
620
+
621
+ Computes the MD5 hash of the data to be written, and on close writes
622
+ this to the designated output or stdout if none is specified. It can be
623
+ used to test muxers without writing an actual file.
624
+
625
+ Some examples follow.
626
+
627
+ # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
628
+ ffmpeg -i input.flv -f avi -y md5:output.avi.md5
629
+
630
+ # Write the MD5 hash of the encoded AVI file to stdout.
631
+ ffmpeg -i input.flv -f avi -y md5:
632
+
633
+ Note that some formats (typically MOV) require the output protocol to
634
+ be seekable, so they will fail with the MD5 output protocol.
635
+
636
+ pipe
637
+ UNIX pipe access protocol.
638
+
639
+ Read and write from UNIX pipes.
640
+
641
+ The accepted syntax is:
642
+
643
+ pipe:[<number>]
644
+
645
+ If fd isn't specified, number is the number corresponding to the file
646
+ descriptor of the pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr).
647
+ If number is not specified, by default the stdout file descriptor will
648
+ be used for writing, stdin for reading.
649
+
650
+ For example to read from stdin with ffmpeg:
651
+
652
+ cat test.wav | ffmpeg -i pipe:0
653
+ # ...this is the same as...
654
+ cat test.wav | ffmpeg -i pipe:
655
+
656
+ For writing to stdout with ffmpeg:
657
+
658
+ ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
659
+ # ...this is the same as...
660
+ ffmpeg -i test.wav -f avi pipe: | cat > test.avi
661
+
662
+ This protocol accepts the following options:
663
+
664
+ blocksize
665
+ Set I/O operation maximum block size, in bytes. Default value is
666
+ "INT_MAX", which results in not limiting the requested block size.
667
+ Setting this value reasonably low improves user termination request
668
+ reaction time, which is valuable if data transmission is slow.
669
+
670
+ fd Set file descriptor.
671
+
672
+ Note that some formats (typically MOV), require the output protocol to
673
+ be seekable, so they will fail with the pipe output protocol.
674
+
675
+ prompeg
676
+ Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
677
+
678
+ The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
679
+ mechanism for MPEG-2 Transport Streams sent over RTP.
680
+
681
+ This protocol must be used in conjunction with the "rtp_mpegts" muxer
682
+ and the "rtp" protocol.
683
+
684
+ The required syntax is:
685
+
686
+ -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
687
+
688
+ The destination UDP ports are "port + 2" for the column FEC stream and
689
+ "port + 4" for the row FEC stream.
690
+
691
+ This protocol accepts the following options:
692
+
693
+ l=n The number of columns (4-20, LxD <= 100)
694
+
695
+ d=n The number of rows (4-20, LxD <= 100)
696
+
697
+ Example usage:
698
+
699
+ -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
700
+
701
+ rist
702
+ Reliable Internet Streaming Transport protocol
703
+
704
+ The accepted options are:
705
+
706
+ rist_profile
707
+ Supported values:
708
+
709
+ simple
710
+ main
711
+ This one is default.
712
+
713
+ advanced
714
+ buffer_size
715
+ Set internal RIST buffer size in milliseconds for retransmission of
716
+ data. Default value is 0 which means the librist default (1 sec).
717
+ Maximum value is 30 seconds.
718
+
719
+ fifo_size
720
+ Size of the librist receiver output fifo in number of packets. This
721
+ must be a power of 2. Defaults to 8192 (vs the librist default of
722
+ 1024).
723
+
724
+ overrun_nonfatal=1|0
725
+ Survive in case of librist fifo buffer overrun. Default value is 0.
726
+
727
+ pkt_size
728
+ Set maximum packet size for sending data. 1316 by default.
729
+
730
+ log_level
731
+ Set loglevel for RIST logging messages. You only need to set this
732
+ if you explicitly want to enable debug level messages or packet
733
+ loss simulation, otherwise the regular loglevel is respected.
734
+
735
+ secret
736
+ Set override of encryption secret, by default is unset.
737
+
738
+ encryption
739
+ Set encryption type, by default is disabled. Acceptable values are
740
+ 128 and 256.
741
+
742
+ rtmp
743
+ Real-Time Messaging Protocol.
744
+
745
+ The Real-Time Messaging Protocol (RTMP) is used for streaming
746
+ multimedia content across a TCP/IP network.
747
+
748
+ The required syntax is:
749
+
750
+ rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
751
+
752
+ The accepted parameters are:
753
+
754
+ username
755
+ An optional username (mostly for publishing).
756
+
757
+ password
758
+ An optional password (mostly for publishing).
759
+
760
+ server
761
+ The address of the RTMP server.
762
+
763
+ port
764
+ The number of the TCP port to use (by default is 1935).
765
+
766
+ app It is the name of the application to access. It usually corresponds
767
+ to the path where the application is installed on the RTMP server
768
+ (e.g. /ondemand/, /flash/live/, etc.). You can override the value
769
+ parsed from the URI through the "rtmp_app" option, too.
770
+
771
+ playpath
772
+ It is the path or name of the resource to play with reference to
773
+ the application specified in app, may be prefixed by "mp4:". You
774
+ can override the value parsed from the URI through the
775
+ "rtmp_playpath" option, too.
776
+
777
+ listen
778
+ Act as a server, listening for an incoming connection.
779
+
780
+ timeout
781
+ Maximum time to wait for the incoming connection. Implies listen.
782
+
783
+ Additionally, the following parameters can be set via command line
784
+ options (or in code via "AVOption"s):
785
+
786
+ rtmp_app
787
+ Name of application to connect on the RTMP server. This option
788
+ overrides the parameter specified in the URI.
789
+
790
+ rtmp_buffer
791
+ Set the client buffer time in milliseconds. The default is 3000.
792
+
793
+ rtmp_conn
794
+ Extra arbitrary AMF connection parameters, parsed from a string,
795
+ e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
796
+ value is prefixed by a single character denoting the type, B for
797
+ Boolean, N for number, S for string, O for object, or Z for null,
798
+ followed by a colon. For Booleans the data must be either 0 or 1
799
+ for FALSE or TRUE, respectively. Likewise for Objects the data
800
+ must be 0 or 1 to end or begin an object, respectively. Data items
801
+ in subobjects may be named, by prefixing the type with 'N' and
802
+ specifying the name before the value (i.e. "NB:myFlag:1"). This
803
+ option may be used multiple times to construct arbitrary AMF
804
+ sequences.
805
+
806
+ rtmp_enhanced_codecs
807
+ Specify the list of codecs the client advertises to support in an
808
+ enhanced RTMP stream. This option should be set to a comma
809
+ separated list of fourcc values, like "hvc1,av01,vp09" for multiple
810
+ codecs or "hvc1" for only one codec. The specified list will be
811
+ presented in the "fourCcLive" property of the Connect Command
812
+ Message.
813
+
814
+ rtmp_flashver
815
+ Version of the Flash plugin used to run the SWF player. The default
816
+ is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
817
+ (compatible; <libavformat version>).)
818
+
819
+ rtmp_flush_interval
820
+ Number of packets flushed in the same request (RTMPT only). The
821
+ default is 10.
822
+
823
+ rtmp_live
824
+ Specify that the media is a live stream. No resuming or seeking in
825
+ live streams is possible. The default value is "any", which means
826
+ the subscriber first tries to play the live stream specified in the
827
+ playpath. If a live stream of that name is not found, it plays the
828
+ recorded stream. The other possible values are "live" and
829
+ "recorded".
830
+
831
+ rtmp_pageurl
832
+ URL of the web page in which the media was embedded. By default no
833
+ value will be sent.
834
+
835
+ rtmp_playpath
836
+ Stream identifier to play or to publish. This option overrides the
837
+ parameter specified in the URI.
838
+
839
+ rtmp_subscribe
840
+ Name of live stream to subscribe to. By default no value will be
841
+ sent. It is only sent if the option is specified or if rtmp_live
842
+ is set to live.
843
+
844
+ rtmp_swfhash
845
+ SHA256 hash of the decompressed SWF file (32 bytes).
846
+
847
+ rtmp_swfsize
848
+ Size of the decompressed SWF file, required for SWFVerification.
849
+
850
+ rtmp_swfurl
851
+ URL of the SWF player for the media. By default no value will be
852
+ sent.
853
+
854
+ rtmp_swfverify
855
+ URL to player swf file, compute hash/size automatically.
856
+
857
+ rtmp_tcurl
858
+ URL of the target stream. Defaults to proto://host[:port]/app.
859
+
860
+ tcp_nodelay=1|0
861
+ Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
862
+
863
+ Remark: Writing to the socket is currently not optimized to
864
+ minimize system calls and reduces the efficiency / effect of
865
+ TCP_NODELAY.
866
+
867
+ For example to read with ffplay a multimedia resource named "sample"
868
+ from the application "vod" from an RTMP server "myserver":
869
+
870
+ ffplay rtmp://myserver/vod/sample
871
+
872
+ To publish to a password protected server, passing the playpath and app
873
+ names separately:
874
+
875
+ ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
876
+
877
+ rtmpe
878
+ Encrypted Real-Time Messaging Protocol.
879
+
880
+ The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
881
+ streaming multimedia content within standard cryptographic primitives,
882
+ consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
883
+ pair of RC4 keys.
884
+
885
+ rtmps
886
+ Real-Time Messaging Protocol over a secure SSL connection.
887
+
888
+ The Real-Time Messaging Protocol (RTMPS) is used for streaming
889
+ multimedia content across an encrypted connection.
890
+
891
+ rtmpt
892
+ Real-Time Messaging Protocol tunneled through HTTP.
893
+
894
+ The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
895
+ for streaming multimedia content within HTTP requests to traverse
896
+ firewalls.
897
+
898
+ rtmpte
899
+ Encrypted Real-Time Messaging Protocol tunneled through HTTP.
900
+
901
+ The Encrypted Real-Time Messaging Protocol tunneled through HTTP
902
+ (RTMPTE) is used for streaming multimedia content within HTTP requests
903
+ to traverse firewalls.
904
+
905
+ rtmpts
906
+ Real-Time Messaging Protocol tunneled through HTTPS.
907
+
908
+ The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
909
+ used for streaming multimedia content within HTTPS requests to traverse
910
+ firewalls.
911
+
912
+ libsmbclient
913
+ libsmbclient permits one to manipulate CIFS/SMB network resources.
914
+
915
+ Following syntax is required.
916
+
917
+ smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
918
+
919
+ This protocol accepts the following options.
920
+
921
+ timeout
922
+ Set timeout in milliseconds of socket I/O operations used by the
923
+ underlying low level operation. By default it is set to -1, which
924
+ means that the timeout is not specified.
925
+
926
+ truncate
927
+ Truncate existing files on write, if set to 1. A value of 0
928
+ prevents truncating. Default value is 1.
929
+
930
+ workgroup
931
+ Set the workgroup used for making connections. By default workgroup
932
+ is not specified.
933
+
934
+ For more information see: <http://www.samba.org/>.
935
+
936
+ libssh
937
+ Secure File Transfer Protocol via libssh
938
+
939
+ Read from or write to remote resources using SFTP protocol.
940
+
941
+ Following syntax is required.
942
+
943
+ sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
944
+
945
+ This protocol accepts the following options.
946
+
947
+ timeout
948
+ Set timeout of socket I/O operations used by the underlying low
949
+ level operation. By default it is set to -1, which means that the
950
+ timeout is not specified.
951
+
952
+ truncate
953
+ Truncate existing files on write, if set to 1. A value of 0
954
+ prevents truncating. Default value is 1.
955
+
956
+ private_key
957
+ Specify the path of the file containing private key to use during
958
+ authorization. By default libssh searches for keys in the ~/.ssh/
959
+ directory.
960
+
961
+ Example: Play a file stored on remote server.
962
+
963
+ ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
964
+
965
+ librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
966
+ Real-Time Messaging Protocol and its variants supported through
967
+ librtmp.
968
+
969
+ Requires the presence of the librtmp headers and library during
970
+ configuration. You need to explicitly configure the build with
971
+ "--enable-librtmp". If enabled this will replace the native RTMP
972
+ protocol.
973
+
974
+ This protocol provides most client functions and a few server functions
975
+ needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
976
+ (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
977
+ encrypted types (RTMPTE, RTMPTS).
978
+
979
+ The required syntax is:
980
+
981
+ <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
982
+
983
+ where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
984
+ "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
985
+ server, port, app and playpath have the same meaning as specified for
986
+ the RTMP native protocol. options contains a list of space-separated
987
+ options of the form key=val.
988
+
989
+ See the librtmp manual page (man 3 librtmp) for more information.
990
+
991
+ For example, to stream a file in real-time to an RTMP server using
992
+ ffmpeg:
993
+
994
+ ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
995
+
996
+ To play the same stream using ffplay:
997
+
998
+ ffplay "rtmp://myserver/live/mystream live=1"
999
+
1000
+ rtp
1001
+ Real-time Transport Protocol.
1002
+
1003
+ The required syntax for an RTP URL is:
1004
+ rtp://hostname[:port][?option=val...]
1005
+
1006
+ port specifies the RTP port to use.
1007
+
1008
+ The following URL options are supported:
1009
+
1010
+ ttl=n
1011
+ Set the TTL (Time-To-Live) value (for multicast only).
1012
+
1013
+ rtcpport=n
1014
+ Set the remote RTCP port to n.
1015
+
1016
+ localrtpport=n
1017
+ Set the local RTP port to n.
1018
+
1019
+ localrtcpport=n'
1020
+ Set the local RTCP port to n.
1021
+
1022
+ pkt_size=n
1023
+ Set max packet size (in bytes) to n.
1024
+
1025
+ buffer_size=size
1026
+ Set the maximum UDP socket buffer size in bytes.
1027
+
1028
+ connect=0|1
1029
+ Do a "connect()" on the UDP socket (if set to 1) or not (if set to
1030
+ 0).
1031
+
1032
+ sources=ip[,ip]
1033
+ List allowed source IP addresses.
1034
+
1035
+ block=ip[,ip]
1036
+ List disallowed (blocked) source IP addresses.
1037
+
1038
+ write_to_source=0|1
1039
+ Send packets to the source address of the latest received packet
1040
+ (if set to 1) or to a default remote address (if set to 0).
1041
+
1042
+ localport=n
1043
+ Set the local RTP port to n.
1044
+
1045
+ localaddr=addr
1046
+ Local IP address of a network interface used for sending packets or
1047
+ joining multicast groups.
1048
+
1049
+ timeout=n
1050
+ Set timeout (in microseconds) of socket I/O operations to n.
1051
+
1052
+ This is a deprecated option. Instead, localrtpport should be used.
1053
+
1054
+ Important notes:
1055
+
1056
+ 1. If rtcpport is not set the RTCP port will be set to the RTP port
1057
+ value plus 1.
1058
+
1059
+ 2. If localrtpport (the local RTP port) is not set any available port
1060
+ will be used for the local RTP and RTCP ports.
1061
+
1062
+ 3. If localrtcpport (the local RTCP port) is not set it will be set to
1063
+ the local RTP port value plus 1.
1064
+
1065
+ rtsp
1066
+ Real-Time Streaming Protocol.
1067
+
1068
+ RTSP is not technically a protocol handler in libavformat, it is a
1069
+ demuxer and muxer. The demuxer supports both normal RTSP (with data
1070
+ transferred over RTP; this is used by e.g. Apple and Microsoft) and
1071
+ Real-RTSP (with data transferred over RDT).
1072
+
1073
+ The muxer can be used to send a stream using RTSP ANNOUNCE to a server
1074
+ supporting it (currently Darwin Streaming Server and Mischa
1075
+ Spiegelmock's <https://github.com/revmischa/rtsp-server>).
1076
+
1077
+ The required syntax for a RTSP url is:
1078
+
1079
+ rtsp://<hostname>[:<port>]/<path>
1080
+
1081
+ Options can be set on the ffmpeg/ffplay command line, or set in code
1082
+ via "AVOption"s or in "avformat_open_input".
1083
+
1084
+ Muxer
1085
+
1086
+ The following options are supported.
1087
+
1088
+ rtsp_transport
1089
+ Set RTSP transport protocols.
1090
+
1091
+ It accepts the following values:
1092
+
1093
+ udp Use UDP as lower transport protocol.
1094
+
1095
+ tcp Use TCP (interleaving within the RTSP control channel) as lower
1096
+ transport protocol.
1097
+
1098
+ Default value is 0.
1099
+
1100
+ rtsp_flags
1101
+ Set RTSP flags.
1102
+
1103
+ The following values are accepted:
1104
+
1105
+ latm
1106
+ Use MP4A-LATM packetization instead of MPEG4-GENERIC for AAC.
1107
+
1108
+ rfc2190
1109
+ Use RFC 2190 packetization instead of RFC 4629 for H.263.
1110
+
1111
+ skip_rtcp
1112
+ Don't send RTCP sender reports.
1113
+
1114
+ h264_mode0
1115
+ Use mode 0 for H.264 in RTP.
1116
+
1117
+ send_bye
1118
+ Send RTCP BYE packets when finishing.
1119
+
1120
+ Default value is 0.
1121
+
1122
+ min_port
1123
+ Set minimum local UDP port. Default value is 5000.
1124
+
1125
+ max_port
1126
+ Set maximum local UDP port. Default value is 65000.
1127
+
1128
+ buffer_size
1129
+ Set the maximum socket buffer size in bytes.
1130
+
1131
+ pkt_size
1132
+ Set max send packet size (in bytes). Default value is 1472.
1133
+
1134
+ Demuxer
1135
+
1136
+ The following options are supported.
1137
+
1138
+ initial_pause
1139
+ Do not start playing the stream immediately if set to 1. Default
1140
+ value is 0.
1141
+
1142
+ rtsp_transport
1143
+ Set RTSP transport protocols.
1144
+
1145
+ It accepts the following values:
1146
+
1147
+ udp Use UDP as lower transport protocol.
1148
+
1149
+ tcp Use TCP (interleaving within the RTSP control channel) as lower
1150
+ transport protocol.
1151
+
1152
+ udp_multicast
1153
+ Use UDP multicast as lower transport protocol.
1154
+
1155
+ http
1156
+ Use HTTP tunneling as lower transport protocol, which is useful
1157
+ for passing proxies.
1158
+
1159
+ https
1160
+ Use HTTPs tunneling as lower transport protocol, which is
1161
+ useful for passing proxies and widely used for security
1162
+ consideration.
1163
+
1164
+ Multiple lower transport protocols may be specified, in that case
1165
+ they are tried one at a time (if the setup of one fails, the next
1166
+ one is tried). For the muxer, only the tcp and udp options are
1167
+ supported.
1168
+
1169
+ rtsp_flags
1170
+ Set RTSP flags.
1171
+
1172
+ The following values are accepted:
1173
+
1174
+ filter_src
1175
+ Accept packets only from negotiated peer address and port.
1176
+
1177
+ listen
1178
+ Act as a server, listening for an incoming connection.
1179
+
1180
+ prefer_tcp
1181
+ Try TCP for RTP transport first, if TCP is available as RTSP
1182
+ RTP transport.
1183
+
1184
+ satip_raw
1185
+ Export raw MPEG-TS stream instead of demuxing. The flag will
1186
+ simply write out the raw stream, with the original PAT/PMT/PIDs
1187
+ intact.
1188
+
1189
+ Default value is none.
1190
+
1191
+ allowed_media_types
1192
+ Set media types to accept from the server.
1193
+
1194
+ The following flags are accepted:
1195
+
1196
+ video
1197
+ audio
1198
+ data
1199
+ subtitle
1200
+
1201
+ By default it accepts all media types.
1202
+
1203
+ min_port
1204
+ Set minimum local UDP port. Default value is 5000.
1205
+
1206
+ max_port
1207
+ Set maximum local UDP port. Default value is 65000.
1208
+
1209
+ listen_timeout
1210
+ Set maximum timeout (in seconds) to establish an initial
1211
+ connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
1212
+ Default is -1 which means an infinite timeout when listen mode is
1213
+ set.
1214
+
1215
+ reorder_queue_size
1216
+ Set number of packets to buffer for handling of reordered packets.
1217
+
1218
+ timeout
1219
+ Set socket TCP I/O timeout in microseconds.
1220
+
1221
+ user_agent
1222
+ Override User-Agent header. If not specified, it defaults to the
1223
+ libavformat identifier string.
1224
+
1225
+ buffer_size
1226
+ Set the maximum socket buffer size in bytes.
1227
+
1228
+ When receiving data over UDP, the demuxer tries to reorder received
1229
+ packets (since they may arrive out of order, or packets may get lost
1230
+ totally). This can be disabled by setting the maximum demuxing delay to
1231
+ zero (via the "max_delay" field of AVFormatContext).
1232
+
1233
+ When watching multi-bitrate Real-RTSP streams with ffplay, the streams
1234
+ to display can be chosen with "-vst" n and "-ast" n for video and audio
1235
+ respectively, and can be switched on the fly by pressing "v" and "a".
1236
+
1237
+ Examples
1238
+
1239
+ The following examples all make use of the ffplay and ffmpeg tools.
1240
+
1241
+ o Watch a stream over UDP, with a max reordering delay of 0.5
1242
+ seconds:
1243
+
1244
+ ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
1245
+
1246
+ o Watch a stream tunneled over HTTP:
1247
+
1248
+ ffplay -rtsp_transport http rtsp://server/video.mp4
1249
+
1250
+ o Send a stream in realtime to a RTSP server, for others to watch:
1251
+
1252
+ ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
1253
+
1254
+ o Receive a stream in realtime:
1255
+
1256
+ ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
1257
+
1258
+ sap
1259
+ Session Announcement Protocol (RFC 2974). This is not technically a
1260
+ protocol handler in libavformat, it is a muxer and demuxer. It is used
1261
+ for signalling of RTP streams, by announcing the SDP for the streams
1262
+ regularly on a separate port.
1263
+
1264
+ Muxer
1265
+
1266
+ The syntax for a SAP url given to the muxer is:
1267
+
1268
+ sap://<destination>[:<port>][?<options>]
1269
+
1270
+ The RTP packets are sent to destination on port port, or to port 5004
1271
+ if no port is specified. options is a "&"-separated list. The
1272
+ following options are supported:
1273
+
1274
+ announce_addr=address
1275
+ Specify the destination IP address for sending the announcements
1276
+ to. If omitted, the announcements are sent to the commonly used
1277
+ SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
1278
+ or ff0e::2:7ffe if destination is an IPv6 address.
1279
+
1280
+ announce_port=port
1281
+ Specify the port to send the announcements on, defaults to 9875 if
1282
+ not specified.
1283
+
1284
+ ttl=ttl
1285
+ Specify the time to live value for the announcements and RTP
1286
+ packets, defaults to 255.
1287
+
1288
+ same_port=0|1
1289
+ If set to 1, send all RTP streams on the same port pair. If zero
1290
+ (the default), all streams are sent on unique ports, with each
1291
+ stream on a port 2 numbers higher than the previous. VLC/Live555
1292
+ requires this to be set to 1, to be able to receive the stream.
1293
+ The RTP stack in libavformat for receiving requires all streams to
1294
+ be sent on unique ports.
1295
+
1296
+ Example command lines follow.
1297
+
1298
+ To broadcast a stream on the local subnet, for watching in VLC:
1299
+
1300
+ ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
1301
+
1302
+ Similarly, for watching in ffplay:
1303
+
1304
+ ffmpeg -re -i <input> -f sap sap://224.0.0.255
1305
+
1306
+ And for watching in ffplay, over IPv6:
1307
+
1308
+ ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
1309
+
1310
+ Demuxer
1311
+
1312
+ The syntax for a SAP url given to the demuxer is:
1313
+
1314
+ sap://[<address>][:<port>]
1315
+
1316
+ address is the multicast address to listen for announcements on, if
1317
+ omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
1318
+ port that is listened on, 9875 if omitted.
1319
+
1320
+ The demuxers listens for announcements on the given address and port.
1321
+ Once an announcement is received, it tries to receive that particular
1322
+ stream.
1323
+
1324
+ Example command lines follow.
1325
+
1326
+ To play back the first stream announced on the normal SAP multicast
1327
+ address:
1328
+
1329
+ ffplay sap://
1330
+
1331
+ To play back the first stream announced on one the default IPv6 SAP
1332
+ multicast address:
1333
+
1334
+ ffplay sap://[ff0e::2:7ffe]
1335
+
1336
+ sctp
1337
+ Stream Control Transmission Protocol.
1338
+
1339
+ The accepted URL syntax is:
1340
+
1341
+ sctp://<host>:<port>[?<options>]
1342
+
1343
+ The protocol accepts the following options:
1344
+
1345
+ listen
1346
+ If set to any value, listen for an incoming connection. Outgoing
1347
+ connection is done by default.
1348
+
1349
+ max_streams
1350
+ Set the maximum number of streams. By default no limit is set.
1351
+
1352
+ srt
1353
+ Haivision Secure Reliable Transport Protocol via libsrt.
1354
+
1355
+ The supported syntax for a SRT URL is:
1356
+
1357
+ srt://<hostname>:<port>[?<options>]
1358
+
1359
+ options contains a list of &-separated options of the form key=val.
1360
+
1361
+ or
1362
+
1363
+ <options> srt://<hostname>:<port>
1364
+
1365
+ options contains a list of '-key val' options.
1366
+
1367
+ This protocol accepts the following options.
1368
+
1369
+ connect_timeout=milliseconds
1370
+ Connection timeout; SRT cannot connect for RTT > 1500 msec (2
1371
+ handshake exchanges) with the default connect timeout of 3 seconds.
1372
+ This option applies to the caller and rendezvous connection modes.
1373
+ The connect timeout is 10 times the value set for the rendezvous
1374
+ mode (which can be used as a workaround for this connection problem
1375
+ with earlier versions).
1376
+
1377
+ ffs=bytes
1378
+ Flight Flag Size (Window Size), in bytes. FFS is actually an
1379
+ internal parameter and you should set it to not less than
1380
+ recv_buffer_size and mss. The default value is relatively large,
1381
+ therefore unless you set a very large receiver buffer, you do not
1382
+ need to change this option. Default value is 25600.
1383
+
1384
+ inputbw=bytes/seconds
1385
+ Sender nominal input rate, in bytes per seconds. Used along with
1386
+ oheadbw, when maxbw is set to relative (0), to calculate maximum
1387
+ sending rate when recovery packets are sent along with the main
1388
+ media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
1389
+ while maxbw is set to relative (0), the actual input rate is
1390
+ evaluated inside the library. Default value is 0.
1391
+
1392
+ iptos=tos
1393
+ IP Type of Service. Applies to sender only. Default value is 0xB8.
1394
+
1395
+ ipttl=ttl
1396
+ IP Time To Live. Applies to sender only. Default value is 64.
1397
+
1398
+ latency=microseconds
1399
+ Timestamp-based Packet Delivery Delay. Used to absorb bursts of
1400
+ missed packet retransmissions. This flag sets both rcvlatency and
1401
+ peerlatency to the same value. Note that prior to version 1.3.0
1402
+ this is the only flag to set the latency, however this is
1403
+ effectively equivalent to setting peerlatency, when side is sender
1404
+ and rcvlatency when side is receiver, and the bidirectional stream
1405
+ sending is not supported.
1406
+
1407
+ listen_timeout=microseconds
1408
+ Set socket listen timeout.
1409
+
1410
+ maxbw=bytes/seconds
1411
+ Maximum sending bandwidth, in bytes per seconds. -1 infinite
1412
+ (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
1413
+ absolute limit value Default value is 0 (relative)
1414
+
1415
+ mode=caller|listener|rendezvous
1416
+ Connection mode. caller opens client connection. listener starts
1417
+ server to listen for incoming connections. rendezvous use Rendez-
1418
+ Vous connection mode. Default value is caller.
1419
+
1420
+ mss=bytes
1421
+ Maximum Segment Size, in bytes. Used for buffer allocation and rate
1422
+ calculation using a packet counter assuming fully filled packets.
1423
+ The smallest MSS between the peers is used. This is 1500 by default
1424
+ in the overall internet. This is the maximum size of the UDP
1425
+ packet and can be only decreased, unless you have some unusual
1426
+ dedicated network settings. Default value is 1500.
1427
+
1428
+ nakreport=1|0
1429
+ If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
1430
+ periodically until a lost packet is retransmitted or intentionally
1431
+ dropped. Default value is 1.
1432
+
1433
+ oheadbw=percents
1434
+ Recovery bandwidth overhead above input rate, in percents. See
1435
+ inputbw. Default value is 25%.
1436
+
1437
+ passphrase=string
1438
+ HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
1439
+ 79 characters. The passphrase is the shared secret between the
1440
+ sender and the receiver. It is used to generate the Key Encrypting
1441
+ Key using PBKDF2 (Password-Based Key Derivation Function). It is
1442
+ used only if pbkeylen is non-zero. It is used on the receiver only
1443
+ if the received data is encrypted. The configured passphrase
1444
+ cannot be recovered (write-only).
1445
+
1446
+ enforced_encryption=1|0
1447
+ If true, both connection parties must have the same password set
1448
+ (including empty, that is, with no encryption). If the password
1449
+ doesn't match or only one side is unencrypted, the connection is
1450
+ rejected. Default is true.
1451
+
1452
+ kmrefreshrate=packets
1453
+ The number of packets to be transmitted after which the encryption
1454
+ key is switched to a new key. Default is -1. -1 means auto
1455
+ (0x1000000 in srt library). The range for this option is integers
1456
+ in the 0 - "INT_MAX".
1457
+
1458
+ kmpreannounce=packets
1459
+ The interval between when a new encryption key is sent and when
1460
+ switchover occurs. This value also applies to the subsequent
1461
+ interval between when switchover occurs and when the old encryption
1462
+ key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
1463
+ library). The range for this option is integers in the 0 -
1464
+ "INT_MAX".
1465
+
1466
+ snddropdelay=microseconds
1467
+ The sender's extra delay before dropping packets. This delay is
1468
+ added to the default drop delay time interval value.
1469
+
1470
+ Special value -1: Do not drop packets on the sender at all.
1471
+
1472
+ payload_size=bytes
1473
+ Sets the maximum declared size of a packet transferred during the
1474
+ single call to the sending function in Live mode. Use 0 if this
1475
+ value isn't used (which is default in file mode). Default is -1
1476
+ (automatic), which typically means MPEG-TS; if you are going to use
1477
+ SRT to send any different kind of payload, such as, for example,
1478
+ wrapping a live stream in very small frames, then you can use a
1479
+ bigger maximum frame size, though not greater than 1456 bytes.
1480
+
1481
+ pkt_size=bytes
1482
+ Alias for payload_size.
1483
+
1484
+ peerlatency=microseconds
1485
+ The latency value (as described in rcvlatency) that is set by the
1486
+ sender side as a minimum value for the receiver.
1487
+
1488
+ pbkeylen=bytes
1489
+ Sender encryption key length, in bytes. Only can be set to 0, 16,
1490
+ 24 and 32. Enable sender encryption if not 0. Not required on
1491
+ receiver (set to 0), key size obtained from sender in HaiCrypt
1492
+ handshake. Default value is 0.
1493
+
1494
+ rcvlatency=microseconds
1495
+ The time that should elapse since the moment when the packet was
1496
+ sent and the moment when it's delivered to the receiver application
1497
+ in the receiving function. This time should be a buffer time large
1498
+ enough to cover the time spent for sending, unexpectedly extended
1499
+ RTT time, and the time needed to retransmit the lost UDP packet.
1500
+ The effective latency value will be the maximum of this options'
1501
+ value and the value of peerlatency set by the peer side. Before
1502
+ version 1.3.0 this option is only available as latency.
1503
+
1504
+ recv_buffer_size=bytes
1505
+ Set UDP receive buffer size, expressed in bytes.
1506
+
1507
+ send_buffer_size=bytes
1508
+ Set UDP send buffer size, expressed in bytes.
1509
+
1510
+ timeout=microseconds
1511
+ Set raise error timeouts for read, write and connect operations.
1512
+ Note that the SRT library has internal timeouts which can be
1513
+ controlled separately, the value set here is only a cap on those.
1514
+
1515
+ tlpktdrop=1|0
1516
+ Too-late Packet Drop. When enabled on receiver, it skips missing
1517
+ packets that have not been delivered in time and delivers the
1518
+ following packets to the application when their time-to-play has
1519
+ come. It also sends a fake ACK to the sender. When enabled on
1520
+ sender and enabled on the receiving peer, the sender drops the
1521
+ older packets that have no chance of being delivered in time. It
1522
+ was automatically enabled in the sender if the receiver supports
1523
+ it.
1524
+
1525
+ sndbuf=bytes
1526
+ Set send buffer size, expressed in bytes.
1527
+
1528
+ rcvbuf=bytes
1529
+ Set receive buffer size, expressed in bytes.
1530
+
1531
+ Receive buffer must not be greater than ffs.
1532
+
1533
+ lossmaxttl=packets
1534
+ The value up to which the Reorder Tolerance may grow. When Reorder
1535
+ Tolerance is > 0, then packet loss report is delayed until that
1536
+ number of packets come in. Reorder Tolerance increases every time a
1537
+ "belated" packet has come, but it wasn't due to retransmission
1538
+ (that is, when UDP packets tend to come out of order), with the
1539
+ difference between the latest sequence and this packet's sequence,
1540
+ and not more than the value of this option. By default it's 0,
1541
+ which means that this mechanism is turned off, and the loss report
1542
+ is always sent immediately upon experiencing a "gap" in sequences.
1543
+
1544
+ minversion
1545
+ The minimum SRT version that is required from the peer. A
1546
+ connection to a peer that does not satisfy the minimum version
1547
+ requirement will be rejected.
1548
+
1549
+ The version format in hex is 0xXXYYZZ for x.y.z in human readable
1550
+ form.
1551
+
1552
+ streamid=string
1553
+ A string limited to 512 characters that can be set on the socket
1554
+ prior to connecting. This stream ID will be able to be retrieved by
1555
+ the listener side from the socket that is returned from srt_accept
1556
+ and was connected by a socket with that set stream ID. SRT does not
1557
+ enforce any special interpretation of the contents of this string.
1558
+ This option doesnXt make sense in Rendezvous connection; the result
1559
+ might be that simply one side will override the value from the
1560
+ other side and itXs the matter of luck which one would win
1561
+
1562
+ srt_streamid=string
1563
+ Alias for streamid to avoid conflict with ffmpeg command line
1564
+ option.
1565
+
1566
+ smoother=live|file
1567
+ The type of Smoother used for the transmission for that socket,
1568
+ which is responsible for the transmission and congestion control.
1569
+ The Smoother type must be exactly the same on both connecting
1570
+ parties, otherwise the connection is rejected.
1571
+
1572
+ messageapi=1|0
1573
+ When set, this socket uses the Message API, otherwise it uses
1574
+ Buffer API. Note that in live mode (see transtype) thereXs only
1575
+ message API available. In File mode you can chose to use one of two
1576
+ modes:
1577
+
1578
+ Stream API (default, when this option is false). In this mode you
1579
+ may send as many data as you wish with one sending instruction, or
1580
+ even use dedicated functions that read directly from a file. The
1581
+ internal facility will take care of any speed and congestion
1582
+ control. When receiving, you can also receive as many data as
1583
+ desired, the data not extracted will be waiting for the next call.
1584
+ There is no boundary between data portions in the Stream mode.
1585
+
1586
+ Message API. In this mode your single sending instruction passes
1587
+ exactly one piece of data that has boundaries (a message). Contrary
1588
+ to Live mode, this message may span across multiple UDP packets and
1589
+ the only size limitation is that it shall fit as a whole in the
1590
+ sending buffer. The receiver shall use as large buffer as necessary
1591
+ to receive the message, otherwise the message will not be given up.
1592
+ When the message is not complete (not all packets received or there
1593
+ was a packet loss) it will not be given up.
1594
+
1595
+ transtype=live|file
1596
+ Sets the transmission type for the socket, in particular, setting
1597
+ this option sets multiple other parameters to their default values
1598
+ as required for a particular transmission type.
1599
+
1600
+ live: Set options as for live transmission. In this mode, you
1601
+ should send by one sending instruction only so many data that fit
1602
+ in one UDP packet, and limited to the value defined first in
1603
+ payload_size (1316 is default in this mode). There is no speed
1604
+ control in this mode, only the bandwidth control, if configured, in
1605
+ order to not exceed the bandwidth with the overhead transmission
1606
+ (retransmitted and control packets).
1607
+
1608
+ file: Set options as for non-live transmission. See messageapi for
1609
+ further explanations
1610
+
1611
+ linger=seconds
1612
+ The number of seconds that the socket waits for unsent data when
1613
+ closing. Default is -1. -1 means auto (off with 0 seconds in live
1614
+ mode, on with 180 seconds in file mode). The range for this option
1615
+ is integers in the 0 - "INT_MAX".
1616
+
1617
+ tsbpd=1|0
1618
+ When true, use Timestamp-based Packet Delivery mode. The default
1619
+ behavior depends on the transmission type: enabled in live mode,
1620
+ disabled in file mode.
1621
+
1622
+ For more information see: <https://github.com/Haivision/srt>.
1623
+
1624
+ srtp
1625
+ Secure Real-time Transport Protocol.
1626
+
1627
+ The accepted options are:
1628
+
1629
+ srtp_in_suite
1630
+ srtp_out_suite
1631
+ Select input and output encoding suites.
1632
+
1633
+ Supported values:
1634
+
1635
+ AES_CM_128_HMAC_SHA1_80
1636
+ SRTP_AES128_CM_HMAC_SHA1_80
1637
+ AES_CM_128_HMAC_SHA1_32
1638
+ SRTP_AES128_CM_HMAC_SHA1_32
1639
+ srtp_in_params
1640
+ srtp_out_params
1641
+ Set input and output encoding parameters, which are expressed by a
1642
+ base64-encoded representation of a binary block. The first 16 bytes
1643
+ of this binary block are used as master key, the following 14 bytes
1644
+ are used as master salt.
1645
+
1646
+ subfile
1647
+ Virtually extract a segment of a file or another stream. The
1648
+ underlying stream must be seekable.
1649
+
1650
+ Accepted options:
1651
+
1652
+ start
1653
+ Start offset of the extracted segment, in bytes.
1654
+
1655
+ end End offset of the extracted segment, in bytes. If set to 0,
1656
+ extract till end of file.
1657
+
1658
+ Examples:
1659
+
1660
+ Extract a chapter from a DVD VOB file (start and end sectors obtained
1661
+ externally and multiplied by 2048):
1662
+
1663
+ subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
1664
+
1665
+ Play an AVI file directly from a TAR archive:
1666
+
1667
+ subfile,,start,183241728,end,366490624,,:archive.tar
1668
+
1669
+ Play a MPEG-TS file from start offset till end:
1670
+
1671
+ subfile,,start,32815239,end,0,,:video.ts
1672
+
1673
+ tee
1674
+ Writes the output to multiple protocols. The individual outputs are
1675
+ separated by |
1676
+
1677
+ tee:file://path/to/local/this.avi|file://path/to/local/that.avi
1678
+
1679
+ tcp
1680
+ Transmission Control Protocol.
1681
+
1682
+ The required syntax for a TCP url is:
1683
+
1684
+ tcp://<hostname>:<port>[?<options>]
1685
+
1686
+ options contains a list of &-separated options of the form key=val.
1687
+
1688
+ The list of supported options follows.
1689
+
1690
+ listen=2|1|0
1691
+ Listen for an incoming connection. 0 disables listen, 1 enables
1692
+ listen in single client mode, 2 enables listen in multi-client
1693
+ mode. Default value is 0.
1694
+
1695
+ local_addr=addr
1696
+ Local IP address of a network interface used for tcp socket
1697
+ connect.
1698
+
1699
+ local_port=port
1700
+ Local port used for tcp socket connect.
1701
+
1702
+ timeout=microseconds
1703
+ Set raise error timeout, expressed in microseconds.
1704
+
1705
+ This option is only relevant in read mode: if no data arrived in
1706
+ more than this time interval, raise error.
1707
+
1708
+ listen_timeout=milliseconds
1709
+ Set listen timeout, expressed in milliseconds.
1710
+
1711
+ recv_buffer_size=bytes
1712
+ Set receive buffer size, expressed bytes.
1713
+
1714
+ send_buffer_size=bytes
1715
+ Set send buffer size, expressed bytes.
1716
+
1717
+ tcp_nodelay=1|0
1718
+ Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
1719
+
1720
+ Remark: Writing to the socket is currently not optimized to
1721
+ minimize system calls and reduces the efficiency / effect of
1722
+ TCP_NODELAY.
1723
+
1724
+ tcp_mss=bytes
1725
+ Set maximum segment size for outgoing TCP packets, expressed in
1726
+ bytes.
1727
+
1728
+ The following example shows how to setup a listening TCP connection
1729
+ with ffmpeg, which is then accessed with ffplay:
1730
+
1731
+ ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
1732
+ ffplay tcp://<hostname>:<port>
1733
+
1734
+ tls
1735
+ Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
1736
+
1737
+ The required syntax for a TLS/SSL url is:
1738
+
1739
+ tls://<hostname>:<port>[?<options>]
1740
+
1741
+ The following parameters can be set via command line options (or in
1742
+ code via "AVOption"s):
1743
+
1744
+ ca_file, cafile=filename
1745
+ A file containing certificate authority (CA) root certificates to
1746
+ treat as trusted. If the linked TLS library contains a default this
1747
+ might not need to be specified for verification to work, but not
1748
+ all libraries and setups have defaults built in. The file must be
1749
+ in OpenSSL PEM format.
1750
+
1751
+ tls_verify=1|0
1752
+ If enabled, try to verify the peer that we are communicating with.
1753
+ Note, if using OpenSSL, this currently only makes sure that the
1754
+ peer certificate is signed by one of the root certificates in the
1755
+ CA database, but it does not validate that the certificate actually
1756
+ matches the host name we are trying to connect to. (With other
1757
+ backends, the host name is validated as well.)
1758
+
1759
+ This is disabled by default since it requires a CA database to be
1760
+ provided by the caller in many cases.
1761
+
1762
+ cert_file, cert=filename
1763
+ A file containing a certificate to use in the handshake with the
1764
+ peer. (When operating as server, in listen mode, this is more
1765
+ often required by the peer, while client certificates only are
1766
+ mandated in certain setups.)
1767
+
1768
+ key_file, key=filename
1769
+ A file containing the private key for the certificate.
1770
+
1771
+ listen=1|0
1772
+ If enabled, listen for connections on the provided port, and assume
1773
+ the server role in the handshake instead of the client role.
1774
+
1775
+ http_proxy
1776
+ The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
1777
+ The proxy must support the CONNECT method.
1778
+
1779
+ Example command lines:
1780
+
1781
+ To create a TLS/SSL server that serves an input stream.
1782
+
1783
+ ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
1784
+
1785
+ To play back a stream from the TLS/SSL server using ffplay:
1786
+
1787
+ ffplay tls://<hostname>:<port>
1788
+
1789
+ udp
1790
+ User Datagram Protocol.
1791
+
1792
+ The required syntax for an UDP URL is:
1793
+
1794
+ udp://<hostname>:<port>[?<options>]
1795
+
1796
+ options contains a list of &-separated options of the form key=val.
1797
+
1798
+ In case threading is enabled on the system, a circular buffer is used
1799
+ to store the incoming data, which allows one to reduce loss of data due
1800
+ to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
1801
+ options are related to this buffer.
1802
+
1803
+ The list of supported options follows.
1804
+
1805
+ buffer_size=size
1806
+ Set the UDP maximum socket buffer size in bytes. This is used to
1807
+ set either the receive or send buffer size, depending on what the
1808
+ socket is used for. Default is 32 KB for output, 384 KB for input.
1809
+ See also fifo_size.
1810
+
1811
+ bitrate=bitrate
1812
+ If set to nonzero, the output will have the specified constant
1813
+ bitrate if the input has enough packets to sustain it.
1814
+
1815
+ burst_bits=bits
1816
+ When using bitrate this specifies the maximum number of bits in
1817
+ packet bursts.
1818
+
1819
+ localport=port
1820
+ Override the local UDP port to bind with.
1821
+
1822
+ localaddr=addr
1823
+ Local IP address of a network interface used for sending packets or
1824
+ joining multicast groups.
1825
+
1826
+ pkt_size=size
1827
+ Set the size in bytes of UDP packets.
1828
+
1829
+ reuse=1|0
1830
+ Explicitly allow or disallow reusing UDP sockets.
1831
+
1832
+ ttl=ttl
1833
+ Set the time to live value (for multicast only).
1834
+
1835
+ connect=1|0
1836
+ Initialize the UDP socket with "connect()". In this case, the
1837
+ destination address can't be changed with ff_udp_set_remote_url
1838
+ later. If the destination address isn't known at the start, this
1839
+ option can be specified in ff_udp_set_remote_url, too. This allows
1840
+ finding out the source address for the packets with getsockname,
1841
+ and makes writes return with AVERROR(ECONNREFUSED) if "destination
1842
+ unreachable" is received. For receiving, this gives the benefit of
1843
+ only receiving packets from the specified peer address/port.
1844
+
1845
+ sources=address[,address]
1846
+ Only receive packets sent from the specified addresses. In case of
1847
+ multicast, also subscribe to multicast traffic coming from these
1848
+ addresses only.
1849
+
1850
+ block=address[,address]
1851
+ Ignore packets sent from the specified addresses. In case of
1852
+ multicast, also exclude the source addresses in the multicast
1853
+ subscription.
1854
+
1855
+ fifo_size=units
1856
+ Set the UDP receiving circular buffer size, expressed as a number
1857
+ of packets with size of 188 bytes. If not specified defaults to
1858
+ 7*4096.
1859
+
1860
+ overrun_nonfatal=1|0
1861
+ Survive in case of UDP receiving circular buffer overrun. Default
1862
+ value is 0.
1863
+
1864
+ timeout=microseconds
1865
+ Set raise error timeout, expressed in microseconds.
1866
+
1867
+ This option is only relevant in read mode: if no data arrived in
1868
+ more than this time interval, raise error.
1869
+
1870
+ broadcast=1|0
1871
+ Explicitly allow or disallow UDP broadcasting.
1872
+
1873
+ Note that broadcasting may not work properly on networks having a
1874
+ broadcast storm protection.
1875
+
1876
+ Examples
1877
+
1878
+ o Use ffmpeg to stream over UDP to a remote endpoint:
1879
+
1880
+ ffmpeg -i <input> -f <format> udp://<hostname>:<port>
1881
+
1882
+ o Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
1883
+ packets, using a large input buffer:
1884
+
1885
+ ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
1886
+
1887
+ o Use ffmpeg to receive over UDP from a remote endpoint:
1888
+
1889
+ ffmpeg -i udp://[<multicast-address>]:<port> ...
1890
+
1891
+ unix
1892
+ Unix local socket
1893
+
1894
+ The required syntax for a Unix socket URL is:
1895
+
1896
+ unix://<filepath>
1897
+
1898
+ The following parameters can be set via command line options (or in
1899
+ code via "AVOption"s):
1900
+
1901
+ timeout
1902
+ Timeout in ms.
1903
+
1904
+ listen
1905
+ Create the Unix socket in listening mode.
1906
+
1907
+ zmq
1908
+ ZeroMQ asynchronous messaging using the libzmq library.
1909
+
1910
+ This library supports unicast streaming to multiple clients without
1911
+ relying on an external server.
1912
+
1913
+ The required syntax for streaming or connecting to a stream is:
1914
+
1915
+ zmq:tcp://ip-address:port
1916
+
1917
+ Example: Create a localhost stream on port 5555:
1918
+
1919
+ ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
1920
+
1921
+ Multiple clients may connect to the stream using:
1922
+
1923
+ ffplay zmq:tcp://127.0.0.1:5555
1924
+
1925
+ Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
1926
+ pattern. The server side binds to a port and publishes data. Clients
1927
+ connect to the server (via IP address/port) and subscribe to the
1928
+ stream. The order in which the server and client start generally does
1929
+ not matter.
1930
+
1931
+ ffmpeg must be compiled with the --enable-libzmq option to support this
1932
+ protocol.
1933
+
1934
+ Options can be set on the ffmpeg/ffplay command line. The following
1935
+ options are supported:
1936
+
1937
+ pkt_size
1938
+ Forces the maximum packet size for sending/receiving data. The
1939
+ default value is 131,072 bytes. On the server side, this sets the
1940
+ maximum size of sent packets via ZeroMQ. On the clients, it sets an
1941
+ internal buffer size for receiving packets. Note that pkt_size on
1942
+ the clients should be equal to or greater than pkt_size on the
1943
+ server. Otherwise the received message may be truncated causing
1944
+ decoding errors.
1945
+
1946
+ SEE ALSO
1947
+ ffmpeg(1), ffplay(1), ffprobe(1), libavformat(3)
1948
+
1949
+ AUTHORS
1950
+ The FFmpeg developers.
1951
+
1952
+ For details about the authorship, see the Git history of the project
1953
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
1954
+ the FFmpeg source directory, or browsing the online repository at
1955
+ <https://git.ffmpeg.org/ffmpeg>.
1956
+
1957
+ Maintainers for the specific components are listed in the file
1958
+ MAINTAINERS in the source code tree.
1959
+
1960
+ FFMPEG-PROTOCOLS(1)
ffmpeg/manpages/ffmpeg-resampler.txt ADDED
@@ -0,0 +1,259 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFMPEG-RESAMPLER(1) FFMPEG-RESAMPLER(1)
2
+
3
+ NAME
4
+ ffmpeg-resampler - FFmpeg Resampler
5
+
6
+ DESCRIPTION
7
+ The FFmpeg resampler provides a high-level interface to the
8
+ libswresample library audio resampling utilities. In particular it
9
+ allows one to perform audio resampling, audio channel layout
10
+ rematrixing, and convert audio format and packing layout.
11
+
12
+ RESAMPLER OPTIONS
13
+ The audio resampler supports the following named options.
14
+
15
+ Options may be set by specifying -option value in the FFmpeg tools,
16
+ option=value for the aresample filter, by setting the value explicitly
17
+ in the "SwrContext" options or using the libavutil/opt.h API for
18
+ programmatic use.
19
+
20
+ uchl, used_chlayout
21
+ Set used input channel layout. Default is unset. This option is
22
+ only used for special remapping.
23
+
24
+ isr, in_sample_rate
25
+ Set the input sample rate. Default value is 0.
26
+
27
+ osr, out_sample_rate
28
+ Set the output sample rate. Default value is 0.
29
+
30
+ isf, in_sample_fmt
31
+ Specify the input sample format. It is set by default to "none".
32
+
33
+ osf, out_sample_fmt
34
+ Specify the output sample format. It is set by default to "none".
35
+
36
+ tsf, internal_sample_fmt
37
+ Set the internal sample format. Default value is "none". This will
38
+ automatically be chosen when it is not explicitly set.
39
+
40
+ ichl, in_chlayout
41
+ ochl, out_chlayout
42
+ Set the input/output channel layout.
43
+
44
+ See the Channel Layout section in the ffmpeg-utils(1) manual for
45
+ the required syntax.
46
+
47
+ clev, center_mix_level
48
+ Set the center mix level. It is a value expressed in deciBel, and
49
+ must be in the interval [-32,32].
50
+
51
+ slev, surround_mix_level
52
+ Set the surround mix level. It is a value expressed in deciBel, and
53
+ must be in the interval [-32,32].
54
+
55
+ lfe_mix_level
56
+ Set LFE mix into non LFE level. It is used when there is a LFE
57
+ input but no LFE output. It is a value expressed in deciBel, and
58
+ must be in the interval [-32,32].
59
+
60
+ rmvol, rematrix_volume
61
+ Set rematrix volume. Default value is 1.0.
62
+
63
+ rematrix_maxval
64
+ Set maximum output value for rematrixing. This can be used to
65
+ prevent clipping vs. preventing volume reduction. A value of 1.0
66
+ prevents clipping.
67
+
68
+ flags, swr_flags
69
+ Set flags used by the converter. Default value is 0.
70
+
71
+ It supports the following individual flags:
72
+
73
+ res force resampling, this flag forces resampling to be used even
74
+ when the input and output sample rates match.
75
+
76
+ dither_scale
77
+ Set the dither scale. Default value is 1.
78
+
79
+ dither_method
80
+ Set dither method. Default value is 0.
81
+
82
+ Supported values:
83
+
84
+ rectangular
85
+ select rectangular dither
86
+
87
+ triangular
88
+ select triangular dither
89
+
90
+ triangular_hp
91
+ select triangular dither with high pass
92
+
93
+ lipshitz
94
+ select Lipshitz noise shaping dither.
95
+
96
+ shibata
97
+ select Shibata noise shaping dither.
98
+
99
+ low_shibata
100
+ select low Shibata noise shaping dither.
101
+
102
+ high_shibata
103
+ select high Shibata noise shaping dither.
104
+
105
+ f_weighted
106
+ select f-weighted noise shaping dither
107
+
108
+ modified_e_weighted
109
+ select modified-e-weighted noise shaping dither
110
+
111
+ improved_e_weighted
112
+ select improved-e-weighted noise shaping dither
113
+
114
+ resampler
115
+ Set resampling engine. Default value is swr.
116
+
117
+ Supported values:
118
+
119
+ swr select the native SW Resampler; filter options precision and
120
+ cheby are not applicable in this case.
121
+
122
+ soxr
123
+ select the SoX Resampler (where available); compensation, and
124
+ filter options filter_size, phase_shift, exact_rational,
125
+ filter_type & kaiser_beta, are not applicable in this case.
126
+
127
+ filter_size
128
+ For swr only, set resampling filter size, default value is 32.
129
+
130
+ phase_shift
131
+ For swr only, set resampling phase shift, default value is 10, and
132
+ must be in the interval [0,30].
133
+
134
+ linear_interp
135
+ Use linear interpolation when enabled (the default). Disable it if
136
+ you want to preserve speed instead of quality when exact_rational
137
+ fails.
138
+
139
+ exact_rational
140
+ For swr only, when enabled, try to use exact phase_count based on
141
+ input and output sample rate. However, if it is larger than "1 <<
142
+ phase_shift", the phase_count will be "1 << phase_shift" as
143
+ fallback. Default is enabled.
144
+
145
+ cutoff
146
+ Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
147
+ be a float value between 0 and 1. Default value is 0.97 with swr,
148
+ and 0.91 with soxr (which, with a sample-rate of 44100, preserves
149
+ the entire audio band to 20kHz).
150
+
151
+ precision
152
+ For soxr only, the precision in bits to which the resampled signal
153
+ will be calculated. The default value of 20 (which, with suitable
154
+ dithering, is appropriate for a destination bit-depth of 16) gives
155
+ SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
156
+ Quality'.
157
+
158
+ cheby
159
+ For soxr only, selects passband rolloff none (Chebyshev) & higher-
160
+ precision approximation for 'irrational' ratios. Default value is
161
+ 0.
162
+
163
+ async
164
+ For swr only, simple 1 parameter audio sync to timestamps using
165
+ stretching, squeezing, filling and trimming. Setting this to 1 will
166
+ enable filling and trimming, larger values represent the maximum
167
+ amount in samples that the data may be stretched or squeezed for
168
+ each second. Default value is 0, thus no compensation is applied
169
+ to make the samples match the audio timestamps.
170
+
171
+ first_pts
172
+ For swr only, assume the first pts should be this value. The time
173
+ unit is 1 / sample rate. This allows for padding/trimming at the
174
+ start of stream. By default, no assumption is made about the first
175
+ frame's expected pts, so no padding or trimming is done. For
176
+ example, this could be set to 0 to pad the beginning with silence
177
+ if an audio stream starts after the video stream or to trim any
178
+ samples with a negative pts due to encoder delay.
179
+
180
+ min_comp
181
+ For swr only, set the minimum difference between timestamps and
182
+ audio data (in seconds) to trigger stretching/squeezing/filling or
183
+ trimming of the data to make it match the timestamps. The default
184
+ is that stretching/squeezing/filling and trimming is disabled
185
+ (min_comp = "FLT_MAX").
186
+
187
+ min_hard_comp
188
+ For swr only, set the minimum difference between timestamps and
189
+ audio data (in seconds) to trigger adding/dropping samples to make
190
+ it match the timestamps. This option effectively is a threshold to
191
+ select between hard (trim/fill) and soft (squeeze/stretch)
192
+ compensation. Note that all compensation is by default disabled
193
+ through min_comp. The default is 0.1.
194
+
195
+ comp_duration
196
+ For swr only, set duration (in seconds) over which data is
197
+ stretched/squeezed to make it match the timestamps. Must be a non-
198
+ negative double float value, default value is 1.0.
199
+
200
+ max_soft_comp
201
+ For swr only, set maximum factor by which data is
202
+ stretched/squeezed to make it match the timestamps. Must be a non-
203
+ negative double float value, default value is 0.
204
+
205
+ matrix_encoding
206
+ Select matrixed stereo encoding.
207
+
208
+ It accepts the following values:
209
+
210
+ none
211
+ select none
212
+
213
+ dolby
214
+ select Dolby
215
+
216
+ dplii
217
+ select Dolby Pro Logic II
218
+
219
+ Default value is "none".
220
+
221
+ filter_type
222
+ For swr only, select resampling filter type. This only affects
223
+ resampling operations.
224
+
225
+ It accepts the following values:
226
+
227
+ cubic
228
+ select cubic
229
+
230
+ blackman_nuttall
231
+ select Blackman Nuttall windowed sinc
232
+
233
+ kaiser
234
+ select Kaiser windowed sinc
235
+
236
+ kaiser_beta
237
+ For swr only, set Kaiser window beta value. Must be a double float
238
+ value in the interval [2,16], default value is 9.
239
+
240
+ output_sample_bits
241
+ For swr only, set number of used output sample bits for dithering.
242
+ Must be an integer in the interval [0,64], default value is 0,
243
+ which means it's not used.
244
+
245
+ SEE ALSO
246
+ ffmpeg(1), ffplay(1), ffprobe(1), libswresample(3)
247
+
248
+ AUTHORS
249
+ The FFmpeg developers.
250
+
251
+ For details about the authorship, see the Git history of the project
252
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
253
+ the FFmpeg source directory, or browsing the online repository at
254
+ <https://git.ffmpeg.org/ffmpeg>.
255
+
256
+ Maintainers for the specific components are listed in the file
257
+ MAINTAINERS in the source code tree.
258
+
259
+ FFMPEG-RESAMPLER(1)
ffmpeg/manpages/ffmpeg-scaler.txt ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFMPEG-SCALER(1) FFMPEG-SCALER(1)
2
+
3
+ NAME
4
+ ffmpeg-scaler - FFmpeg video scaling and pixel format converter
5
+
6
+ DESCRIPTION
7
+ The FFmpeg rescaler provides a high-level interface to the libswscale
8
+ library image conversion utilities. In particular it allows one to
9
+ perform image rescaling and pixel format conversion.
10
+
11
+ SCALER OPTIONS
12
+ The video scaler supports the following named options.
13
+
14
+ Options may be set by specifying -option value in the FFmpeg tools,
15
+ with a few API-only exceptions noted below. For programmatic use, they
16
+ can be set explicitly in the "SwsContext" options or through the
17
+ libavutil/opt.h API.
18
+
19
+ sws_flags
20
+ Set the scaler flags. This is also used to set the scaling
21
+ algorithm. Only a single algorithm should be selected. Default
22
+ value is bicubic.
23
+
24
+ It accepts the following values:
25
+
26
+ fast_bilinear
27
+ Select fast bilinear scaling algorithm.
28
+
29
+ bilinear
30
+ Select bilinear scaling algorithm.
31
+
32
+ bicubic
33
+ Select bicubic scaling algorithm.
34
+
35
+ experimental
36
+ Select experimental scaling algorithm.
37
+
38
+ neighbor
39
+ Select nearest neighbor rescaling algorithm.
40
+
41
+ area
42
+ Select averaging area rescaling algorithm.
43
+
44
+ bicublin
45
+ Select bicubic scaling algorithm for the luma component,
46
+ bilinear for chroma components.
47
+
48
+ gauss
49
+ Select Gaussian rescaling algorithm.
50
+
51
+ sinc
52
+ Select sinc rescaling algorithm.
53
+
54
+ lanczos
55
+ Select Lanczos rescaling algorithm. The default width (alpha)
56
+ is 3 and can be changed by setting "param0".
57
+
58
+ spline
59
+ Select natural bicubic spline rescaling algorithm.
60
+
61
+ print_info
62
+ Enable printing/debug logging.
63
+
64
+ accurate_rnd
65
+ Enable accurate rounding.
66
+
67
+ full_chroma_int
68
+ Enable full chroma interpolation.
69
+
70
+ full_chroma_inp
71
+ Select full chroma input.
72
+
73
+ bitexact
74
+ Enable bitexact output.
75
+
76
+ srcw (API only)
77
+ Set source width.
78
+
79
+ srch (API only)
80
+ Set source height.
81
+
82
+ dstw (API only)
83
+ Set destination width.
84
+
85
+ dsth (API only)
86
+ Set destination height.
87
+
88
+ src_format (API only)
89
+ Set source pixel format (must be expressed as an integer).
90
+
91
+ dst_format (API only)
92
+ Set destination pixel format (must be expressed as an integer).
93
+
94
+ src_range (boolean)
95
+ If value is set to 1, indicates source is full range. Default value
96
+ is 0, which indicates source is limited range.
97
+
98
+ dst_range (boolean)
99
+ If value is set to 1, enable full range for destination. Default
100
+ value is 0, which enables limited range.
101
+
102
+ param0, param1
103
+ Set scaling algorithm parameters. The specified values are specific
104
+ of some scaling algorithms and ignored by others. The specified
105
+ values are floating point number values.
106
+
107
+ sws_dither
108
+ Set the dithering algorithm. Accepts one of the following values.
109
+ Default value is auto.
110
+
111
+ auto
112
+ automatic choice
113
+
114
+ none
115
+ no dithering
116
+
117
+ bayer
118
+ bayer dither
119
+
120
+ ed error diffusion dither
121
+
122
+ a_dither
123
+ arithmetic dither, based using addition
124
+
125
+ x_dither
126
+ arithmetic dither, based using xor (more random/less apparent
127
+ patterning that a_dither).
128
+
129
+ alphablend
130
+ Set the alpha blending to use when the input has alpha but the
131
+ output does not. Default value is none.
132
+
133
+ uniform_color
134
+ Blend onto a uniform background color
135
+
136
+ checkerboard
137
+ Blend onto a checkerboard
138
+
139
+ none
140
+ No blending
141
+
142
+ SEE ALSO
143
+ ffmpeg(1), ffplay(1), ffprobe(1), libswscale(3)
144
+
145
+ AUTHORS
146
+ The FFmpeg developers.
147
+
148
+ For details about the authorship, see the Git history of the project
149
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
150
+ the FFmpeg source directory, or browsing the online repository at
151
+ <https://git.ffmpeg.org/ffmpeg>.
152
+
153
+ Maintainers for the specific components are listed in the file
154
+ MAINTAINERS in the source code tree.
155
+
156
+ FFMPEG-SCALER(1)
ffmpeg/manpages/ffmpeg-utils.txt ADDED
@@ -0,0 +1,1267 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFMPEG-UTILS(1) FFMPEG-UTILS(1)
2
+
3
+ NAME
4
+ ffmpeg-utils - FFmpeg utilities
5
+
6
+ DESCRIPTION
7
+ This document describes some generic features and utilities provided by
8
+ the libavutil library.
9
+
10
+ SYNTAX
11
+ This section documents the syntax and formats employed by the FFmpeg
12
+ libraries and tools.
13
+
14
+ Quoting and escaping
15
+ FFmpeg adopts the following quoting and escaping mechanism, unless
16
+ explicitly specified. The following rules are applied:
17
+
18
+ o ' and \ are special characters (respectively used for quoting and
19
+ escaping). In addition to them, there might be other special
20
+ characters depending on the specific syntax where the escaping and
21
+ quoting are employed.
22
+
23
+ o A special character is escaped by prefixing it with a \.
24
+
25
+ o All characters enclosed between '' are included literally in the
26
+ parsed string. The quote character ' itself cannot be quoted, so
27
+ you may need to close the quote and escape it.
28
+
29
+ o Leading and trailing whitespaces, unless escaped or quoted, are
30
+ removed from the parsed string.
31
+
32
+ Note that you may need to add a second level of escaping when using the
33
+ command line or a script, which depends on the syntax of the adopted
34
+ shell language.
35
+
36
+ The function "av_get_token" defined in libavutil/avstring.h can be used
37
+ to parse a token quoted or escaped according to the rules defined
38
+ above.
39
+
40
+ The tool tools/ffescape in the FFmpeg source tree can be used to
41
+ automatically quote or escape a string in a script.
42
+
43
+ Examples
44
+
45
+ o Escape the string "Crime d'Amour" containing the "'" special
46
+ character:
47
+
48
+ Crime d\'Amour
49
+
50
+ o The string above contains a quote, so the "'" needs to be escaped
51
+ when quoting it:
52
+
53
+ 'Crime d'\''Amour'
54
+
55
+ o Include leading or trailing whitespaces using quoting:
56
+
57
+ ' this string starts and ends with whitespaces '
58
+
59
+ o Escaping and quoting can be mixed together:
60
+
61
+ ' The string '\'string\'' is a string '
62
+
63
+ o To include a literal \ you can use either escaping or quoting:
64
+
65
+ 'c:\foo' can be written as c:\\foo
66
+
67
+ Date
68
+ The accepted syntax is:
69
+
70
+ [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
71
+ now
72
+
73
+ If the value is "now" it takes the current time.
74
+
75
+ Time is local time unless Z is appended, in which case it is
76
+ interpreted as UTC. If the year-month-day part is not specified it
77
+ takes the current year-month-day.
78
+
79
+ Time duration
80
+ There are two accepted syntaxes for expressing time duration.
81
+
82
+ [-][<HH>:]<MM>:<SS>[.<m>...]
83
+
84
+ HH expresses the number of hours, MM the number of minutes for a
85
+ maximum of 2 digits, and SS the number of seconds for a maximum of 2
86
+ digits. The m at the end expresses decimal value for SS.
87
+
88
+ or
89
+
90
+ [-]<S>+[.<m>...][s|ms|us]
91
+
92
+ S expresses the number of seconds, with the optional decimal part m.
93
+ The optional literal suffixes s, ms or us indicate to interpret the
94
+ value as seconds, milliseconds or microseconds, respectively.
95
+
96
+ In both expressions, the optional - indicates negative duration.
97
+
98
+ Examples
99
+
100
+ The following examples are all valid time duration:
101
+
102
+ 55 55 seconds
103
+
104
+ 0.2 0.2 seconds
105
+
106
+ 200ms
107
+ 200 milliseconds, that's 0.2s
108
+
109
+ 200000us
110
+ 200000 microseconds, that's 0.2s
111
+
112
+ 12:03:45
113
+ 12 hours, 03 minutes and 45 seconds
114
+
115
+ 23.189
116
+ 23.189 seconds
117
+
118
+ Video size
119
+ Specify the size of the sourced video, it may be a string of the form
120
+ widthxheight, or the name of a size abbreviation.
121
+
122
+ The following abbreviations are recognized:
123
+
124
+ ntsc
125
+ 720x480
126
+
127
+ pal 720x576
128
+
129
+ qntsc
130
+ 352x240
131
+
132
+ qpal
133
+ 352x288
134
+
135
+ sntsc
136
+ 640x480
137
+
138
+ spal
139
+ 768x576
140
+
141
+ film
142
+ 352x240
143
+
144
+ ntsc-film
145
+ 352x240
146
+
147
+ sqcif
148
+ 128x96
149
+
150
+ qcif
151
+ 176x144
152
+
153
+ cif 352x288
154
+
155
+ 4cif
156
+ 704x576
157
+
158
+ 16cif
159
+ 1408x1152
160
+
161
+ qqvga
162
+ 160x120
163
+
164
+ qvga
165
+ 320x240
166
+
167
+ vga 640x480
168
+
169
+ svga
170
+ 800x600
171
+
172
+ xga 1024x768
173
+
174
+ uxga
175
+ 1600x1200
176
+
177
+ qxga
178
+ 2048x1536
179
+
180
+ sxga
181
+ 1280x1024
182
+
183
+ qsxga
184
+ 2560x2048
185
+
186
+ hsxga
187
+ 5120x4096
188
+
189
+ wvga
190
+ 852x480
191
+
192
+ wxga
193
+ 1366x768
194
+
195
+ wsxga
196
+ 1600x1024
197
+
198
+ wuxga
199
+ 1920x1200
200
+
201
+ woxga
202
+ 2560x1600
203
+
204
+ wqsxga
205
+ 3200x2048
206
+
207
+ wquxga
208
+ 3840x2400
209
+
210
+ whsxga
211
+ 6400x4096
212
+
213
+ whuxga
214
+ 7680x4800
215
+
216
+ cga 320x200
217
+
218
+ ega 640x350
219
+
220
+ hd480
221
+ 852x480
222
+
223
+ hd720
224
+ 1280x720
225
+
226
+ hd1080
227
+ 1920x1080
228
+
229
+ 2k 2048x1080
230
+
231
+ 2kflat
232
+ 1998x1080
233
+
234
+ 2kscope
235
+ 2048x858
236
+
237
+ 4k 4096x2160
238
+
239
+ 4kflat
240
+ 3996x2160
241
+
242
+ 4kscope
243
+ 4096x1716
244
+
245
+ nhd 640x360
246
+
247
+ hqvga
248
+ 240x160
249
+
250
+ wqvga
251
+ 400x240
252
+
253
+ fwqvga
254
+ 432x240
255
+
256
+ hvga
257
+ 480x320
258
+
259
+ qhd 960x540
260
+
261
+ 2kdci
262
+ 2048x1080
263
+
264
+ 4kdci
265
+ 4096x2160
266
+
267
+ uhd2160
268
+ 3840x2160
269
+
270
+ uhd4320
271
+ 7680x4320
272
+
273
+ Video rate
274
+ Specify the frame rate of a video, expressed as the number of frames
275
+ generated per second. It has to be a string in the format
276
+ frame_rate_num/frame_rate_den, an integer number, a float number or a
277
+ valid video frame rate abbreviation.
278
+
279
+ The following abbreviations are recognized:
280
+
281
+ ntsc
282
+ 30000/1001
283
+
284
+ pal 25/1
285
+
286
+ qntsc
287
+ 30000/1001
288
+
289
+ qpal
290
+ 25/1
291
+
292
+ sntsc
293
+ 30000/1001
294
+
295
+ spal
296
+ 25/1
297
+
298
+ film
299
+ 24/1
300
+
301
+ ntsc-film
302
+ 24000/1001
303
+
304
+ Ratio
305
+ A ratio can be expressed as an expression, or in the form
306
+ numerator:denominator.
307
+
308
+ Note that a ratio with infinite (1/0) or negative value is considered
309
+ valid, so you should check on the returned value if you want to exclude
310
+ those values.
311
+
312
+ The undefined value can be expressed using the "0:0" string.
313
+
314
+ Color
315
+ It can be the name of a color as defined below (case insensitive match)
316
+ or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
317
+ representing the alpha component.
318
+
319
+ The alpha component may be a string composed by "0x" followed by an
320
+ hexadecimal number or a decimal number between 0.0 and 1.0, which
321
+ represents the opacity value (0x00 or 0.0 means completely transparent,
322
+ 0xff or 1.0 completely opaque). If the alpha component is not specified
323
+ then 0xff is assumed.
324
+
325
+ The string random will result in a random color.
326
+
327
+ The following names of colors are recognized:
328
+
329
+ AliceBlue
330
+ 0xF0F8FF
331
+
332
+ AntiqueWhite
333
+ 0xFAEBD7
334
+
335
+ Aqua
336
+ 0x00FFFF
337
+
338
+ Aquamarine
339
+ 0x7FFFD4
340
+
341
+ Azure
342
+ 0xF0FFFF
343
+
344
+ Beige
345
+ 0xF5F5DC
346
+
347
+ Bisque
348
+ 0xFFE4C4
349
+
350
+ Black
351
+ 0x000000
352
+
353
+ BlanchedAlmond
354
+ 0xFFEBCD
355
+
356
+ Blue
357
+ 0x0000FF
358
+
359
+ BlueViolet
360
+ 0x8A2BE2
361
+
362
+ Brown
363
+ 0xA52A2A
364
+
365
+ BurlyWood
366
+ 0xDEB887
367
+
368
+ CadetBlue
369
+ 0x5F9EA0
370
+
371
+ Chartreuse
372
+ 0x7FFF00
373
+
374
+ Chocolate
375
+ 0xD2691E
376
+
377
+ Coral
378
+ 0xFF7F50
379
+
380
+ CornflowerBlue
381
+ 0x6495ED
382
+
383
+ Cornsilk
384
+ 0xFFF8DC
385
+
386
+ Crimson
387
+ 0xDC143C
388
+
389
+ Cyan
390
+ 0x00FFFF
391
+
392
+ DarkBlue
393
+ 0x00008B
394
+
395
+ DarkCyan
396
+ 0x008B8B
397
+
398
+ DarkGoldenRod
399
+ 0xB8860B
400
+
401
+ DarkGray
402
+ 0xA9A9A9
403
+
404
+ DarkGreen
405
+ 0x006400
406
+
407
+ DarkKhaki
408
+ 0xBDB76B
409
+
410
+ DarkMagenta
411
+ 0x8B008B
412
+
413
+ DarkOliveGreen
414
+ 0x556B2F
415
+
416
+ Darkorange
417
+ 0xFF8C00
418
+
419
+ DarkOrchid
420
+ 0x9932CC
421
+
422
+ DarkRed
423
+ 0x8B0000
424
+
425
+ DarkSalmon
426
+ 0xE9967A
427
+
428
+ DarkSeaGreen
429
+ 0x8FBC8F
430
+
431
+ DarkSlateBlue
432
+ 0x483D8B
433
+
434
+ DarkSlateGray
435
+ 0x2F4F4F
436
+
437
+ DarkTurquoise
438
+ 0x00CED1
439
+
440
+ DarkViolet
441
+ 0x9400D3
442
+
443
+ DeepPink
444
+ 0xFF1493
445
+
446
+ DeepSkyBlue
447
+ 0x00BFFF
448
+
449
+ DimGray
450
+ 0x696969
451
+
452
+ DodgerBlue
453
+ 0x1E90FF
454
+
455
+ FireBrick
456
+ 0xB22222
457
+
458
+ FloralWhite
459
+ 0xFFFAF0
460
+
461
+ ForestGreen
462
+ 0x228B22
463
+
464
+ Fuchsia
465
+ 0xFF00FF
466
+
467
+ Gainsboro
468
+ 0xDCDCDC
469
+
470
+ GhostWhite
471
+ 0xF8F8FF
472
+
473
+ Gold
474
+ 0xFFD700
475
+
476
+ GoldenRod
477
+ 0xDAA520
478
+
479
+ Gray
480
+ 0x808080
481
+
482
+ Green
483
+ 0x008000
484
+
485
+ GreenYellow
486
+ 0xADFF2F
487
+
488
+ HoneyDew
489
+ 0xF0FFF0
490
+
491
+ HotPink
492
+ 0xFF69B4
493
+
494
+ IndianRed
495
+ 0xCD5C5C
496
+
497
+ Indigo
498
+ 0x4B0082
499
+
500
+ Ivory
501
+ 0xFFFFF0
502
+
503
+ Khaki
504
+ 0xF0E68C
505
+
506
+ Lavender
507
+ 0xE6E6FA
508
+
509
+ LavenderBlush
510
+ 0xFFF0F5
511
+
512
+ LawnGreen
513
+ 0x7CFC00
514
+
515
+ LemonChiffon
516
+ 0xFFFACD
517
+
518
+ LightBlue
519
+ 0xADD8E6
520
+
521
+ LightCoral
522
+ 0xF08080
523
+
524
+ LightCyan
525
+ 0xE0FFFF
526
+
527
+ LightGoldenRodYellow
528
+ 0xFAFAD2
529
+
530
+ LightGreen
531
+ 0x90EE90
532
+
533
+ LightGrey
534
+ 0xD3D3D3
535
+
536
+ LightPink
537
+ 0xFFB6C1
538
+
539
+ LightSalmon
540
+ 0xFFA07A
541
+
542
+ LightSeaGreen
543
+ 0x20B2AA
544
+
545
+ LightSkyBlue
546
+ 0x87CEFA
547
+
548
+ LightSlateGray
549
+ 0x778899
550
+
551
+ LightSteelBlue
552
+ 0xB0C4DE
553
+
554
+ LightYellow
555
+ 0xFFFFE0
556
+
557
+ Lime
558
+ 0x00FF00
559
+
560
+ LimeGreen
561
+ 0x32CD32
562
+
563
+ Linen
564
+ 0xFAF0E6
565
+
566
+ Magenta
567
+ 0xFF00FF
568
+
569
+ Maroon
570
+ 0x800000
571
+
572
+ MediumAquaMarine
573
+ 0x66CDAA
574
+
575
+ MediumBlue
576
+ 0x0000CD
577
+
578
+ MediumOrchid
579
+ 0xBA55D3
580
+
581
+ MediumPurple
582
+ 0x9370D8
583
+
584
+ MediumSeaGreen
585
+ 0x3CB371
586
+
587
+ MediumSlateBlue
588
+ 0x7B68EE
589
+
590
+ MediumSpringGreen
591
+ 0x00FA9A
592
+
593
+ MediumTurquoise
594
+ 0x48D1CC
595
+
596
+ MediumVioletRed
597
+ 0xC71585
598
+
599
+ MidnightBlue
600
+ 0x191970
601
+
602
+ MintCream
603
+ 0xF5FFFA
604
+
605
+ MistyRose
606
+ 0xFFE4E1
607
+
608
+ Moccasin
609
+ 0xFFE4B5
610
+
611
+ NavajoWhite
612
+ 0xFFDEAD
613
+
614
+ Navy
615
+ 0x000080
616
+
617
+ OldLace
618
+ 0xFDF5E6
619
+
620
+ Olive
621
+ 0x808000
622
+
623
+ OliveDrab
624
+ 0x6B8E23
625
+
626
+ Orange
627
+ 0xFFA500
628
+
629
+ OrangeRed
630
+ 0xFF4500
631
+
632
+ Orchid
633
+ 0xDA70D6
634
+
635
+ PaleGoldenRod
636
+ 0xEEE8AA
637
+
638
+ PaleGreen
639
+ 0x98FB98
640
+
641
+ PaleTurquoise
642
+ 0xAFEEEE
643
+
644
+ PaleVioletRed
645
+ 0xD87093
646
+
647
+ PapayaWhip
648
+ 0xFFEFD5
649
+
650
+ PeachPuff
651
+ 0xFFDAB9
652
+
653
+ Peru
654
+ 0xCD853F
655
+
656
+ Pink
657
+ 0xFFC0CB
658
+
659
+ Plum
660
+ 0xDDA0DD
661
+
662
+ PowderBlue
663
+ 0xB0E0E6
664
+
665
+ Purple
666
+ 0x800080
667
+
668
+ Red 0xFF0000
669
+
670
+ RosyBrown
671
+ 0xBC8F8F
672
+
673
+ RoyalBlue
674
+ 0x4169E1
675
+
676
+ SaddleBrown
677
+ 0x8B4513
678
+
679
+ Salmon
680
+ 0xFA8072
681
+
682
+ SandyBrown
683
+ 0xF4A460
684
+
685
+ SeaGreen
686
+ 0x2E8B57
687
+
688
+ SeaShell
689
+ 0xFFF5EE
690
+
691
+ Sienna
692
+ 0xA0522D
693
+
694
+ Silver
695
+ 0xC0C0C0
696
+
697
+ SkyBlue
698
+ 0x87CEEB
699
+
700
+ SlateBlue
701
+ 0x6A5ACD
702
+
703
+ SlateGray
704
+ 0x708090
705
+
706
+ Snow
707
+ 0xFFFAFA
708
+
709
+ SpringGreen
710
+ 0x00FF7F
711
+
712
+ SteelBlue
713
+ 0x4682B4
714
+
715
+ Tan 0xD2B48C
716
+
717
+ Teal
718
+ 0x008080
719
+
720
+ Thistle
721
+ 0xD8BFD8
722
+
723
+ Tomato
724
+ 0xFF6347
725
+
726
+ Turquoise
727
+ 0x40E0D0
728
+
729
+ Violet
730
+ 0xEE82EE
731
+
732
+ Wheat
733
+ 0xF5DEB3
734
+
735
+ White
736
+ 0xFFFFFF
737
+
738
+ WhiteSmoke
739
+ 0xF5F5F5
740
+
741
+ Yellow
742
+ 0xFFFF00
743
+
744
+ YellowGreen
745
+ 0x9ACD32
746
+
747
+ Channel Layout
748
+ A channel layout specifies the spatial disposition of the channels in a
749
+ multi-channel audio stream. To specify a channel layout, FFmpeg makes
750
+ use of a special syntax.
751
+
752
+ Individual channels are identified by an id, as given by the table
753
+ below:
754
+
755
+ FL front left
756
+
757
+ FR front right
758
+
759
+ FC front center
760
+
761
+ LFE low frequency
762
+
763
+ BL back left
764
+
765
+ BR back right
766
+
767
+ FLC front left-of-center
768
+
769
+ FRC front right-of-center
770
+
771
+ BC back center
772
+
773
+ SL side left
774
+
775
+ SR side right
776
+
777
+ TC top center
778
+
779
+ TFL top front left
780
+
781
+ TFC top front center
782
+
783
+ TFR top front right
784
+
785
+ TBL top back left
786
+
787
+ TBC top back center
788
+
789
+ TBR top back right
790
+
791
+ DL downmix left
792
+
793
+ DR downmix right
794
+
795
+ WL wide left
796
+
797
+ WR wide right
798
+
799
+ SDL surround direct left
800
+
801
+ SDR surround direct right
802
+
803
+ LFE2
804
+ low frequency 2
805
+
806
+ Standard channel layout compositions can be specified by using the
807
+ following identifiers:
808
+
809
+ mono
810
+ FC
811
+
812
+ stereo
813
+ FL+FR
814
+
815
+ 2.1 FL+FR+LFE
816
+
817
+ 3.0 FL+FR+FC
818
+
819
+ 3.0(back)
820
+ FL+FR+BC
821
+
822
+ 4.0 FL+FR+FC+BC
823
+
824
+ quad
825
+ FL+FR+BL+BR
826
+
827
+ quad(side)
828
+ FL+FR+SL+SR
829
+
830
+ 3.1 FL+FR+FC+LFE
831
+
832
+ 5.0 FL+FR+FC+BL+BR
833
+
834
+ 5.0(side)
835
+ FL+FR+FC+SL+SR
836
+
837
+ 4.1 FL+FR+FC+LFE+BC
838
+
839
+ 5.1 FL+FR+FC+LFE+BL+BR
840
+
841
+ 5.1(side)
842
+ FL+FR+FC+LFE+SL+SR
843
+
844
+ 6.0 FL+FR+FC+BC+SL+SR
845
+
846
+ 6.0(front)
847
+ FL+FR+FLC+FRC+SL+SR
848
+
849
+ 3.1.2
850
+ FL+FR+FC+LFE+TFL+TFR
851
+
852
+ hexagonal
853
+ FL+FR+FC+BL+BR+BC
854
+
855
+ 6.1 FL+FR+FC+LFE+BC+SL+SR
856
+
857
+ 6.1 FL+FR+FC+LFE+BL+BR+BC
858
+
859
+ 6.1(front)
860
+ FL+FR+LFE+FLC+FRC+SL+SR
861
+
862
+ 7.0 FL+FR+FC+BL+BR+SL+SR
863
+
864
+ 7.0(front)
865
+ FL+FR+FC+FLC+FRC+SL+SR
866
+
867
+ 7.1 FL+FR+FC+LFE+BL+BR+SL+SR
868
+
869
+ 7.1(wide)
870
+ FL+FR+FC+LFE+BL+BR+FLC+FRC
871
+
872
+ 7.1(wide-side)
873
+ FL+FR+FC+LFE+FLC+FRC+SL+SR
874
+
875
+ 5.1.2
876
+ FL+FR+FC+LFE+BL+BR+TFL+TFR
877
+
878
+ octagonal
879
+ FL+FR+FC+BL+BR+BC+SL+SR
880
+
881
+ cube
882
+ FL+FR+BL+BR+TFL+TFR+TBL+TBR
883
+
884
+ 5.1.4
885
+ FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR
886
+
887
+ 7.1.2
888
+ FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR
889
+
890
+ 7.1.4
891
+ FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR
892
+
893
+ 7.2.3
894
+ FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBC+LFE2
895
+
896
+ 9.1.4
897
+ FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR
898
+
899
+ hexadecagonal
900
+ FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
901
+
902
+ downmix
903
+ DL+DR
904
+
905
+ 22.2
906
+ FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
907
+
908
+ A custom channel layout can be specified as a sequence of terms,
909
+ separated by '+'. Each term can be:
910
+
911
+ o the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
912
+ optionally containing a custom name after a '@', (e.g. FL@Left,
913
+ FR@Right, FC@Center, LFE@Low_Frequency, etc.)
914
+
915
+ A standard channel layout can be specified by the following:
916
+
917
+ o the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
918
+
919
+ o the name of a standard channel layout (e.g. mono, stereo, 4.0,
920
+ quad, 5.0, etc.)
921
+
922
+ o a number of channels, in decimal, followed by 'c', yielding the
923
+ default channel layout for that number of channels (see the
924
+ function "av_channel_layout_default"). Note that not all channel
925
+ counts have a default layout.
926
+
927
+ o a number of channels, in decimal, followed by 'C', yielding an
928
+ unknown channel layout with the specified number of channels. Note
929
+ that not all channel layout specification strings support unknown
930
+ channel layouts.
931
+
932
+ o a channel layout mask, in hexadecimal starting with "0x" (see the
933
+ "AV_CH_*" macros in libavutil/channel_layout.h.
934
+
935
+ Before libavutil version 53 the trailing character "c" to specify a
936
+ number of channels was optional, but now it is required, while a
937
+ channel layout mask can also be specified as a decimal number (if and
938
+ only if not followed by "c" or "C").
939
+
940
+ See also the function "av_channel_layout_from_string" defined in
941
+ libavutil/channel_layout.h.
942
+
943
+ EXPRESSION EVALUATION
944
+ When evaluating an arithmetic expression, FFmpeg uses an internal
945
+ formula evaluator, implemented through the libavutil/eval.h interface.
946
+
947
+ An expression may contain unary, binary operators, constants, and
948
+ functions.
949
+
950
+ Two expressions expr1 and expr2 can be combined to form another
951
+ expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
952
+ the new expression evaluates to the value of expr2.
953
+
954
+ The following binary operators are available: "+", "-", "*", "/", "^".
955
+
956
+ The following unary operators are available: "+", "-".
957
+
958
+ The following functions are available:
959
+
960
+ abs(x)
961
+ Compute absolute value of x.
962
+
963
+ acos(x)
964
+ Compute arccosine of x.
965
+
966
+ asin(x)
967
+ Compute arcsine of x.
968
+
969
+ atan(x)
970
+ Compute arctangent of x.
971
+
972
+ atan2(y, x)
973
+ Compute principal value of the arc tangent of y/x.
974
+
975
+ between(x, min, max)
976
+ Return 1 if x is greater than or equal to min and lesser than or
977
+ equal to max, 0 otherwise.
978
+
979
+ bitand(x, y)
980
+ bitor(x, y)
981
+ Compute bitwise and/or operation on x and y.
982
+
983
+ The results of the evaluation of x and y are converted to integers
984
+ before executing the bitwise operation.
985
+
986
+ Note that both the conversion to integer and the conversion back to
987
+ floating point can lose precision. Beware of unexpected results for
988
+ large numbers (usually 2^53 and larger).
989
+
990
+ ceil(expr)
991
+ Round the value of expression expr upwards to the nearest integer.
992
+ For example, "ceil(1.5)" is "2.0".
993
+
994
+ clip(x, min, max)
995
+ Return the value of x clipped between min and max.
996
+
997
+ cos(x)
998
+ Compute cosine of x.
999
+
1000
+ cosh(x)
1001
+ Compute hyperbolic cosine of x.
1002
+
1003
+ eq(x, y)
1004
+ Return 1 if x and y are equivalent, 0 otherwise.
1005
+
1006
+ exp(x)
1007
+ Compute exponential of x (with base "e", the Euler's number).
1008
+
1009
+ floor(expr)
1010
+ Round the value of expression expr downwards to the nearest
1011
+ integer. For example, "floor(-1.5)" is "-2.0".
1012
+
1013
+ gauss(x)
1014
+ Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1015
+ sqrt(2*PI)".
1016
+
1017
+ gcd(x, y)
1018
+ Return the greatest common divisor of x and y. If both x and y are
1019
+ 0 or either or both are less than zero then behavior is undefined.
1020
+
1021
+ gt(x, y)
1022
+ Return 1 if x is greater than y, 0 otherwise.
1023
+
1024
+ gte(x, y)
1025
+ Return 1 if x is greater than or equal to y, 0 otherwise.
1026
+
1027
+ hypot(x, y)
1028
+ This function is similar to the C function with the same name; it
1029
+ returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1030
+ triangle with sides of length x and y, or the distance of the point
1031
+ (x, y) from the origin.
1032
+
1033
+ if(x, y)
1034
+ Evaluate x, and if the result is non-zero return the result of the
1035
+ evaluation of y, return 0 otherwise.
1036
+
1037
+ if(x, y, z)
1038
+ Evaluate x, and if the result is non-zero return the evaluation
1039
+ result of y, otherwise the evaluation result of z.
1040
+
1041
+ ifnot(x, y)
1042
+ Evaluate x, and if the result is zero return the result of the
1043
+ evaluation of y, return 0 otherwise.
1044
+
1045
+ ifnot(x, y, z)
1046
+ Evaluate x, and if the result is zero return the evaluation result
1047
+ of y, otherwise the evaluation result of z.
1048
+
1049
+ isinf(x)
1050
+ Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1051
+
1052
+ isnan(x)
1053
+ Return 1.0 if x is NAN, 0.0 otherwise.
1054
+
1055
+ ld(var)
1056
+ Load the value of the internal variable with number var, which was
1057
+ previously stored with st(var, expr). The function returns the
1058
+ loaded value.
1059
+
1060
+ lerp(x, y, z)
1061
+ Return linear interpolation between x and y by amount of z.
1062
+
1063
+ log(x)
1064
+ Compute natural logarithm of x.
1065
+
1066
+ lt(x, y)
1067
+ Return 1 if x is lesser than y, 0 otherwise.
1068
+
1069
+ lte(x, y)
1070
+ Return 1 if x is lesser than or equal to y, 0 otherwise.
1071
+
1072
+ max(x, y)
1073
+ Return the maximum between x and y.
1074
+
1075
+ min(x, y)
1076
+ Return the minimum between x and y.
1077
+
1078
+ mod(x, y)
1079
+ Compute the remainder of division of x by y.
1080
+
1081
+ not(expr)
1082
+ Return 1.0 if expr is zero, 0.0 otherwise.
1083
+
1084
+ pow(x, y)
1085
+ Compute the power of x elevated y, it is equivalent to "(x)^(y)".
1086
+
1087
+ print(t)
1088
+ print(t, l)
1089
+ Print the value of expression t with loglevel l. If l is not
1090
+ specified then a default log level is used. Returns the value of
1091
+ the expression printed.
1092
+
1093
+ Prints t with loglevel l
1094
+
1095
+ random(idx)
1096
+ Return a pseudo random value between 0.0 and 1.0. idx is the index
1097
+ of the internal variable which will be used to save the seed/state.
1098
+
1099
+ randomi(idx, min, max)
1100
+ Return a pseudo random value in the interval between min and max.
1101
+ idx is the index of the internal variable which will be used to
1102
+ save the seed/state.
1103
+
1104
+ root(expr, max)
1105
+ Find an input value for which the function represented by expr with
1106
+ argument ld(0) is 0 in the interval 0..max.
1107
+
1108
+ The expression in expr must denote a continuous function or the
1109
+ result is undefined.
1110
+
1111
+ ld(0) is used to represent the function input value, which means
1112
+ that the given expression will be evaluated multiple times with
1113
+ various input values that the expression can access through ld(0).
1114
+ When the expression evaluates to 0 then the corresponding input
1115
+ value will be returned.
1116
+
1117
+ round(expr)
1118
+ Round the value of expression expr to the nearest integer. For
1119
+ example, "round(1.5)" is "2.0".
1120
+
1121
+ sgn(x)
1122
+ Compute sign of x.
1123
+
1124
+ sin(x)
1125
+ Compute sine of x.
1126
+
1127
+ sinh(x)
1128
+ Compute hyperbolic sine of x.
1129
+
1130
+ sqrt(expr)
1131
+ Compute the square root of expr. This is equivalent to "(expr)^.5".
1132
+
1133
+ squish(x)
1134
+ Compute expression "1/(1 + exp(4*x))".
1135
+
1136
+ st(var, expr)
1137
+ Store the value of the expression expr in an internal variable. var
1138
+ specifies the number of the variable where to store the value, and
1139
+ it is a value ranging from 0 to 9. The function returns the value
1140
+ stored in the internal variable. Note, Variables are currently not
1141
+ shared between expressions.
1142
+
1143
+ tan(x)
1144
+ Compute tangent of x.
1145
+
1146
+ tanh(x)
1147
+ Compute hyperbolic tangent of x.
1148
+
1149
+ taylor(expr, x)
1150
+ taylor(expr, x, id)
1151
+ Evaluate a Taylor series at x, given an expression representing the
1152
+ "ld(id)"-th derivative of a function at 0.
1153
+
1154
+ When the series does not converge the result is undefined.
1155
+
1156
+ ld(id) is used to represent the derivative order in expr, which
1157
+ means that the given expression will be evaluated multiple times
1158
+ with various input values that the expression can access through
1159
+ "ld(id)". If id is not specified then 0 is assumed.
1160
+
1161
+ Note, when you have the derivatives at y instead of 0,
1162
+ "taylor(expr, x-y)" can be used.
1163
+
1164
+ time(0)
1165
+ Return the current (wallclock) time in seconds.
1166
+
1167
+ trunc(expr)
1168
+ Round the value of expression expr towards zero to the nearest
1169
+ integer. For example, "trunc(-1.5)" is "-1.0".
1170
+
1171
+ while(cond, expr)
1172
+ Evaluate expression expr while the expression cond is non-zero, and
1173
+ returns the value of the last expr evaluation, or NAN if cond was
1174
+ always false.
1175
+
1176
+ The following constants are available:
1177
+
1178
+ PI area of the unit disc, approximately 3.14
1179
+
1180
+ E exp(1) (Euler's number), approximately 2.718
1181
+
1182
+ PHI golden ratio (1+sqrt(5))/2, approximately 1.618
1183
+
1184
+ Assuming that an expression is considered "true" if it has a non-zero
1185
+ value, note that:
1186
+
1187
+ "*" works like AND
1188
+
1189
+ "+" works like OR
1190
+
1191
+ For example the construct:
1192
+
1193
+ if (A AND B) then C
1194
+
1195
+ is equivalent to:
1196
+
1197
+ if(A*B, C)
1198
+
1199
+ In your C code, you can extend the list of unary and binary functions,
1200
+ and define recognized constants, so that they are available for your
1201
+ expressions.
1202
+
1203
+ The evaluator also recognizes the International System unit prefixes.
1204
+ If 'i' is appended after the prefix, binary prefixes are used, which
1205
+ are based on powers of 1024 instead of powers of 1000. The 'B' postfix
1206
+ multiplies the value by 8, and can be appended after a unit prefix or
1207
+ used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
1208
+ number postfix.
1209
+
1210
+ The list of available International System prefixes follows, with
1211
+ indication of the corresponding powers of 10 and of 2.
1212
+
1213
+ y 10^-24 / 2^-80
1214
+
1215
+ z 10^-21 / 2^-70
1216
+
1217
+ a 10^-18 / 2^-60
1218
+
1219
+ f 10^-15 / 2^-50
1220
+
1221
+ p 10^-12 / 2^-40
1222
+
1223
+ n 10^-9 / 2^-30
1224
+
1225
+ u 10^-6 / 2^-20
1226
+
1227
+ m 10^-3 / 2^-10
1228
+
1229
+ c 10^-2
1230
+
1231
+ d 10^-1
1232
+
1233
+ h 10^2
1234
+
1235
+ k 10^3 / 2^10
1236
+
1237
+ K 10^3 / 2^10
1238
+
1239
+ M 10^6 / 2^20
1240
+
1241
+ G 10^9 / 2^30
1242
+
1243
+ T 10^12 / 2^40
1244
+
1245
+ P 10^15 / 2^50
1246
+
1247
+ E 10^18 / 2^60
1248
+
1249
+ Z 10^21 / 2^70
1250
+
1251
+ Y 10^24 / 2^80
1252
+
1253
+ SEE ALSO
1254
+ ffmpeg(1), ffplay(1), ffprobe(1), libavutil(3)
1255
+
1256
+ AUTHORS
1257
+ The FFmpeg developers.
1258
+
1259
+ For details about the authorship, see the Git history of the project
1260
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
1261
+ the FFmpeg source directory, or browsing the online repository at
1262
+ <https://git.ffmpeg.org/ffmpeg>.
1263
+
1264
+ Maintainers for the specific components are listed in the file
1265
+ MAINTAINERS in the source code tree.
1266
+
1267
+ FFMPEG-UTILS(1)
ffmpeg/manpages/ffmpeg.txt ADDED
The diff for this file is too large to render. See raw diff
 
ffmpeg/manpages/ffprobe.txt ADDED
@@ -0,0 +1,1008 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FFPROBE(1) FFPROBE(1)
2
+
3
+ NAME
4
+ ffprobe - ffprobe media prober
5
+
6
+ SYNOPSIS
7
+ ffprobe [options] input_url
8
+
9
+ DESCRIPTION
10
+ ffprobe gathers information from multimedia streams and prints it in
11
+ human- and machine-readable fashion.
12
+
13
+ For example it can be used to check the format of the container used by
14
+ a multimedia stream and the format and type of each media stream
15
+ contained in it.
16
+
17
+ If a url is specified in input, ffprobe will try to open and probe the
18
+ url content. If the url cannot be opened or recognized as a multimedia
19
+ file, a positive exit code is returned.
20
+
21
+ If no output is specified as output with o ffprobe will write to
22
+ stdout.
23
+
24
+ ffprobe may be employed both as a standalone application or in
25
+ combination with a textual filter, which may perform more sophisticated
26
+ processing, e.g. statistical processing or plotting.
27
+
28
+ Options are used to list some of the formats supported by ffprobe or
29
+ for specifying which information to display, and for setting how
30
+ ffprobe will show it.
31
+
32
+ ffprobe output is designed to be easily parsable by a textual filter,
33
+ and consists of one or more sections of a form defined by the selected
34
+ writer, which is specified by the output_format option.
35
+
36
+ Sections may contain other nested sections, and are identified by a
37
+ name (which may be shared by other sections), and an unique name. See
38
+ the output of sections.
39
+
40
+ Metadata tags stored in the container or in the streams are recognized
41
+ and printed in the corresponding "FORMAT", "STREAM",
42
+ "STREAM_GROUP_STREAM" or "PROGRAM_STREAM" section.
43
+
44
+ OPTIONS
45
+ All the numerical options, if not specified otherwise, accept a string
46
+ representing a number as input, which may be followed by one of the SI
47
+ unit prefixes, for example: 'K', 'M', or 'G'.
48
+
49
+ If 'i' is appended to the SI unit prefix, the complete prefix will be
50
+ interpreted as a unit prefix for binary multiples, which are based on
51
+ powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
52
+ prefix multiplies the value by 8. This allows using, for example: 'KB',
53
+ 'MiB', 'G' and 'B' as number suffixes.
54
+
55
+ Options which do not take arguments are boolean options, and set the
56
+ corresponding value to true. They can be set to false by prefixing the
57
+ option name with "no". For example using "-nofoo" will set the boolean
58
+ option with name "foo" to false.
59
+
60
+ Options that take arguments support a special syntax where the argument
61
+ given on the command line is interpreted as a path to the file from
62
+ which the actual argument value is loaded. To use this feature, add a
63
+ forward slash '/' immediately before the option name (after the leading
64
+ dash). E.g.
65
+
66
+ ffmpeg -i INPUT -/filter:v filter.script OUTPUT
67
+
68
+ will load a filtergraph description from the file named filter.script.
69
+
70
+ Stream specifiers
71
+ Some options are applied per-stream, e.g. bitrate or codec. Stream
72
+ specifiers are used to precisely specify which stream(s) a given option
73
+ belongs to.
74
+
75
+ A stream specifier is a string generally appended to the option name
76
+ and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
77
+ "a:1" stream specifier, which matches the second audio stream.
78
+ Therefore, it would select the ac3 codec for the second audio stream.
79
+
80
+ A stream specifier can match several streams, so that the option is
81
+ applied to all of them. E.g. the stream specifier in "-b:a 128k"
82
+ matches all audio streams.
83
+
84
+ An empty stream specifier matches all streams. For example, "-codec
85
+ copy" or "-codec: copy" would copy all the streams without reencoding.
86
+
87
+ Possible forms of stream specifiers are:
88
+
89
+ stream_index
90
+ Matches the stream with this index. E.g. "-threads:1 4" would set
91
+ the thread count for the second stream to 4. If stream_index is
92
+ used as an additional stream specifier (see below), then it selects
93
+ stream number stream_index from the matching streams. Stream
94
+ numbering is based on the order of the streams as detected by
95
+ libavformat except when a stream group specifier or program ID is
96
+ also specified. In this case it is based on the ordering of the
97
+ streams in the group or program.
98
+
99
+ stream_type[:additional_stream_specifier]
100
+ stream_type is one of following: 'v' or 'V' for video, 'a' for
101
+ audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
102
+ matches all video streams, 'V' only matches video streams which are
103
+ not attached pictures, video thumbnails or cover arts. If
104
+ additional_stream_specifier is used, then it matches streams which
105
+ both have this type and match the additional_stream_specifier.
106
+ Otherwise, it matches all streams of the specified type.
107
+
108
+ g:group_specifier[:additional_stream_specifier]
109
+ Matches streams which are in the group with the specifier
110
+ group_specifier. if additional_stream_specifier is used, then it
111
+ matches streams which both are part of the group and match the
112
+ additional_stream_specifier. group_specifier may be one of the
113
+ following:
114
+
115
+ group_index
116
+ Match the stream with this group index.
117
+
118
+ #group_id or i:group_id
119
+ Match the stream with this group id.
120
+
121
+ p:program_id[:additional_stream_specifier]
122
+ Matches streams which are in the program with the id program_id. If
123
+ additional_stream_specifier is used, then it matches streams which
124
+ both are part of the program and match the
125
+ additional_stream_specifier.
126
+
127
+ #stream_id or i:stream_id
128
+ Match the stream by stream id (e.g. PID in MPEG-TS container).
129
+
130
+ m:key[:value]
131
+ Matches streams with the metadata tag key having the specified
132
+ value. If value is not given, matches streams that contain the
133
+ given tag with any value.
134
+
135
+ u Matches streams with usable configuration, the codec must be
136
+ defined and the essential information such as video dimension or
137
+ audio sample rate must be present.
138
+
139
+ Note that in ffmpeg, matching by metadata will only work properly
140
+ for input files.
141
+
142
+ Generic options
143
+ These options are shared amongst the ff* tools.
144
+
145
+ -L Show license.
146
+
147
+ -h, -?, -help, --help [arg]
148
+ Show help. An optional parameter may be specified to print help
149
+ about a specific item. If no argument is specified, only basic (non
150
+ advanced) tool options are shown.
151
+
152
+ Possible values of arg are:
153
+
154
+ long
155
+ Print advanced tool options in addition to the basic tool
156
+ options.
157
+
158
+ full
159
+ Print complete list of options, including shared and private
160
+ options for encoders, decoders, demuxers, muxers, filters, etc.
161
+
162
+ decoder=decoder_name
163
+ Print detailed information about the decoder named
164
+ decoder_name. Use the -decoders option to get a list of all
165
+ decoders.
166
+
167
+ encoder=encoder_name
168
+ Print detailed information about the encoder named
169
+ encoder_name. Use the -encoders option to get a list of all
170
+ encoders.
171
+
172
+ demuxer=demuxer_name
173
+ Print detailed information about the demuxer named
174
+ demuxer_name. Use the -formats option to get a list of all
175
+ demuxers and muxers.
176
+
177
+ muxer=muxer_name
178
+ Print detailed information about the muxer named muxer_name.
179
+ Use the -formats option to get a list of all muxers and
180
+ demuxers.
181
+
182
+ filter=filter_name
183
+ Print detailed information about the filter named filter_name.
184
+ Use the -filters option to get a list of all filters.
185
+
186
+ bsf=bitstream_filter_name
187
+ Print detailed information about the bitstream filter named
188
+ bitstream_filter_name. Use the -bsfs option to get a list of
189
+ all bitstream filters.
190
+
191
+ protocol=protocol_name
192
+ Print detailed information about the protocol named
193
+ protocol_name. Use the -protocols option to get a list of all
194
+ protocols.
195
+
196
+ -version
197
+ Show version.
198
+
199
+ -buildconf
200
+ Show the build configuration, one option per line.
201
+
202
+ -formats
203
+ Show available formats (including devices).
204
+
205
+ -demuxers
206
+ Show available demuxers.
207
+
208
+ -muxers
209
+ Show available muxers.
210
+
211
+ -devices
212
+ Show available devices.
213
+
214
+ -codecs
215
+ Show all codecs known to libavcodec.
216
+
217
+ Note that the term 'codec' is used throughout this documentation as
218
+ a shortcut for what is more correctly called a media bitstream
219
+ format.
220
+
221
+ -decoders
222
+ Show available decoders.
223
+
224
+ -encoders
225
+ Show all available encoders.
226
+
227
+ -bsfs
228
+ Show available bitstream filters.
229
+
230
+ -protocols
231
+ Show available protocols.
232
+
233
+ -filters
234
+ Show available libavfilter filters.
235
+
236
+ -pix_fmts
237
+ Show available pixel formats.
238
+
239
+ -sample_fmts
240
+ Show available sample formats.
241
+
242
+ -layouts
243
+ Show channel names and standard channel layouts.
244
+
245
+ -dispositions
246
+ Show stream dispositions.
247
+
248
+ -colors
249
+ Show recognized color names.
250
+
251
+ -sources device[,opt1=val1[,opt2=val2]...]
252
+ Show autodetected sources of the input device. Some devices may
253
+ provide system-dependent source names that cannot be autodetected.
254
+ The returned list cannot be assumed to be always complete.
255
+
256
+ ffmpeg -sources pulse,server=192.168.0.4
257
+
258
+ -sinks device[,opt1=val1[,opt2=val2]...]
259
+ Show autodetected sinks of the output device. Some devices may
260
+ provide system-dependent sink names that cannot be autodetected.
261
+ The returned list cannot be assumed to be always complete.
262
+
263
+ ffmpeg -sinks pulse,server=192.168.0.4
264
+
265
+ -loglevel [flags+]loglevel | -v [flags+]loglevel
266
+ Set logging level and flags used by the library.
267
+
268
+ The optional flags prefix can consist of the following values:
269
+
270
+ repeat
271
+ Indicates that repeated log output should not be compressed to
272
+ the first line and the "Last message repeated n times" line
273
+ will be omitted.
274
+
275
+ level
276
+ Indicates that log output should add a "[level]" prefix to each
277
+ message line. This can be used as an alternative to log
278
+ coloring, e.g. when dumping the log to file.
279
+
280
+ Flags can also be used alone by adding a '+'/'-' prefix to
281
+ set/reset a single flag without affecting other flags or changing
282
+ loglevel. When setting both flags and loglevel, a '+' separator is
283
+ expected between the last flags value and before loglevel.
284
+
285
+ loglevel is a string or a number containing one of the following
286
+ values:
287
+
288
+ quiet, -8
289
+ Show nothing at all; be silent.
290
+
291
+ panic, 0
292
+ Only show fatal errors which could lead the process to crash,
293
+ such as an assertion failure. This is not currently used for
294
+ anything.
295
+
296
+ fatal, 8
297
+ Only show fatal errors. These are errors after which the
298
+ process absolutely cannot continue.
299
+
300
+ error, 16
301
+ Show all errors, including ones which can be recovered from.
302
+
303
+ warning, 24
304
+ Show all warnings and errors. Any message related to possibly
305
+ incorrect or unexpected events will be shown.
306
+
307
+ info, 32
308
+ Show informative messages during processing. This is in
309
+ addition to warnings and errors. This is the default value.
310
+
311
+ verbose, 40
312
+ Same as "info", except more verbose.
313
+
314
+ debug, 48
315
+ Show everything, including debugging information.
316
+
317
+ trace, 56
318
+
319
+ For example to enable repeated log output, add the "level" prefix,
320
+ and set loglevel to "verbose":
321
+
322
+ ffmpeg -loglevel repeat+level+verbose -i input output
323
+
324
+ Another example that enables repeated log output without affecting
325
+ current state of "level" prefix flag or loglevel:
326
+
327
+ ffmpeg [...] -loglevel +repeat
328
+
329
+ By default the program logs to stderr. If coloring is supported by
330
+ the terminal, colors are used to mark errors and warnings. Log
331
+ coloring can be disabled setting the environment variable
332
+ AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
333
+ variable AV_LOG_FORCE_COLOR.
334
+
335
+ -report
336
+ Dump full command line and log output to a file named
337
+ "program-YYYYMMDD-HHMMSS.log" in the current directory. This file
338
+ can be useful for bug reports. It also implies "-loglevel debug".
339
+
340
+ Setting the environment variable FFREPORT to any value has the same
341
+ effect. If the value is a ':'-separated key=value sequence, these
342
+ options will affect the report; option values must be escaped if
343
+ they contain special characters or the options delimiter ':' (see
344
+ the ``Quoting and escaping'' section in the ffmpeg-utils manual).
345
+
346
+ The following options are recognized:
347
+
348
+ file
349
+ set the file name to use for the report; %p is expanded to the
350
+ name of the program, %t is expanded to a timestamp, "%%" is
351
+ expanded to a plain "%"
352
+
353
+ level
354
+ set the log verbosity level using a numerical value (see
355
+ "-loglevel").
356
+
357
+ For example, to output a report to a file named ffreport.log using
358
+ a log level of 32 (alias for log level "info"):
359
+
360
+ FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
361
+
362
+ Errors in parsing the environment variable are not fatal, and will
363
+ not appear in the report.
364
+
365
+ -hide_banner
366
+ Suppress printing banner.
367
+
368
+ All FFmpeg tools will normally show a copyright notice, build
369
+ options and library versions. This option can be used to suppress
370
+ printing this information.
371
+
372
+ -cpuflags flags (global)
373
+ Allows setting and clearing cpu flags. This option is intended for
374
+ testing. Do not use it unless you know what you're doing.
375
+
376
+ ffmpeg -cpuflags -sse+mmx ...
377
+ ffmpeg -cpuflags mmx ...
378
+ ffmpeg -cpuflags 0 ...
379
+
380
+ Possible flags for this option are:
381
+
382
+ x86
383
+ mmx
384
+ mmxext
385
+ sse
386
+ sse2
387
+ sse2slow
388
+ sse3
389
+ sse3slow
390
+ ssse3
391
+ atom
392
+ sse4.1
393
+ sse4.2
394
+ avx
395
+ avx2
396
+ xop
397
+ fma3
398
+ fma4
399
+ 3dnow
400
+ 3dnowext
401
+ bmi1
402
+ bmi2
403
+ cmov
404
+ ARM
405
+ armv5te
406
+ armv6
407
+ armv6t2
408
+ vfp
409
+ vfpv3
410
+ neon
411
+ setend
412
+ AArch64
413
+ armv8
414
+ vfp
415
+ neon
416
+ PowerPC
417
+ altivec
418
+ Specific Processors
419
+ pentium2
420
+ pentium3
421
+ pentium4
422
+ k6
423
+ k62
424
+ athlon
425
+ athlonxp
426
+ k8
427
+ -cpucount count (global)
428
+ Override detection of CPU count. This option is intended for
429
+ testing. Do not use it unless you know what you're doing.
430
+
431
+ ffmpeg -cpucount 2
432
+
433
+ -max_alloc bytes
434
+ Set the maximum size limit for allocating a block on the heap by
435
+ ffmpeg's family of malloc functions. Exercise extreme caution when
436
+ using this option. Don't use if you do not understand the full
437
+ consequence of doing so. Default is INT_MAX.
438
+
439
+ AVOptions
440
+ These options are provided directly by the libavformat, libavdevice and
441
+ libavcodec libraries. To see the list of available AVOptions, use the
442
+ -help option. They are separated into two categories:
443
+
444
+ generic
445
+ These options can be set for any container, codec or device.
446
+ Generic options are listed under AVFormatContext options for
447
+ containers/devices and under AVCodecContext options for codecs.
448
+
449
+ private
450
+ These options are specific to the given container, device or codec.
451
+ Private options are listed under their corresponding
452
+ containers/devices/codecs.
453
+
454
+ For example to write an ID3v2.3 header instead of a default ID3v2.4 to
455
+ an MP3 file, use the id3v2_version private option of the MP3 muxer:
456
+
457
+ ffmpeg -i input.flac -id3v2_version 3 out.mp3
458
+
459
+ All codec AVOptions are per-stream, and thus a stream specifier should
460
+ be attached to them:
461
+
462
+ ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4
463
+
464
+ In the above example, a multichannel audio stream is mapped twice for
465
+ output. The first instance is encoded with codec ac3 and bitrate 640k.
466
+ The second instance is downmixed to 2 channels and encoded with codec
467
+ aac. A bitrate of 128k is specified for it using absolute index of the
468
+ output stream.
469
+
470
+ Note: the -nooption syntax cannot be used for boolean AVOptions, use
471
+ -option 0/-option 1.
472
+
473
+ Note: the old undocumented way of specifying per-stream AVOptions by
474
+ prepending v/a/s to the options name is now obsolete and will be
475
+ removed soon.
476
+
477
+ Main options
478
+ -f format
479
+ Force format to use.
480
+
481
+ -unit
482
+ Show the unit of the displayed values.
483
+
484
+ -prefix
485
+ Use SI prefixes for the displayed values. Unless the
486
+ "-byte_binary_prefix" option is used all the prefixes are decimal.
487
+
488
+ -byte_binary_prefix
489
+ Force the use of binary prefixes for byte values.
490
+
491
+ -sexagesimal
492
+ Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
493
+
494
+ -pretty
495
+ Prettify the format of the displayed values, it corresponds to the
496
+ options "-unit -prefix -byte_binary_prefix -sexagesimal".
497
+
498
+ -output_format, -of, -print_format writer_name[=writer_options]
499
+ Set the output printing format.
500
+
501
+ writer_name specifies the name of the writer, and writer_options
502
+ specifies the options to be passed to the writer.
503
+
504
+ For example for printing the output in JSON format, specify:
505
+
506
+ -output_format json
507
+
508
+ For more details on the available output printing formats, see the
509
+ Writers section below.
510
+
511
+ -sections
512
+ Print sections structure and section information, and exit. The
513
+ output is not meant to be parsed by a machine.
514
+
515
+ -select_streams stream_specifier
516
+ Select only the streams specified by stream_specifier. This option
517
+ affects only the options related to streams (e.g. "show_streams",
518
+ "show_packets", etc.).
519
+
520
+ For example to show only audio streams, you can use the command:
521
+
522
+ ffprobe -show_streams -select_streams a INPUT
523
+
524
+ To show only video packets belonging to the video stream with index
525
+ 1:
526
+
527
+ ffprobe -show_packets -select_streams v:1 INPUT
528
+
529
+ -show_data
530
+ Show payload data, as a hexadecimal and ASCII dump. Coupled with
531
+ -show_packets, it will dump the packets' data. Coupled with
532
+ -show_streams, it will dump the codec extradata.
533
+
534
+ The dump is printed as the "data" field. It may contain newlines.
535
+
536
+ -show_data_hash algorithm
537
+ Show a hash of payload data, for packets with -show_packets and for
538
+ codec extradata with -show_streams.
539
+
540
+ -show_error
541
+ Show information about the error found when trying to probe the
542
+ input.
543
+
544
+ The error information is printed within a section with name
545
+ "ERROR".
546
+
547
+ -show_format
548
+ Show information about the container format of the input multimedia
549
+ stream.
550
+
551
+ All the container format information is printed within a section
552
+ with name "FORMAT".
553
+
554
+ -show_format_entry name
555
+ Like -show_format, but only prints the specified entry of the
556
+ container format information, rather than all. This option may be
557
+ given more than once, then all specified entries will be shown.
558
+
559
+ This option is deprecated, use "show_entries" instead.
560
+
561
+ -show_entries section_entries
562
+ Set list of entries to show.
563
+
564
+ Entries are specified according to the following syntax.
565
+ section_entries contains a list of section entries separated by
566
+ ":". Each section entry is composed by a section name (or unique
567
+ name), optionally followed by a list of entries local to that
568
+ section, separated by ",".
569
+
570
+ If section name is specified but is followed by no "=", all entries
571
+ are printed to output, together with all the contained sections.
572
+ Otherwise only the entries specified in the local section entries
573
+ list are printed. In particular, if "=" is specified but the list
574
+ of local entries is empty, then no entries will be shown for that
575
+ section.
576
+
577
+ Note that the order of specification of the local section entries
578
+ is not honored in the output, and the usual display order will be
579
+ retained.
580
+
581
+ The formal syntax is given by:
582
+
583
+ <LOCAL_SECTION_ENTRIES> ::= <SECTION_ENTRY_NAME>[,<LOCAL_SECTION_ENTRIES>]
584
+ <SECTION_ENTRY> ::= <SECTION_NAME>[=[<LOCAL_SECTION_ENTRIES>]]
585
+ <SECTION_ENTRIES> ::= <SECTION_ENTRY>[:<SECTION_ENTRIES>]
586
+
587
+ For example, to show only the index and type of each stream, and
588
+ the PTS time, duration time, and stream index of the packets, you
589
+ can specify the argument:
590
+
591
+ packet=pts_time,duration_time,stream_index : stream=index,codec_type
592
+
593
+ To show all the entries in the section "format", but only the codec
594
+ type in the section "stream", specify the argument:
595
+
596
+ format : stream=codec_type
597
+
598
+ To show all the tags in the stream and format sections:
599
+
600
+ stream_tags : format_tags
601
+
602
+ To show only the "title" tag (if available) in the stream sections:
603
+
604
+ stream_tags=title
605
+
606
+ -show_packets
607
+ Show information about each packet contained in the input
608
+ multimedia stream.
609
+
610
+ The information for each single packet is printed within a
611
+ dedicated section with name "PACKET".
612
+
613
+ -show_frames
614
+ Show information about each frame and subtitle contained in the
615
+ input multimedia stream.
616
+
617
+ The information for each single frame is printed within a dedicated
618
+ section with name "FRAME" or "SUBTITLE".
619
+
620
+ -show_log loglevel
621
+ Show logging information from the decoder about each frame
622
+ according to the value set in loglevel, (see "-loglevel"). This
623
+ option requires "-show_frames".
624
+
625
+ The information for each log message is printed within a dedicated
626
+ section with name "LOG".
627
+
628
+ -show_streams
629
+ Show information about each media stream contained in the input
630
+ multimedia stream.
631
+
632
+ Each media stream information is printed within a dedicated section
633
+ with name "STREAM".
634
+
635
+ -show_programs
636
+ Show information about programs and their streams contained in the
637
+ input multimedia stream.
638
+
639
+ Each media stream information is printed within a dedicated section
640
+ with name "PROGRAM_STREAM".
641
+
642
+ -show_stream_groups
643
+ Show information about stream groups and their streams contained in
644
+ the input multimedia stream.
645
+
646
+ Each media stream information is printed within a dedicated section
647
+ with name "STREAM_GROUP_STREAM".
648
+
649
+ -show_chapters
650
+ Show information about chapters stored in the format.
651
+
652
+ Each chapter is printed within a dedicated section with name
653
+ "CHAPTER".
654
+
655
+ -count_frames
656
+ Count the number of frames per stream and report it in the
657
+ corresponding stream section.
658
+
659
+ -count_packets
660
+ Count the number of packets per stream and report it in the
661
+ corresponding stream section.
662
+
663
+ -read_intervals read_intervals
664
+ Read only the specified intervals. read_intervals must be a
665
+ sequence of interval specifications separated by ",". ffprobe will
666
+ seek to the interval starting point, and will continue reading from
667
+ that.
668
+
669
+ Each interval is specified by two optional parts, separated by "%".
670
+
671
+ The first part specifies the interval start position. It is
672
+ interpreted as an absolute position, or as a relative offset from
673
+ the current position if it is preceded by the "+" character. If
674
+ this first part is not specified, no seeking will be performed when
675
+ reading this interval.
676
+
677
+ The second part specifies the interval end position. It is
678
+ interpreted as an absolute position, or as a relative offset from
679
+ the current position if it is preceded by the "+" character. If the
680
+ offset specification starts with "#", it is interpreted as the
681
+ number of packets to read (not including the flushing packets) from
682
+ the interval start. If no second part is specified, the program
683
+ will read until the end of the input.
684
+
685
+ Note that seeking is not accurate, thus the actual interval start
686
+ point may be different from the specified position. Also, when an
687
+ interval duration is specified, the absolute end time will be
688
+ computed by adding the duration to the interval start point found
689
+ by seeking the file, rather than to the specified start value.
690
+
691
+ The formal syntax is given by:
692
+
693
+ <INTERVAL> ::= [<START>|+<START_OFFSET>][%[<END>|+<END_OFFSET>]]
694
+ <INTERVALS> ::= <INTERVAL>[,<INTERVALS>]
695
+
696
+ A few examples follow.
697
+
698
+ o Seek to time 10, read packets until 20 seconds after the found
699
+ seek point, then seek to position "01:30" (1 minute and thirty
700
+ seconds) and read packets until position "01:45".
701
+
702
+ 10%+20,01:30%01:45
703
+
704
+ o Read only 42 packets after seeking to position "01:23":
705
+
706
+ 01:23%+#42
707
+
708
+ o Read only the first 20 seconds from the start:
709
+
710
+ %+20
711
+
712
+ o Read from the start until position "02:30":
713
+
714
+ %02:30
715
+
716
+ -show_private_data, -private
717
+ Show private data, that is data depending on the format of the
718
+ particular shown element. This option is enabled by default, but
719
+ you may need to disable it for specific uses, for example when
720
+ creating XSD-compliant XML output.
721
+
722
+ -show_program_version
723
+ Show information related to program version.
724
+
725
+ Version information is printed within a section with name
726
+ "PROGRAM_VERSION".
727
+
728
+ -show_library_versions
729
+ Show information related to library versions.
730
+
731
+ Version information for each library is printed within a section
732
+ with name "LIBRARY_VERSION".
733
+
734
+ -show_versions
735
+ Show information related to program and library versions. This is
736
+ the equivalent of setting both -show_program_version and
737
+ -show_library_versions options.
738
+
739
+ -show_pixel_formats
740
+ Show information about all pixel formats supported by FFmpeg.
741
+
742
+ Pixel format information for each format is printed within a
743
+ section with name "PIXEL_FORMAT".
744
+
745
+ -show_optional_fields value
746
+ Some writers viz. JSON and XML, omit the printing of fields with
747
+ invalid or non-applicable values, while other writers always print
748
+ them. This option enables one to control this behaviour. Valid
749
+ values are "always"/1, "never"/0 and "auto"/"-1". Default is auto.
750
+
751
+ -bitexact
752
+ Force bitexact output, useful to produce output which is not
753
+ dependent on the specific build.
754
+
755
+ -i input_url
756
+ Read input_url.
757
+
758
+ -o output_url
759
+ Write output to output_url. If not specified, the output is sent to
760
+ stdout.
761
+
762
+ WRITERS
763
+ A writer defines the output format adopted by ffprobe, and will be used
764
+ for printing all the parts of the output.
765
+
766
+ A writer may accept one or more arguments, which specify the options to
767
+ adopt. The options are specified as a list of key=value pairs,
768
+ separated by ":".
769
+
770
+ All writers support the following options:
771
+
772
+ string_validation, sv
773
+ Set string validation mode.
774
+
775
+ The following values are accepted.
776
+
777
+ fail
778
+ The writer will fail immediately in case an invalid string
779
+ (UTF-8) sequence or code point is found in the input. This is
780
+ especially useful to validate input metadata.
781
+
782
+ ignore
783
+ Any validation error will be ignored. This will result in
784
+ possibly broken output, especially with the json or xml writer.
785
+
786
+ replace
787
+ The writer will substitute invalid UTF-8 sequences or code
788
+ points with the string specified with the
789
+ string_validation_replacement.
790
+
791
+ Default value is replace.
792
+
793
+ string_validation_replacement, svr
794
+ Set replacement string to use in case string_validation is set to
795
+ replace.
796
+
797
+ In case the option is not specified, the writer will assume the
798
+ empty string, that is it will remove the invalid sequences from the
799
+ input strings.
800
+
801
+ A description of the currently available writers follows.
802
+
803
+ default
804
+ Default format.
805
+
806
+ Print each section in the form:
807
+
808
+ [SECTION]
809
+ key1=val1
810
+ ...
811
+ keyN=valN
812
+ [/SECTION]
813
+
814
+ Metadata tags are printed as a line in the corresponding FORMAT,
815
+ STREAM, STREAM_GROUP_STREAM or PROGRAM_STREAM section, and are prefixed
816
+ by the string "TAG:".
817
+
818
+ A description of the accepted options follows.
819
+
820
+ nokey, nk
821
+ If set to 1 specify not to print the key of each field. Default
822
+ value is 0.
823
+
824
+ noprint_wrappers, nw
825
+ If set to 1 specify not to print the section header and footer.
826
+ Default value is 0.
827
+
828
+ compact, csv
829
+ Compact and CSV format.
830
+
831
+ The "csv" writer is equivalent to "compact", but supports different
832
+ defaults.
833
+
834
+ Each section is printed on a single line. If no option is specified,
835
+ the output has the form:
836
+
837
+ section|key1=val1| ... |keyN=valN
838
+
839
+ Metadata tags are printed in the corresponding "format" or "stream"
840
+ section. A metadata tag key, if printed, is prefixed by the string
841
+ "tag:".
842
+
843
+ The description of the accepted options follows.
844
+
845
+ item_sep, s
846
+ Specify the character to use for separating fields in the output
847
+ line. It must be a single printable character, it is "|" by
848
+ default ("," for the "csv" writer).
849
+
850
+ nokey, nk
851
+ If set to 1 specify not to print the key of each field. Its default
852
+ value is 0 (1 for the "csv" writer).
853
+
854
+ escape, e
855
+ Set the escape mode to use, default to "c" ("csv" for the "csv"
856
+ writer).
857
+
858
+ It can assume one of the following values:
859
+
860
+ c Perform C-like escaping. Strings containing a newline (\n),
861
+ carriage return (\r), a tab (\t), a form feed (\f), the
862
+ escaping character (\) or the item separator character SEP are
863
+ escaped using C-like fashioned escaping, so that a newline is
864
+ converted to the sequence \n, a carriage return to \r, \ to \\
865
+ and the separator SEP is converted to \SEP.
866
+
867
+ csv Perform CSV-like escaping, as described in RFC4180. Strings
868
+ containing a newline (\n), a carriage return (\r), a double
869
+ quote ("), or SEP are enclosed in double-quotes.
870
+
871
+ none
872
+ Perform no escaping.
873
+
874
+ print_section, p
875
+ Print the section name at the beginning of each line if the value
876
+ is 1, disable it with value set to 0. Default value is 1.
877
+
878
+ flat
879
+ Flat format.
880
+
881
+ A free-form output where each line contains an explicit key=value, such
882
+ as "streams.stream.3.tags.foo=bar". The output is shell escaped, so it
883
+ can be directly embedded in sh scripts as long as the separator
884
+ character is an alphanumeric character or an underscore (see sep_char
885
+ option).
886
+
887
+ The description of the accepted options follows.
888
+
889
+ sep_char, s
890
+ Separator character used to separate the chapter, the section name,
891
+ IDs and potential tags in the printed field key.
892
+
893
+ Default value is ..
894
+
895
+ hierarchical, h
896
+ Specify if the section name specification should be hierarchical.
897
+ If set to 1, and if there is more than one section in the current
898
+ chapter, the section name will be prefixed by the name of the
899
+ chapter. A value of 0 will disable this behavior.
900
+
901
+ Default value is 1.
902
+
903
+ ini
904
+ INI format output.
905
+
906
+ Print output in an INI based format.
907
+
908
+ The following conventions are adopted:
909
+
910
+ o all key and values are UTF-8
911
+
912
+ o . is the subgroup separator
913
+
914
+ o newline, \t, \f, \b and the following characters are escaped
915
+
916
+ o \ is the escape character
917
+
918
+ o # is the comment indicator
919
+
920
+ o = is the key/value separator
921
+
922
+ o : is not used but usually parsed as key/value separator
923
+
924
+ This writer accepts options as a list of key=value pairs, separated by
925
+ :.
926
+
927
+ The description of the accepted options follows.
928
+
929
+ hierarchical, h
930
+ Specify if the section name specification should be hierarchical.
931
+ If set to 1, and if there is more than one section in the current
932
+ chapter, the section name will be prefixed by the name of the
933
+ chapter. A value of 0 will disable this behavior.
934
+
935
+ Default value is 1.
936
+
937
+ json
938
+ JSON based format.
939
+
940
+ Each section is printed using JSON notation.
941
+
942
+ The description of the accepted options follows.
943
+
944
+ compact, c
945
+ If set to 1 enable compact output, that is each section will be
946
+ printed on a single line. Default value is 0.
947
+
948
+ For more information about JSON, see <http://www.json.org/>.
949
+
950
+ xml
951
+ XML based format.
952
+
953
+ The XML output is described in the XML schema description file
954
+ ffprobe.xsd installed in the FFmpeg datadir.
955
+
956
+ An updated version of the schema can be retrieved at the url
957
+ <http://www.ffmpeg.org/schema/ffprobe.xsd>, which redirects to the
958
+ latest schema committed into the FFmpeg development source code tree.
959
+
960
+ Note that the output issued will be compliant to the ffprobe.xsd schema
961
+ only when no special global output options (unit, prefix,
962
+ byte_binary_prefix, sexagesimal etc.) are specified.
963
+
964
+ The description of the accepted options follows.
965
+
966
+ fully_qualified, q
967
+ If set to 1 specify if the output should be fully qualified.
968
+ Default value is 0. This is required for generating an XML file
969
+ which can be validated through an XSD file.
970
+
971
+ xsd_strict, x
972
+ If set to 1 perform more checks for ensuring that the output is XSD
973
+ compliant. Default value is 0. This option automatically sets
974
+ fully_qualified to 1.
975
+
976
+ For more information about the XML format, see
977
+ <https://www.w3.org/XML/>.
978
+
979
+ TIMECODE
980
+ ffprobe supports Timecode extraction:
981
+
982
+ o MPEG1/2 timecode is extracted from the GOP, and is available in the
983
+ video stream details (-show_streams, see timecode).
984
+
985
+ o MOV timecode is extracted from tmcd track, so is available in the
986
+ tmcd stream metadata (-show_streams, see TAG:timecode).
987
+
988
+ o DV, GXF and AVI timecodes are available in format metadata
989
+ (-show_format, see TAG:timecode).
990
+
991
+ SEE ALSO
992
+ ffprobe-all(1), ffmpeg(1), ffplay(1), ffmpeg-utils(1),
993
+ ffmpeg-scaler(1), ffmpeg-resampler(1), ffmpeg-codecs(1),
994
+ ffmpeg-bitstream-filters(1), ffmpeg-formats(1), ffmpeg-devices(1),
995
+ ffmpeg-protocols(1), ffmpeg-filters(1)
996
+
997
+ AUTHORS
998
+ The FFmpeg developers.
999
+
1000
+ For details about the authorship, see the Git history of the project
1001
+ (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
1002
+ the FFmpeg source directory, or browsing the online repository at
1003
+ <https://git.ffmpeg.org/ffmpeg>.
1004
+
1005
+ Maintainers for the specific components are listed in the file
1006
+ MAINTAINERS in the source code tree.
1007
+
1008
+ FFPROBE(1)
ffmpeg/model/000-PLEASE-README.TXT ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ The vmaf filter expects this directory of models to be preset at /usr/local/share/model
2
+
3
+ If you wish to use this filter, run "sudo cp -r model /usr/local/share/" from the directory
4
+ containing the static binaries. If not, you can ignore this and do nothing.
ffmpeg/model/other_models/model_V8a.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:047ff7bfd0b51bdd51c35a6623bebe07c7b925a537ca219c8efd2be80370d683
3
+ size 4715
ffmpeg/model/other_models/nflx_v1.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "param_dict": {
3
+ "C": 1.0,
4
+ "norm_type": "clip_0to1",
5
+ "score_clip": [
6
+ 0.0,
7
+ 100.0
8
+ ],
9
+ "cache_size": 200,
10
+ "nu": 0.5,
11
+ "gamma": 0.85
12
+ },
13
+ "model_dict": {
14
+ "norm_type": "linear_rescale",
15
+ "score_clip": [
16
+ 0.0,
17
+ 100.0
18
+ ],
19
+ "feature_names": [
20
+ "VMAF_feature_adm_score",
21
+ "VMAF_feature_ansnr_score",
22
+ "VMAF_feature_motion_score",
23
+ "VMAF_feature_vif_score"
24
+ ],
25
+ "intercepts": [
26
+ -0.1909090909090909,
27
+ -1.635828565827225,
28
+ -0.5027725296167747,
29
+ -0.022214587359292954,
30
+ -0.12191917348723096
31
+ ],
32
+ "model_type": "LIBSVMNUSVR",
33
+ "slopes": [
34
+ 0.010909090909090908,
35
+ 2.635828565827225,
36
+ 0.030306790717580585,
37
+ 0.06846153126171134,
38
+ 1.121919173487231
39
+ ],
40
+ "model": "svm_type nu_svr\nkernel_type rbf\ngamma 0.85\nnr_class 2\ntotal_sv 87\nrho -0.678599\nSV\n-1 1:0.500758 2:0.44434935 3:0.80360073 4:0.25504335 \n-1 1:0.66395488 2:0.49545656 3:0.80360073 4:0.30315084 \n-1 1:0.68710445 2:0.51616008 3:0.80360073 4:0.32840241 \n1 1:0.80552743 2:0.57886981 3:0.80360073 4:0.3952589 \n1 1:0.93943344 2:0.67382416 3:0.80360073 4:0.48875504 \n-0.6005168509118413 1:0.44111817 2:0.13943156 3:0.060660457 4:0.23164915 \n0.3001652364483464 1:0.79372033 2:0.31017378 3:0.060660457 4:0.4749309 \n1 1:0.91710352 2:0.45437437 3:0.060660457 4:0.66549345 \n0.2347757543790557 1:0.99910085 2:0.62307047 3:0.060660457 4:0.94344783 \n0.9879940111050362 1:0.70228825 2:0.41065868 3:0.25800309 4:0.16020672 \n1 1:0.71225044 2:0.41933192 3:0.25800309 4:0.16684779 \n1 1:0.79683949 2:0.43826809 3:0.25800309 4:0.17816881 \n1 1:0.81652281 2:0.45300881 3:0.25800309 4:0.19016999 \n-1 1:0.93569958 2:0.48157676 3:0.25800309 4:0.21208644 \n-0.05952502774634448 1:0.93913288 2:0.49123252 3:0.25800309 4:0.22195992 \n-1 1:0.78457344 2:0.32209063 3:0.29975901 4:0.43388438 \n-0.08537060065670415 1:0.98011205 2:0.57256903 3:0.29975901 4:0.69987699 \n-1 1:0.98354192 2:0.5885804 3:0.29975901 4:0.72038426 \n-1 1:0.43053262 2:0.12481478 3:0.49240306 4:0.11338352 \n-1 1:0.48855711 2:0.150659 3:0.49240306 4:0.14217743 \n-1 1:0.60605382 2:0.18559397 3:0.49240306 4:0.18417781 \n-0.7923822897377828 1:0.68505081 2:0.23614196 3:0.49240306 4:0.24718934 \n-0.08210621586290766 1:0.89013303 2:0.39057937 3:0.49240306 4:0.43942102 \n1 1:0.32769235 2:0.11805063 3:0.13125463 4:0.15797584 \n1 1:0.57102853 2:0.18673101 3:0.13125463 4:0.2692099 \n1 1:0.57282199 2:0.18739048 3:0.13125463 4:0.27170222 \n1 1:0.74350533 2:0.27830189 3:0.13125463 4:0.40502819 \n1 1:0.90049487 2:0.43091367 3:0.13125463 4:0.66579618 \n-1 1:0.6494774 2:0.27837021 3:0.41227705 4:0.22867305 \n-1 1:0.76923458 2:0.34709787 3:0.41227705 4:0.30394459 \n-1 1:0.95803953 2:0.52505896 3:0.41227705 4:0.50173907 \n-1 1:0.96714842 2:0.55388193 3:0.41227705 4:0.53377919 \n1 1:0.48186529 2:0.28840495 3:0.3173053 4:0.35029221 \n1 1:0.63910783 2:0.34199561 3:0.3173053 4:0.40973951 \n1 1:0.67242576 2:0.37411679 3:0.3173053 4:0.44891858 \n1 1:0.81232229 2:0.47549925 3:0.3173053 4:0.5571142 \n-1 1:0.51091654 2:0.36753212 4:0.32122832 \n-1 1:0.67131199 2:0.40988734 4:0.37624653 \n-1 1:0.67853479 2:0.41802337 4:0.38490923 \n-1 1:0.77668766 2:0.4530568 4:0.42714338 \n-1 1:0.80010279 2:0.47295605 4:0.44945901 \n0.2238122443981977 1:1 2:0.78323367 3:0.95719598 4:1 \n-1 1:0.36338045 2:0.20017167 3:0.35216405 4:0.19030002 \n-1 1:0.56016075 2:0.2511454 3:0.35216405 4:0.25418659 \n-1 1:0.72561366 2:0.32432484 3:0.35216405 4:0.34947968 \n1 1:0.7525563 2:0.34866202 3:0.35216405 4:0.3991584 \n1 1:0.88089009 2:0.45568174 3:0.35216405 4:0.51691346 \n-1 1:0.67458252 2:0.62423542 3:0.024932462 4:0.49597011 \n-1 1:0.67941593 2:0.6324076 3:0.024932462 4:0.50994261 \n-1 1:0.79839909 2:0.68132931 3:0.024932462 4:0.52861368 \n0.765497786395351 1:0.96138923 2:0.76908851 3:0.024932462 4:0.57268419 \n1 1:0.96906849 2:0.7906865 3:0.024932462 4:0.59393192 \n-1 1:0.61695399 2:0.18704248 3:0.73888524 4:0.1814112 \n-1 1:0.7608844 2:0.25428655 3:0.73888524 4:0.24370254 \n-1 1:0.82057107 2:0.30563046 3:0.73888524 4:0.30618093 \n-1 1:0.89455431 2:0.39394543 3:0.73888524 4:0.41860883 \n-1 1:0.16873718 2:0.15491045 3:0.95719598 4:0.079392181 \n-1 1:0.45188506 2:0.22731935 3:0.95719598 4:0.16130023 \n-0.8676044738986739 1:0.76536179 2:0.36671253 3:0.95719598 4:0.34343984 \n0.6504146395675607 1:2.220446e-16 2:0.23907071 3:0.65112312 4:0.038179135 \n1 1:0.42756068 2:0.33322794 3:0.65112312 4:0.144644 \n1 1:0.54211376 2:0.37139949 3:0.65112312 4:0.1921988 \n1 1:0.59120008 2:0.38742794 3:0.65112312 4:0.20324125 \n1 1:0.61558961 2:0.40700327 3:0.65112312 4:0.23911229 \n1 1:0.66410067 2:0.42453917 3:0.65112312 4:0.25030438 \n1 1:0.77796278 2:0.50015434 3:0.65112312 4:0.35266323 \n1 1:0.850087 2:0.56409596 3:0.65112312 4:0.44272339 \n0.3373403277064526 1:0.89007769 2:0.6105181 3:0.65112312 4:0.51063948 \n1 1:0.2919114 2:0.32670389 3:0.70765261 4:0.16789622 \n1 1:0.56327043 2:0.41097052 3:0.70765261 4:0.28869814 \n-0.9667756382666468 1:0.69223575 2:0.44677163 3:0.70765261 4:0.30435865 \n1 1:0.7570134 2:0.52053937 3:0.70765261 4:0.45274665 \n-1 1:0.93882855 2:0.64245784 3:0.70765261 4:0.54772182 \n-0.04571890291909872 1:0.56052264 2:0.31230263 3:0.27988388 4:0.16193225 \n-1 1:0.70082836 2:0.36112001 3:0.27988388 4:0.2051139 \n1 1:0.73029842 2:0.38872215 3:0.27988388 4:0.2447673 \n1 1:0.86760546 2:0.48182811 3:0.27988388 4:0.33403096 \n1 1:0.87147234 2:0.48882625 3:0.27988388 4:0.34344882 \n1 1:0.95086917 2:0.55599973 3:0.27988388 4:0.39368584 \n1 1:0.67102703 2:0.16297436 3:1 4:0.1833146 \n1 1:0.72313816 2:0.19544136 3:1 4:0.22168406 \n1 1:0.78939255 2:0.22653651 3:1 4:0.24606121 \n1 1:0.83915519 2:0.27026774 3:1 4:0.29560442 \n-1 1:0.47596853 2:0.4846003 3:0.60048989 4:0.30839395 \n-1 1:0.6683492 2:0.56626182 3:0.60048989 4:0.40875179 \n-1 1:0.76380856 2:0.60596099 3:0.60048989 4:0.45269953 \n-1 1:0.8078454 2:0.66094735 3:0.60048989 4:0.52147761 \n"
41
+ }
42
+ }
ffmpeg/model/other_models/nflx_v1.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a69e3b12406ba1439e07d4918a32de41909936619c0a258269463d779c2dab53
3
+ size 705
ffmpeg/model/other_models/nflx_v1.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0d98da19846a7b9f820d5588370a1bff702f3f4857959258238babcfdf0a52b0
3
+ size 4940
ffmpeg/model/other_models/nflx_vmaff_rf_v1.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:013c46b7d0ac4ece0d91525f80e37569d8b8d351ed98c2f518cef52cf37d577b
3
+ size 385886
ffmpeg/model/other_models/nflx_vmaff_rf_v2.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b34534f10d8444c6025704225596e0afc2c8943f3115fc5443e4bb4f86c07ca8
3
+ size 192552
ffmpeg/model/other_models/nflxall_libsvmnusvr_currentbest.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de7c9c04a207e662e4257b82bc524708f1efabcc1964e8d06ebdc440b8cf3d04
3
+ size 788
ffmpeg/model/other_models/nflxall_libsvmnusvr_currentbest.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:369d490de3c966186aad6eba0aad904cbf84b2c85933502d6cf1351bf72b7300
3
+ size 15701
ffmpeg/model/other_models/nflxall_vmafv1.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de7c9c04a207e662e4257b82bc524708f1efabcc1964e8d06ebdc440b8cf3d04
3
+ size 788
ffmpeg/model/other_models/nflxall_vmafv1.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:369d490de3c966186aad6eba0aad904cbf84b2c85933502d6cf1351bf72b7300
3
+ size 15701
ffmpeg/model/other_models/nflxall_vmafv2.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0430132da296b6696eb996eaebe21c227bbd614645df5a8e5c124c4de231025f
3
+ size 1105
ffmpeg/model/other_models/nflxall_vmafv2.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:408f374472a5dbd88103ea79909f05e6710deea27900517b33cbad3c061e20b4
3
+ size 25331
ffmpeg/model/other_models/nflxall_vmafv3.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bd3d00d8916b08ed300d57c524e409b7ecc09c2bc57b4265a8ce849d7a471129
3
+ size 1013
ffmpeg/model/other_models/nflxall_vmafv3.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:85f930c5602904823d42e83a2be9ab45a67b1e6dca2be8cb1ffa9014bdde32e5
3
+ size 22118
ffmpeg/model/other_models/nflxall_vmafv3a.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:df48f07628921ae552b7b12b25705e36020b70eb4efb8730233c8ed1fb247204
3
+ size 1015
ffmpeg/model/other_models/nflxall_vmafv3a.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:22a33f5f47f871ffd3c2352122c7b43fa1e0580593974355e3facd2cca040e02
3
+ size 22250
ffmpeg/model/other_models/nflxall_vmafv4.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:92f3eb338f49f4bb3363c54688a50c54bf7b717a09f633022bac0d83b8a2c962
3
+ size 1014
ffmpeg/model/other_models/nflxall_vmafv4.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:23aaacf213dcd8cf95f7ab37bbddf1d2a5bec217f89673d08f5d4c769ebce809
3
+ size 11707
ffmpeg/model/other_models/nflxtrain_libsvmnusvr_currentbest.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:637f3a630a376d3450c3ba50ba5b541f0315997042e11a40cb1dcf769c98cfd3
3
+ size 787
ffmpeg/model/other_models/nflxtrain_libsvmnusvr_currentbest.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be5b081c755aec40d7d98d8b741cca4f71f16db944be23467d20ded915b6ec06
3
+ size 8064
ffmpeg/model/other_models/nflxtrain_norm_type_none.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "param_dict": {
3
+ "C": 4.0,
4
+ "norm_type": "none",
5
+ "score_clip": [
6
+ 0.0,
7
+ 100.0
8
+ ],
9
+ "custom_clip_0to1_map": {
10
+ "VMAF_feature_adm_scale0_score": [
11
+ 0.0,
12
+ 0.5
13
+ ]
14
+ },
15
+ "nu": 0.9,
16
+ "gamma": 0.05
17
+ },
18
+ "model_dict": {
19
+ "norm_type": "none",
20
+ "score_clip": [
21
+ 0.0,
22
+ 100.0
23
+ ],
24
+ "feature_names": [
25
+ "VMAF_feature_adm2_score",
26
+ "VMAF_feature_motion_score",
27
+ "VMAF_feature_vif_scale0_score",
28
+ "VMAF_feature_vif_scale1_score",
29
+ "VMAF_feature_vif_scale2_score",
30
+ "VMAF_feature_vif_scale3_score"
31
+ ],
32
+ "model_type": "LIBSVMNUSVR",
33
+ "model": "svm_type nu_svr\nkernel_type rbf\ngamma 0.05\nnr_class 2\ntotal_sv 145\nrho -71.4237\nSV\n4 1:1 2:12.533413 3:0.9999975 4:0.99999258 5:0.99999236 6:0.99999266 \n4 1:1 2:1.2599153 3:0.99999934 4:0.99999876 5:0.99999818 6:0.99999807 \n4 1:1 2:4.5089165 3:0.99999911 4:0.99999173 5:0.99999283 6:0.99999377 \n4 1:1 2:5.0238287 3:0.99999624 4:0.99999855 5:0.99999806 6:0.99999806 \n4 1:1 2:7.8731214 3:0.99999988 4:0.99999971 5:0.9999995 6:0.99999952 \n4 1:1 2:2.2732251 3:0.9999998 4:0.99999975 5:0.9999994 6:0.9999992 \n4 1:1 2:6.8032943 3:0.99998855 4:0.99999204 5:0.99999101 6:0.99999066 \n4 1:1 2:5.3911783 3:0.99998973 4:0.9999925 5:0.99999152 6:0.99999104 \n4 1:1 2:0.69968349 3:0.99998275 4:0.99998653 5:0.99998527 6:0.99998489 \n-4 1:0.84896634 2:12.533413 3:0.33895021 4:0.73552419 5:0.82587986 6:0.88518901 \n-4 1:0.89902399 2:12.533413 3:0.37506725 4:0.79150984 5:0.87103572 6:0.91598638 \n-4 1:0.9058092 2:12.533413 3:0.39291047 4:0.82191427 5:0.8974504 6:0.93697579 \n4 1:0.94180684 2:12.533413 3:0.44519539 4:0.88797014 5:0.94307833 6:0.96763555 \n4 1:0.96551071 2:12.533413 3:0.47757481 4:0.91263699 5:0.95771825 6:0.97665742 \n4 1:0.98039843 2:12.533413 3:0.50512574 4:0.93641427 5:0.97125337 6:0.98447387 \n4 1:0.98279248 2:12.533413 3:0.52494917 4:0.94597348 5:0.97618956 6:0.98731145 \n-4 1:0.80100502 2:1.2599153 3:0.27712214 4:0.5706579 5:0.75023794 6:0.89126371 \n-4 1:0.87692558 2:1.2599153 3:0.36092497 4:0.72159269 5:0.87029858 6:0.94856784 \n-4 1:0.87722484 2:1.2599153 3:0.36432308 4:0.72539664 5:0.87314146 6:0.95065046 \n-4 1:0.92166307 2:1.2599153 3:0.44267312 4:0.83636663 5:0.93672862 6:0.97591127 \n4 1:0.97048219 2:1.2599153 3:0.64876015 4:0.95993073 5:0.98536387 6:0.99401176 \n4 1:0.99967998 2:1.2599153 3:0.94111777 4:0.99750329 5:0.99896436 6:0.99945468 \n-4 1:0.861444 2:4.5089165 3:0.20875174 4:0.7964628 5:0.87571415 6:0.91891743 \n-4 1:0.90842308 2:4.5089165 3:0.22073196 4:0.83490795 5:0.9074711 6:0.94146448 \n-4 1:0.91144883 2:4.5089165 3:0.22407546 4:0.84867639 5:0.91861457 6:0.95005897 \n4 1:0.94360784 2:4.5089165 3:0.23820735 4:0.88738326 5:0.94527859 6:0.9681271 \n4 1:0.96637717 2:4.5089165 3:0.24703702 4:0.89978897 5:0.95352448 6:0.97380127 \n4 1:0.98039308 2:4.5089165 3:0.25428375 4:0.91322904 5:0.96193765 6:0.97923267 \n4 1:0.98143937 2:4.5089165 3:0.26196511 4:0.92072397 5:0.96586749 6:0.98163489 \n-4 1:0.82493266 2:5.0238287 3:0.42542513 4:0.68334236 5:0.79643001 6:0.8689646 \n-4 1:0.88908407 2:5.0238287 3:0.47696938 4:0.76314869 5:0.85707317 6:0.90739242 \n-4 1:0.89462309 2:5.0238287 3:0.49477751 4:0.79285712 5:0.88402775 6:0.92928433 \n-4 1:0.92823625 2:5.0238287 3:0.54131266 4:0.85127856 5:0.91977582 6:0.95109252 \n4 1:0.96974121 2:5.0238287 3:0.6704611 4:0.93961256 5:0.97023532 6:0.9832363 \n4 1:0.99338524 2:5.0238287 3:0.76772688 4:0.9702496 5:0.98558096 6:0.99188836 \n4 1:0.99453087 2:5.0238287 3:0.78523237 4:0.97623013 5:0.98872768 6:0.99372879 \n-4 1:0.735774 2:7.8731214 3:0.18066767 4:0.35558233 5:0.46638241 6:0.57552953 \n-4 1:0.80270198 2:7.8731214 3:0.20597032 4:0.41312243 5:0.52645507 6:0.62763846 \n-4 1:0.82280141 2:7.8731214 3:0.22375207 4:0.4583115 5:0.58084904 6:0.68310316 \n-4 1:0.86351445 2:7.8731214 3:0.2531937 4:0.51585763 5:0.6346417 6:0.72818359 \n-4 1:0.89087868 2:7.8731214 3:0.29497578 4:0.60902979 5:0.72945726 6:0.81221123 \n-2.91118935619693 1:0.92930327 2:7.8731214 3:0.36427101 4:0.6846741 5:0.78659506 6:0.85462367 \n4 1:0.96193645 2:7.8731214 3:0.4563939 4:0.78067388 5:0.8630131 6:0.91154457 \n4 1:0.97040686 2:7.8731214 3:0.50062941 4:0.82903822 5:0.89940794 6:0.93745134 \n-4 1:0.76245521 2:2.2732251 3:0.25949926 4:0.53599452 5:0.73837027 6:0.89338253 \n-4 1:0.8484373 2:2.2732251 3:0.33217721 4:0.69011795 5:0.86420904 6:0.94994395 \n-4 1:0.84907052 2:2.2732251 3:0.33355169 4:0.6936715 5:0.86776579 6:0.9529639 \n4 1:0.9648437 2:2.2732251 3:0.67145713 4:0.95728728 5:0.98628044 6:0.99494608 \n4 1:0.99986725 2:2.2732251 3:0.97917486 4:0.99923164 5:0.99964556 6:0.99979122 \n-4 1:0.83791425 2:6.8032943 3:0.50776333 4:0.70074849 5:0.77295705 6:0.82568738 \n-4 1:0.89071154 2:6.8032943 3:0.53484634 4:0.74410778 5:0.81649666 6:0.86481777 \n-4 1:0.89913543 2:6.8032943 3:0.55730227 4:0.77961578 5:0.85180654 6:0.89668151 \n-4 1:0.92812654 2:6.8032943 3:0.58053715 4:0.81264954 5:0.87957971 6:0.91856239 \n4 1:0.96763766 2:6.8032943 3:0.67184636 4:0.91126977 5:0.95238785 6:0.97147542 \n4 1:0.98710724 2:6.8032943 3:0.71296745 4:0.94852674 5:0.97502444 6:0.98576295 \n4 1:0.98992323 2:6.8032943 3:0.73604798 4:0.96142657 5:0.98186763 6:0.98983387 \n-4 1:0.853206 2:5.3911783 3:0.715294 4:0.83089935 5:0.87312882 6:0.90224607 \n-4 1:0.89805582 2:5.3911783 3:0.74712894 4:0.86921006 5:0.90752081 6:0.93106167 \n-4 1:0.90728193 2:5.3911783 3:0.76689204 4:0.89270712 5:0.92858154 6:0.949143 \n-4 1:0.93462458 2:5.3911783 3:0.79213235 4:0.91981802 5:0.94924815 6:0.96476477 \n0.1125141694350817 1:0.94683573 2:5.3911783 3:0.82594612 4:0.94921894 5:0.97026475 6:0.98020911 \n4 1:0.97063071 2:5.3911783 3:0.85545911 4:0.96816904 5:0.9821253 6:0.98841198 \n4 1:0.98944502 2:5.3911783 3:0.87681472 4:0.98409775 5:0.99191486 6:0.99506135 \n4 1:0.9920354 2:5.3911783 3:0.88839329 4:0.98844934 5:0.99425018 6:0.99651485 \n-4 1:0.88419439 2:0.69968349 3:0.60100851 4:0.89279095 5:0.94333305 6:0.96539161 \n-4 1:0.92221134 2:0.69968349 3:0.64000672 4:0.93160317 5:0.9658363 6:0.97828002 \n-4 1:0.92386262 2:0.69968349 3:0.64559578 4:0.93561816 5:0.96813612 6:0.9799806 \n-4 1:0.94717528 2:0.69968349 3:0.67734079 4:0.95778103 5:0.979132 6:0.98648917 \n4 1:0.97513174 2:0.69968349 3:0.74695404 4:0.98052305 5:0.99056856 6:0.99414684 \n4 1:0.9881205 2:0.69968349 3:0.76951085 4:0.98923061 5:0.9955465 6:0.99758605 \n4 1:0.98891621 2:0.69968349 3:0.77725545 4:0.99023068 5:0.99599907 6:0.99786338 \n4 1:1 2:5.8053123 3:0.99999983 4:0.99999919 5:0.99999875 6:0.99999879 \n4 1:1 2:1.0708016 3:0.99999946 4:0.99999643 5:0.99999606 6:0.99999723 \n4 1:1 2:11.59872 3:1 4:0.99999936 5:0.99999892 6:0.99999882 \n4 1:1 2:14.783537 3:0.99999942 4:0.99999821 5:0.99999745 6:0.99999745 \n4 1:1 2:10.331771 3:0.99999757 4:0.99999572 5:0.99999495 6:0.99999494 \n4 1:1 2:10.946382 3:0.99999865 4:0.99999684 5:0.9999959 6:0.99999556 \n4 1:1 2:4.882557 3:1 4:0.99999607 5:0.99999618 6:0.99999571 \n4 1:1 2:15.436489 3:0.99999999 4:0.99999935 5:0.9999988 6:0.99999879 \n4 1:1 2:9.593342 3:0.99999769 4:0.99999303 5:0.99999274 6:0.99999318 \n-4 1:0.78987603 2:5.8053123 3:0.21334536 4:0.53121982 5:0.69661081 6:0.81116809 \n-4 1:0.85483151 2:5.8053123 3:0.2580863 4:0.6400138 5:0.78643035 6:0.86874075 \n-4 1:0.86373262 2:5.8053123 3:0.27936354 4:0.68830084 5:0.83010699 6:0.90230012 \n-4 1:0.90945035 2:5.8053123 3:0.33128252 4:0.7776565 5:0.88018522 6:0.9290983 \n4 1:0.9607075 2:5.8053123 3:0.48474381 4:0.91614881 5:0.95827214 6:0.97641051 \n4 1:0.96409409 2:5.8053123 3:0.51400174 4:0.93852453 5:0.97068262 6:0.98382648 \n4 1:0.98344735 2:5.8053123 3:0.61598851 4:0.92983003 5:0.96439414 6:0.97920334 \n4 1:0.9855762 2:5.8053123 3:0.64224514 4:0.94052837 5:0.9702515 6:0.98273701 \n4 1:0.98980868 2:5.8053123 3:0.70176719 4:0.96001502 5:0.98053015 6:0.9888236 \n-4 1:0.84181455 2:1.0708016 3:0.43473563 4:0.81199608 5:0.89465073 6:0.94094117 \n-4 1:0.84425501 2:1.0708016 3:0.44726886 4:0.83129005 5:0.90896513 6:0.95075921 \n-4 1:0.89767743 2:1.0708016 3:0.46879904 4:0.87019075 5:0.93347538 6:0.96287583 \n-4 1:0.89919494 2:1.0708016 3:0.48016597 4:0.88534093 5:0.94307814 6:0.96881679 \n-3.640230481023945 1:0.93661535 2:1.0708016 3:0.4959594 4:0.90816427 5:0.95416611 6:0.97420315 \n4 1:0.96850764 2:1.0708016 3:0.52133772 4:0.92778964 5:0.9642337 6:0.9802262 \n4 1:0.98786637 2:1.0708016 3:0.53682891 4:0.94016235 5:0.97152693 6:0.98442844 \n4 1:0.99027992 2:1.0708016 3:0.55658798 4:0.95534028 5:0.98009047 6:0.98962647 \n-4 1:0.6634705 2:11.59872 3:0.07581898 4:0.22227755 5:0.32440064 6:0.4370875 \n-4 1:0.86733851 2:11.59872 3:0.19464972 4:0.53442601 5:0.68003312 6:0.78133328 \n-4 1:0.91718681 2:11.59872 3:0.24599744 4:0.61009579 5:0.73679921 6:0.82111909 \n-4 1:0.93785776 2:11.59872 3:0.29516092 4:0.69304317 5:0.80704118 6:0.87520288 \n4 1:0.96348057 2:11.59872 3:0.39087746 4:0.81658942 5:0.89826484 6:0.93918079 \n4 1:0.97594715 2:11.59872 3:0.46404647 4:0.88220885 5:0.9397742 6:0.96552466 \n-4 1:0.72249798 2:14.783537 3:0.17555055 4:0.33644824 5:0.43820655 6:0.53829513 \n-4 1:0.81704926 2:14.783537 3:0.23249871 4:0.45045532 5:0.5747316 6:0.67873911 \n-4 1:0.89712467 2:14.783537 3:0.34060495 4:0.64477578 5:0.76559084 6:0.84380587 \n-4 1:0.92167291 2:14.783537 3:0.37146966 4:0.67543717 5:0.78682631 6:0.85897567 \n0.2874858305649529 1:0.95480903 2:14.783537 3:0.44749946 4:0.78477464 5:0.87395338 6:0.92252802 \n4 1:0.96755066 2:14.783537 3:0.50845782 4:0.84730317 5:0.91728701 6:0.95171811 \n4 1:0.97590808 2:14.783537 3:0.56178721 4:0.89107414 5:0.94445146 6:0.96872575 \n-4 1:0.6827169 2:10.331771 3:0.15765242 4:0.28829889 5:0.36744308 6:0.44750017 \n-4 1:0.81940239 2:10.331771 3:0.23229659 4:0.43806594 5:0.54706417 6:0.64228321 \n-4 1:0.85586727 2:10.331771 3:0.26781899 4:0.49829146 5:0.61099794 6:0.7038968 \n-4 1:0.8713487 2:10.331771 3:0.27321846 4:0.524216 5:0.63890703 6:0.72787739 \n4 1:0.89449256 2:10.331771 3:0.30794672 4:0.58662422 5:0.70235168 6:0.78534705 \n4 1:0.93034722 2:10.331771 3:0.38662562 4:0.71215854 5:0.8168692 6:0.87979295 \n4 1:0.9530564 2:10.331771 3:0.46038908 4:0.80654036 5:0.88906058 6:0.93174977 \n4 1:0.9656404 2:10.331771 3:0.5195345 4:0.86427038 5:0.92715938 6:0.9566776 \n-4 1:0.76410805 2:10.946382 3:0.31045297 4:0.55256316 5:0.68123882 6:0.78071379 \n-4 1:0.85451282 2:10.946382 3:0.3877983 4:0.70226709 5:0.82222956 6:0.89096661 \n-4 1:0.89747446 2:10.946382 3:0.40207405 4:0.71486246 5:0.82115148 6:0.8834097 \n4 1:0.97961646 2:10.946382 3:0.59105602 4:0.90163181 5:0.9494483 6:0.9709084 \n4 1:0.99449718 2:10.946382 3:0.78669946 4:0.98015206 5:0.99098742 6:0.9950133 \n-4 1:0.77117012 2:4.882557 3:0.11709771 4:0.53155194 5:0.70768591 6:0.83479627 \n-4 1:0.85426765 2:4.882557 3:0.16511551 4:0.68671671 5:0.8371355 6:0.91143017 \n-4 1:0.90079262 2:4.882557 3:0.19871429 4:0.75177902 5:0.8662592 6:0.92166114 \n-4 1:0.91056573 2:4.882557 3:0.22541202 4:0.82841022 5:0.91991591 6:0.95665016 \n4 1:0.95609683 2:4.882557 3:0.30821153 4:0.89386728 5:0.94759236 6:0.9708249 \n4 1:0.95737966 2:4.882557 3:0.3161537 4:0.90424974 5:0.95352523 6:0.9743862 \n4 1:0.98370829 2:4.882557 3:0.36473352 4:0.92795509 5:0.96715066 6:0.98228238 \n-4 1:0.67911419 2:15.436489 3:0.078980729 4:0.27329281 5:0.38390156 6:0.49400732 \n-4 1:0.82552386 2:15.436489 3:0.13269026 4:0.44443999 5:0.57899704 6:0.68522006 \n-4 1:0.8635945 2:15.436489 3:0.16977366 4:0.56361692 5:0.70226895 6:0.79485847 \n-4 1:0.89117852 2:15.436489 3:0.19393817 4:0.58621472 5:0.71447888 6:0.80254715 \n-1.848580162779159 1:0.90840948 2:15.436489 3:0.22101744 4:0.65107009 5:0.77235806 6:0.84906039 \n4 1:0.94679383 2:15.436489 3:0.27967191 4:0.75233049 5:0.85348072 6:0.90831572 \n4 1:0.95821371 2:15.436489 3:0.31467528 4:0.80631347 5:0.89232705 6:0.93518786 \n4 1:0.97719702 2:15.436489 3:0.39898039 4:0.90094655 5:0.95185814 6:0.97323317 \n4 1:0.98180698 2:15.436489 3:0.43036422 4:0.92374695 5:0.96433675 6:0.98055969 \n-4 1:0.83806059 2:9.593342 3:0.35874773 4:0.6501712 5:0.75345564 6:0.83068599 \n-4 1:0.89757175 2:9.593342 3:0.43822285 4:0.75989593 5:0.84590257 6:0.90062152 \n-4 1:0.92711822 2:9.593342 3:0.47552516 4:0.80334517 5:0.87716559 6:0.92257764 \n-4 1:0.94064485 2:9.593342 3:0.53180263 4:0.86668693 5:0.92283945 6:0.95456364 \n4 1:0.96346884 2:9.593342 3:0.57754419 4:0.90539557 5:0.94812347 6:0.97078741 \n4 1:0.97860532 2:9.593342 3:0.58699278 4:0.92495643 5:0.96173419 6:0.97897753 \n",
34
+ "feature_dict": {
35
+ "VMAF_feature": [
36
+ "vif_scale0",
37
+ "vif_scale1",
38
+ "vif_scale2",
39
+ "vif_scale3",
40
+ "adm2",
41
+ "motion"
42
+ ]
43
+ }
44
+ }
45
+ }
ffmpeg/model/other_models/nflxtrain_norm_type_none.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c122304ea88936ceced3545c0f1f0420428953aaa4bf86eceb54fc9b0415655
3
+ size 729
ffmpeg/model/other_models/nflxtrain_norm_type_none.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d49415be743e7a01265535cf00013487fac64f6bb46682baed9d100256910e75
3
+ size 11560
ffmpeg/model/other_models/nflxtrain_vmafv1.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:637f3a630a376d3450c3ba50ba5b541f0315997042e11a40cb1dcf769c98cfd3
3
+ size 787
ffmpeg/model/other_models/nflxtrain_vmafv1.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be5b081c755aec40d7d98d8b741cca4f71f16db944be23467d20ded915b6ec06
3
+ size 8064
ffmpeg/model/other_models/nflxtrain_vmafv2.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e4edf91e70bd0088b0bb2d1c09c6974e9ebd2541e6039c354a7a1cbc8099910d
3
+ size 1104
ffmpeg/model/other_models/nflxtrain_vmafv2.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6ffc283d0d003eb0b79fea65cd9decfa8e2425e86dc4c2dd7625194fba1216d8
3
+ size 13949
ffmpeg/model/other_models/nflxtrain_vmafv3.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1b6c781e6f5dc0a1b7debe50825caa83bb9a72fc4263df93d7ff646886b3492f
3
+ size 1012
ffmpeg/model/other_models/nflxtrain_vmafv3.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:23a1b945898009571a9d6d6f22b8842197c244062896fd423b88f90850aaf117
3
+ size 11658
ffmpeg/model/other_models/nflxtrain_vmafv3a.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b78477f3d569f526ef97fede71f9ce0e4943dfb36bbe11a61e9ba942a1e22f9
3
+ size 1011
ffmpeg/model/other_models/nflxtrain_vmafv3a.pkl.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:db4e819c02eb8e92a034a84736ba1de557cdffc73c96cc0e197e93db1b7e8c30
3
+ size 11652
ffmpeg/model/other_models/niqe_v0.1.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ceaa665189c0453949325661e43bb4ed23bb73d3303945d17d8a56d4d5545fa3
3
+ size 12501
ffmpeg/model/other_models/vmaf_4k_v0.6.1rc.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8279de73be849a6e1db6a6fd7d39d75abaad52908c62685bfd8f7092dd4731e3
3
+ size 1127