Commit | Line | Data |
---|---|---|
2ba45a60 DM |
1 | @chapter Encoders |
2 | @c man begin ENCODERS | |
3 | ||
4 | Encoders are configured elements in FFmpeg which allow the encoding of | |
5 | multimedia streams. | |
6 | ||
7 | When you configure your FFmpeg build, all the supported native encoders | |
8 | are enabled by default. Encoders requiring an external library must be enabled | |
9 | manually via the corresponding @code{--enable-lib} option. You can list all | |
10 | available encoders using the configure option @code{--list-encoders}. | |
11 | ||
12 | You can disable all the encoders with the configure option | |
13 | @code{--disable-encoders} and selectively enable / disable single encoders | |
14 | with the options @code{--enable-encoder=@var{ENCODER}} / | |
15 | @code{--disable-encoder=@var{ENCODER}}. | |
16 | ||
17 | The option @code{-encoders} of the ff* tools will display the list of | |
18 | enabled encoders. | |
19 | ||
20 | @c man end ENCODERS | |
21 | ||
22 | @chapter Audio Encoders | |
23 | @c man begin AUDIO ENCODERS | |
24 | ||
25 | A description of some of the currently available audio encoders | |
26 | follows. | |
27 | ||
28 | @anchor{aacenc} | |
29 | @section aac | |
30 | ||
31 | Advanced Audio Coding (AAC) encoder. | |
32 | ||
33 | This encoder is an experimental FFmpeg-native AAC encoder. Currently only the | |
34 | low complexity (AAC-LC) profile is supported. To use this encoder, you must set | |
35 | @option{strict} option to @samp{experimental} or lower. | |
36 | ||
37 | As this encoder is experimental, unexpected behavior may exist from time to | |
38 | time. For a more stable AAC encoder, see @ref{libvo-aacenc}. However, be warned | |
39 | that it has a worse quality reported by some users. | |
40 | ||
41 | @c todo @ref{libaacplus} | |
42 | See also @ref{libfdk-aac-enc,,libfdk_aac} and @ref{libfaac}. | |
43 | ||
44 | @subsection Options | |
45 | ||
46 | @table @option | |
47 | @item b | |
48 | Set bit rate in bits/s. Setting this automatically activates constant bit rate | |
49 | (CBR) mode. | |
50 | ||
51 | @item q | |
52 | Set quality for variable bit rate (VBR) mode. This option is valid only using | |
53 | the @command{ffmpeg} command-line tool. For library interface users, use | |
54 | @option{global_quality}. | |
55 | ||
56 | @item stereo_mode | |
57 | Set stereo encoding mode. Possible values: | |
58 | ||
59 | @table @samp | |
60 | @item auto | |
61 | Automatically selected by the encoder. | |
62 | ||
63 | @item ms_off | |
64 | Disable middle/side encoding. This is the default. | |
65 | ||
66 | @item ms_force | |
67 | Force middle/side encoding. | |
68 | @end table | |
69 | ||
70 | @item aac_coder | |
71 | Set AAC encoder coding method. Possible values: | |
72 | ||
73 | @table @samp | |
74 | @item faac | |
75 | FAAC-inspired method. | |
76 | ||
77 | This method is a simplified reimplementation of the method used in FAAC, which | |
78 | sets thresholds proportional to the band energies, and then decreases all the | |
79 | thresholds with quantizer steps to find the appropriate quantization with | |
80 | distortion below threshold band by band. | |
81 | ||
82 | The quality of this method is comparable to the two loop searching method | |
83 | described below, but somewhat a little better and slower. | |
84 | ||
85 | @item anmr | |
86 | Average noise to mask ratio (ANMR) trellis-based solution. | |
87 | ||
88 | This has a theoretic best quality out of all the coding methods, but at the | |
89 | cost of the slowest speed. | |
90 | ||
91 | @item twoloop | |
92 | Two loop searching (TLS) method. | |
93 | ||
94 | This method first sets quantizers depending on band thresholds and then tries | |
95 | to find an optimal combination by adding or subtracting a specific value from | |
96 | all quantizers and adjusting some individual quantizer a little. | |
97 | ||
98 | This method produces similar quality with the FAAC method and is the default. | |
99 | ||
100 | @item fast | |
101 | Constant quantizer method. | |
102 | ||
103 | This method sets a constant quantizer for all bands. This is the fastest of all | |
104 | the methods, yet produces the worst quality. | |
105 | ||
106 | @end table | |
107 | ||
108 | @end table | |
109 | ||
110 | @section ac3 and ac3_fixed | |
111 | ||
112 | AC-3 audio encoders. | |
113 | ||
114 | These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as well as | |
115 | the undocumented RealAudio 3 (a.k.a. dnet). | |
116 | ||
117 | The @var{ac3} encoder uses floating-point math, while the @var{ac3_fixed} | |
118 | encoder only uses fixed-point integer math. This does not mean that one is | |
119 | always faster, just that one or the other may be better suited to a | |
120 | particular system. The floating-point encoder will generally produce better | |
121 | quality audio for a given bitrate. The @var{ac3_fixed} encoder is not the | |
122 | default codec for any of the output formats, so it must be specified explicitly | |
123 | using the option @code{-acodec ac3_fixed} in order to use it. | |
124 | ||
125 | @subsection AC-3 Metadata | |
126 | ||
127 | The AC-3 metadata options are used to set parameters that describe the audio, | |
128 | but in most cases do not affect the audio encoding itself. Some of the options | |
129 | do directly affect or influence the decoding and playback of the resulting | |
130 | bitstream, while others are just for informational purposes. A few of the | |
131 | options will add bits to the output stream that could otherwise be used for | |
132 | audio data, and will thus affect the quality of the output. Those will be | |
133 | indicated accordingly with a note in the option list below. | |
134 | ||
135 | These parameters are described in detail in several publicly-available | |
136 | documents. | |
137 | @itemize | |
138 | @item @uref{http://www.atsc.org/cms/standards/a_52-2010.pdf,A/52:2010 - Digital Audio Compression (AC-3) (E-AC-3) Standard} | |
139 | @item @uref{http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf,A/54 - Guide to the Use of the ATSC Digital Television Standard} | |
140 | @item @uref{http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf,Dolby Metadata Guide} | |
141 | @item @uref{http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf,Dolby Digital Professional Encoding Guidelines} | |
142 | @end itemize | |
143 | ||
144 | @subsubsection Metadata Control Options | |
145 | ||
146 | @table @option | |
147 | ||
148 | @item -per_frame_metadata @var{boolean} | |
149 | Allow Per-Frame Metadata. Specifies if the encoder should check for changing | |
150 | metadata for each frame. | |
151 | @table @option | |
152 | @item 0 | |
153 | The metadata values set at initialization will be used for every frame in the | |
154 | stream. (default) | |
155 | @item 1 | |
156 | Metadata values can be changed before encoding each frame. | |
157 | @end table | |
158 | ||
159 | @end table | |
160 | ||
161 | @subsubsection Downmix Levels | |
162 | ||
163 | @table @option | |
164 | ||
165 | @item -center_mixlev @var{level} | |
166 | Center Mix Level. The amount of gain the decoder should apply to the center | |
167 | channel when downmixing to stereo. This field will only be written to the | |
168 | bitstream if a center channel is present. The value is specified as a scale | |
169 | factor. There are 3 valid values: | |
170 | @table @option | |
171 | @item 0.707 | |
172 | Apply -3dB gain | |
173 | @item 0.595 | |
174 | Apply -4.5dB gain (default) | |
175 | @item 0.500 | |
176 | Apply -6dB gain | |
177 | @end table | |
178 | ||
179 | @item -surround_mixlev @var{level} | |
180 | Surround Mix Level. The amount of gain the decoder should apply to the surround | |
181 | channel(s) when downmixing to stereo. This field will only be written to the | |
182 | bitstream if one or more surround channels are present. The value is specified | |
183 | as a scale factor. There are 3 valid values: | |
184 | @table @option | |
185 | @item 0.707 | |
186 | Apply -3dB gain | |
187 | @item 0.500 | |
188 | Apply -6dB gain (default) | |
189 | @item 0.000 | |
190 | Silence Surround Channel(s) | |
191 | @end table | |
192 | ||
193 | @end table | |
194 | ||
195 | @subsubsection Audio Production Information | |
196 | Audio Production Information is optional information describing the mixing | |
197 | environment. Either none or both of the fields are written to the bitstream. | |
198 | ||
199 | @table @option | |
200 | ||
201 | @item -mixing_level @var{number} | |
202 | Mixing Level. Specifies peak sound pressure level (SPL) in the production | |
203 | environment when the mix was mastered. Valid values are 80 to 111, or -1 for | |
204 | unknown or not indicated. The default value is -1, but that value cannot be | |
205 | used if the Audio Production Information is written to the bitstream. Therefore, | |
206 | if the @code{room_type} option is not the default value, the @code{mixing_level} | |
207 | option must not be -1. | |
208 | ||
209 | @item -room_type @var{type} | |
210 | Room Type. Describes the equalization used during the final mixing session at | |
211 | the studio or on the dubbing stage. A large room is a dubbing stage with the | |
212 | industry standard X-curve equalization; a small room has flat equalization. | |
213 | This field will not be written to the bitstream if both the @code{mixing_level} | |
214 | option and the @code{room_type} option have the default values. | |
215 | @table @option | |
216 | @item 0 | |
217 | @itemx notindicated | |
218 | Not Indicated (default) | |
219 | @item 1 | |
220 | @itemx large | |
221 | Large Room | |
222 | @item 2 | |
223 | @itemx small | |
224 | Small Room | |
225 | @end table | |
226 | ||
227 | @end table | |
228 | ||
229 | @subsubsection Other Metadata Options | |
230 | ||
231 | @table @option | |
232 | ||
233 | @item -copyright @var{boolean} | |
234 | Copyright Indicator. Specifies whether a copyright exists for this audio. | |
235 | @table @option | |
236 | @item 0 | |
237 | @itemx off | |
238 | No Copyright Exists (default) | |
239 | @item 1 | |
240 | @itemx on | |
241 | Copyright Exists | |
242 | @end table | |
243 | ||
244 | @item -dialnorm @var{value} | |
245 | Dialogue Normalization. Indicates how far the average dialogue level of the | |
246 | program is below digital 100% full scale (0 dBFS). This parameter determines a | |
247 | level shift during audio reproduction that sets the average volume of the | |
248 | dialogue to a preset level. The goal is to match volume level between program | |
249 | sources. A value of -31dB will result in no volume level change, relative to | |
250 | the source volume, during audio reproduction. Valid values are whole numbers in | |
251 | the range -31 to -1, with -31 being the default. | |
252 | ||
253 | @item -dsur_mode @var{mode} | |
254 | Dolby Surround Mode. Specifies whether the stereo signal uses Dolby Surround | |
255 | (Pro Logic). This field will only be written to the bitstream if the audio | |
256 | stream is stereo. Using this option does @b{NOT} mean the encoder will actually | |
257 | apply Dolby Surround processing. | |
258 | @table @option | |
259 | @item 0 | |
260 | @itemx notindicated | |
261 | Not Indicated (default) | |
262 | @item 1 | |
263 | @itemx off | |
264 | Not Dolby Surround Encoded | |
265 | @item 2 | |
266 | @itemx on | |
267 | Dolby Surround Encoded | |
268 | @end table | |
269 | ||
270 | @item -original @var{boolean} | |
271 | Original Bit Stream Indicator. Specifies whether this audio is from the | |
272 | original source and not a copy. | |
273 | @table @option | |
274 | @item 0 | |
275 | @itemx off | |
276 | Not Original Source | |
277 | @item 1 | |
278 | @itemx on | |
279 | Original Source (default) | |
280 | @end table | |
281 | ||
282 | @end table | |
283 | ||
284 | @subsection Extended Bitstream Information | |
285 | The extended bitstream options are part of the Alternate Bit Stream Syntax as | |
286 | specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts. | |
287 | If any one parameter in a group is specified, all values in that group will be | |
288 | written to the bitstream. Default values are used for those that are written | |
289 | but have not been specified. If the mixing levels are written, the decoder | |
290 | will use these values instead of the ones specified in the @code{center_mixlev} | |
291 | and @code{surround_mixlev} options if it supports the Alternate Bit Stream | |
292 | Syntax. | |
293 | ||
294 | @subsubsection Extended Bitstream Information - Part 1 | |
295 | ||
296 | @table @option | |
297 | ||
298 | @item -dmix_mode @var{mode} | |
299 | Preferred Stereo Downmix Mode. Allows the user to select either Lt/Rt | |
300 | (Dolby Surround) or Lo/Ro (normal stereo) as the preferred stereo downmix mode. | |
301 | @table @option | |
302 | @item 0 | |
303 | @itemx notindicated | |
304 | Not Indicated (default) | |
305 | @item 1 | |
306 | @itemx ltrt | |
307 | Lt/Rt Downmix Preferred | |
308 | @item 2 | |
309 | @itemx loro | |
310 | Lo/Ro Downmix Preferred | |
311 | @end table | |
312 | ||
313 | @item -ltrt_cmixlev @var{level} | |
314 | Lt/Rt Center Mix Level. The amount of gain the decoder should apply to the | |
315 | center channel when downmixing to stereo in Lt/Rt mode. | |
316 | @table @option | |
317 | @item 1.414 | |
318 | Apply +3dB gain | |
319 | @item 1.189 | |
320 | Apply +1.5dB gain | |
321 | @item 1.000 | |
322 | Apply 0dB gain | |
323 | @item 0.841 | |
324 | Apply -1.5dB gain | |
325 | @item 0.707 | |
326 | Apply -3.0dB gain | |
327 | @item 0.595 | |
328 | Apply -4.5dB gain (default) | |
329 | @item 0.500 | |
330 | Apply -6.0dB gain | |
331 | @item 0.000 | |
332 | Silence Center Channel | |
333 | @end table | |
334 | ||
335 | @item -ltrt_surmixlev @var{level} | |
336 | Lt/Rt Surround Mix Level. The amount of gain the decoder should apply to the | |
337 | surround channel(s) when downmixing to stereo in Lt/Rt mode. | |
338 | @table @option | |
339 | @item 0.841 | |
340 | Apply -1.5dB gain | |
341 | @item 0.707 | |
342 | Apply -3.0dB gain | |
343 | @item 0.595 | |
344 | Apply -4.5dB gain | |
345 | @item 0.500 | |
346 | Apply -6.0dB gain (default) | |
347 | @item 0.000 | |
348 | Silence Surround Channel(s) | |
349 | @end table | |
350 | ||
351 | @item -loro_cmixlev @var{level} | |
352 | Lo/Ro Center Mix Level. The amount of gain the decoder should apply to the | |
353 | center channel when downmixing to stereo in Lo/Ro mode. | |
354 | @table @option | |
355 | @item 1.414 | |
356 | Apply +3dB gain | |
357 | @item 1.189 | |
358 | Apply +1.5dB gain | |
359 | @item 1.000 | |
360 | Apply 0dB gain | |
361 | @item 0.841 | |
362 | Apply -1.5dB gain | |
363 | @item 0.707 | |
364 | Apply -3.0dB gain | |
365 | @item 0.595 | |
366 | Apply -4.5dB gain (default) | |
367 | @item 0.500 | |
368 | Apply -6.0dB gain | |
369 | @item 0.000 | |
370 | Silence Center Channel | |
371 | @end table | |
372 | ||
373 | @item -loro_surmixlev @var{level} | |
374 | Lo/Ro Surround Mix Level. The amount of gain the decoder should apply to the | |
375 | surround channel(s) when downmixing to stereo in Lo/Ro mode. | |
376 | @table @option | |
377 | @item 0.841 | |
378 | Apply -1.5dB gain | |
379 | @item 0.707 | |
380 | Apply -3.0dB gain | |
381 | @item 0.595 | |
382 | Apply -4.5dB gain | |
383 | @item 0.500 | |
384 | Apply -6.0dB gain (default) | |
385 | @item 0.000 | |
386 | Silence Surround Channel(s) | |
387 | @end table | |
388 | ||
389 | @end table | |
390 | ||
391 | @subsubsection Extended Bitstream Information - Part 2 | |
392 | ||
393 | @table @option | |
394 | ||
395 | @item -dsurex_mode @var{mode} | |
396 | Dolby Surround EX Mode. Indicates whether the stream uses Dolby Surround EX | |
397 | (7.1 matrixed to 5.1). Using this option does @b{NOT} mean the encoder will actually | |
398 | apply Dolby Surround EX processing. | |
399 | @table @option | |
400 | @item 0 | |
401 | @itemx notindicated | |
402 | Not Indicated (default) | |
403 | @item 1 | |
404 | @itemx on | |
405 | Dolby Surround EX Off | |
406 | @item 2 | |
407 | @itemx off | |
408 | Dolby Surround EX On | |
409 | @end table | |
410 | ||
411 | @item -dheadphone_mode @var{mode} | |
412 | Dolby Headphone Mode. Indicates whether the stream uses Dolby Headphone | |
413 | encoding (multi-channel matrixed to 2.0 for use with headphones). Using this | |
414 | option does @b{NOT} mean the encoder will actually apply Dolby Headphone | |
415 | processing. | |
416 | @table @option | |
417 | @item 0 | |
418 | @itemx notindicated | |
419 | Not Indicated (default) | |
420 | @item 1 | |
421 | @itemx on | |
422 | Dolby Headphone Off | |
423 | @item 2 | |
424 | @itemx off | |
425 | Dolby Headphone On | |
426 | @end table | |
427 | ||
428 | @item -ad_conv_type @var{type} | |
429 | A/D Converter Type. Indicates whether the audio has passed through HDCD A/D | |
430 | conversion. | |
431 | @table @option | |
432 | @item 0 | |
433 | @itemx standard | |
434 | Standard A/D Converter (default) | |
435 | @item 1 | |
436 | @itemx hdcd | |
437 | HDCD A/D Converter | |
438 | @end table | |
439 | ||
440 | @end table | |
441 | ||
442 | @subsection Other AC-3 Encoding Options | |
443 | ||
444 | @table @option | |
445 | ||
446 | @item -stereo_rematrixing @var{boolean} | |
447 | Stereo Rematrixing. Enables/Disables use of rematrixing for stereo input. This | |
448 | is an optional AC-3 feature that increases quality by selectively encoding | |
449 | the left/right channels as mid/side. This option is enabled by default, and it | |
450 | is highly recommended that it be left as enabled except for testing purposes. | |
451 | ||
452 | @end table | |
453 | ||
454 | @subsection Floating-Point-Only AC-3 Encoding Options | |
455 | ||
456 | These options are only valid for the floating-point encoder and do not exist | |
457 | for the fixed-point encoder due to the corresponding features not being | |
458 | implemented in fixed-point. | |
459 | ||
460 | @table @option | |
461 | ||
462 | @item -channel_coupling @var{boolean} | |
463 | Enables/Disables use of channel coupling, which is an optional AC-3 feature | |
464 | that increases quality by combining high frequency information from multiple | |
465 | channels into a single channel. The per-channel high frequency information is | |
466 | sent with less accuracy in both the frequency and time domains. This allows | |
467 | more bits to be used for lower frequencies while preserving enough information | |
468 | to reconstruct the high frequencies. This option is enabled by default for the | |
469 | floating-point encoder and should generally be left as enabled except for | |
470 | testing purposes or to increase encoding speed. | |
471 | @table @option | |
472 | @item -1 | |
473 | @itemx auto | |
474 | Selected by Encoder (default) | |
475 | @item 0 | |
476 | @itemx off | |
477 | Disable Channel Coupling | |
478 | @item 1 | |
479 | @itemx on | |
480 | Enable Channel Coupling | |
481 | @end table | |
482 | ||
483 | @item -cpl_start_band @var{number} | |
484 | Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a | |
485 | value higher than the bandwidth is used, it will be reduced to 1 less than the | |
486 | coupling end band. If @var{auto} is used, the start band will be determined by | |
487 | the encoder based on the bit rate, sample rate, and channel layout. This option | |
488 | has no effect if channel coupling is disabled. | |
489 | @table @option | |
490 | @item -1 | |
491 | @itemx auto | |
492 | Selected by Encoder (default) | |
493 | @end table | |
494 | ||
495 | @end table | |
496 | ||
497 | @anchor{libfaac} | |
498 | @section libfaac | |
499 | ||
500 | libfaac AAC (Advanced Audio Coding) encoder wrapper. | |
501 | ||
502 | Requires the presence of the libfaac headers and library during | |
503 | configuration. You need to explicitly configure the build with | |
504 | @code{--enable-libfaac --enable-nonfree}. | |
505 | ||
506 | This encoder is considered to be of higher quality with respect to the | |
507 | @ref{aacenc,,the native experimental FFmpeg AAC encoder}. | |
508 | ||
509 | For more information see the libfaac project at | |
510 | @url{http://www.audiocoding.com/faac.html/}. | |
511 | ||
512 | @subsection Options | |
513 | ||
514 | The following shared FFmpeg codec options are recognized. | |
515 | ||
516 | The following options are supported by the libfaac wrapper. The | |
517 | @command{faac}-equivalent of the options are listed in parentheses. | |
518 | ||
519 | @table @option | |
520 | @item b (@emph{-b}) | |
521 | Set bit rate in bits/s for ABR (Average Bit Rate) mode. If the bit rate | |
522 | is not explicitly specified, it is automatically set to a suitable | |
523 | value depending on the selected profile. @command{faac} bitrate is | |
524 | expressed in kilobits/s. | |
525 | ||
526 | Note that libfaac does not support CBR (Constant Bit Rate) but only | |
527 | ABR (Average Bit Rate). | |
528 | ||
529 | If VBR mode is enabled this option is ignored. | |
530 | ||
531 | @item ar (@emph{-R}) | |
532 | Set audio sampling rate (in Hz). | |
533 | ||
534 | @item ac (@emph{-c}) | |
535 | Set the number of audio channels. | |
536 | ||
537 | @item cutoff (@emph{-C}) | |
538 | Set cutoff frequency. If not specified (or explicitly set to 0) it | |
539 | will use a value automatically computed by the library. Default value | |
540 | is 0. | |
541 | ||
542 | @item profile | |
543 | Set audio profile. | |
544 | ||
545 | The following profiles are recognized: | |
546 | @table @samp | |
547 | @item aac_main | |
548 | Main AAC (Main) | |
549 | ||
550 | @item aac_low | |
551 | Low Complexity AAC (LC) | |
552 | ||
553 | @item aac_ssr | |
554 | Scalable Sample Rate (SSR) | |
555 | ||
556 | @item aac_ltp | |
557 | Long Term Prediction (LTP) | |
558 | @end table | |
559 | ||
560 | If not specified it is set to @samp{aac_low}. | |
561 | ||
562 | @item flags +qscale | |
563 | Set constant quality VBR (Variable Bit Rate) mode. | |
564 | ||
565 | @item global_quality | |
566 | Set quality in VBR mode as an integer number of lambda units. | |
567 | ||
568 | Only relevant when VBR mode is enabled with @code{flags +qscale}. The | |
569 | value is converted to QP units by dividing it by @code{FF_QP2LAMBDA}, | |
570 | and used to set the quality value used by libfaac. A reasonable range | |
571 | for the option value in QP units is [10-500], the higher the value the | |
572 | higher the quality. | |
573 | ||
574 | @item q (@emph{-q}) | |
575 | Enable VBR mode when set to a non-negative value, and set constant | |
576 | quality value as a double floating point value in QP units. | |
577 | ||
578 | The value sets the quality value used by libfaac. A reasonable range | |
579 | for the option value is [10-500], the higher the value the higher the | |
580 | quality. | |
581 | ||
582 | This option is valid only using the @command{ffmpeg} command-line | |
583 | tool. For library interface users, use @option{global_quality}. | |
584 | @end table | |
585 | ||
586 | @subsection Examples | |
587 | ||
588 | @itemize | |
589 | @item | |
590 | Use @command{ffmpeg} to convert an audio file to ABR 128 kbps AAC in an M4A (MP4) | |
591 | container: | |
592 | @example | |
593 | ffmpeg -i input.wav -codec:a libfaac -b:a 128k -output.m4a | |
594 | @end example | |
595 | ||
596 | @item | |
597 | Use @command{ffmpeg} to convert an audio file to VBR AAC, using the | |
598 | LTP AAC profile: | |
599 | @example | |
600 | ffmpeg -i input.wav -c:a libfaac -profile:a aac_ltp -q:a 100 output.m4a | |
601 | @end example | |
602 | @end itemize | |
603 | ||
604 | @anchor{libfdk-aac-enc} | |
605 | @section libfdk_aac | |
606 | ||
607 | libfdk-aac AAC (Advanced Audio Coding) encoder wrapper. | |
608 | ||
609 | The libfdk-aac library is based on the Fraunhofer FDK AAC code from | |
610 | the Android project. | |
611 | ||
612 | Requires the presence of the libfdk-aac headers and library during | |
613 | configuration. You need to explicitly configure the build with | |
614 | @code{--enable-libfdk-aac}. The library is also incompatible with GPL, | |
615 | so if you allow the use of GPL, you should configure with | |
616 | @code{--enable-gpl --enable-nonfree --enable-libfdk-aac}. | |
617 | ||
618 | This encoder is considered to be of higher quality with respect to | |
619 | both @ref{aacenc,,the native experimental FFmpeg AAC encoder} and | |
620 | @ref{libfaac}. | |
621 | ||
622 | VBR encoding, enabled through the @option{vbr} or @option{flags | |
623 | +qscale} options, is experimental and only works with some | |
624 | combinations of parameters. | |
625 | ||
626 | Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3 or | |
627 | higher. | |
628 | ||
629 | For more information see the fdk-aac project at | |
630 | @url{http://sourceforge.net/p/opencore-amr/fdk-aac/}. | |
631 | ||
632 | @subsection Options | |
633 | ||
634 | The following options are mapped on the shared FFmpeg codec options. | |
635 | ||
636 | @table @option | |
637 | @item b | |
638 | Set bit rate in bits/s. If the bitrate is not explicitly specified, it | |
639 | is automatically set to a suitable value depending on the selected | |
640 | profile. | |
641 | ||
642 | In case VBR mode is enabled the option is ignored. | |
643 | ||
644 | @item ar | |
645 | Set audio sampling rate (in Hz). | |
646 | ||
647 | @item channels | |
648 | Set the number of audio channels. | |
649 | ||
650 | @item flags +qscale | |
651 | Enable fixed quality, VBR (Variable Bit Rate) mode. | |
652 | Note that VBR is implicitly enabled when the @option{vbr} value is | |
653 | positive. | |
654 | ||
655 | @item cutoff | |
656 | Set cutoff frequency. If not specified (or explicitly set to 0) it | |
657 | will use a value automatically computed by the library. Default value | |
658 | is 0. | |
659 | ||
660 | @item profile | |
661 | Set audio profile. | |
662 | ||
663 | The following profiles are recognized: | |
664 | @table @samp | |
665 | @item aac_low | |
666 | Low Complexity AAC (LC) | |
667 | ||
668 | @item aac_he | |
669 | High Efficiency AAC (HE-AAC) | |
670 | ||
671 | @item aac_he_v2 | |
672 | High Efficiency AAC version 2 (HE-AACv2) | |
673 | ||
674 | @item aac_ld | |
675 | Low Delay AAC (LD) | |
676 | ||
677 | @item aac_eld | |
678 | Enhanced Low Delay AAC (ELD) | |
679 | @end table | |
680 | ||
681 | If not specified it is set to @samp{aac_low}. | |
682 | @end table | |
683 | ||
684 | The following are private options of the libfdk_aac encoder. | |
685 | ||
686 | @table @option | |
687 | @item afterburner | |
688 | Enable afterburner feature if set to 1, disabled if set to 0. This | |
689 | improves the quality but also the required processing power. | |
690 | ||
691 | Default value is 1. | |
692 | ||
693 | @item eld_sbr | |
694 | Enable SBR (Spectral Band Replication) for ELD if set to 1, disabled | |
695 | if set to 0. | |
696 | ||
697 | Default value is 0. | |
698 | ||
699 | @item signaling | |
700 | Set SBR/PS signaling style. | |
701 | ||
702 | It can assume one of the following values: | |
703 | @table @samp | |
704 | @item default | |
705 | choose signaling implicitly (explicit hierarchical by default, | |
706 | implicit if global header is disabled) | |
707 | ||
708 | @item implicit | |
709 | implicit backwards compatible signaling | |
710 | ||
711 | @item explicit_sbr | |
712 | explicit SBR, implicit PS signaling | |
713 | ||
714 | @item explicit_hierarchical | |
715 | explicit hierarchical signaling | |
716 | @end table | |
717 | ||
718 | Default value is @samp{default}. | |
719 | ||
720 | @item latm | |
721 | Output LATM/LOAS encapsulated data if set to 1, disabled if set to 0. | |
722 | ||
723 | Default value is 0. | |
724 | ||
725 | @item header_period | |
726 | Set StreamMuxConfig and PCE repetition period (in frames) for sending | |
727 | in-band configuration buffers within LATM/LOAS transport layer. | |
728 | ||
729 | Must be a 16-bits non-negative integer. | |
730 | ||
731 | Default value is 0. | |
732 | ||
733 | @item vbr | |
734 | Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty | |
735 | good) and 5 is highest quality. A value of 0 will disable VBR, and CBR | |
736 | (Constant Bit Rate) is enabled. | |
737 | ||
738 | Currently only the @samp{aac_low} profile supports VBR encoding. | |
739 | ||
740 | VBR modes 1-5 correspond to roughly the following average bit rates: | |
741 | ||
742 | @table @samp | |
743 | @item 1 | |
744 | 32 kbps/channel | |
745 | @item 2 | |
746 | 40 kbps/channel | |
747 | @item 3 | |
748 | 48-56 kbps/channel | |
749 | @item 4 | |
750 | 64 kbps/channel | |
751 | @item 5 | |
752 | about 80-96 kbps/channel | |
753 | @end table | |
754 | ||
755 | Default value is 0. | |
756 | @end table | |
757 | ||
758 | @subsection Examples | |
759 | ||
760 | @itemize | |
761 | @item | |
762 | Use @command{ffmpeg} to convert an audio file to VBR AAC in an M4A (MP4) | |
763 | container: | |
764 | @example | |
765 | ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a | |
766 | @end example | |
767 | ||
768 | @item | |
769 | Use @command{ffmpeg} to convert an audio file to CBR 64k kbps AAC, using the | |
770 | High-Efficiency AAC profile: | |
771 | @example | |
772 | ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a | |
773 | @end example | |
774 | @end itemize | |
775 | ||
776 | @anchor{libmp3lame} | |
777 | @section libmp3lame | |
778 | ||
779 | LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper. | |
780 | ||
781 | Requires the presence of the libmp3lame headers and library during | |
782 | configuration. You need to explicitly configure the build with | |
783 | @code{--enable-libmp3lame}. | |
784 | ||
785 | See @ref{libshine} for a fixed-point MP3 encoder, although with a | |
786 | lower quality. | |
787 | ||
788 | @subsection Options | |
789 | ||
790 | The following options are supported by the libmp3lame wrapper. The | |
791 | @command{lame}-equivalent of the options are listed in parentheses. | |
792 | ||
793 | @table @option | |
794 | @item b (@emph{-b}) | |
795 | Set bitrate expressed in bits/s for CBR or ABR. LAME @code{bitrate} is | |
796 | expressed in kilobits/s. | |
797 | ||
798 | @item q (@emph{-V}) | |
799 | Set constant quality setting for VBR. This option is valid only | |
800 | using the @command{ffmpeg} command-line tool. For library interface | |
801 | users, use @option{global_quality}. | |
802 | ||
803 | @item compression_level (@emph{-q}) | |
804 | Set algorithm quality. Valid arguments are integers in the 0-9 range, | |
805 | with 0 meaning highest quality but slowest, and 9 meaning fastest | |
806 | while producing the worst quality. | |
807 | ||
808 | @item reservoir | |
809 | Enable use of bit reservoir when set to 1. Default value is 1. LAME | |
810 | has this enabled by default, but can be overridden by use | |
811 | @option{--nores} option. | |
812 | ||
813 | @item joint_stereo (@emph{-m j}) | |
814 | Enable the encoder to use (on a frame by frame basis) either L/R | |
815 | stereo or mid/side stereo. Default value is 1. | |
816 | ||
817 | @item abr (@emph{--abr}) | |
818 | Enable the encoder to use ABR when set to 1. The @command{lame} | |
819 | @option{--abr} sets the target bitrate, while this options only | |
820 | tells FFmpeg to use ABR still relies on @option{b} to set bitrate. | |
821 | ||
822 | @end table | |
823 | ||
824 | @section libopencore-amrnb | |
825 | ||
826 | OpenCORE Adaptive Multi-Rate Narrowband encoder. | |
827 | ||
828 | Requires the presence of the libopencore-amrnb headers and library during | |
829 | configuration. You need to explicitly configure the build with | |
830 | @code{--enable-libopencore-amrnb --enable-version3}. | |
831 | ||
832 | This is a mono-only encoder. Officially it only supports 8000Hz sample rate, | |
833 | but you can override it by setting @option{strict} to @samp{unofficial} or | |
834 | lower. | |
835 | ||
836 | @subsection Options | |
837 | ||
838 | @table @option | |
839 | ||
840 | @item b | |
841 | Set bitrate in bits per second. Only the following bitrates are supported, | |
842 | otherwise libavcodec will round to the nearest valid bitrate. | |
843 | ||
844 | @table @option | |
845 | @item 4750 | |
846 | @item 5150 | |
847 | @item 5900 | |
848 | @item 6700 | |
849 | @item 7400 | |
850 | @item 7950 | |
851 | @item 10200 | |
852 | @item 12200 | |
853 | @end table | |
854 | ||
855 | @item dtx | |
856 | Allow discontinuous transmission (generate comfort noise) when set to 1. The | |
857 | default value is 0 (disabled). | |
858 | ||
859 | @end table | |
860 | ||
861 | @anchor{libshine} | |
862 | @section libshine | |
863 | ||
864 | Shine Fixed-Point MP3 encoder wrapper. | |
865 | ||
866 | Shine is a fixed-point MP3 encoder. It has a far better performance on | |
867 | platforms without an FPU, e.g. armel CPUs, and some phones and tablets. | |
868 | However, as it is more targeted on performance than quality, it is not on par | |
869 | with LAME and other production-grade encoders quality-wise. Also, according to | |
870 | the project's homepage, this encoder may not be free of bugs as the code was | |
871 | written a long time ago and the project was dead for at least 5 years. | |
872 | ||
873 | This encoder only supports stereo and mono input. This is also CBR-only. | |
874 | ||
875 | The original project (last updated in early 2007) is at | |
876 | @url{http://sourceforge.net/projects/libshine-fxp/}. We only support the | |
877 | updated fork by the Savonet/Liquidsoap project at @url{https://github.com/savonet/shine}. | |
878 | ||
879 | Requires the presence of the libshine headers and library during | |
880 | configuration. You need to explicitly configure the build with | |
881 | @code{--enable-libshine}. | |
882 | ||
883 | See also @ref{libmp3lame}. | |
884 | ||
885 | @subsection Options | |
886 | ||
887 | The following options are supported by the libshine wrapper. The | |
888 | @command{shineenc}-equivalent of the options are listed in parentheses. | |
889 | ||
890 | @table @option | |
891 | @item b (@emph{-b}) | |
892 | Set bitrate expressed in bits/s for CBR. @command{shineenc} @option{-b} option | |
893 | is expressed in kilobits/s. | |
894 | ||
895 | @end table | |
896 | ||
897 | @section libtwolame | |
898 | ||
899 | TwoLAME MP2 encoder wrapper. | |
900 | ||
901 | Requires the presence of the libtwolame headers and library during | |
902 | configuration. You need to explicitly configure the build with | |
903 | @code{--enable-libtwolame}. | |
904 | ||
905 | @subsection Options | |
906 | ||
907 | The following options are supported by the libtwolame wrapper. The | |
908 | @command{twolame}-equivalent options follow the FFmpeg ones and are in | |
909 | parentheses. | |
910 | ||
911 | @table @option | |
912 | @item b (@emph{-b}) | |
913 | Set bitrate expressed in bits/s for CBR. @command{twolame} @option{b} | |
914 | option is expressed in kilobits/s. Default value is 128k. | |
915 | ||
916 | @item q (@emph{-V}) | |
917 | Set quality for experimental VBR support. Maximum value range is | |
918 | from -50 to 50, useful range is from -10 to 10. The higher the | |
919 | value, the better the quality. This option is valid only using the | |
920 | @command{ffmpeg} command-line tool. For library interface users, | |
921 | use @option{global_quality}. | |
922 | ||
923 | @item mode (@emph{--mode}) | |
924 | Set the mode of the resulting audio. Possible values: | |
925 | ||
926 | @table @samp | |
927 | @item auto | |
928 | Choose mode automatically based on the input. This is the default. | |
929 | @item stereo | |
930 | Stereo | |
931 | @item joint_stereo | |
932 | Joint stereo | |
933 | @item dual_channel | |
934 | Dual channel | |
935 | @item mono | |
936 | Mono | |
937 | @end table | |
938 | ||
939 | @item psymodel (@emph{--psyc-mode}) | |
940 | Set psychoacoustic model to use in encoding. The argument must be | |
941 | an integer between -1 and 4, inclusive. The higher the value, the | |
942 | better the quality. The default value is 3. | |
943 | ||
944 | @item energy_levels (@emph{--energy}) | |
945 | Enable energy levels extensions when set to 1. The default value is | |
946 | 0 (disabled). | |
947 | ||
948 | @item error_protection (@emph{--protect}) | |
949 | Enable CRC error protection when set to 1. The default value is 0 | |
950 | (disabled). | |
951 | ||
952 | @item copyright (@emph{--copyright}) | |
953 | Set MPEG audio copyright flag when set to 1. The default value is 0 | |
954 | (disabled). | |
955 | ||
956 | @item original (@emph{--original}) | |
957 | Set MPEG audio original flag when set to 1. The default value is 0 | |
958 | (disabled). | |
959 | ||
960 | @end table | |
961 | ||
962 | @anchor{libvo-aacenc} | |
963 | @section libvo-aacenc | |
964 | ||
965 | VisualOn AAC encoder. | |
966 | ||
967 | Requires the presence of the libvo-aacenc headers and library during | |
968 | configuration. You need to explicitly configure the build with | |
969 | @code{--enable-libvo-aacenc --enable-version3}. | |
970 | ||
971 | This encoder is considered to be worse than the | |
972 | @ref{aacenc,,native experimental FFmpeg AAC encoder}, according to | |
973 | multiple sources. | |
974 | ||
975 | @subsection Options | |
976 | ||
977 | The VisualOn AAC encoder only support encoding AAC-LC and up to 2 | |
978 | channels. It is also CBR-only. | |
979 | ||
980 | @table @option | |
981 | ||
982 | @item b | |
983 | Set bit rate in bits/s. | |
984 | ||
985 | @end table | |
986 | ||
987 | @section libvo-amrwbenc | |
988 | ||
989 | VisualOn Adaptive Multi-Rate Wideband encoder. | |
990 | ||
991 | Requires the presence of the libvo-amrwbenc headers and library during | |
992 | configuration. You need to explicitly configure the build with | |
993 | @code{--enable-libvo-amrwbenc --enable-version3}. | |
994 | ||
995 | This is a mono-only encoder. Officially it only supports 16000Hz sample | |
996 | rate, but you can override it by setting @option{strict} to | |
997 | @samp{unofficial} or lower. | |
998 | ||
999 | @subsection Options | |
1000 | ||
1001 | @table @option | |
1002 | ||
1003 | @item b | |
1004 | Set bitrate in bits/s. Only the following bitrates are supported, otherwise | |
1005 | libavcodec will round to the nearest valid bitrate. | |
1006 | ||
1007 | @table @samp | |
1008 | @item 6600 | |
1009 | @item 8850 | |
1010 | @item 12650 | |
1011 | @item 14250 | |
1012 | @item 15850 | |
1013 | @item 18250 | |
1014 | @item 19850 | |
1015 | @item 23050 | |
1016 | @item 23850 | |
1017 | @end table | |
1018 | ||
1019 | @item dtx | |
1020 | Allow discontinuous transmission (generate comfort noise) when set to 1. The | |
1021 | default value is 0 (disabled). | |
1022 | ||
1023 | @end table | |
1024 | ||
1025 | @section libopus | |
1026 | ||
1027 | libopus Opus Interactive Audio Codec encoder wrapper. | |
1028 | ||
1029 | Requires the presence of the libopus headers and library during | |
1030 | configuration. You need to explicitly configure the build with | |
1031 | @code{--enable-libopus}. | |
1032 | ||
1033 | @subsection Option Mapping | |
1034 | ||
1035 | Most libopus options are modelled after the @command{opusenc} utility from | |
1036 | opus-tools. The following is an option mapping chart describing options | |
1037 | supported by the libopus wrapper, and their @command{opusenc}-equivalent | |
1038 | in parentheses. | |
1039 | ||
1040 | @table @option | |
1041 | ||
1042 | @item b (@emph{bitrate}) | |
1043 | Set the bit rate in bits/s. FFmpeg's @option{b} option is | |
1044 | expressed in bits/s, while @command{opusenc}'s @option{bitrate} in | |
1045 | kilobits/s. | |
1046 | ||
1047 | @item vbr (@emph{vbr}, @emph{hard-cbr}, and @emph{cvbr}) | |
1048 | Set VBR mode. The FFmpeg @option{vbr} option has the following | |
1049 | valid arguments, with the their @command{opusenc} equivalent options | |
1050 | in parentheses: | |
1051 | ||
1052 | @table @samp | |
1053 | @item off (@emph{hard-cbr}) | |
1054 | Use constant bit rate encoding. | |
1055 | ||
1056 | @item on (@emph{vbr}) | |
1057 | Use variable bit rate encoding (the default). | |
1058 | ||
1059 | @item constrained (@emph{cvbr}) | |
1060 | Use constrained variable bit rate encoding. | |
1061 | @end table | |
1062 | ||
1063 | @item compression_level (@emph{comp}) | |
1064 | Set encoding algorithm complexity. Valid options are integers in | |
1065 | the 0-10 range. 0 gives the fastest encodes but lower quality, while 10 | |
1066 | gives the highest quality but slowest encoding. The default is 10. | |
1067 | ||
1068 | @item frame_duration (@emph{framesize}) | |
1069 | Set maximum frame size, or duration of a frame in milliseconds. The | |
1070 | argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. Smaller | |
1071 | frame sizes achieve lower latency but less quality at a given bitrate. | |
1072 | Sizes greater than 20ms are only interesting at fairly low bitrates. | |
1073 | The default is 20ms. | |
1074 | ||
1075 | @item packet_loss (@emph{expect-loss}) | |
1076 | Set expected packet loss percentage. The default is 0. | |
1077 | ||
1078 | @item application (N.A.) | |
1079 | Set intended application type. Valid options are listed below: | |
1080 | ||
1081 | @table @samp | |
1082 | @item voip | |
1083 | Favor improved speech intelligibility. | |
1084 | @item audio | |
1085 | Favor faithfulness to the input (the default). | |
1086 | @item lowdelay | |
1087 | Restrict to only the lowest delay modes. | |
1088 | @end table | |
1089 | ||
1090 | @item cutoff (N.A.) | |
1091 | Set cutoff bandwidth in Hz. The argument must be exactly one of the | |
1092 | following: 4000, 6000, 8000, 12000, or 20000, corresponding to | |
1093 | narrowband, mediumband, wideband, super wideband, and fullband | |
1094 | respectively. The default is 0 (cutoff disabled). | |
1095 | ||
1096 | @end table | |
1097 | ||
1098 | @section libvorbis | |
1099 | ||
1100 | libvorbis encoder wrapper. | |
1101 | ||
1102 | Requires the presence of the libvorbisenc headers and library during | |
1103 | configuration. You need to explicitly configure the build with | |
1104 | @code{--enable-libvorbis}. | |
1105 | ||
1106 | @subsection Options | |
1107 | ||
1108 | The following options are supported by the libvorbis wrapper. The | |
1109 | @command{oggenc}-equivalent of the options are listed in parentheses. | |
1110 | ||
1111 | To get a more accurate and extensive documentation of the libvorbis | |
1112 | options, consult the libvorbisenc's and @command{oggenc}'s documentations. | |
1113 | See @url{http://xiph.org/vorbis/}, | |
1114 | @url{http://wiki.xiph.org/Vorbis-tools}, and oggenc(1). | |
1115 | ||
1116 | @table @option | |
1117 | @item b (@emph{-b}) | |
1118 | Set bitrate expressed in bits/s for ABR. @command{oggenc} @option{-b} is | |
1119 | expressed in kilobits/s. | |
1120 | ||
1121 | @item q (@emph{-q}) | |
1122 | Set constant quality setting for VBR. The value should be a float | |
1123 | number in the range of -1.0 to 10.0. The higher the value, the better | |
1124 | the quality. The default value is @samp{3.0}. | |
1125 | ||
1126 | This option is valid only using the @command{ffmpeg} command-line tool. | |
1127 | For library interface users, use @option{global_quality}. | |
1128 | ||
1129 | @item cutoff (@emph{--advanced-encode-option lowpass_frequency=N}) | |
1130 | Set cutoff bandwidth in Hz, a value of 0 disables cutoff. @command{oggenc}'s | |
1131 | related option is expressed in kHz. The default value is @samp{0} (cutoff | |
1132 | disabled). | |
1133 | ||
1134 | @item minrate (@emph{-m}) | |
1135 | Set minimum bitrate expressed in bits/s. @command{oggenc} @option{-m} is | |
1136 | expressed in kilobits/s. | |
1137 | ||
1138 | @item maxrate (@emph{-M}) | |
1139 | Set maximum bitrate expressed in bits/s. @command{oggenc} @option{-M} is | |
1140 | expressed in kilobits/s. This only has effect on ABR mode. | |
1141 | ||
1142 | @item iblock (@emph{--advanced-encode-option impulse_noisetune=N}) | |
1143 | Set noise floor bias for impulse blocks. The value is a float number from | |
1144 | -15.0 to 0.0. A negative bias instructs the encoder to pay special attention | |
1145 | to the crispness of transients in the encoded audio. The tradeoff for better | |
1146 | transient response is a higher bitrate. | |
1147 | ||
1148 | @end table | |
1149 | ||
1150 | @anchor{libwavpack} | |
1151 | @section libwavpack | |
1152 | ||
1153 | A wrapper providing WavPack encoding through libwavpack. | |
1154 | ||
1155 | Only lossless mode using 32-bit integer samples is supported currently. | |
1156 | ||
1157 | Requires the presence of the libwavpack headers and library during | |
1158 | configuration. You need to explicitly configure the build with | |
1159 | @code{--enable-libwavpack}. | |
1160 | ||
1161 | Note that a libavcodec-native encoder for the WavPack codec exists so users can | |
1162 | encode audios with this codec without using this encoder. See @ref{wavpackenc}. | |
1163 | ||
1164 | @subsection Options | |
1165 | ||
1166 | @command{wavpack} command line utility's corresponding options are listed in | |
1167 | parentheses, if any. | |
1168 | ||
1169 | @table @option | |
1170 | @item frame_size (@emph{--blocksize}) | |
1171 | Default is 32768. | |
1172 | ||
1173 | @item compression_level | |
1174 | Set speed vs. compression tradeoff. Acceptable arguments are listed below: | |
1175 | ||
1176 | @table @samp | |
1177 | @item 0 (@emph{-f}) | |
1178 | Fast mode. | |
1179 | ||
1180 | @item 1 | |
1181 | Normal (default) settings. | |
1182 | ||
1183 | @item 2 (@emph{-h}) | |
1184 | High quality. | |
1185 | ||
1186 | @item 3 (@emph{-hh}) | |
1187 | Very high quality. | |
1188 | ||
1189 | @item 4-8 (@emph{-hh -x}@var{EXTRAPROC}) | |
1190 | Same as @samp{3}, but with extra processing enabled. | |
1191 | ||
1192 | @samp{4} is the same as @option{-x2} and @samp{8} is the same as @option{-x6}. | |
1193 | ||
1194 | @end table | |
1195 | @end table | |
1196 | ||
1197 | @anchor{wavpackenc} | |
1198 | @section wavpack | |
1199 | ||
1200 | WavPack lossless audio encoder. | |
1201 | ||
1202 | This is a libavcodec-native WavPack encoder. There is also an encoder based on | |
1203 | libwavpack, but there is virtually no reason to use that encoder. | |
1204 | ||
1205 | See also @ref{libwavpack}. | |
1206 | ||
1207 | @subsection Options | |
1208 | ||
1209 | The equivalent options for @command{wavpack} command line utility are listed in | |
1210 | parentheses. | |
1211 | ||
1212 | @subsubsection Shared options | |
1213 | ||
1214 | The following shared options are effective for this encoder. Only special notes | |
1215 | about this particular encoder will be documented here. For the general meaning | |
1216 | of the options, see @ref{codec-options,,the Codec Options chapter}. | |
1217 | ||
1218 | @table @option | |
1219 | @item frame_size (@emph{--blocksize}) | |
1220 | For this encoder, the range for this option is between 128 and 131072. Default | |
1221 | is automatically decided based on sample rate and number of channel. | |
1222 | ||
1223 | For the complete formula of calculating default, see | |
1224 | @file{libavcodec/wavpackenc.c}. | |
1225 | ||
1226 | @item compression_level (@emph{-f}, @emph{-h}, @emph{-hh}, and @emph{-x}) | |
1227 | This option's syntax is consistent with @ref{libwavpack}'s. | |
1228 | @end table | |
1229 | ||
1230 | @subsubsection Private options | |
1231 | ||
1232 | @table @option | |
1233 | @item joint_stereo (@emph{-j}) | |
1234 | Set whether to enable joint stereo. Valid values are: | |
1235 | ||
1236 | @table @samp | |
1237 | @item on (@emph{1}) | |
1238 | Force mid/side audio encoding. | |
1239 | @item off (@emph{0}) | |
1240 | Force left/right audio encoding. | |
1241 | @item auto | |
1242 | Let the encoder decide automatically. | |
1243 | @end table | |
1244 | ||
1245 | @item optimize_mono | |
1246 | Set whether to enable optimization for mono. This option is only effective for | |
1247 | non-mono streams. Available values: | |
1248 | ||
1249 | @table @samp | |
1250 | @item on | |
1251 | enabled | |
1252 | @item off | |
1253 | disabled | |
1254 | @end table | |
1255 | ||
1256 | @end table | |
1257 | ||
1258 | @c man end AUDIO ENCODERS | |
1259 | ||
1260 | @chapter Video Encoders | |
1261 | @c man begin VIDEO ENCODERS | |
1262 | ||
1263 | A description of some of the currently available video encoders | |
1264 | follows. | |
1265 | ||
1266 | @section libtheora | |
1267 | ||
1268 | libtheora Theora encoder wrapper. | |
1269 | ||
1270 | Requires the presence of the libtheora headers and library during | |
1271 | configuration. You need to explicitly configure the build with | |
1272 | @code{--enable-libtheora}. | |
1273 | ||
1274 | For more information about the libtheora project see | |
1275 | @url{http://www.theora.org/}. | |
1276 | ||
1277 | @subsection Options | |
1278 | ||
1279 | The following global options are mapped to internal libtheora options | |
1280 | which affect the quality and the bitrate of the encoded stream. | |
1281 | ||
1282 | @table @option | |
1283 | @item b | |
1284 | Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode. In | |
1285 | case VBR (Variable Bit Rate) mode is enabled this option is ignored. | |
1286 | ||
1287 | @item flags | |
1288 | Used to enable constant quality mode (VBR) encoding through the | |
1289 | @option{qscale} flag, and to enable the @code{pass1} and @code{pass2} | |
1290 | modes. | |
1291 | ||
1292 | @item g | |
1293 | Set the GOP size. | |
1294 | ||
1295 | @item global_quality | |
1296 | Set the global quality as an integer in lambda units. | |
1297 | ||
1298 | Only relevant when VBR mode is enabled with @code{flags +qscale}. The | |
1299 | value is converted to QP units by dividing it by @code{FF_QP2LAMBDA}, | |
1300 | clipped in the [0 - 10] range, and then multiplied by 6.3 to get a | |
1301 | value in the native libtheora range [0-63]. A higher value corresponds | |
1302 | to a higher quality. | |
1303 | ||
1304 | @item q | |
1305 | Enable VBR mode when set to a non-negative value, and set constant | |
1306 | quality value as a double floating point value in QP units. | |
1307 | ||
1308 | The value is clipped in the [0-10] range, and then multiplied by 6.3 | |
1309 | to get a value in the native libtheora range [0-63]. | |
1310 | ||
1311 | This option is valid only using the @command{ffmpeg} command-line | |
1312 | tool. For library interface users, use @option{global_quality}. | |
1313 | @end table | |
1314 | ||
1315 | @subsection Examples | |
1316 | ||
1317 | @itemize | |
1318 | @item | |
1319 | Set maximum constant quality (VBR) encoding with @command{ffmpeg}: | |
1320 | @example | |
1321 | ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg | |
1322 | @end example | |
1323 | ||
1324 | @item | |
1325 | Use @command{ffmpeg} to convert a CBR 1000 kbps Theora video stream: | |
1326 | @example | |
1327 | ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg | |
1328 | @end example | |
1329 | @end itemize | |
1330 | ||
1331 | @section libvpx | |
1332 | ||
1333 | VP8/VP9 format supported through libvpx. | |
1334 | ||
1335 | Requires the presence of the libvpx headers and library during configuration. | |
1336 | You need to explicitly configure the build with @code{--enable-libvpx}. | |
1337 | ||
1338 | @subsection Options | |
1339 | ||
1340 | Mapping from FFmpeg to libvpx options with conversion notes in parentheses. | |
1341 | ||
1342 | @table @option | |
1343 | ||
1344 | @item threads | |
1345 | g_threads | |
1346 | ||
1347 | @item profile | |
1348 | g_profile | |
1349 | ||
1350 | @item vb | |
1351 | rc_target_bitrate | |
1352 | ||
1353 | @item g | |
1354 | kf_max_dist | |
1355 | ||
1356 | @item keyint_min | |
1357 | kf_min_dist | |
1358 | ||
1359 | @item qmin | |
1360 | rc_min_quantizer | |
1361 | ||
1362 | @item qmax | |
1363 | rc_max_quantizer | |
1364 | ||
1365 | @item bufsize, vb | |
1366 | rc_buf_sz | |
1367 | @code{(bufsize * 1000 / vb)} | |
1368 | ||
1369 | rc_buf_optimal_sz | |
1370 | @code{(bufsize * 1000 / vb * 5 / 6)} | |
1371 | ||
1372 | @item rc_init_occupancy, vb | |
1373 | rc_buf_initial_sz | |
1374 | @code{(rc_init_occupancy * 1000 / vb)} | |
1375 | ||
1376 | @item rc_buffer_aggressivity | |
1377 | rc_undershoot_pct | |
1378 | ||
1379 | @item skip_threshold | |
1380 | rc_dropframe_thresh | |
1381 | ||
1382 | @item qcomp | |
1383 | rc_2pass_vbr_bias_pct | |
1384 | ||
1385 | @item maxrate, vb | |
1386 | rc_2pass_vbr_maxsection_pct | |
1387 | @code{(maxrate * 100 / vb)} | |
1388 | ||
1389 | @item minrate, vb | |
1390 | rc_2pass_vbr_minsection_pct | |
1391 | @code{(minrate * 100 / vb)} | |
1392 | ||
1393 | @item minrate, maxrate, vb | |
1394 | @code{VPX_CBR} | |
1395 | @code{(minrate == maxrate == vb)} | |
1396 | ||
1397 | @item crf | |
1398 | @code{VPX_CQ}, @code{VP8E_SET_CQ_LEVEL} | |
1399 | ||
1400 | @item quality | |
1401 | @table @option | |
1402 | @item @var{best} | |
1403 | @code{VPX_DL_BEST_QUALITY} | |
1404 | @item @var{good} | |
1405 | @code{VPX_DL_GOOD_QUALITY} | |
1406 | @item @var{realtime} | |
1407 | @code{VPX_DL_REALTIME} | |
1408 | @end table | |
1409 | ||
1410 | @item speed | |
1411 | @code{VP8E_SET_CPUUSED} | |
1412 | ||
1413 | @item nr | |
1414 | @code{VP8E_SET_NOISE_SENSITIVITY} | |
1415 | ||
1416 | @item mb_threshold | |
1417 | @code{VP8E_SET_STATIC_THRESHOLD} | |
1418 | ||
1419 | @item slices | |
1420 | @code{VP8E_SET_TOKEN_PARTITIONS} | |
1421 | ||
1422 | @item max-intra-rate | |
1423 | @code{VP8E_SET_MAX_INTRA_BITRATE_PCT} | |
1424 | ||
1425 | @item force_key_frames | |
1426 | @code{VPX_EFLAG_FORCE_KF} | |
1427 | ||
1428 | @item Alternate reference frame related | |
1429 | @table @option | |
1430 | @item vp8flags altref | |
1431 | @code{VP8E_SET_ENABLEAUTOALTREF} | |
1432 | @item @var{arnr_max_frames} | |
1433 | @code{VP8E_SET_ARNR_MAXFRAMES} | |
1434 | @item @var{arnr_type} | |
1435 | @code{VP8E_SET_ARNR_TYPE} | |
1436 | @item @var{arnr_strength} | |
1437 | @code{VP8E_SET_ARNR_STRENGTH} | |
1438 | @item @var{rc_lookahead} | |
1439 | g_lag_in_frames | |
1440 | @end table | |
1441 | ||
1442 | @item vp8flags error_resilient | |
1443 | g_error_resilient | |
1444 | ||
1445 | @item aq_mode | |
1446 | @code{VP9E_SET_AQ_MODE} | |
1447 | ||
1448 | @end table | |
1449 | ||
1450 | For more information about libvpx see: | |
1451 | @url{http://www.webmproject.org/} | |
1452 | ||
1453 | ||
1454 | @section libwebp | |
1455 | ||
1456 | libwebp WebP Image encoder wrapper | |
1457 | ||
1458 | libwebp is Google's official encoder for WebP images. It can encode in either | |
1459 | lossy or lossless mode. Lossy images are essentially a wrapper around a VP8 | |
1460 | frame. Lossless images are a separate codec developed by Google. | |
1461 | ||
1462 | @subsection Pixel Format | |
1463 | ||
1464 | Currently, libwebp only supports YUV420 for lossy and RGB for lossless due | |
1465 | to limitations of the format and libwebp. Alpha is supported for either mode. | |
1466 | Because of API limitations, if RGB is passed in when encoding lossy or YUV is | |
1467 | passed in for encoding lossless, the pixel format will automatically be | |
1468 | converted using functions from libwebp. This is not ideal and is done only for | |
1469 | convenience. | |
1470 | ||
1471 | @subsection Options | |
1472 | ||
1473 | @table @option | |
1474 | ||
1475 | @item -lossless @var{boolean} | |
1476 | Enables/Disables use of lossless mode. Default is 0. | |
1477 | ||
1478 | @item -compression_level @var{integer} | |
1479 | For lossy, this is a quality/speed tradeoff. Higher values give better quality | |
1480 | for a given size at the cost of increased encoding time. For lossless, this is | |
1481 | a size/speed tradeoff. Higher values give smaller size at the cost of increased | |
1482 | encoding time. More specifically, it controls the number of extra algorithms | |
1483 | and compression tools used, and varies the combination of these tools. This | |
1484 | maps to the @var{method} option in libwebp. The valid range is 0 to 6. | |
1485 | Default is 4. | |
1486 | ||
1487 | @item -qscale @var{float} | |
1488 | For lossy encoding, this controls image quality, 0 to 100. For lossless | |
1489 | encoding, this controls the effort and time spent at compressing more. The | |
1490 | default value is 75. Note that for usage via libavcodec, this option is called | |
1491 | @var{global_quality} and must be multiplied by @var{FF_QP2LAMBDA}. | |
1492 | ||
1493 | @item -preset @var{type} | |
1494 | Configuration preset. This does some automatic settings based on the general | |
1495 | type of the image. | |
1496 | @table @option | |
1497 | @item none | |
1498 | Do not use a preset. | |
1499 | @item default | |
1500 | Use the encoder default. | |
1501 | @item picture | |
1502 | Digital picture, like portrait, inner shot | |
1503 | @item photo | |
1504 | Outdoor photograph, with natural lighting | |
1505 | @item drawing | |
1506 | Hand or line drawing, with high-contrast details | |
1507 | @item icon | |
1508 | Small-sized colorful images | |
1509 | @item text | |
1510 | Text-like | |
1511 | @end table | |
1512 | ||
1513 | @end table | |
1514 | ||
1515 | @section libx264, libx264rgb | |
1516 | ||
1517 | x264 H.264/MPEG-4 AVC encoder wrapper. | |
1518 | ||
1519 | This encoder requires the presence of the libx264 headers and library | |
1520 | during configuration. You need to explicitly configure the build with | |
1521 | @code{--enable-libx264}. | |
1522 | ||
1523 | libx264 supports an impressive number of features, including 8x8 and | |
1524 | 4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC | |
1525 | entropy coding, interlacing (MBAFF), lossless mode, psy optimizations | |
1526 | for detail retention (adaptive quantization, psy-RD, psy-trellis). | |
1527 | ||
1528 | Many libx264 encoder options are mapped to FFmpeg global codec | |
1529 | options, while unique encoder options are provided through private | |
1530 | options. Additionally the @option{x264opts} and @option{x264-params} | |
1531 | private options allows one to pass a list of key=value tuples as accepted | |
1532 | by the libx264 @code{x264_param_parse} function. | |
1533 | ||
1534 | The x264 project website is at | |
1535 | @url{http://www.videolan.org/developers/x264.html}. | |
1536 | ||
1537 | The libx264rgb encoder is the same as libx264, except it accepts packed RGB | |
1538 | pixel formats as input instead of YUV. | |
1539 | ||
1540 | @subsection Supported Pixel Formats | |
1541 | ||
1542 | x264 supports 8- to 10-bit color spaces. The exact bit depth is controlled at | |
1543 | x264's configure time. FFmpeg only supports one bit depth in one particular | |
1544 | build. In other words, it is not possible to build one FFmpeg with multiple | |
1545 | versions of x264 with different bit depths. | |
1546 | ||
1547 | @subsection Options | |
1548 | ||
1549 | The following options are supported by the libx264 wrapper. The | |
1550 | @command{x264}-equivalent options or values are listed in parentheses | |
1551 | for easy migration. | |
1552 | ||
1553 | To reduce the duplication of documentation, only the private options | |
1554 | and some others requiring special attention are documented here. For | |
1555 | the documentation of the undocumented generic options, see | |
1556 | @ref{codec-options,,the Codec Options chapter}. | |
1557 | ||
1558 | To get a more accurate and extensive documentation of the libx264 | |
1559 | options, invoke the command @command{x264 --full-help} or consult | |
1560 | the libx264 documentation. | |
1561 | ||
1562 | @table @option | |
1563 | @item b (@emph{bitrate}) | |
1564 | Set bitrate in bits/s. Note that FFmpeg's @option{b} option is | |
1565 | expressed in bits/s, while @command{x264}'s @option{bitrate} is in | |
1566 | kilobits/s. | |
1567 | ||
1568 | @item bf (@emph{bframes}) | |
1569 | ||
1570 | @item g (@emph{keyint}) | |
1571 | ||
1572 | @item qmin (@emph{qpmin}) | |
1573 | Minimum quantizer scale. | |
1574 | ||
1575 | @item qmax (@emph{qpmax}) | |
1576 | Maximum quantizer scale. | |
1577 | ||
1578 | @item qdiff (@emph{qpstep}) | |
1579 | Maximum difference between quantizer scales. | |
1580 | ||
1581 | @item qblur (@emph{qblur}) | |
1582 | Quantizer curve blur | |
1583 | ||
1584 | @item qcomp (@emph{qcomp}) | |
1585 | Quantizer curve compression factor | |
1586 | ||
1587 | @item refs (@emph{ref}) | |
1588 | Number of reference frames each P-frame can use. The range is from @var{0-16}. | |
1589 | ||
1590 | @item sc_threshold (@emph{scenecut}) | |
1591 | Sets the threshold for the scene change detection. | |
1592 | ||
1593 | @item trellis (@emph{trellis}) | |
1594 | Performs Trellis quantization to increase efficiency. Enabled by default. | |
1595 | ||
1596 | @item nr (@emph{nr}) | |
1597 | ||
1598 | @item me_range (@emph{merange}) | |
1599 | Maximum range of the motion search in pixels. | |
1600 | ||
1601 | @item me_method (@emph{me}) | |
1602 | Set motion estimation method. Possible values in the decreasing order | |
1603 | of speed: | |
1604 | ||
1605 | @table @samp | |
1606 | @item dia (@emph{dia}) | |
1607 | @item epzs (@emph{dia}) | |
1608 | Diamond search with radius 1 (fastest). @samp{epzs} is an alias for | |
1609 | @samp{dia}. | |
1610 | @item hex (@emph{hex}) | |
1611 | Hexagonal search with radius 2. | |
1612 | @item umh (@emph{umh}) | |
1613 | Uneven multi-hexagon search. | |
1614 | @item esa (@emph{esa}) | |
1615 | Exhaustive search. | |
1616 | @item tesa (@emph{tesa}) | |
1617 | Hadamard exhaustive search (slowest). | |
1618 | @end table | |
1619 | ||
1620 | @item subq (@emph{subme}) | |
1621 | Sub-pixel motion estimation method. | |
1622 | ||
1623 | @item b_strategy (@emph{b-adapt}) | |
1624 | Adaptive B-frame placement decision algorithm. Use only on first-pass. | |
1625 | ||
1626 | @item keyint_min (@emph{min-keyint}) | |
1627 | Minimum GOP size. | |
1628 | ||
1629 | @item coder | |
1630 | Set entropy encoder. Possible values: | |
1631 | ||
1632 | @table @samp | |
1633 | @item ac | |
1634 | Enable CABAC. | |
1635 | ||
1636 | @item vlc | |
1637 | Enable CAVLC and disable CABAC. It generates the same effect as | |
1638 | @command{x264}'s @option{--no-cabac} option. | |
1639 | @end table | |
1640 | ||
1641 | @item cmp | |
1642 | Set full pixel motion estimation comparation algorithm. Possible values: | |
1643 | ||
1644 | @table @samp | |
1645 | @item chroma | |
1646 | Enable chroma in motion estimation. | |
1647 | ||
1648 | @item sad | |
1649 | Ignore chroma in motion estimation. It generates the same effect as | |
1650 | @command{x264}'s @option{--no-chroma-me} option. | |
1651 | @end table | |
1652 | ||
1653 | @item threads (@emph{threads}) | |
1654 | Number of encoding threads. | |
1655 | ||
1656 | @item thread_type | |
1657 | Set multithreading technique. Possible values: | |
1658 | ||
1659 | @table @samp | |
1660 | @item slice | |
1661 | Slice-based multithreading. It generates the same effect as | |
1662 | @command{x264}'s @option{--sliced-threads} option. | |
1663 | @item frame | |
1664 | Frame-based multithreading. | |
1665 | @end table | |
1666 | ||
1667 | @item flags | |
1668 | Set encoding flags. It can be used to disable closed GOP and enable | |
1669 | open GOP by setting it to @code{-cgop}. The result is similar to | |
1670 | the behavior of @command{x264}'s @option{--open-gop} option. | |
1671 | ||
1672 | @item rc_init_occupancy (@emph{vbv-init}) | |
1673 | ||
1674 | @item preset (@emph{preset}) | |
1675 | Set the encoding preset. | |
1676 | ||
1677 | @item tune (@emph{tune}) | |
1678 | Set tuning of the encoding params. | |
1679 | ||
1680 | @item profile (@emph{profile}) | |
1681 | Set profile restrictions. | |
1682 | ||
1683 | @item fastfirstpass | |
1684 | Enable fast settings when encoding first pass, when set to 1. When set | |
1685 | to 0, it has the same effect of @command{x264}'s | |
1686 | @option{--slow-firstpass} option. | |
1687 | ||
1688 | @item crf (@emph{crf}) | |
1689 | Set the quality for constant quality mode. | |
1690 | ||
1691 | @item crf_max (@emph{crf-max}) | |
1692 | In CRF mode, prevents VBV from lowering quality beyond this point. | |
1693 | ||
1694 | @item qp (@emph{qp}) | |
1695 | Set constant quantization rate control method parameter. | |
1696 | ||
1697 | @item aq-mode (@emph{aq-mode}) | |
1698 | Set AQ method. Possible values: | |
1699 | ||
1700 | @table @samp | |
1701 | @item none (@emph{0}) | |
1702 | Disabled. | |
1703 | ||
1704 | @item variance (@emph{1}) | |
1705 | Variance AQ (complexity mask). | |
1706 | ||
1707 | @item autovariance (@emph{2}) | |
1708 | Auto-variance AQ (experimental). | |
1709 | @end table | |
1710 | ||
1711 | @item aq-strength (@emph{aq-strength}) | |
1712 | Set AQ strength, reduce blocking and blurring in flat and textured areas. | |
1713 | ||
1714 | @item psy | |
1715 | Use psychovisual optimizations when set to 1. When set to 0, it has the | |
1716 | same effect as @command{x264}'s @option{--no-psy} option. | |
1717 | ||
1718 | @item psy-rd (@emph{psy-rd}) | |
1719 | Set strength of psychovisual optimization, in | |
1720 | @var{psy-rd}:@var{psy-trellis} format. | |
1721 | ||
1722 | @item rc-lookahead (@emph{rc-lookahead}) | |
1723 | Set number of frames to look ahead for frametype and ratecontrol. | |
1724 | ||
1725 | @item weightb | |
1726 | Enable weighted prediction for B-frames when set to 1. When set to 0, | |
1727 | it has the same effect as @command{x264}'s @option{--no-weightb} option. | |
1728 | ||
1729 | @item weightp (@emph{weightp}) | |
1730 | Set weighted prediction method for P-frames. Possible values: | |
1731 | ||
1732 | @table @samp | |
1733 | @item none (@emph{0}) | |
1734 | Disabled | |
1735 | @item simple (@emph{1}) | |
1736 | Enable only weighted refs | |
1737 | @item smart (@emph{2}) | |
1738 | Enable both weighted refs and duplicates | |
1739 | @end table | |
1740 | ||
1741 | @item ssim (@emph{ssim}) | |
1742 | Enable calculation and printing SSIM stats after the encoding. | |
1743 | ||
1744 | @item intra-refresh (@emph{intra-refresh}) | |
1745 | Enable the use of Periodic Intra Refresh instead of IDR frames when set | |
1746 | to 1. | |
1747 | ||
f6fa7814 DM |
1748 | @item avcintra-class (@emph{class}) |
1749 | Configure the encoder to generate AVC-Intra. | |
1750 | Valid values are 50,100 and 200 | |
1751 | ||
2ba45a60 DM |
1752 | @item bluray-compat (@emph{bluray-compat}) |
1753 | Configure the encoder to be compatible with the bluray standard. | |
1754 | It is a shorthand for setting "bluray-compat=1 force-cfr=1". | |
1755 | ||
1756 | @item b-bias (@emph{b-bias}) | |
1757 | Set the influence on how often B-frames are used. | |
1758 | ||
1759 | @item b-pyramid (@emph{b-pyramid}) | |
1760 | Set method for keeping of some B-frames as references. Possible values: | |
1761 | ||
1762 | @table @samp | |
1763 | @item none (@emph{none}) | |
1764 | Disabled. | |
1765 | @item strict (@emph{strict}) | |
1766 | Strictly hierarchical pyramid. | |
1767 | @item normal (@emph{normal}) | |
1768 | Non-strict (not Blu-ray compatible). | |
1769 | @end table | |
1770 | ||
1771 | @item mixed-refs | |
1772 | Enable the use of one reference per partition, as opposed to one | |
1773 | reference per macroblock when set to 1. When set to 0, it has the | |
1774 | same effect as @command{x264}'s @option{--no-mixed-refs} option. | |
1775 | ||
1776 | @item 8x8dct | |
1777 | Enable adaptive spatial transform (high profile 8x8 transform) | |
1778 | when set to 1. When set to 0, it has the same effect as | |
1779 | @command{x264}'s @option{--no-8x8dct} option. | |
1780 | ||
1781 | @item fast-pskip | |
1782 | Enable early SKIP detection on P-frames when set to 1. When set | |
1783 | to 0, it has the same effect as @command{x264}'s | |
1784 | @option{--no-fast-pskip} option. | |
1785 | ||
1786 | @item aud (@emph{aud}) | |
1787 | Enable use of access unit delimiters when set to 1. | |
1788 | ||
1789 | @item mbtree | |
1790 | Enable use macroblock tree ratecontrol when set to 1. When set | |
1791 | to 0, it has the same effect as @command{x264}'s | |
1792 | @option{--no-mbtree} option. | |
1793 | ||
1794 | @item deblock (@emph{deblock}) | |
1795 | Set loop filter parameters, in @var{alpha}:@var{beta} form. | |
1796 | ||
1797 | @item cplxblur (@emph{cplxblur}) | |
1798 | Set fluctuations reduction in QP (before curve compression). | |
1799 | ||
1800 | @item partitions (@emph{partitions}) | |
1801 | Set partitions to consider as a comma-separated list of. Possible | |
1802 | values in the list: | |
1803 | ||
1804 | @table @samp | |
1805 | @item p8x8 | |
1806 | 8x8 P-frame partition. | |
1807 | @item p4x4 | |
1808 | 4x4 P-frame partition. | |
1809 | @item b8x8 | |
1810 | 4x4 B-frame partition. | |
1811 | @item i8x8 | |
1812 | 8x8 I-frame partition. | |
1813 | @item i4x4 | |
1814 | 4x4 I-frame partition. | |
1815 | (Enabling @samp{p4x4} requires @samp{p8x8} to be enabled. Enabling | |
1816 | @samp{i8x8} requires adaptive spatial transform (@option{8x8dct} | |
1817 | option) to be enabled.) | |
1818 | @item none (@emph{none}) | |
1819 | Do not consider any partitions. | |
1820 | @item all (@emph{all}) | |
1821 | Consider every partition. | |
1822 | @end table | |
1823 | ||
1824 | @item direct-pred (@emph{direct}) | |
1825 | Set direct MV prediction mode. Possible values: | |
1826 | ||
1827 | @table @samp | |
1828 | @item none (@emph{none}) | |
1829 | Disable MV prediction. | |
1830 | @item spatial (@emph{spatial}) | |
1831 | Enable spatial predicting. | |
1832 | @item temporal (@emph{temporal}) | |
1833 | Enable temporal predicting. | |
1834 | @item auto (@emph{auto}) | |
1835 | Automatically decided. | |
1836 | @end table | |
1837 | ||
1838 | @item slice-max-size (@emph{slice-max-size}) | |
1839 | Set the limit of the size of each slice in bytes. If not specified | |
1840 | but RTP payload size (@option{ps}) is specified, that is used. | |
1841 | ||
1842 | @item stats (@emph{stats}) | |
1843 | Set the file name for multi-pass stats. | |
1844 | ||
1845 | @item nal-hrd (@emph{nal-hrd}) | |
1846 | Set signal HRD information (requires @option{vbv-bufsize} to be set). | |
1847 | Possible values: | |
1848 | ||
1849 | @table @samp | |
1850 | @item none (@emph{none}) | |
1851 | Disable HRD information signaling. | |
1852 | @item vbr (@emph{vbr}) | |
1853 | Variable bit rate. | |
1854 | @item cbr (@emph{cbr}) | |
1855 | Constant bit rate (not allowed in MP4 container). | |
1856 | @end table | |
1857 | ||
1858 | @item x264opts (N.A.) | |
1859 | Set any x264 option, see @command{x264 --fullhelp} for a list. | |
1860 | ||
1861 | Argument is a list of @var{key}=@var{value} couples separated by | |
1862 | ":". In @var{filter} and @var{psy-rd} options that use ":" as a separator | |
1863 | themselves, use "," instead. They accept it as well since long ago but this | |
1864 | is kept undocumented for some reason. | |
1865 | ||
1866 | For example to specify libx264 encoding options with @command{ffmpeg}: | |
1867 | @example | |
1868 | ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv | |
1869 | @end example | |
1870 | ||
1871 | @item x264-params (N.A.) | |
1872 | Override the x264 configuration using a :-separated list of key=value | |
1873 | parameters. | |
1874 | ||
1875 | This option is functionally the same as the @option{x264opts}, but is | |
1876 | duplicated for compatibility with the Libav fork. | |
1877 | ||
1878 | For example to specify libx264 encoding options with @command{ffmpeg}: | |
1879 | @example | |
1880 | ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\ | |
1881 | cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\ | |
1882 | no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT | |
1883 | @end example | |
1884 | @end table | |
1885 | ||
1886 | Encoding ffpresets for common usages are provided so they can be used with the | |
1887 | general presets system (e.g. passing the @option{pre} option). | |
1888 | ||
f6fa7814 DM |
1889 | @section libx265 |
1890 | ||
1891 | x265 H.265/HEVC encoder wrapper. | |
1892 | ||
1893 | This encoder requires the presence of the libx265 headers and library | |
1894 | during configuration. You need to explicitly configure the build with | |
1895 | @option{--enable-libx265}. | |
1896 | ||
1897 | @subsection Options | |
1898 | ||
1899 | @table @option | |
1900 | @item preset | |
1901 | Set the x265 preset. | |
1902 | ||
1903 | @item tune | |
1904 | Set the x265 tune parameter. | |
1905 | ||
1906 | @item x265-params | |
1907 | Set x265 options using a list of @var{key}=@var{value} couples separated | |
1908 | by ":". See @command{x265 --help} for a list of options. | |
1909 | ||
1910 | For example to specify libx265 encoding options with @option{-x265-params}: | |
1911 | ||
1912 | @example | |
1913 | ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4 | |
1914 | @end example | |
1915 | @end table | |
1916 | ||
2ba45a60 DM |
1917 | @section libxvid |
1918 | ||
1919 | Xvid MPEG-4 Part 2 encoder wrapper. | |
1920 | ||
1921 | This encoder requires the presence of the libxvidcore headers and library | |
1922 | during configuration. You need to explicitly configure the build with | |
1923 | @code{--enable-libxvid --enable-gpl}. | |
1924 | ||
1925 | The native @code{mpeg4} encoder supports the MPEG-4 Part 2 format, so | |
1926 | users can encode to this format without this library. | |
1927 | ||
1928 | @subsection Options | |
1929 | ||
1930 | The following options are supported by the libxvid wrapper. Some of | |
1931 | the following options are listed but are not documented, and | |
1932 | correspond to shared codec options. See @ref{codec-options,,the Codec | |
1933 | Options chapter} for their documentation. The other shared options | |
1934 | which are not listed have no effect for the libxvid encoder. | |
1935 | ||
1936 | @table @option | |
1937 | @item b | |
1938 | ||
1939 | @item g | |
1940 | ||
1941 | @item qmin | |
1942 | ||
1943 | @item qmax | |
1944 | ||
1945 | @item mpeg_quant | |
1946 | ||
1947 | @item threads | |
1948 | ||
1949 | @item bf | |
1950 | ||
1951 | @item b_qfactor | |
1952 | ||
1953 | @item b_qoffset | |
1954 | ||
1955 | @item flags | |
1956 | Set specific encoding flags. Possible values: | |
1957 | ||
1958 | @table @samp | |
1959 | ||
1960 | @item mv4 | |
1961 | Use four motion vector by macroblock. | |
1962 | ||
1963 | @item aic | |
1964 | Enable high quality AC prediction. | |
1965 | ||
1966 | @item gray | |
1967 | Only encode grayscale. | |
1968 | ||
1969 | @item gmc | |
1970 | Enable the use of global motion compensation (GMC). | |
1971 | ||
1972 | @item qpel | |
1973 | Enable quarter-pixel motion compensation. | |
1974 | ||
1975 | @item cgop | |
1976 | Enable closed GOP. | |
1977 | ||
1978 | @item global_header | |
1979 | Place global headers in extradata instead of every keyframe. | |
1980 | ||
1981 | @end table | |
1982 | ||
1983 | @item trellis | |
1984 | ||
1985 | @item me_method | |
1986 | Set motion estimation method. Possible values in decreasing order of | |
1987 | speed and increasing order of quality: | |
1988 | ||
1989 | @table @samp | |
1990 | @item zero | |
1991 | Use no motion estimation (default). | |
1992 | ||
1993 | @item phods | |
1994 | @item x1 | |
1995 | @item log | |
1996 | Enable advanced diamond zonal search for 16x16 blocks and half-pixel | |
1997 | refinement for 16x16 blocks. @samp{x1} and @samp{log} are aliases for | |
1998 | @samp{phods}. | |
1999 | ||
2000 | @item epzs | |
2001 | Enable all of the things described above, plus advanced diamond zonal | |
2002 | search for 8x8 blocks, half-pixel refinement for 8x8 blocks, and motion | |
2003 | estimation on chroma planes. | |
2004 | ||
2005 | @item full | |
2006 | Enable all of the things described above, plus extended 16x16 and 8x8 | |
2007 | blocks search. | |
2008 | @end table | |
2009 | ||
2010 | @item mbd | |
2011 | Set macroblock decision algorithm. Possible values in the increasing | |
2012 | order of quality: | |
2013 | ||
2014 | @table @samp | |
2015 | @item simple | |
2016 | Use macroblock comparing function algorithm (default). | |
2017 | ||
2018 | @item bits | |
2019 | Enable rate distortion-based half pixel and quarter pixel refinement for | |
2020 | 16x16 blocks. | |
2021 | ||
2022 | @item rd | |
2023 | Enable all of the things described above, plus rate distortion-based | |
2024 | half pixel and quarter pixel refinement for 8x8 blocks, and rate | |
2025 | distortion-based search using square pattern. | |
2026 | @end table | |
2027 | ||
2028 | @item lumi_aq | |
2029 | Enable lumi masking adaptive quantization when set to 1. Default is 0 | |
2030 | (disabled). | |
2031 | ||
2032 | @item variance_aq | |
2033 | Enable variance adaptive quantization when set to 1. Default is 0 | |
2034 | (disabled). | |
2035 | ||
2036 | When combined with @option{lumi_aq}, the resulting quality will not | |
2037 | be better than any of the two specified individually. In other | |
2038 | words, the resulting quality will be the worse one of the two | |
2039 | effects. | |
2040 | ||
2041 | @item ssim | |
2042 | Set structural similarity (SSIM) displaying method. Possible values: | |
2043 | ||
2044 | @table @samp | |
2045 | @item off | |
2046 | Disable displaying of SSIM information. | |
2047 | ||
2048 | @item avg | |
2049 | Output average SSIM at the end of encoding to stdout. The format of | |
2050 | showing the average SSIM is: | |
2051 | ||
2052 | @example | |
2053 | Average SSIM: %f | |
2054 | @end example | |
2055 | ||
2056 | For users who are not familiar with C, %f means a float number, or | |
2057 | a decimal (e.g. 0.939232). | |
2058 | ||
2059 | @item frame | |
2060 | Output both per-frame SSIM data during encoding and average SSIM at | |
2061 | the end of encoding to stdout. The format of per-frame information | |
2062 | is: | |
2063 | ||
2064 | @example | |
2065 | SSIM: avg: %1.3f min: %1.3f max: %1.3f | |
2066 | @end example | |
2067 | ||
2068 | For users who are not familiar with C, %1.3f means a float number | |
2069 | rounded to 3 digits after the dot (e.g. 0.932). | |
2070 | ||
2071 | @end table | |
2072 | ||
2073 | @item ssim_acc | |
2074 | Set SSIM accuracy. Valid options are integers within the range of | |
2075 | 0-4, while 0 gives the most accurate result and 4 computes the | |
2076 | fastest. | |
2077 | ||
2078 | @end table | |
2079 | ||
2080 | @section mpeg2 | |
2081 | ||
2082 | MPEG-2 video encoder. | |
2083 | ||
2084 | @subsection Options | |
2085 | ||
2086 | @table @option | |
2087 | @item seq_disp_ext @var{integer} | |
2088 | Specifies if the encoder should write a sequence_display_extension to the | |
2089 | output. | |
2090 | @table @option | |
2091 | @item -1 | |
2092 | @itemx auto | |
2093 | Decide automatically to write it or not (this is the default) by checking if | |
2094 | the data to be written is different from the default or unspecified values. | |
2095 | @item 0 | |
2096 | @itemx never | |
2097 | Never write it. | |
2098 | @item 1 | |
2099 | @itemx always | |
2100 | Always write it. | |
2101 | @end table | |
2102 | @end table | |
2103 | ||
2104 | @section png | |
2105 | ||
2106 | PNG image encoder. | |
2107 | ||
2108 | @subsection Private options | |
2109 | ||
2110 | @table @option | |
2111 | @item dpi @var{integer} | |
2112 | Set physical density of pixels, in dots per inch, unset by default | |
2113 | @item dpm @var{integer} | |
2114 | Set physical density of pixels, in dots per meter, unset by default | |
2115 | @end table | |
2116 | ||
2117 | @section ProRes | |
2118 | ||
2119 | Apple ProRes encoder. | |
2120 | ||
2121 | FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder. | |
2122 | The used encoder can be chosen with the @code{-vcodec} option. | |
2123 | ||
2124 | @subsection Private Options for prores-ks | |
2125 | ||
2126 | @table @option | |
2127 | @item profile @var{integer} | |
2128 | Select the ProRes profile to encode | |
2129 | @table @samp | |
2130 | @item proxy | |
2131 | @item lt | |
2132 | @item standard | |
2133 | @item hq | |
2134 | @item 4444 | |
2135 | @end table | |
2136 | ||
2137 | @item quant_mat @var{integer} | |
2138 | Select quantization matrix. | |
2139 | @table @samp | |
2140 | @item auto | |
2141 | @item default | |
2142 | @item proxy | |
2143 | @item lt | |
2144 | @item standard | |
2145 | @item hq | |
2146 | @end table | |
2147 | If set to @var{auto}, the matrix matching the profile will be picked. | |
2148 | If not set, the matrix providing the highest quality, @var{default}, will be | |
2149 | picked. | |
2150 | ||
2151 | @item bits_per_mb @var{integer} | |
2152 | How many bits to allot for coding one macroblock. Different profiles use | |
2153 | between 200 and 2400 bits per macroblock, the maximum is 8000. | |
2154 | ||
2155 | @item mbs_per_slice @var{integer} | |
2156 | Number of macroblocks in each slice (1-8); the default value (8) | |
2157 | should be good in almost all situations. | |
2158 | ||
2159 | @item vendor @var{string} | |
2160 | Override the 4-byte vendor ID. | |
2161 | A custom vendor ID like @var{apl0} would claim the stream was produced by | |
2162 | the Apple encoder. | |
2163 | ||
2164 | @item alpha_bits @var{integer} | |
2165 | Specify number of bits for alpha component. | |
2166 | Possible values are @var{0}, @var{8} and @var{16}. | |
2167 | Use @var{0} to disable alpha plane coding. | |
2168 | ||
2169 | @end table | |
2170 | ||
2171 | @subsection Speed considerations | |
2172 | ||
2173 | In the default mode of operation the encoder has to honor frame constraints | |
2174 | (i.e. not produc frames with size bigger than requested) while still making | |
2175 | output picture as good as possible. | |
2176 | A frame containing a lot of small details is harder to compress and the encoder | |
2177 | would spend more time searching for appropriate quantizers for each slice. | |
2178 | ||
2179 | Setting a higher @option{bits_per_mb} limit will improve the speed. | |
2180 | ||
2181 | For the fastest encoding speed set the @option{qscale} parameter (4 is the | |
2182 | recommended value) and do not set a size constraint. | |
2183 | ||
2184 | @c man end VIDEO ENCODERS | |
2185 | ||
2186 | @chapter Subtitles Encoders | |
2187 | @c man begin SUBTITLES ENCODERS | |
2188 | ||
2189 | @section dvdsub | |
2190 | ||
2191 | This codec encodes the bitmap subtitle format that is used in DVDs. | |
2192 | Typically they are stored in VOBSUB file pairs (*.idx + *.sub), | |
2193 | and they can also be used in Matroska files. | |
2194 | ||
2195 | @subsection Options | |
2196 | ||
2197 | @table @option | |
2198 | @item even_rows_fix | |
2199 | When set to 1, enable a work-around that makes the number of pixel rows | |
2200 | even in all subtitles. This fixes a problem with some players that | |
2201 | cut off the bottom row if the number is odd. The work-around just adds | |
2202 | a fully transparent row if needed. The overhead is low, typically | |
2203 | one byte per subtitle on average. | |
2204 | ||
2205 | By default, this work-around is disabled. | |
2206 | @end table | |
2207 | ||
2208 | @c man end SUBTITLES ENCODERS |