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