| 1 | @chapter Decoders |
| 2 | @c man begin DECODERS |
| 3 | |
| 4 | Decoders are configured elements in FFmpeg which allow the decoding of |
| 5 | multimedia streams. |
| 6 | |
| 7 | When you configure your FFmpeg build, all the supported native decoders |
| 8 | are enabled by default. Decoders requiring an external library must be enabled |
| 9 | manually via the corresponding @code{--enable-lib} option. You can list all |
| 10 | available decoders using the configure option @code{--list-decoders}. |
| 11 | |
| 12 | You can disable all the decoders with the configure option |
| 13 | @code{--disable-decoders} and selectively enable / disable single decoders |
| 14 | with the options @code{--enable-decoder=@var{DECODER}} / |
| 15 | @code{--disable-decoder=@var{DECODER}}. |
| 16 | |
| 17 | The option @code{-decoders} of the ff* tools will display the list of |
| 18 | enabled decoders. |
| 19 | |
| 20 | @c man end DECODERS |
| 21 | |
| 22 | @chapter Video Decoders |
| 23 | @c man begin VIDEO DECODERS |
| 24 | |
| 25 | A description of some of the currently available video decoders |
| 26 | follows. |
| 27 | |
| 28 | @section rawvideo |
| 29 | |
| 30 | Raw video decoder. |
| 31 | |
| 32 | This decoder decodes rawvideo streams. |
| 33 | |
| 34 | @subsection Options |
| 35 | |
| 36 | @table @option |
| 37 | @item top @var{top_field_first} |
| 38 | Specify the assumed field type of the input video. |
| 39 | @table @option |
| 40 | @item -1 |
| 41 | the video is assumed to be progressive (default) |
| 42 | @item 0 |
| 43 | bottom-field-first is assumed |
| 44 | @item 1 |
| 45 | top-field-first is assumed |
| 46 | @end table |
| 47 | |
| 48 | @end table |
| 49 | |
| 50 | @c man end VIDEO DECODERS |
| 51 | |
| 52 | @chapter Audio Decoders |
| 53 | @c man begin AUDIO DECODERS |
| 54 | |
| 55 | A description of some of the currently available audio decoders |
| 56 | follows. |
| 57 | |
| 58 | @section ac3 |
| 59 | |
| 60 | AC-3 audio decoder. |
| 61 | |
| 62 | This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as well as |
| 63 | the undocumented RealAudio 3 (a.k.a. dnet). |
| 64 | |
| 65 | @subsection AC-3 Decoder Options |
| 66 | |
| 67 | @table @option |
| 68 | |
| 69 | @item -drc_scale @var{value} |
| 70 | Dynamic Range Scale Factor. The factor to apply to dynamic range values |
| 71 | from the AC-3 stream. This factor is applied exponentially. |
| 72 | There are 3 notable scale factor ranges: |
| 73 | @table @option |
| 74 | @item drc_scale == 0 |
| 75 | DRC disabled. Produces full range audio. |
| 76 | @item 0 < drc_scale <= 1 |
| 77 | DRC enabled. Applies a fraction of the stream DRC value. |
| 78 | Audio reproduction is between full range and full compression. |
| 79 | @item drc_scale > 1 |
| 80 | DRC enabled. Applies drc_scale asymmetrically. |
| 81 | Loud sounds are fully compressed. Soft sounds are enhanced. |
| 82 | @end table |
| 83 | |
| 84 | @end table |
| 85 | |
| 86 | @section ffwavesynth |
| 87 | |
| 88 | Internal wave synthetizer. |
| 89 | |
| 90 | This decoder generates wave patterns according to predefined sequences. Its |
| 91 | use is purely internal and the format of the data it accepts is not publicly |
| 92 | documented. |
| 93 | |
| 94 | @section libcelt |
| 95 | |
| 96 | libcelt decoder wrapper. |
| 97 | |
| 98 | libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec. |
| 99 | Requires the presence of the libcelt headers and library during configuration. |
| 100 | You need to explicitly configure the build with @code{--enable-libcelt}. |
| 101 | |
| 102 | @section libgsm |
| 103 | |
| 104 | libgsm decoder wrapper. |
| 105 | |
| 106 | libgsm allows libavcodec to decode the GSM full rate audio codec. Requires |
| 107 | the presence of the libgsm headers and library during configuration. You need |
| 108 | to explicitly configure the build with @code{--enable-libgsm}. |
| 109 | |
| 110 | This decoder supports both the ordinary GSM and the Microsoft variant. |
| 111 | |
| 112 | @section libilbc |
| 113 | |
| 114 | libilbc decoder wrapper. |
| 115 | |
| 116 | libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC) |
| 117 | audio codec. Requires the presence of the libilbc headers and library during |
| 118 | configuration. You need to explicitly configure the build with |
| 119 | @code{--enable-libilbc}. |
| 120 | |
| 121 | @subsection Options |
| 122 | |
| 123 | The following option is supported by the libilbc wrapper. |
| 124 | |
| 125 | @table @option |
| 126 | @item enhance |
| 127 | |
| 128 | Enable the enhancement of the decoded audio when set to 1. The default |
| 129 | value is 0 (disabled). |
| 130 | |
| 131 | @end table |
| 132 | |
| 133 | @section libopencore-amrnb |
| 134 | |
| 135 | libopencore-amrnb decoder wrapper. |
| 136 | |
| 137 | libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate |
| 138 | Narrowband audio codec. Using it requires the presence of the |
| 139 | libopencore-amrnb headers and library during configuration. You need to |
| 140 | explicitly configure the build with @code{--enable-libopencore-amrnb}. |
| 141 | |
| 142 | An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB |
| 143 | without this library. |
| 144 | |
| 145 | @section libopencore-amrwb |
| 146 | |
| 147 | libopencore-amrwb decoder wrapper. |
| 148 | |
| 149 | libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate |
| 150 | Wideband audio codec. Using it requires the presence of the |
| 151 | libopencore-amrwb headers and library during configuration. You need to |
| 152 | explicitly configure the build with @code{--enable-libopencore-amrwb}. |
| 153 | |
| 154 | An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB |
| 155 | without this library. |
| 156 | |
| 157 | @section libopus |
| 158 | |
| 159 | libopus decoder wrapper. |
| 160 | |
| 161 | libopus allows libavcodec to decode the Opus Interactive Audio Codec. |
| 162 | Requires the presence of the libopus headers and library during |
| 163 | configuration. You need to explicitly configure the build with |
| 164 | @code{--enable-libopus}. |
| 165 | |
| 166 | An FFmpeg native decoder for Opus exists, so users can decode Opus |
| 167 | without this library. |
| 168 | |
| 169 | @c man end AUDIO DECODERS |
| 170 | |
| 171 | @chapter Subtitles Decoders |
| 172 | @c man begin SUBTILES DECODERS |
| 173 | |
| 174 | @section dvdsub |
| 175 | |
| 176 | This codec decodes the bitmap subtitles used in DVDs; the same subtitles can |
| 177 | also be found in VobSub file pairs and in some Matroska files. |
| 178 | |
| 179 | @subsection Options |
| 180 | |
| 181 | @table @option |
| 182 | @item palette |
| 183 | Specify the global palette used by the bitmaps. When stored in VobSub, the |
| 184 | palette is normally specified in the index file; in Matroska, the palette is |
| 185 | stored in the codec extra-data in the same format as in VobSub. In DVDs, the |
| 186 | palette is stored in the IFO file, and therefore not available when reading |
| 187 | from dumped VOB files. |
| 188 | |
| 189 | The format for this option is a string containing 16 24-bits hexadecimal |
| 190 | numbers (without 0x prefix) separated by comas, for example @code{0d00ee, |
| 191 | ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, |
| 192 | 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b}. |
| 193 | |
| 194 | @item ifo_palette |
| 195 | Specify the IFO file from which the global palette is obtained. |
| 196 | (experimental) |
| 197 | |
| 198 | @item forced_subs_only |
| 199 | Only decode subtitle entries marked as forced. Some titles have forced |
| 200 | and non-forced subtitles in the same track. Setting this flag to @code{1} |
| 201 | will only keep the forced subtitles. Default value is @code{0}. |
| 202 | @end table |
| 203 | |
| 204 | @section libzvbi-teletext |
| 205 | |
| 206 | Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext |
| 207 | subtitles. Requires the presence of the libzvbi headers and library during |
| 208 | configuration. You need to explicitly configure the build with |
| 209 | @code{--enable-libzvbi}. |
| 210 | |
| 211 | @subsection Options |
| 212 | |
| 213 | @table @option |
| 214 | @item txt_page |
| 215 | List of teletext page numbers to decode. You may use the special * string to |
| 216 | match all pages. Pages that do not match the specified list are dropped. |
| 217 | Default value is *. |
| 218 | @item txt_chop_top |
| 219 | Discards the top teletext line. Default value is 1. |
| 220 | @item txt_format |
| 221 | Specifies the format of the decoded subtitles. The teletext decoder is capable |
| 222 | of decoding the teletext pages to bitmaps or to simple text, you should use |
| 223 | "bitmap" for teletext pages, because certain graphics and colors cannot be |
| 224 | expressed in simple text. You might use "text" for teletext based subtitles if |
| 225 | your application can handle simple text based subtitles. Default value is |
| 226 | bitmap. |
| 227 | @item txt_left |
| 228 | X offset of generated bitmaps, default is 0. |
| 229 | @item txt_top |
| 230 | Y offset of generated bitmaps, default is 0. |
| 231 | @item txt_chop_spaces |
| 232 | Chops leading and trailing spaces and removes empty lines from the generated |
| 233 | text. This option is useful for teletext based subtitles where empty spaces may |
| 234 | be present at the start or at the end of the lines or empty lines may be |
| 235 | present between the subtitle lines because of double-sized teletext charactes. |
| 236 | Default value is 1. |
| 237 | @item txt_duration |
| 238 | Sets the display duration of the decoded teletext pages or subtitles in |
| 239 | miliseconds. Default value is 30000 which is 30 seconds. |
| 240 | @item txt_transparent |
| 241 | Force transparent background of the generated teletext bitmaps. Default value |
| 242 | is 0 which means an opaque (black) background. |
| 243 | @end table |
| 244 | |
| 245 | @c man end SUBTILES DECODERS |