node-av 5.2.4 → 6.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/api/bitstream-filter.d.ts +11 -6
  2. package/dist/api/bitstream-filter.js.map +1 -1
  3. package/dist/api/decoder.d.ts +9 -7
  4. package/dist/api/decoder.js.map +1 -1
  5. package/dist/api/demuxer.d.ts +30 -24
  6. package/dist/api/demuxer.js +4 -5
  7. package/dist/api/demuxer.js.map +1 -1
  8. package/dist/api/device.js.map +1 -1
  9. package/dist/api/encoder.d.ts +9 -7
  10. package/dist/api/encoder.js +10 -4
  11. package/dist/api/encoder.js.map +1 -1
  12. package/dist/api/filter-presets.d.ts +27 -658
  13. package/dist/api/filter-presets.js +45 -838
  14. package/dist/api/filter-presets.js.map +1 -1
  15. package/dist/api/fmp4-stream.js +1 -1
  16. package/dist/api/fmp4-stream.js.map +1 -1
  17. package/dist/api/index.d.ts +1 -4
  18. package/dist/api/index.js +0 -6
  19. package/dist/api/index.js.map +1 -1
  20. package/dist/api/muxer.d.ts +21 -15
  21. package/dist/api/muxer.js.map +1 -1
  22. package/dist/api/rtp-stream.js +1 -1
  23. package/dist/api/rtp-stream.js.map +1 -1
  24. package/dist/api/utilities/index.d.ts +1 -1
  25. package/dist/api/utilities/index.js.map +1 -1
  26. package/dist/api/webrtc-stream.d.ts +0 -1
  27. package/dist/api/webrtc-stream.js +0 -1
  28. package/dist/api/webrtc-stream.js.map +1 -1
  29. package/dist/constants/bsf-options.d.ts +326 -0
  30. package/dist/constants/bsf-options.js +7 -0
  31. package/dist/constants/bsf-options.js.map +1 -0
  32. package/dist/constants/constants.d.ts +11 -0
  33. package/dist/constants/constants.js +11 -0
  34. package/dist/constants/constants.js.map +1 -1
  35. package/dist/constants/decoders.d.ts +636 -618
  36. package/dist/constants/decoders.js +1 -3
  37. package/dist/constants/decoders.js.map +1 -1
  38. package/dist/constants/encoders.d.ts +300 -282
  39. package/dist/constants/encoders.js +0 -2
  40. package/dist/constants/encoders.js.map +1 -1
  41. package/dist/constants/filter-options.d.ts +10915 -0
  42. package/dist/constants/filter-options.js +7 -0
  43. package/dist/constants/filter-options.js.map +1 -0
  44. package/dist/constants/format-options.d.ts +2555 -0
  45. package/dist/constants/format-options.js +7 -0
  46. package/dist/constants/format-options.js.map +1 -0
  47. package/dist/constants/index.d.ts +4 -0
  48. package/dist/constants/options.d.ts +4073 -0
  49. package/dist/constants/options.js +7 -0
  50. package/dist/constants/options.js.map +1 -0
  51. package/dist/lib/codec.d.ts +36 -5
  52. package/dist/lib/codec.js +37 -4
  53. package/dist/lib/codec.js.map +1 -1
  54. package/dist/lib/dictionary.d.ts +1 -1
  55. package/dist/lib/dictionary.js.map +1 -1
  56. package/dist/lib/frame.d.ts +29 -0
  57. package/dist/lib/frame.js +31 -0
  58. package/dist/lib/frame.js.map +1 -1
  59. package/dist/lib/index.d.ts +1 -1
  60. package/dist/lib/index.js.map +1 -1
  61. package/dist/lib/native-types.d.ts +19 -0
  62. package/dist/webrtc/index.d.ts +3 -0
  63. package/dist/webrtc/index.js +7 -0
  64. package/dist/webrtc/index.js.map +1 -0
  65. package/package.json +31 -21
@@ -0,0 +1,2555 @@
1
+ /**
2
+ * Auto-generated container (de)muxer option types.
3
+ * Generated from FFmpeg libavformat AVOption sources (see scripts/generate-format-options.js).
4
+ * DO NOT EDIT MANUALLY.
5
+ */
6
+ export interface FormatContextOptions {
7
+ avioflags?: 'direct' | (string & {}) | number;
8
+ /** set probing size */
9
+ probesize?: number | (string & {});
10
+ /** number of bytes to probe file format */
11
+ formatprobesize?: number | (string & {});
12
+ /** set packet size */
13
+ packetsize?: number | (string & {});
14
+ fflags?: 'flush_packets' | 'ignidx' | 'genpts' | 'nofillin' | 'noparse' | 'igndts' | 'discardcorrupt' | 'sortdts' | 'fastseek' | 'nobuffer' | 'bitexact' | 'autobsf' | (string & {}) | number;
15
+ /** allow seeking to non-keyframes on demuxer level when supported */
16
+ seek2any?: boolean | (string & {});
17
+ /** specify how many microseconds are analyzed to probe the input */
18
+ analyzeduration?: number | (string & {});
19
+ /** decryption key */
20
+ cryptokey?: string | number;
21
+ /** max memory used for timestamp index (per stream) */
22
+ indexmem?: number | (string & {});
23
+ /** max memory used for buffering real-time frames */
24
+ rtbufsize?: number | (string & {});
25
+ /** print specific debug info */
26
+ fdebug?: 'ts' | 'id3v2' | (string & {}) | number;
27
+ /** maximum muxing or demuxing delay in microseconds */
28
+ max_delay?: number | (string & {});
29
+ /** wall-clock time when stream begins (PTS==0) */
30
+ start_time_realtime?: number | (string & {});
31
+ /** number of frames used to probe fps */
32
+ fpsprobesize?: number | (string & {});
33
+ /** microseconds by which audio packets should be interleaved earlier */
34
+ audio_preload?: number | (string & {});
35
+ /** microseconds for each chunk */
36
+ chunk_duration?: number | (string & {});
37
+ /** size in bytes for each chunk */
38
+ chunk_size?: number | (string & {});
39
+ /** set error detection flags (deprecated; use err_detect, save via avconv) */
40
+ f_err_detect?: 'crccheck' | 'bitstream' | 'buffer' | 'explode' | 'ignore_err' | 'careful' | 'compliant' | 'aggressive' | (string & {}) | number;
41
+ /** set error detection flags */
42
+ err_detect?: 'crccheck' | 'bitstream' | 'buffer' | 'explode' | 'ignore_err' | 'careful' | 'compliant' | 'aggressive' | (string & {}) | number;
43
+ /** use wallclock as timestamps */
44
+ use_wallclock_as_timestamps?: boolean | (string & {});
45
+ /** set number of bytes to skip before reading header and frames */
46
+ skip_initial_bytes?: number | (string & {});
47
+ /** correct single timestamp overflows */
48
+ correct_ts_overflow?: boolean | (string & {});
49
+ /** enable flushing of the I/O context after each packet */
50
+ flush_packets?: number | (string & {});
51
+ /** set number of bytes to be written as padding in a metadata header */
52
+ metadata_header_padding?: number | (string & {});
53
+ /** set output timestamp offset */
54
+ output_ts_offset?: string | number;
55
+ /** maximum buffering duration for interleaving */
56
+ max_interleave_delta?: number | (string & {});
57
+ /** how strictly to follow the standards (deprecated; use strict, save via avconv) */
58
+ f_strict?: 'very' | 'strict' | 'normal' | 'unofficial' | 'experimental' | (string & {}) | number;
59
+ /** how strictly to follow the standards */
60
+ strict?: 'very' | 'strict' | 'normal' | 'unofficial' | 'experimental' | (string & {}) | number;
61
+ /** maximum number of packets to read while waiting for the first timestamp */
62
+ max_ts_probe?: number | (string & {});
63
+ /** shift timestamps so they start at 0 */
64
+ avoid_negative_ts?: 'auto' | 'disabled' | 'make_non_negative' | 'make_zero' | (string & {}) | number;
65
+ /** set information dump field separator */
66
+ dump_separator?: string | number;
67
+ /** List of decoders that are allowed to be used */
68
+ codec_whitelist?: string | number;
69
+ /** List of demuxers that are allowed to be used */
70
+ format_whitelist?: string | number;
71
+ /** List of protocols that are allowed to be used */
72
+ protocol_whitelist?: string | number;
73
+ /** List of protocols that are not allowed to be used */
74
+ protocol_blacklist?: string | number;
75
+ /** maximum number of streams */
76
+ max_streams?: number | (string & {});
77
+ /** skip duration calculation in estimate_timings_from_pts */
78
+ skip_estimate_duration_from_pts?: boolean | (string & {});
79
+ /** Maximum number of packets to probe a codec */
80
+ max_probe_packets?: number | (string & {});
81
+ /** Maximum number of bytes to probe the durations of the streams in estimate_timings_from_pts */
82
+ duration_probesize?: number | (string & {});
83
+ }
84
+ export interface MuxerPrivateOptionsMap {
85
+ /**
86
+ * 3GP2 (3GPP2 file format)
87
+ * @see https://ffmpeg.org/ffmpeg-formats.html#3g2
88
+ */
89
+ '3g2': {
90
+ /** Override major brand */
91
+ brand?: string | number;
92
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
93
+ empty_hdlr_name?: boolean | (string & {});
94
+ /** The media encryption key (hex) */
95
+ encryption_key?: string | number;
96
+ /** The media encryption key identifier (hex) */
97
+ encryption_kid?: string | number;
98
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
99
+ encryption_scheme?: string | number;
100
+ /** Maximum fragment duration */
101
+ frag_duration?: number | (string & {});
102
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
103
+ frag_interleave?: number | (string & {});
104
+ /** Maximum fragment size */
105
+ frag_size?: number | (string & {});
106
+ /** Fragment number of the next fragment */
107
+ fragment_index?: number | (string & {});
108
+ /** iods audio profile atom. */
109
+ iods_audio_profile?: number | (string & {});
110
+ /** iods video profile atom. */
111
+ iods_video_profile?: number | (string & {});
112
+ /** Number of lookahead entries for ISM files */
113
+ ism_lookahead?: number | (string & {});
114
+ /** MOV muxer flags */
115
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
116
+ /** maximum moov size so it can be placed at the begin */
117
+ moov_size?: number | (string & {});
118
+ /** Minimum fragment duration */
119
+ min_frag_duration?: number | (string & {});
120
+ /** gamma value for gama atom */
121
+ mov_gamma?: number | (string & {});
122
+ /** set movie timescale */
123
+ movie_timescale?: number | (string & {});
124
+ /** RTP muxer flags */
125
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
126
+ /** Skip writing iods atom. */
127
+ skip_iods?: boolean | (string & {});
128
+ /** use edit list */
129
+ use_editlist?: boolean | (string & {});
130
+ /** use stream ids as track ids */
131
+ use_stream_ids_as_track_ids?: boolean | (string & {});
132
+ /** set timescale of all video tracks */
133
+ video_track_timescale?: number | (string & {});
134
+ /** force or disable writing btrt */
135
+ write_btrt?: boolean | (string & {});
136
+ /** Write producer reference time box with specified time source */
137
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
138
+ /** force or disable writing tmcd */
139
+ write_tmcd?: boolean | (string & {});
140
+ };
141
+ /**
142
+ * 3GP (3GPP file format)
143
+ * @see https://ffmpeg.org/ffmpeg-formats.html#3gp
144
+ */
145
+ '3gp': {
146
+ /** Override major brand */
147
+ brand?: string | number;
148
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
149
+ empty_hdlr_name?: boolean | (string & {});
150
+ /** The media encryption key (hex) */
151
+ encryption_key?: string | number;
152
+ /** The media encryption key identifier (hex) */
153
+ encryption_kid?: string | number;
154
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
155
+ encryption_scheme?: string | number;
156
+ /** Maximum fragment duration */
157
+ frag_duration?: number | (string & {});
158
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
159
+ frag_interleave?: number | (string & {});
160
+ /** Maximum fragment size */
161
+ frag_size?: number | (string & {});
162
+ /** Fragment number of the next fragment */
163
+ fragment_index?: number | (string & {});
164
+ /** iods audio profile atom. */
165
+ iods_audio_profile?: number | (string & {});
166
+ /** iods video profile atom. */
167
+ iods_video_profile?: number | (string & {});
168
+ /** Number of lookahead entries for ISM files */
169
+ ism_lookahead?: number | (string & {});
170
+ /** MOV muxer flags */
171
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
172
+ /** maximum moov size so it can be placed at the begin */
173
+ moov_size?: number | (string & {});
174
+ /** Minimum fragment duration */
175
+ min_frag_duration?: number | (string & {});
176
+ /** gamma value for gama atom */
177
+ mov_gamma?: number | (string & {});
178
+ /** set movie timescale */
179
+ movie_timescale?: number | (string & {});
180
+ /** RTP muxer flags */
181
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
182
+ /** Skip writing iods atom. */
183
+ skip_iods?: boolean | (string & {});
184
+ /** use edit list */
185
+ use_editlist?: boolean | (string & {});
186
+ /** use stream ids as track ids */
187
+ use_stream_ids_as_track_ids?: boolean | (string & {});
188
+ /** set timescale of all video tracks */
189
+ video_track_timescale?: number | (string & {});
190
+ /** force or disable writing btrt */
191
+ write_btrt?: boolean | (string & {});
192
+ /** Write producer reference time box with specified time source */
193
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
194
+ /** force or disable writing tmcd */
195
+ write_tmcd?: boolean | (string & {});
196
+ };
197
+ /**
198
+ * raw AC-4
199
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ac4
200
+ */
201
+ ac4: {
202
+ /** enable checksum */
203
+ write_crc?: boolean | (string & {});
204
+ };
205
+ /**
206
+ * ADTS AAC (Advanced Audio Coding)
207
+ * @see https://ffmpeg.org/ffmpeg-formats.html#adts
208
+ */
209
+ adts: {
210
+ /** Enable ID3v2 tag writing */
211
+ write_id3v2?: boolean | (string & {});
212
+ /** Enable APE tag writing */
213
+ write_apetag?: boolean | (string & {});
214
+ /** Set MPEG version to MPEG-2 */
215
+ write_mpeg2?: boolean | (string & {});
216
+ };
217
+ /**
218
+ * Audio IFF
219
+ * @see https://ffmpeg.org/ffmpeg-formats.html#aiff
220
+ */
221
+ aiff: {
222
+ /** Enable ID3 tags writing. */
223
+ write_id3v2?: boolean | (string & {});
224
+ /** Select ID3v2 version to write. Currently 3 and 4 are supported. */
225
+ id3v2_version?: number | (string & {});
226
+ };
227
+ /**
228
+ * LEGO Racers ALP
229
+ * @see https://ffmpeg.org/ffmpeg-formats.html#alp
230
+ */
231
+ alp: {
232
+ /** set file type */
233
+ type?: 'auto' | 'tun' | 'pcm' | (string & {}) | number;
234
+ };
235
+ /**
236
+ * Animated Portable Network Graphics
237
+ * @see https://ffmpeg.org/ffmpeg-formats.html#apng
238
+ */
239
+ apng: {
240
+ /** Number of times to play the output: 0 - infinite loop, 1 - no loop */
241
+ plays?: number | (string & {});
242
+ /** Force delay after the last frame */
243
+ final_delay?: string | number;
244
+ };
245
+ /**
246
+ * Argonaut Games ASF
247
+ * @see https://ffmpeg.org/ffmpeg-formats.html#argo_005fasf
248
+ */
249
+ argo_asf: {
250
+ /** override file major version */
251
+ version_major?: number | (string & {});
252
+ /** override file minor version */
253
+ version_minor?: number | (string & {});
254
+ /** embedded file name (max 8 characters) */
255
+ name?: string | number;
256
+ };
257
+ /**
258
+ * Argonaut Games CVG
259
+ * @see https://ffmpeg.org/ffmpeg-formats.html#argo_005fcvg
260
+ */
261
+ argo_cvg: {
262
+ /** skip sample rate check */
263
+ skip_rate_check?: boolean | (string & {});
264
+ /** set loop flag */
265
+ loop?: boolean | (string & {});
266
+ /** set reverb flag */
267
+ reverb?: boolean | (string & {});
268
+ };
269
+ /**
270
+ * ASF (Advanced / Active Streaming Format)
271
+ * @see https://ffmpeg.org/ffmpeg-formats.html#asf
272
+ */
273
+ asf: {
274
+ /** Packet size */
275
+ packet_size?: number | (string & {});
276
+ };
277
+ /**
278
+ * ASF (Advanced / Active Streaming Format)
279
+ * @see https://ffmpeg.org/ffmpeg-formats.html#asf_005fstream
280
+ */
281
+ asf_stream: {
282
+ /** Packet size */
283
+ packet_size?: number | (string & {});
284
+ };
285
+ /**
286
+ * SSA (SubStation Alpha) subtitle
287
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ass
288
+ */
289
+ ass: {
290
+ /** write events immediately, even if they're out-of-order */
291
+ ignore_readorder?: boolean | (string & {});
292
+ };
293
+ /**
294
+ * AST (Audio Stream)
295
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ast
296
+ */
297
+ ast: {
298
+ /** Loopstart position in milliseconds. */
299
+ loopstart?: number | (string & {});
300
+ /** Loopend position in milliseconds. */
301
+ loopend?: number | (string & {});
302
+ };
303
+ /**
304
+ * AVI (Audio Video Interleaved)
305
+ * @see https://ffmpeg.org/ffmpeg-formats.html#avi
306
+ */
307
+ avi: {
308
+ /** reserve space (in bytes) at the beginning of the file for each stream index */
309
+ reserve_index_space?: number | (string & {});
310
+ /** write channel mask into wave format header */
311
+ write_channel_mask?: boolean | (string & {});
312
+ /** Raw RGB bitmaps are stored bottom-up */
313
+ flipped_raw_rgb?: boolean | (string & {});
314
+ };
315
+ /**
316
+ * AVIF
317
+ * @see https://ffmpeg.org/ffmpeg-formats.html#avif
318
+ */
319
+ avif: {
320
+ /** set movie timescale */
321
+ movie_timescale?: number | (string & {});
322
+ /** Number of times to loop animated AVIF: 0 - infinite loop */
323
+ loop?: number | (string & {});
324
+ };
325
+ /**
326
+ * Chromaprint
327
+ * @see https://ffmpeg.org/ffmpeg-formats.html#chromaprint
328
+ */
329
+ chromaprint: {
330
+ /** threshold for detecting silence */
331
+ silence_threshold?: number | (string & {});
332
+ /** version of the fingerprint algorithm */
333
+ algorithm?: number | (string & {});
334
+ /** fingerprint format to write */
335
+ fp_format?: 'raw' | 'compressed' | 'base64' | (string & {}) | number;
336
+ };
337
+ /**
338
+ * DASH Muxer
339
+ * @see https://ffmpeg.org/ffmpeg-formats.html#dash
340
+ */
341
+ dash: {
342
+ /** Adaptation sets. Syntax: id=0,streams=0,1,2 id=1,streams=3,4 and so on */
343
+ adaptation_sets?: string | number;
344
+ /** set dash segment files type */
345
+ dash_segment_type?: 'auto' | 'mp4' | 'webm' | (string & {}) | number;
346
+ /** number of segments kept outside of the manifest before removing from disk */
347
+ extra_window_size?: number | (string & {});
348
+ /** set list of options for the container format (mp4/webm) used for dash */
349
+ format_options?: string | number;
350
+ /** fragment duration (in seconds, fractional value can be set) */
351
+ frag_duration?: string | number;
352
+ /** set type of interval for fragments */
353
+ frag_type?: 'none' | 'every_frame' | 'duration' | 'pframes' | (string & {}) | number;
354
+ /** Write global SIDX atom. Applicable only for single file, mp4 output, non-streaming mode */
355
+ global_sidx?: boolean | (string & {});
356
+ /** HLS master playlist name */
357
+ hls_master_name?: string | number;
358
+ /** Generate HLS playlist files(master.m3u8, media_%d.m3u8) */
359
+ hls_playlist?: boolean | (string & {});
360
+ /** HTTP protocol options */
361
+ http_opts?: string | number;
362
+ /** Use persistent HTTP connections */
363
+ http_persistent?: boolean | (string & {});
364
+ /** override User-Agent field in HTTP header */
365
+ http_user_agent?: string | number;
366
+ /** Ignore IO errors during open and write. Useful for long-duration runs with network output */
367
+ ignore_io_errors?: boolean | (string & {});
368
+ /** Enable/Disable segment index correction logic */
369
+ index_correction?: boolean | (string & {});
370
+ /** DASH-templated name to used for the initialization segment */
371
+ init_seg_name?: string | number;
372
+ /** Enable Low-latency dash. Constrains the value of a few elements */
373
+ ldash?: boolean | (string & {});
374
+ /** Enable Low-latency HLS(Experimental). Adds #EXT-X-PREFETCH tag with current segment's URI */
375
+ lhls?: boolean | (string & {});
376
+ /** Publish master playlist every after this many segment intervals */
377
+ master_m3u8_publish_rate?: number | (string & {});
378
+ /** Set desired maximum playback rate */
379
+ max_playback_rate?: string | number;
380
+ /** DASH-templated name to used for the media segments */
381
+ media_seg_name?: string | number;
382
+ /** set the HTTP method */
383
+ method?: string | number;
384
+ /** Set desired minimum playback rate */
385
+ min_playback_rate?: string | number;
386
+ /** Set profiles. Elements and values used in the manifest may be constrained by them */
387
+ mpd_profile?: 'dash' | 'dvb_dash' | (string & {}) | number;
388
+ /** remove all segments when finished */
389
+ remove_at_exit?: boolean | (string & {});
390
+ /** segment duration (in seconds, fractional value can be set) */
391
+ seg_duration?: string | number;
392
+ /** Store all segments in one file, accessed using byte ranges */
393
+ single_file?: boolean | (string & {});
394
+ /** DASH-templated name to be used for baseURL. Implies storing all segments in one file, accessed using byte ranges */
395
+ single_file_name?: string | number;
396
+ /** Enable/Disable streaming mode of output. Each frame will be moof fragment */
397
+ streaming?: boolean | (string & {});
398
+ /** Set desired target latency for Low-latency dash */
399
+ target_latency?: string | number;
400
+ /** set timeout for socket I/O operations */
401
+ timeout?: string | number;
402
+ /** Set the mpd update interval */
403
+ update_period?: number | (string & {});
404
+ /** Use SegmentTemplate instead of SegmentList */
405
+ use_template?: boolean | (string & {});
406
+ /** Use SegmentTimeline in SegmentTemplate */
407
+ use_timeline?: boolean | (string & {});
408
+ /** URL of the page that will return the UTC timestamp in ISO format */
409
+ utc_timing_url?: string | number;
410
+ /** number of segments kept in the manifest */
411
+ window_size?: number | (string & {});
412
+ /** Write producer reference time element */
413
+ write_prft?: boolean | (string & {});
414
+ };
415
+ /**
416
+ * MPEG-2 PS (DVD VOB)
417
+ * @see https://ffmpeg.org/ffmpeg-formats.html#dvd
418
+ */
419
+ dvd: {
420
+ /** mux rate as bits/s */
421
+ muxrate?: number | (string & {});
422
+ /** initial demux-decode delay in microseconds */
423
+ preload?: number | (string & {});
424
+ };
425
+ /**
426
+ * F4V Adobe Flash Video
427
+ * @see https://ffmpeg.org/ffmpeg-formats.html#f4v
428
+ */
429
+ f4v: {
430
+ /** Override major brand */
431
+ brand?: string | number;
432
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
433
+ empty_hdlr_name?: boolean | (string & {});
434
+ /** The media encryption key (hex) */
435
+ encryption_key?: string | number;
436
+ /** The media encryption key identifier (hex) */
437
+ encryption_kid?: string | number;
438
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
439
+ encryption_scheme?: string | number;
440
+ /** Maximum fragment duration */
441
+ frag_duration?: number | (string & {});
442
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
443
+ frag_interleave?: number | (string & {});
444
+ /** Maximum fragment size */
445
+ frag_size?: number | (string & {});
446
+ /** Fragment number of the next fragment */
447
+ fragment_index?: number | (string & {});
448
+ /** iods audio profile atom. */
449
+ iods_audio_profile?: number | (string & {});
450
+ /** iods video profile atom. */
451
+ iods_video_profile?: number | (string & {});
452
+ /** Number of lookahead entries for ISM files */
453
+ ism_lookahead?: number | (string & {});
454
+ /** MOV muxer flags */
455
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
456
+ /** maximum moov size so it can be placed at the begin */
457
+ moov_size?: number | (string & {});
458
+ /** Minimum fragment duration */
459
+ min_frag_duration?: number | (string & {});
460
+ /** gamma value for gama atom */
461
+ mov_gamma?: number | (string & {});
462
+ /** set movie timescale */
463
+ movie_timescale?: number | (string & {});
464
+ /** RTP muxer flags */
465
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
466
+ /** Skip writing iods atom. */
467
+ skip_iods?: boolean | (string & {});
468
+ /** use edit list */
469
+ use_editlist?: boolean | (string & {});
470
+ /** use stream ids as track ids */
471
+ use_stream_ids_as_track_ids?: boolean | (string & {});
472
+ /** set timescale of all video tracks */
473
+ video_track_timescale?: number | (string & {});
474
+ /** force or disable writing btrt */
475
+ write_btrt?: boolean | (string & {});
476
+ /** Write producer reference time box with specified time source */
477
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
478
+ /** force or disable writing tmcd */
479
+ write_tmcd?: boolean | (string & {});
480
+ };
481
+ /**
482
+ * FIFO queue pseudo-muxer
483
+ * @see https://ffmpeg.org/ffmpeg-formats.html#fifo
484
+ */
485
+ fifo: {
486
+ /** Attempt recovery in case of failure */
487
+ attempt_recovery?: boolean | (string & {});
488
+ /** Drop packets on fifo queue overflow not to block encoder */
489
+ drop_pkts_on_overflow?: boolean | (string & {});
490
+ /** Target muxer */
491
+ fifo_format?: string | number;
492
+ /** Options to be passed to underlying muxer */
493
+ format_opts?: string | number;
494
+ /** Maximal number of recovery attempts */
495
+ max_recovery_attempts?: number | (string & {});
496
+ /** Size of fifo queue */
497
+ queue_size?: number | (string & {});
498
+ /** Use stream time instead of real time while waiting for recovery */
499
+ recovery_wait_streamtime?: boolean | (string & {});
500
+ /** Waiting time between recovery attempts */
501
+ recovery_wait_time?: string | number;
502
+ /** Attempt recovery regardless of type of the error */
503
+ recover_any_error?: boolean | (string & {});
504
+ /** Wait for keyframe when restarting output */
505
+ restart_with_keyframe?: boolean | (string & {});
506
+ /** Delay fifo output */
507
+ timeshift?: string | number;
508
+ };
509
+ /**
510
+ * Fifo test muxer
511
+ * @see https://ffmpeg.org/ffmpeg-formats.html#fifo_005ftest
512
+ */
513
+ fifo_test: {
514
+ /** write_header() return value */
515
+ write_header_ret?: number | (string & {});
516
+ /** write_trailer() return value */
517
+ write_trailer_ret?: number | (string & {});
518
+ /** print summary when deinitializing muxer */
519
+ print_deinit_summary?: boolean | (string & {});
520
+ };
521
+ /**
522
+ * raw FLAC
523
+ * @see https://ffmpeg.org/ffmpeg-formats.html#flac
524
+ */
525
+ flac: {
526
+ /** Write the file header */
527
+ write_header?: boolean | (string & {});
528
+ };
529
+ /**
530
+ * FLV (Flash Video)
531
+ * @see https://ffmpeg.org/ffmpeg-formats.html#flv
532
+ */
533
+ flv: {
534
+ /** FLV muxer flags */
535
+ flvflags?: 'aac_seq_header_detect' | 'no_sequence_end' | 'no_metadata' | 'no_duration_filesize' | 'add_keyframe_index' | (string & {}) | number;
536
+ };
537
+ /**
538
+ * Per-frame hash testing
539
+ * @see https://ffmpeg.org/ffmpeg-formats.html#framehash
540
+ */
541
+ framehash: {
542
+ /** set hash to use */
543
+ hash?: string | number;
544
+ /** file format version */
545
+ format_version?: number | (string & {});
546
+ };
547
+ /**
548
+ * Per-frame MD5 testing
549
+ * @see https://ffmpeg.org/ffmpeg-formats.html#framemd5
550
+ */
551
+ framemd5: {
552
+ /** set hash to use */
553
+ hash?: string | number;
554
+ /** file format version */
555
+ format_version?: number | (string & {});
556
+ };
557
+ /**
558
+ * CompuServe Graphics Interchange Format (GIF)
559
+ * @see https://ffmpeg.org/ffmpeg-formats.html#gif
560
+ */
561
+ gif: {
562
+ /** Number of times to loop the output: -1 - no loop, 0 - infinite loop */
563
+ loop?: number | (string & {});
564
+ /** Force delay (in centiseconds) after the last frame */
565
+ final_delay?: number | (string & {});
566
+ };
567
+ /**
568
+ * Hash testing
569
+ * @see https://ffmpeg.org/ffmpeg-formats.html#hash
570
+ */
571
+ hash: {
572
+ /** set hash to use */
573
+ hash?: string | number;
574
+ };
575
+ /**
576
+ * HDS Muxer
577
+ * @see https://ffmpeg.org/ffmpeg-formats.html#hds
578
+ */
579
+ hds: {
580
+ /** number of fragments kept in the manifest */
581
+ window_size?: number | (string & {});
582
+ /** number of fragments kept outside of the manifest before removing from disk */
583
+ extra_window_size?: number | (string & {});
584
+ /** minimum fragment duration (in microseconds) */
585
+ min_frag_duration?: number | (string & {});
586
+ /** remove all fragments when finished */
587
+ remove_at_exit?: boolean | (string & {});
588
+ };
589
+ /**
590
+ * Apple HTTP Live Streaming
591
+ * @see https://ffmpeg.org/ffmpeg-formats.html#hls
592
+ */
593
+ hls: {
594
+ /** set first number in the sequence */
595
+ start_number?: number | (string & {});
596
+ /** set segment length */
597
+ hls_time?: string | number;
598
+ /** set segment length at init list */
599
+ hls_init_time?: string | number;
600
+ /** set maximum number of playlist entries */
601
+ hls_list_size?: number | (string & {});
602
+ /** set number of unreferenced segments to keep before deleting */
603
+ hls_delete_threshold?: number | (string & {});
604
+ /** set hls vtt list of options for the container format used for hls */
605
+ hls_vtt_options?: string | number;
606
+ /** explicitly set whether the client MAY (1) or MUST NOT (0) cache media segments */
607
+ hls_allow_cache?: number | (string & {});
608
+ /** url to prepend to each playlist entry */
609
+ hls_base_url?: string | number;
610
+ /** filename template for segment files */
611
+ hls_segment_filename?: string | number;
612
+ /** set segments files format options of hls */
613
+ hls_segment_options?: string | number;
614
+ /** maximum size per segment file, (in bytes) */
615
+ hls_segment_size?: number | (string & {});
616
+ /** file with key URI and key file path */
617
+ hls_key_info_file?: string | number;
618
+ /** enable AES128 encryption support */
619
+ hls_enc?: boolean | (string & {});
620
+ /** hex-coded 16 byte key to encrypt the segments */
621
+ hls_enc_key?: string | number;
622
+ /** url to access the key to decrypt the segments */
623
+ hls_enc_key_url?: string | number;
624
+ /** hex-coded 16 byte initialization vector */
625
+ hls_enc_iv?: string | number;
626
+ /** set path of hls subtitles */
627
+ hls_subtitle_path?: string | number;
628
+ /** set hls segment files type */
629
+ hls_segment_type?: 'mpegts' | 'fmp4' | (string & {}) | number;
630
+ /** set fragment mp4 file init filename */
631
+ hls_fmp4_init_filename?: string | number;
632
+ /** resend fragment mp4 init file after refresh m3u8 every time */
633
+ hls_fmp4_init_resend?: boolean | (string & {});
634
+ /** set flags affecting HLS playlist and media file generation */
635
+ hls_flags?: 'single_file' | 'temp_file' | 'delete_segments' | 'round_durations' | 'discont_start' | 'omit_endlist' | 'split_by_time' | 'append_list' | 'program_date_time' | 'second_level_segment_index' | 'second_level_segment_duration' | 'second_level_segment_size' | 'periodic_rekey' | 'independent_segments' | 'iframes_only' | (string & {}) | number;
636
+ /** set filename expansion with strftime at segment creation */
637
+ strftime?: boolean | (string & {});
638
+ /** create last directory component in strftime-generated filename */
639
+ strftime_mkdir?: boolean | (string & {});
640
+ /** set the HLS playlist type */
641
+ hls_playlist_type?: 'event' | 'vod' | (string & {}) | number;
642
+ /** set the HTTP method(default: PUT) */
643
+ method?: string | number;
644
+ /** set source of first number in sequence */
645
+ hls_start_number_source?: 'generic' | 'epoch' | 'epoch_us' | 'datetime' | (string & {}) | number;
646
+ /** override User-Agent field in HTTP header */
647
+ http_user_agent?: string | number;
648
+ /** Variant stream map string */
649
+ var_stream_map?: string | number;
650
+ /** Closed captions stream map string */
651
+ cc_stream_map?: string | number;
652
+ /** Create HLS master playlist with this name */
653
+ master_pl_name?: string | number;
654
+ /** Publish master play list every after this many segment intervals */
655
+ master_pl_publish_rate?: number | (string & {});
656
+ /** Use persistent HTTP connections */
657
+ http_persistent?: boolean | (string & {});
658
+ /** set timeout for socket I/O operations */
659
+ timeout?: string | number;
660
+ /** Ignore IO errors for stable long-duration runs with network output */
661
+ ignore_io_errors?: boolean | (string & {});
662
+ /** set custom HTTP headers, can override built in default headers */
663
+ headers?: string | number;
664
+ };
665
+ /**
666
+ * image2 sequence
667
+ * @see https://ffmpeg.org/ffmpeg-formats.html#image2
668
+ */
669
+ image2: {
670
+ /** continuously overwrite one file */
671
+ update?: boolean | (string & {});
672
+ /** set first number in the sequence */
673
+ start_number?: number | (string & {});
674
+ /** use strftime for filename */
675
+ strftime?: boolean | (string & {});
676
+ /** use current frame pts for filename */
677
+ frame_pts?: boolean | (string & {});
678
+ /** write files atomically (using temporary files and renames) */
679
+ atomic_writing?: boolean | (string & {});
680
+ /** specify protocol options for the opened files */
681
+ protocol_opts?: string | number;
682
+ };
683
+ /**
684
+ * iPod H.264 MP4 (MPEG-4 Part 14)
685
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ipod
686
+ */
687
+ ipod: {
688
+ /** Override major brand */
689
+ brand?: string | number;
690
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
691
+ empty_hdlr_name?: boolean | (string & {});
692
+ /** The media encryption key (hex) */
693
+ encryption_key?: string | number;
694
+ /** The media encryption key identifier (hex) */
695
+ encryption_kid?: string | number;
696
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
697
+ encryption_scheme?: string | number;
698
+ /** Maximum fragment duration */
699
+ frag_duration?: number | (string & {});
700
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
701
+ frag_interleave?: number | (string & {});
702
+ /** Maximum fragment size */
703
+ frag_size?: number | (string & {});
704
+ /** Fragment number of the next fragment */
705
+ fragment_index?: number | (string & {});
706
+ /** iods audio profile atom. */
707
+ iods_audio_profile?: number | (string & {});
708
+ /** iods video profile atom. */
709
+ iods_video_profile?: number | (string & {});
710
+ /** Number of lookahead entries for ISM files */
711
+ ism_lookahead?: number | (string & {});
712
+ /** MOV muxer flags */
713
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
714
+ /** maximum moov size so it can be placed at the begin */
715
+ moov_size?: number | (string & {});
716
+ /** Minimum fragment duration */
717
+ min_frag_duration?: number | (string & {});
718
+ /** gamma value for gama atom */
719
+ mov_gamma?: number | (string & {});
720
+ /** set movie timescale */
721
+ movie_timescale?: number | (string & {});
722
+ /** RTP muxer flags */
723
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
724
+ /** Skip writing iods atom. */
725
+ skip_iods?: boolean | (string & {});
726
+ /** use edit list */
727
+ use_editlist?: boolean | (string & {});
728
+ /** use stream ids as track ids */
729
+ use_stream_ids_as_track_ids?: boolean | (string & {});
730
+ /** set timescale of all video tracks */
731
+ video_track_timescale?: number | (string & {});
732
+ /** force or disable writing btrt */
733
+ write_btrt?: boolean | (string & {});
734
+ /** Write producer reference time box with specified time source */
735
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
736
+ /** force or disable writing tmcd */
737
+ write_tmcd?: boolean | (string & {});
738
+ };
739
+ /**
740
+ * ISMV/ISMA (Smooth Streaming)
741
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ismv
742
+ */
743
+ ismv: {
744
+ /** Override major brand */
745
+ brand?: string | number;
746
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
747
+ empty_hdlr_name?: boolean | (string & {});
748
+ /** The media encryption key (hex) */
749
+ encryption_key?: string | number;
750
+ /** The media encryption key identifier (hex) */
751
+ encryption_kid?: string | number;
752
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
753
+ encryption_scheme?: string | number;
754
+ /** Maximum fragment duration */
755
+ frag_duration?: number | (string & {});
756
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
757
+ frag_interleave?: number | (string & {});
758
+ /** Maximum fragment size */
759
+ frag_size?: number | (string & {});
760
+ /** Fragment number of the next fragment */
761
+ fragment_index?: number | (string & {});
762
+ /** iods audio profile atom. */
763
+ iods_audio_profile?: number | (string & {});
764
+ /** iods video profile atom. */
765
+ iods_video_profile?: number | (string & {});
766
+ /** Number of lookahead entries for ISM files */
767
+ ism_lookahead?: number | (string & {});
768
+ /** MOV muxer flags */
769
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
770
+ /** maximum moov size so it can be placed at the begin */
771
+ moov_size?: number | (string & {});
772
+ /** Minimum fragment duration */
773
+ min_frag_duration?: number | (string & {});
774
+ /** gamma value for gama atom */
775
+ mov_gamma?: number | (string & {});
776
+ /** set movie timescale */
777
+ movie_timescale?: number | (string & {});
778
+ /** RTP muxer flags */
779
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
780
+ /** Skip writing iods atom. */
781
+ skip_iods?: boolean | (string & {});
782
+ /** use edit list */
783
+ use_editlist?: boolean | (string & {});
784
+ /** use stream ids as track ids */
785
+ use_stream_ids_as_track_ids?: boolean | (string & {});
786
+ /** set timescale of all video tracks */
787
+ video_track_timescale?: number | (string & {});
788
+ /** force or disable writing btrt */
789
+ write_btrt?: boolean | (string & {});
790
+ /** Write producer reference time box with specified time source */
791
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
792
+ /** force or disable writing tmcd */
793
+ write_tmcd?: boolean | (string & {});
794
+ };
795
+ /**
796
+ * LOAS/LATM
797
+ * @see https://ffmpeg.org/ffmpeg-formats.html#latm
798
+ */
799
+ latm: {
800
+ /** StreamMuxConfig interval. */
801
+ 'smc-interval'?: number | (string & {});
802
+ };
803
+ /**
804
+ * LRC lyrics
805
+ * @see https://ffmpeg.org/ffmpeg-formats.html#lrc
806
+ */
807
+ lrc: {
808
+ /** precision of the fractional part of the timestamp, 2 for centiseconds */
809
+ precision?: number | (string & {});
810
+ };
811
+ /**
812
+ * Matroska Audio
813
+ * @see https://ffmpeg.org/ffmpeg-formats.html#matroska
814
+ */
815
+ matroska: {
816
+ /** reserve a given amount of space (in bytes) at the beginning of the file for the index (cues) */
817
+ reserve_index_space?: number | (string & {});
818
+ /** move Cues (the index) to the front by shifting data if necessary */
819
+ cues_to_front?: boolean | (string & {});
820
+ /** store at most the provided amount of bytes in a cluster */
821
+ cluster_size_limit?: number | (string & {});
822
+ /** store at most the provided number of milliseconds in a cluster */
823
+ cluster_time_limit?: number | (string & {});
824
+ /** create a WebM file conforming to WebM DASH specification */
825
+ dash?: boolean | (string & {});
826
+ /** track number for the DASH stream */
827
+ dash_track_number?: number | (string & {});
828
+ /** write files assuming it is a live stream */
829
+ live?: boolean | (string & {});
830
+ /** allow raw VFW mode */
831
+ allow_raw_vfw?: boolean | (string & {});
832
+ /** store raw RGB bitmaps in VFW mode in bottom-up mode */
833
+ flipped_raw_rgb?: boolean | (string & {});
834
+ /** write a CRC32 element inside every Level 1 element */
835
+ write_crc32?: boolean | (string & {});
836
+ /** control how a track's FlagDefault is inferred */
837
+ default_mode?: 'infer' | 'infer_no_subs' | 'passthrough' | (string & {}) | number;
838
+ };
839
+ /**
840
+ * MacCaption
841
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mcc
842
+ */
843
+ mcc: {
844
+ /** override the `Time Code Rate` value in the output */
845
+ override_time_code_rate?: string | number;
846
+ /** use the U alias for E1h 00h 00h 00h, disabled by default because some .mcc files disagree on whether it has 2 or 3 zero bytes */
847
+ use_u_alias?: boolean | (string & {});
848
+ /** the mcc file format version */
849
+ mcc_version?: number | (string & {});
850
+ /** the creation program */
851
+ creation_program?: string | number;
852
+ /** the creation time */
853
+ creation_time?: string | number;
854
+ };
855
+ /**
856
+ * MD5 testing
857
+ * @see https://ffmpeg.org/ffmpeg-formats.html#md5
858
+ */
859
+ md5: {
860
+ /** set hash to use */
861
+ hash?: string | number;
862
+ };
863
+ /**
864
+ * QuickTime / MOV
865
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mov
866
+ */
867
+ mov: {
868
+ /** Override major brand */
869
+ brand?: string | number;
870
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
871
+ empty_hdlr_name?: boolean | (string & {});
872
+ /** The media encryption key (hex) */
873
+ encryption_key?: string | number;
874
+ /** The media encryption key identifier (hex) */
875
+ encryption_kid?: string | number;
876
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
877
+ encryption_scheme?: string | number;
878
+ /** Maximum fragment duration */
879
+ frag_duration?: number | (string & {});
880
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
881
+ frag_interleave?: number | (string & {});
882
+ /** Maximum fragment size */
883
+ frag_size?: number | (string & {});
884
+ /** Fragment number of the next fragment */
885
+ fragment_index?: number | (string & {});
886
+ /** iods audio profile atom. */
887
+ iods_audio_profile?: number | (string & {});
888
+ /** iods video profile atom. */
889
+ iods_video_profile?: number | (string & {});
890
+ /** Number of lookahead entries for ISM files */
891
+ ism_lookahead?: number | (string & {});
892
+ /** MOV muxer flags */
893
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
894
+ /** maximum moov size so it can be placed at the begin */
895
+ moov_size?: number | (string & {});
896
+ /** Minimum fragment duration */
897
+ min_frag_duration?: number | (string & {});
898
+ /** gamma value for gama atom */
899
+ mov_gamma?: number | (string & {});
900
+ /** set movie timescale */
901
+ movie_timescale?: number | (string & {});
902
+ /** RTP muxer flags */
903
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
904
+ /** Skip writing iods atom. */
905
+ skip_iods?: boolean | (string & {});
906
+ /** use edit list */
907
+ use_editlist?: boolean | (string & {});
908
+ /** use stream ids as track ids */
909
+ use_stream_ids_as_track_ids?: boolean | (string & {});
910
+ /** set timescale of all video tracks */
911
+ video_track_timescale?: number | (string & {});
912
+ /** force or disable writing btrt */
913
+ write_btrt?: boolean | (string & {});
914
+ /** Write producer reference time box with specified time source */
915
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
916
+ /** force or disable writing tmcd */
917
+ write_tmcd?: boolean | (string & {});
918
+ };
919
+ /**
920
+ * MP3 (MPEG audio layer 3)
921
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mp3
922
+ */
923
+ mp3: {
924
+ /** Select ID3v2 version to write. Currently 3 and 4 are supported. */
925
+ id3v2_version?: number | (string & {});
926
+ /** Enable ID3v1 writing. ID3v1 tags are written in UTF-8 which may not be supported by most software. */
927
+ write_id3v1?: boolean | (string & {});
928
+ /** Write the Xing header containing file duration. */
929
+ write_xing?: boolean | (string & {});
930
+ };
931
+ /**
932
+ * MP4 (MPEG-4 Part 14)
933
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mp4
934
+ */
935
+ mp4: {
936
+ /** Override major brand */
937
+ brand?: string | number;
938
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
939
+ empty_hdlr_name?: boolean | (string & {});
940
+ /** The media encryption key (hex) */
941
+ encryption_key?: string | number;
942
+ /** The media encryption key identifier (hex) */
943
+ encryption_kid?: string | number;
944
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
945
+ encryption_scheme?: string | number;
946
+ /** Maximum fragment duration */
947
+ frag_duration?: number | (string & {});
948
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
949
+ frag_interleave?: number | (string & {});
950
+ /** Maximum fragment size */
951
+ frag_size?: number | (string & {});
952
+ /** Fragment number of the next fragment */
953
+ fragment_index?: number | (string & {});
954
+ /** iods audio profile atom. */
955
+ iods_audio_profile?: number | (string & {});
956
+ /** iods video profile atom. */
957
+ iods_video_profile?: number | (string & {});
958
+ /** Number of lookahead entries for ISM files */
959
+ ism_lookahead?: number | (string & {});
960
+ /** MOV muxer flags */
961
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
962
+ /** maximum moov size so it can be placed at the begin */
963
+ moov_size?: number | (string & {});
964
+ /** Minimum fragment duration */
965
+ min_frag_duration?: number | (string & {});
966
+ /** gamma value for gama atom */
967
+ mov_gamma?: number | (string & {});
968
+ /** set movie timescale */
969
+ movie_timescale?: number | (string & {});
970
+ /** RTP muxer flags */
971
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
972
+ /** Skip writing iods atom. */
973
+ skip_iods?: boolean | (string & {});
974
+ /** use edit list */
975
+ use_editlist?: boolean | (string & {});
976
+ /** use stream ids as track ids */
977
+ use_stream_ids_as_track_ids?: boolean | (string & {});
978
+ /** set timescale of all video tracks */
979
+ video_track_timescale?: number | (string & {});
980
+ /** force or disable writing btrt */
981
+ write_btrt?: boolean | (string & {});
982
+ /** Write producer reference time box with specified time source */
983
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
984
+ /** force or disable writing tmcd */
985
+ write_tmcd?: boolean | (string & {});
986
+ };
987
+ /**
988
+ * MPEG-1 Systems / MPEG program stream
989
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mpeg
990
+ */
991
+ mpeg: {
992
+ /** mux rate as bits/s */
993
+ muxrate?: number | (string & {});
994
+ /** initial demux-decode delay in microseconds */
995
+ preload?: number | (string & {});
996
+ };
997
+ /**
998
+ * MPEG-TS (MPEG-2 Transport Stream)
999
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mpegts
1000
+ */
1001
+ mpegts: {
1002
+ /** Set transport_stream_id field. */
1003
+ mpegts_transport_stream_id?: number | (string & {});
1004
+ /** Set original_network_id field. */
1005
+ mpegts_original_network_id?: number | (string & {});
1006
+ /** Set service_id field. */
1007
+ mpegts_service_id?: number | (string & {});
1008
+ /** Set service_type field. */
1009
+ mpegts_service_type?: 'digital_tv' | 'digital_radio' | 'teletext' | 'advanced_codec_digital_radio' | 'mpeg2_digital_hdtv' | 'advanced_codec_digital_sdtv' | 'advanced_codec_digital_hdtv' | 'hevc_digital_hdtv' | (string & {}) | number;
1010
+ /** Set the first pid of the PMT. */
1011
+ mpegts_pmt_start_pid?: number | (string & {});
1012
+ /** Set the first pid. */
1013
+ mpegts_start_pid?: number | (string & {});
1014
+ /** Enable m2ts mode. */
1015
+ mpegts_m2ts_mode?: boolean | (string & {});
1016
+ muxrate?: number | (string & {});
1017
+ /** Minimum PES packet payload in bytes */
1018
+ pes_payload_size?: number | (string & {});
1019
+ /** MPEG-TS muxing flags */
1020
+ mpegts_flags?: 'resend_headers' | 'latm' | 'pat_pmt_at_frames' | 'system_b' | 'initial_discontinuity' | 'nit' | 'omit_rai' | (string & {}) | number;
1021
+ /** don't offset dts/pts */
1022
+ mpegts_copyts?: boolean | (string & {});
1023
+ /** set PAT, PMT, SDT and NIT version */
1024
+ tables_version?: number | (string & {});
1025
+ /** Omit the PES packet length for video packets */
1026
+ omit_video_pes_length?: boolean | (string & {});
1027
+ /** PCR retransmission time in milliseconds */
1028
+ pcr_period?: number | (string & {});
1029
+ /** PAT/PMT retransmission time limit in seconds */
1030
+ pat_period?: string | number;
1031
+ /** SDT retransmission time limit in seconds */
1032
+ sdt_period?: string | number;
1033
+ /** NIT retransmission time limit in seconds */
1034
+ nit_period?: string | number;
1035
+ };
1036
+ /**
1037
+ * MIME multipart JPEG
1038
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mpjpeg
1039
+ */
1040
+ mpjpeg: {
1041
+ /** Boundary tag */
1042
+ boundary_tag?: string | number;
1043
+ };
1044
+ /**
1045
+ * MXF (Material eXchange Format)
1046
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mxf
1047
+ */
1048
+ mxf: {
1049
+ /** Force/set Signal Standard */
1050
+ signal_standard?: 'bt601' | 'bt1358' | 'smpte347m' | 'smpte274m' | 'smpte296m' | 'smpte349m' | 'smpte428' | (string & {}) | number;
1051
+ store_user_comments?: boolean | (string & {});
1052
+ };
1053
+ /**
1054
+ * MXF (Material eXchange Format) D-10 Mapping
1055
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mxf_005fd10
1056
+ */
1057
+ mxf_d10: {
1058
+ /** Force/set channelcount in generic sound essence descriptor */
1059
+ d10_channelcount?: number | (string & {});
1060
+ /** Force/set Signal Standard */
1061
+ signal_standard?: 'bt601' | 'bt1358' | 'smpte347m' | 'smpte274m' | 'smpte296m' | 'smpte349m' | 'smpte428' | (string & {}) | number;
1062
+ store_user_comments?: boolean | (string & {});
1063
+ };
1064
+ /**
1065
+ * MXF (Material eXchange Format) Operational Pattern Atom
1066
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mxf_005fopatom
1067
+ */
1068
+ mxf_opatom: {
1069
+ /** Audio edit rate for timecode */
1070
+ mxf_audio_edit_rate?: string | number;
1071
+ /** Force/set Signal Standard */
1072
+ signal_standard?: 'bt601' | 'bt1358' | 'smpte347m' | 'smpte274m' | 'smpte296m' | 'smpte349m' | 'smpte428' | (string & {}) | number;
1073
+ store_user_comments?: boolean | (string & {});
1074
+ };
1075
+ /**
1076
+ * NUT
1077
+ * @see https://ffmpeg.org/ffmpeg-formats.html#nut
1078
+ */
1079
+ nut: {
1080
+ /** NUT syncpoint behaviour */
1081
+ syncpoints?: 'default' | 'none' | 'timestamped' | (string & {}) | number;
1082
+ /** Write index */
1083
+ write_index?: boolean | (string & {});
1084
+ };
1085
+ /**
1086
+ * Ogg Audio
1087
+ * @see https://ffmpeg.org/ffmpeg-formats.html#oga
1088
+ */
1089
+ oga: {
1090
+ /** serial number offset */
1091
+ serial_offset?: number | (string & {});
1092
+ /** Set preferred Ogg page size. */
1093
+ oggpagesize?: number | (string & {});
1094
+ /** preferred page size in bytes */
1095
+ pagesize?: number | (string & {});
1096
+ /** preferred page duration, in microseconds */
1097
+ page_duration?: number | (string & {});
1098
+ };
1099
+ /**
1100
+ * Ogg
1101
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ogg
1102
+ */
1103
+ ogg: {
1104
+ /** serial number offset */
1105
+ serial_offset?: number | (string & {});
1106
+ /** Set preferred Ogg page size. */
1107
+ oggpagesize?: number | (string & {});
1108
+ /** preferred page size in bytes */
1109
+ pagesize?: number | (string & {});
1110
+ /** preferred page duration, in microseconds */
1111
+ page_duration?: number | (string & {});
1112
+ };
1113
+ /**
1114
+ * Ogg Video
1115
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ogv
1116
+ */
1117
+ ogv: {
1118
+ /** serial number offset */
1119
+ serial_offset?: number | (string & {});
1120
+ /** Set preferred Ogg page size. */
1121
+ oggpagesize?: number | (string & {});
1122
+ /** preferred page size in bytes */
1123
+ pagesize?: number | (string & {});
1124
+ /** preferred page duration, in microseconds */
1125
+ page_duration?: number | (string & {});
1126
+ };
1127
+ /**
1128
+ * Ogg Opus
1129
+ * @see https://ffmpeg.org/ffmpeg-formats.html#opus
1130
+ */
1131
+ opus: {
1132
+ /** serial number offset */
1133
+ serial_offset?: number | (string & {});
1134
+ /** Set preferred Ogg page size. */
1135
+ oggpagesize?: number | (string & {});
1136
+ /** preferred page size in bytes */
1137
+ pagesize?: number | (string & {});
1138
+ /** preferred page duration, in microseconds */
1139
+ page_duration?: number | (string & {});
1140
+ };
1141
+ /**
1142
+ * PlayDate Video
1143
+ * @see https://ffmpeg.org/ffmpeg-formats.html#pdv
1144
+ */
1145
+ pdv: {
1146
+ /** maximum number of frames reserved in table (mandatory) */
1147
+ max_frames?: number | (string & {});
1148
+ };
1149
+ /**
1150
+ * PSP MP4 (MPEG-4 Part 14)
1151
+ * @see https://ffmpeg.org/ffmpeg-formats.html#psp
1152
+ */
1153
+ psp: {
1154
+ /** Override major brand */
1155
+ brand?: string | number;
1156
+ /** write zero-length name string in hdlr atoms within mdia and minf atoms */
1157
+ empty_hdlr_name?: boolean | (string & {});
1158
+ /** The media encryption key (hex) */
1159
+ encryption_key?: string | number;
1160
+ /** The media encryption key identifier (hex) */
1161
+ encryption_kid?: string | number;
1162
+ /** Configures the encryption scheme, allowed values are none, cenc-aes-ctr */
1163
+ encryption_scheme?: string | number;
1164
+ /** Maximum fragment duration */
1165
+ frag_duration?: number | (string & {});
1166
+ /** Interleave samples within fragments (max number of consecutive samples, lower is tighter interleaving, but with more overhead) */
1167
+ frag_interleave?: number | (string & {});
1168
+ /** Maximum fragment size */
1169
+ frag_size?: number | (string & {});
1170
+ /** Fragment number of the next fragment */
1171
+ fragment_index?: number | (string & {});
1172
+ /** iods audio profile atom. */
1173
+ iods_audio_profile?: number | (string & {});
1174
+ /** iods video profile atom. */
1175
+ iods_video_profile?: number | (string & {});
1176
+ /** Number of lookahead entries for ISM files */
1177
+ ism_lookahead?: number | (string & {});
1178
+ /** MOV muxer flags */
1179
+ movflags?: 'cmaf' | 'dash' | 'default_base_moof' | 'delay_moov' | 'disable_chpl' | 'empty_moov' | 'faststart' | 'frag_custom' | 'frag_discont' | 'frag_every_frame' | 'frag_keyframe' | 'global_sidx' | 'isml' | 'negative_cts_offsets' | 'omit_tfhd_offset' | 'prefer_icc' | 'rtphint' | 'separate_moof' | 'skip_sidx' | 'skip_trailer' | 'use_metadata_tags' | 'write_colr' | 'write_gama' | 'hybrid_fragmented' | (string & {}) | number;
1180
+ /** maximum moov size so it can be placed at the begin */
1181
+ moov_size?: number | (string & {});
1182
+ /** Minimum fragment duration */
1183
+ min_frag_duration?: number | (string & {});
1184
+ /** gamma value for gama atom */
1185
+ mov_gamma?: number | (string & {});
1186
+ /** set movie timescale */
1187
+ movie_timescale?: number | (string & {});
1188
+ /** RTP muxer flags */
1189
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
1190
+ /** Skip writing iods atom. */
1191
+ skip_iods?: boolean | (string & {});
1192
+ /** use edit list */
1193
+ use_editlist?: boolean | (string & {});
1194
+ /** use stream ids as track ids */
1195
+ use_stream_ids_as_track_ids?: boolean | (string & {});
1196
+ /** set timescale of all video tracks */
1197
+ video_track_timescale?: number | (string & {});
1198
+ /** force or disable writing btrt */
1199
+ write_btrt?: boolean | (string & {});
1200
+ /** Write producer reference time box with specified time source */
1201
+ write_prft?: 'pts' | 'wallclock' | (string & {}) | number;
1202
+ /** force or disable writing tmcd */
1203
+ write_tmcd?: boolean | (string & {});
1204
+ };
1205
+ /**
1206
+ * RTP output
1207
+ * @see https://ffmpeg.org/ffmpeg-formats.html#rtp
1208
+ */
1209
+ rtp: {
1210
+ /** RTP muxer flags */
1211
+ rtpflags?: 'latm' | 'rfc2190' | 'skip_rtcp' | 'h264_mode0' | 'send_bye' | (string & {}) | number;
1212
+ /** Specify RTP payload type */
1213
+ payload_type?: number | (string & {});
1214
+ /** Stream identifier */
1215
+ ssrc?: number | (string & {});
1216
+ /** CNAME to include in RTCP SR packets */
1217
+ cname?: string | number;
1218
+ /** Starting sequence number */
1219
+ seq?: number | (string & {});
1220
+ };
1221
+ /**
1222
+ * RTP/mpegts output format
1223
+ * @see https://ffmpeg.org/ffmpeg-formats.html#rtp_005fmpegts
1224
+ */
1225
+ rtp_mpegts: {
1226
+ /** set list of options for the MPEG-TS muxer */
1227
+ mpegts_muxer_options?: string | number;
1228
+ /** set list of options for the RTP muxer */
1229
+ rtp_muxer_options?: string | number;
1230
+ };
1231
+ /**
1232
+ * segment
1233
+ * @see https://ffmpeg.org/ffmpeg-formats.html#segment
1234
+ */
1235
+ segment: {
1236
+ /** set reference stream */
1237
+ reference_stream?: string | number;
1238
+ /** set container format used for the segments */
1239
+ segment_format?: string | number;
1240
+ /** set list of options for the container format used for the segments */
1241
+ segment_format_options?: string | number;
1242
+ /** set the segment list filename */
1243
+ segment_list?: string | number;
1244
+ /** write a single file containing the header */
1245
+ segment_header_filename?: string | number;
1246
+ /** set flags affecting segment list generation */
1247
+ segment_list_flags?: 'cache' | 'live' | (string & {}) | number;
1248
+ /** set the maximum number of playlist entries */
1249
+ segment_list_size?: number | (string & {});
1250
+ /** set the segment list type */
1251
+ segment_list_type?: 'flat' | 'csv' | 'ext' | 'ffconcat' | 'm3u8' | 'hls' | (string & {}) | number;
1252
+ /** set segment to be cut at clocktime */
1253
+ segment_atclocktime?: boolean | (string & {});
1254
+ /** set segment clocktime offset */
1255
+ segment_clocktime_offset?: string | number;
1256
+ /** set segment clocktime wrapping duration */
1257
+ segment_clocktime_wrap_duration?: string | number;
1258
+ /** set segment duration */
1259
+ segment_time?: string | number;
1260
+ /** set approximation value used for the segment times */
1261
+ segment_time_delta?: string | number;
1262
+ /** set minimum segment duration */
1263
+ min_seg_duration?: string | number;
1264
+ /** set segment split time points */
1265
+ segment_times?: string | number;
1266
+ /** set segment split frame numbers */
1267
+ segment_frames?: string | number;
1268
+ /** set number after which the index wraps */
1269
+ segment_wrap?: number | (string & {});
1270
+ /** set base url prefix for segments */
1271
+ segment_list_entry_prefix?: string | number;
1272
+ /** set the sequence number of the first segment */
1273
+ segment_start_number?: number | (string & {});
1274
+ /** set the number of wrap before the first segment */
1275
+ segment_wrap_number?: number | (string & {});
1276
+ /** set filename expansion with strftime at segment creation */
1277
+ strftime?: boolean | (string & {});
1278
+ /** increment timecode between each segment */
1279
+ increment_tc?: boolean | (string & {});
1280
+ /** allow breaking segments on non-keyframes */
1281
+ break_non_keyframes?: boolean | (string & {});
1282
+ /** write header/trailer to each segment */
1283
+ individual_header_trailer?: boolean | (string & {});
1284
+ /** write a header to the first segment and a trailer to the last one */
1285
+ write_header_trailer?: boolean | (string & {});
1286
+ /** reset timestamps at the beginning of each segment */
1287
+ reset_timestamps?: boolean | (string & {});
1288
+ /** set initial timestamp offset */
1289
+ initial_offset?: string | number;
1290
+ /** allow writing empty 'filler' segments */
1291
+ write_empty_segments?: boolean | (string & {});
1292
+ };
1293
+ /**
1294
+ * Smooth Streaming Muxer
1295
+ * @see https://ffmpeg.org/ffmpeg-formats.html#smoothstreaming
1296
+ */
1297
+ smoothstreaming: {
1298
+ /** number of fragments kept in the manifest */
1299
+ window_size?: number | (string & {});
1300
+ /** number of fragments kept outside of the manifest before removing from disk */
1301
+ extra_window_size?: number | (string & {});
1302
+ /** number of lookahead fragments */
1303
+ lookahead_count?: number | (string & {});
1304
+ /** minimum fragment duration (in microseconds) */
1305
+ min_frag_duration?: number | (string & {});
1306
+ /** remove all fragments when finished */
1307
+ remove_at_exit?: boolean | (string & {});
1308
+ };
1309
+ /**
1310
+ * IEC 61937 (used on S/PDIF - IEC958)
1311
+ * @see https://ffmpeg.org/ffmpeg-formats.html#spdif
1312
+ */
1313
+ spdif: {
1314
+ /** IEC 61937 encapsulation flags */
1315
+ spdif_flags?: 'be' | (string & {}) | number;
1316
+ /** mux complete DTS frames in HD mode at the specified IEC958 rate (in Hz, default 0=disabled) */
1317
+ dtshd_rate?: number | (string & {});
1318
+ /** min secs to strip HD for after an overflow (-1: till the end, default 60) */
1319
+ dtshd_fallback_time?: number | (string & {});
1320
+ };
1321
+ /**
1322
+ * Ogg Speex
1323
+ * @see https://ffmpeg.org/ffmpeg-formats.html#spx
1324
+ */
1325
+ spx: {
1326
+ /** serial number offset */
1327
+ serial_offset?: number | (string & {});
1328
+ /** Set preferred Ogg page size. */
1329
+ oggpagesize?: number | (string & {});
1330
+ /** preferred page size in bytes */
1331
+ pagesize?: number | (string & {});
1332
+ /** preferred page duration, in microseconds */
1333
+ page_duration?: number | (string & {});
1334
+ };
1335
+ /**
1336
+ * streaming segment muxer
1337
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ssegment
1338
+ */
1339
+ ssegment: {
1340
+ /** set reference stream */
1341
+ reference_stream?: string | number;
1342
+ /** set container format used for the segments */
1343
+ segment_format?: string | number;
1344
+ /** set list of options for the container format used for the segments */
1345
+ segment_format_options?: string | number;
1346
+ /** set the segment list filename */
1347
+ segment_list?: string | number;
1348
+ /** write a single file containing the header */
1349
+ segment_header_filename?: string | number;
1350
+ /** set flags affecting segment list generation */
1351
+ segment_list_flags?: 'cache' | 'live' | (string & {}) | number;
1352
+ /** set the maximum number of playlist entries */
1353
+ segment_list_size?: number | (string & {});
1354
+ /** set the segment list type */
1355
+ segment_list_type?: 'flat' | 'csv' | 'ext' | 'ffconcat' | 'm3u8' | 'hls' | (string & {}) | number;
1356
+ /** set segment to be cut at clocktime */
1357
+ segment_atclocktime?: boolean | (string & {});
1358
+ /** set segment clocktime offset */
1359
+ segment_clocktime_offset?: string | number;
1360
+ /** set segment clocktime wrapping duration */
1361
+ segment_clocktime_wrap_duration?: string | number;
1362
+ /** set segment duration */
1363
+ segment_time?: string | number;
1364
+ /** set approximation value used for the segment times */
1365
+ segment_time_delta?: string | number;
1366
+ /** set minimum segment duration */
1367
+ min_seg_duration?: string | number;
1368
+ /** set segment split time points */
1369
+ segment_times?: string | number;
1370
+ /** set segment split frame numbers */
1371
+ segment_frames?: string | number;
1372
+ /** set number after which the index wraps */
1373
+ segment_wrap?: number | (string & {});
1374
+ /** set base url prefix for segments */
1375
+ segment_list_entry_prefix?: string | number;
1376
+ /** set the sequence number of the first segment */
1377
+ segment_start_number?: number | (string & {});
1378
+ /** set the number of wrap before the first segment */
1379
+ segment_wrap_number?: number | (string & {});
1380
+ /** set filename expansion with strftime at segment creation */
1381
+ strftime?: boolean | (string & {});
1382
+ /** increment timecode between each segment */
1383
+ increment_tc?: boolean | (string & {});
1384
+ /** allow breaking segments on non-keyframes */
1385
+ break_non_keyframes?: boolean | (string & {});
1386
+ /** write header/trailer to each segment */
1387
+ individual_header_trailer?: boolean | (string & {});
1388
+ /** write a header to the first segment and a trailer to the last one */
1389
+ write_header_trailer?: boolean | (string & {});
1390
+ /** reset timestamps at the beginning of each segment */
1391
+ reset_timestamps?: boolean | (string & {});
1392
+ /** set initial timestamp offset */
1393
+ initial_offset?: string | number;
1394
+ /** allow writing empty 'filler' segments */
1395
+ write_empty_segments?: boolean | (string & {});
1396
+ };
1397
+ /**
1398
+ * streaming segment muxer
1399
+ * @see https://ffmpeg.org/ffmpeg-formats.html#stream_005fsegment
1400
+ */
1401
+ stream_segment: {
1402
+ /** set reference stream */
1403
+ reference_stream?: string | number;
1404
+ /** set container format used for the segments */
1405
+ segment_format?: string | number;
1406
+ /** set list of options for the container format used for the segments */
1407
+ segment_format_options?: string | number;
1408
+ /** set the segment list filename */
1409
+ segment_list?: string | number;
1410
+ /** write a single file containing the header */
1411
+ segment_header_filename?: string | number;
1412
+ /** set flags affecting segment list generation */
1413
+ segment_list_flags?: 'cache' | 'live' | (string & {}) | number;
1414
+ /** set the maximum number of playlist entries */
1415
+ segment_list_size?: number | (string & {});
1416
+ /** set the segment list type */
1417
+ segment_list_type?: 'flat' | 'csv' | 'ext' | 'ffconcat' | 'm3u8' | 'hls' | (string & {}) | number;
1418
+ /** set segment to be cut at clocktime */
1419
+ segment_atclocktime?: boolean | (string & {});
1420
+ /** set segment clocktime offset */
1421
+ segment_clocktime_offset?: string | number;
1422
+ /** set segment clocktime wrapping duration */
1423
+ segment_clocktime_wrap_duration?: string | number;
1424
+ /** set segment duration */
1425
+ segment_time?: string | number;
1426
+ /** set approximation value used for the segment times */
1427
+ segment_time_delta?: string | number;
1428
+ /** set minimum segment duration */
1429
+ min_seg_duration?: string | number;
1430
+ /** set segment split time points */
1431
+ segment_times?: string | number;
1432
+ /** set segment split frame numbers */
1433
+ segment_frames?: string | number;
1434
+ /** set number after which the index wraps */
1435
+ segment_wrap?: number | (string & {});
1436
+ /** set base url prefix for segments */
1437
+ segment_list_entry_prefix?: string | number;
1438
+ /** set the sequence number of the first segment */
1439
+ segment_start_number?: number | (string & {});
1440
+ /** set the number of wrap before the first segment */
1441
+ segment_wrap_number?: number | (string & {});
1442
+ /** set filename expansion with strftime at segment creation */
1443
+ strftime?: boolean | (string & {});
1444
+ /** increment timecode between each segment */
1445
+ increment_tc?: boolean | (string & {});
1446
+ /** allow breaking segments on non-keyframes */
1447
+ break_non_keyframes?: boolean | (string & {});
1448
+ /** write header/trailer to each segment */
1449
+ individual_header_trailer?: boolean | (string & {});
1450
+ /** write a header to the first segment and a trailer to the last one */
1451
+ write_header_trailer?: boolean | (string & {});
1452
+ /** reset timestamps at the beginning of each segment */
1453
+ reset_timestamps?: boolean | (string & {});
1454
+ /** set initial timestamp offset */
1455
+ initial_offset?: string | number;
1456
+ /** allow writing empty 'filler' segments */
1457
+ write_empty_segments?: boolean | (string & {});
1458
+ };
1459
+ /**
1460
+ * Per-stream hash testing
1461
+ * @see https://ffmpeg.org/ffmpeg-formats.html#streamhash
1462
+ */
1463
+ streamhash: {
1464
+ /** set hash to use */
1465
+ hash?: string | number;
1466
+ };
1467
+ /**
1468
+ * MPEG-2 PS (SVCD)
1469
+ * @see https://ffmpeg.org/ffmpeg-formats.html#svcd
1470
+ */
1471
+ svcd: {
1472
+ /** mux rate as bits/s */
1473
+ muxrate?: number | (string & {});
1474
+ /** initial demux-decode delay in microseconds */
1475
+ preload?: number | (string & {});
1476
+ };
1477
+ /**
1478
+ * Multiple muxer tee
1479
+ * @see https://ffmpeg.org/ffmpeg-formats.html#tee
1480
+ */
1481
+ tee: {
1482
+ /** Use fifo pseudo-muxer to separate actual muxers from encoder */
1483
+ use_fifo?: boolean | (string & {});
1484
+ /** fifo pseudo-muxer options */
1485
+ fifo_options?: string | number;
1486
+ };
1487
+ /**
1488
+ * MPEG-1 Systems / MPEG program stream (VCD)
1489
+ * @see https://ffmpeg.org/ffmpeg-formats.html#vcd
1490
+ */
1491
+ vcd: {
1492
+ /** mux rate as bits/s */
1493
+ muxrate?: number | (string & {});
1494
+ /** initial demux-decode delay in microseconds */
1495
+ preload?: number | (string & {});
1496
+ };
1497
+ /**
1498
+ * MPEG-2 PS (VOB)
1499
+ * @see https://ffmpeg.org/ffmpeg-formats.html#vob
1500
+ */
1501
+ vob: {
1502
+ /** mux rate as bits/s */
1503
+ muxrate?: number | (string & {});
1504
+ /** initial demux-decode delay in microseconds */
1505
+ preload?: number | (string & {});
1506
+ };
1507
+ /**
1508
+ * WAV / WAVE (Waveform Audio)
1509
+ * @see https://ffmpeg.org/ffmpeg-formats.html#wav
1510
+ */
1511
+ wav: {
1512
+ /** Write BEXT chunk. */
1513
+ write_bext?: boolean | (string & {});
1514
+ /** Write Peak Envelope chunk. */
1515
+ write_peak?: 'off' | 'on' | 'only' | (string & {}) | number;
1516
+ /** Use RF64 header rather than RIFF for large files. */
1517
+ rf64?: 'auto' | 'always' | 'never' | (string & {}) | number;
1518
+ /** Number of audio samples used to generate each peak frame. */
1519
+ peak_block_size?: number | (string & {});
1520
+ /** The format of the peak envelope data (1: uint8, 2: uint16). */
1521
+ peak_format?: number | (string & {});
1522
+ /** Number of peak points per peak value (1 or 2). */
1523
+ peak_ppv?: number | (string & {});
1524
+ };
1525
+ /**
1526
+ * WebM
1527
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webm
1528
+ */
1529
+ webm: {
1530
+ /** reserve a given amount of space (in bytes) at the beginning of the file for the index (cues) */
1531
+ reserve_index_space?: number | (string & {});
1532
+ /** move Cues (the index) to the front by shifting data if necessary */
1533
+ cues_to_front?: boolean | (string & {});
1534
+ /** store at most the provided amount of bytes in a cluster */
1535
+ cluster_size_limit?: number | (string & {});
1536
+ /** store at most the provided number of milliseconds in a cluster */
1537
+ cluster_time_limit?: number | (string & {});
1538
+ /** create a WebM file conforming to WebM DASH specification */
1539
+ dash?: boolean | (string & {});
1540
+ /** track number for the DASH stream */
1541
+ dash_track_number?: number | (string & {});
1542
+ /** write files assuming it is a live stream */
1543
+ live?: boolean | (string & {});
1544
+ /** allow raw VFW mode */
1545
+ allow_raw_vfw?: boolean | (string & {});
1546
+ /** store raw RGB bitmaps in VFW mode in bottom-up mode */
1547
+ flipped_raw_rgb?: boolean | (string & {});
1548
+ /** write a CRC32 element inside every Level 1 element */
1549
+ write_crc32?: boolean | (string & {});
1550
+ /** control how a track's FlagDefault is inferred */
1551
+ default_mode?: 'infer' | 'infer_no_subs' | 'passthrough' | (string & {}) | number;
1552
+ };
1553
+ /**
1554
+ * WebM Chunk Muxer
1555
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webm_005fchunk
1556
+ */
1557
+ webm_chunk: {
1558
+ /** start index of the chunk */
1559
+ chunk_start_index?: number | (string & {});
1560
+ /** filename of the header where the initialization data will be written */
1561
+ header?: string | number;
1562
+ /** duration of each chunk in milliseconds */
1563
+ audio_chunk_duration?: number | (string & {});
1564
+ /** set the HTTP method */
1565
+ method?: string | number;
1566
+ };
1567
+ /**
1568
+ * WebM DASH Manifest
1569
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webm_005fdash_005fmanifest
1570
+ */
1571
+ webm_dash_manifest: {
1572
+ /** Adaptation sets. Syntax: id=0,streams=0,1,2 id=1,streams=3,4 and so on */
1573
+ adaptation_sets?: string | number;
1574
+ /** create a live stream manifest */
1575
+ live?: boolean | (string & {});
1576
+ /** start index of the chunk */
1577
+ chunk_start_index?: number | (string & {});
1578
+ /** duration of each chunk (in milliseconds) */
1579
+ chunk_duration_ms?: number | (string & {});
1580
+ /** URL of the page that will return the UTC timestamp in ISO format */
1581
+ utc_timing_url?: string | number;
1582
+ /** Smallest time (in seconds) shifting buffer for which any Representation is guaranteed to be available. */
1583
+ time_shift_buffer_depth?: number | (string & {});
1584
+ /** Minimum Update Period (in seconds) of the manifest. */
1585
+ minimum_update_period?: number | (string & {});
1586
+ };
1587
+ /**
1588
+ * WebP
1589
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webp
1590
+ */
1591
+ webp: {
1592
+ /** Number of times to loop the output: 0 - infinite loop */
1593
+ loop?: number | (string & {});
1594
+ };
1595
+ /**
1596
+ * WHIP(WebRTC-HTTP ingestion protocol) muxer
1597
+ * @see https://ffmpeg.org/ffmpeg-formats.html#whip
1598
+ */
1599
+ whip: {
1600
+ /** Timeout in milliseconds for ICE and DTLS handshake. */
1601
+ handshake_timeout?: number | (string & {});
1602
+ /** Set timeout for socket I/O operations */
1603
+ timeout?: string | number;
1604
+ /** The maximum size, in bytes, of RTP packets that send out */
1605
+ pkt_size?: number | (string & {});
1606
+ /** The buffer size, in bytes, of underlying protocol */
1607
+ ts_buffer_size?: number | (string & {});
1608
+ /** Set flags affecting WHIP connection behavior */
1609
+ whip_flags?: 'dtls_active' | (string & {}) | number;
1610
+ /** The number of RTP history items to store */
1611
+ rtp_history?: number | (string & {});
1612
+ /** The optional Bearer token for WHIP Authorization */
1613
+ authorization?: string | number;
1614
+ /** The optional certificate file path for DTLS */
1615
+ cert_file?: string | number;
1616
+ /** The optional private key file path for DTLS */
1617
+ key_file?: string | number;
1618
+ };
1619
+ }
1620
+ export interface DemuxerPrivateOptionsMap {
1621
+ /**
1622
+ * QuickTime / MOV
1623
+ * @see https://ffmpeg.org/ffmpeg-formats.html#3g2
1624
+ */
1625
+ '3g2': {
1626
+ /** allow using absolute path when opening alias, this is a possible security issue */
1627
+ use_absolute_path?: boolean | (string & {});
1628
+ /** Seek each stream individually to the closest point */
1629
+ seek_streams_individually?: boolean | (string & {});
1630
+ /** Ignore the edit list atom. */
1631
+ ignore_editlist?: boolean | (string & {});
1632
+ /** Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. */
1633
+ advanced_editlist?: boolean | (string & {});
1634
+ ignore_chapters?: boolean | (string & {});
1635
+ /** use mfra for fragment timestamps */
1636
+ use_mfra_for?: 'auto' | 'dts' | 'pts' | (string & {}) | number;
1637
+ /** use tfdt for fragment timestamps */
1638
+ use_tfdt?: boolean | (string & {});
1639
+ /** Export unrecognized metadata entries */
1640
+ export_all?: boolean | (string & {});
1641
+ /** Export full XMP metadata */
1642
+ export_xmp?: boolean | (string & {});
1643
+ /** Secret bytes for Audible AAX files */
1644
+ activation_bytes?: string | number;
1645
+ /** AES-128 Key for Audible AAXC files */
1646
+ audible_key?: string | number;
1647
+ /** AES-128 IV for Audible AAXC files */
1648
+ audible_iv?: string | number;
1649
+ /** Fixed key used for handling Audible AAX files */
1650
+ audible_fixed_key?: string | number;
1651
+ /** The default media decryption key (hex) */
1652
+ decryption_key?: string | number;
1653
+ /** The media decryption keys by KID (hex) */
1654
+ decryption_keys?: string | number;
1655
+ /** Enable external track support. */
1656
+ enable_drefs?: boolean | (string & {});
1657
+ /** treat offsets above this value as invalid */
1658
+ max_stts_delta?: number | (string & {});
1659
+ /** Interleave packets from multiple tracks at demuxer level */
1660
+ interleaved_read?: boolean | (string & {});
1661
+ };
1662
+ /**
1663
+ * QuickTime / MOV
1664
+ * @see https://ffmpeg.org/ffmpeg-formats.html#3gp
1665
+ */
1666
+ '3gp': {
1667
+ /** allow using absolute path when opening alias, this is a possible security issue */
1668
+ use_absolute_path?: boolean | (string & {});
1669
+ /** Seek each stream individually to the closest point */
1670
+ seek_streams_individually?: boolean | (string & {});
1671
+ /** Ignore the edit list atom. */
1672
+ ignore_editlist?: boolean | (string & {});
1673
+ /** Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. */
1674
+ advanced_editlist?: boolean | (string & {});
1675
+ ignore_chapters?: boolean | (string & {});
1676
+ /** use mfra for fragment timestamps */
1677
+ use_mfra_for?: 'auto' | 'dts' | 'pts' | (string & {}) | number;
1678
+ /** use tfdt for fragment timestamps */
1679
+ use_tfdt?: boolean | (string & {});
1680
+ /** Export unrecognized metadata entries */
1681
+ export_all?: boolean | (string & {});
1682
+ /** Export full XMP metadata */
1683
+ export_xmp?: boolean | (string & {});
1684
+ /** Secret bytes for Audible AAX files */
1685
+ activation_bytes?: string | number;
1686
+ /** AES-128 Key for Audible AAXC files */
1687
+ audible_key?: string | number;
1688
+ /** AES-128 IV for Audible AAXC files */
1689
+ audible_iv?: string | number;
1690
+ /** Fixed key used for handling Audible AAX files */
1691
+ audible_fixed_key?: string | number;
1692
+ /** The default media decryption key (hex) */
1693
+ decryption_key?: string | number;
1694
+ /** The media decryption keys by KID (hex) */
1695
+ decryption_keys?: string | number;
1696
+ /** Enable external track support. */
1697
+ enable_drefs?: boolean | (string & {});
1698
+ /** treat offsets above this value as invalid */
1699
+ max_stts_delta?: number | (string & {});
1700
+ /** Interleave packets from multiple tracks at demuxer level */
1701
+ interleaved_read?: boolean | (string & {});
1702
+ };
1703
+ /**
1704
+ * Audible AA format files
1705
+ * @see https://ffmpeg.org/ffmpeg-formats.html#aa
1706
+ */
1707
+ aa: {
1708
+ /** Fixed key used for handling Audible AA files */
1709
+ aa_fixed_key?: string | number;
1710
+ };
1711
+ /**
1712
+ * Animated Portable Network Graphics
1713
+ * @see https://ffmpeg.org/ffmpeg-formats.html#apng
1714
+ */
1715
+ apng: {
1716
+ /** ignore loop setting */
1717
+ ignore_loop?: boolean | (string & {});
1718
+ /** maximum framerate (0 is no limit) */
1719
+ max_fps?: number | (string & {});
1720
+ /** default framerate (0 is as fast as possible) */
1721
+ default_fps?: number | (string & {});
1722
+ };
1723
+ /**
1724
+ * raw aptX
1725
+ * @see https://ffmpeg.org/ffmpeg-formats.html#aptx
1726
+ */
1727
+ aptx: {
1728
+ sample_rate?: number | (string & {});
1729
+ };
1730
+ /**
1731
+ * raw aptX HD
1732
+ * @see https://ffmpeg.org/ffmpeg-formats.html#aptx_005fhd
1733
+ */
1734
+ aptx_hd: {
1735
+ sample_rate?: number | (string & {});
1736
+ };
1737
+ /**
1738
+ * APV raw bitstream
1739
+ * @see https://ffmpeg.org/ffmpeg-formats.html#apv
1740
+ */
1741
+ apv: {
1742
+ /** set frame rate */
1743
+ framerate?: string | number;
1744
+ };
1745
+ /**
1746
+ * AQTitle subtitles
1747
+ * @see https://ffmpeg.org/ffmpeg-formats.html#aqtitle
1748
+ */
1749
+ aqtitle: {
1750
+ /** set the movie frame rate */
1751
+ subfps?: string | number;
1752
+ };
1753
+ /**
1754
+ * ASF (Advanced / Active Streaming Format)
1755
+ * @see https://ffmpeg.org/ffmpeg-formats.html#asf
1756
+ */
1757
+ asf: {
1758
+ /** Don't try to resynchronize by looking for a certain optional start code */
1759
+ no_resync_search?: boolean | (string & {});
1760
+ /** Export full XMP metadata */
1761
+ export_xmp?: boolean | (string & {});
1762
+ };
1763
+ /**
1764
+ * AV1 Annex B
1765
+ * @see https://ffmpeg.org/ffmpeg-formats.html#av1
1766
+ */
1767
+ av1: {
1768
+ framerate?: string | number;
1769
+ };
1770
+ /**
1771
+ * AVI (Audio Video Interleaved)
1772
+ * @see https://ffmpeg.org/ffmpeg-formats.html#avi
1773
+ */
1774
+ avi: {
1775
+ /** use odml index */
1776
+ use_odml?: boolean | (string & {});
1777
+ };
1778
+ /**
1779
+ * AviSynth script
1780
+ * @see https://ffmpeg.org/ffmpeg-formats.html#avisynth
1781
+ */
1782
+ avisynth: {
1783
+ /** set flags related to reading frame properties from script (AviSynth+ v3.7.1 or higher) */
1784
+ avisynth_flags?: 'field_order' | 'range' | 'primaries' | 'transfer' | 'matrix' | 'chroma_location' | 'sar' | (string & {}) | number;
1785
+ };
1786
+ /**
1787
+ * Commodore CDXL video
1788
+ * @see https://ffmpeg.org/ffmpeg-formats.html#cdxl
1789
+ */
1790
+ cdxl: {
1791
+ sample_rate?: number | (string & {});
1792
+ frame_rate?: string | number;
1793
+ };
1794
+ /**
1795
+ * codec2 .c2 demuxer
1796
+ * @see https://ffmpeg.org/ffmpeg-formats.html#codec2
1797
+ */
1798
+ codec2: {
1799
+ /** Number of frames to read at a time. Higher = faster decoding, lower granularity */
1800
+ frames_per_packet?: number | (string & {});
1801
+ };
1802
+ /**
1803
+ * raw codec2 demuxer
1804
+ * @see https://ffmpeg.org/ffmpeg-formats.html#codec2raw
1805
+ */
1806
+ codec2raw: {
1807
+ /** Number of frames to read at a time. Higher = faster decoding, lower granularity */
1808
+ frames_per_packet?: number | (string & {});
1809
+ };
1810
+ /**
1811
+ * Virtual concatenation script
1812
+ * @see https://ffmpeg.org/ffmpeg-formats.html#concat
1813
+ */
1814
+ concat: {
1815
+ /** enable safe mode */
1816
+ safe?: boolean | (string & {});
1817
+ /** automatically convert bitstream format */
1818
+ auto_convert?: boolean | (string & {});
1819
+ /** output file segment start time and duration as packet metadata */
1820
+ segment_time_metadata?: boolean | (string & {});
1821
+ };
1822
+ /**
1823
+ * Dynamic Adaptive Streaming over HTTP
1824
+ * @see https://ffmpeg.org/ffmpeg-formats.html#dash
1825
+ */
1826
+ dash: {
1827
+ /** List of file extensions that dash is allowed to access */
1828
+ allowed_extensions?: string | number;
1829
+ /** Media default decryption key (hex) */
1830
+ cenc_decryption_key?: string | number;
1831
+ /** Media decryption keys by KID (hex) */
1832
+ cenc_decryption_keys?: string | number;
1833
+ /** Maximum number of manifest reloads in get_current_fragment() before giving up */
1834
+ max_reload?: number | (string & {});
1835
+ };
1836
+ /**
1837
+ * raw data
1838
+ * @see https://ffmpeg.org/ffmpeg-formats.html#data
1839
+ */
1840
+ data: {
1841
+ raw_packet_size?: number | (string & {});
1842
+ };
1843
+ /**
1844
+ * raw DFPWM1a
1845
+ * @see https://ffmpeg.org/ffmpeg-formats.html#dfpwm
1846
+ */
1847
+ dfpwm: {
1848
+ sample_rate?: number | (string & {});
1849
+ ch_layout?: string | number;
1850
+ };
1851
+ /**
1852
+ * DVD-Video
1853
+ * @see https://ffmpeg.org/ffmpeg-formats.html#dvdvideo
1854
+ */
1855
+ dvdvideo: {
1856
+ /** playback angle number */
1857
+ angle?: number | (string & {});
1858
+ /** exit chapter (PTT) number (0=end) */
1859
+ chapter_end?: number | (string & {});
1860
+ /** entry chapter (PTT) number */
1861
+ chapter_start?: number | (string & {});
1862
+ /** demux menu domain */
1863
+ menu?: boolean | (string & {});
1864
+ /** menu language unit */
1865
+ menu_lu?: number | (string & {});
1866
+ /** menu VTS (0=VMG root menu) */
1867
+ menu_vts?: number | (string & {});
1868
+ /** entry PG number (when paired with PGC number) */
1869
+ pg?: number | (string & {});
1870
+ /** entry PGC number (0=auto) */
1871
+ pgc?: number | (string & {});
1872
+ /** enable for accurate chapter markers, slow (2-pass read) */
1873
+ preindex?: boolean | (string & {});
1874
+ /** playback region number (0=free) */
1875
+ region?: number | (string & {});
1876
+ /** title number (0=auto) */
1877
+ title?: number | (string & {});
1878
+ /** trim padding cells from start */
1879
+ trim?: boolean | (string & {});
1880
+ };
1881
+ /**
1882
+ * Electronic Arts Multimedia
1883
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ea
1884
+ */
1885
+ ea: {
1886
+ /** return VP6 alpha in the main video stream */
1887
+ merge_alpha?: boolean | (string & {});
1888
+ };
1889
+ /**
1890
+ * EVC Annex B
1891
+ * @see https://ffmpeg.org/ffmpeg-formats.html#evc
1892
+ */
1893
+ evc: {
1894
+ framerate?: string | number;
1895
+ };
1896
+ /**
1897
+ * Flexible Image Transport System
1898
+ * @see https://ffmpeg.org/ffmpeg-formats.html#fits
1899
+ */
1900
+ fits: {
1901
+ /** set the framerate */
1902
+ framerate?: string | number;
1903
+ };
1904
+ /**
1905
+ * FLV (Flash Video)
1906
+ * @see https://ffmpeg.org/ffmpeg-formats.html#flv
1907
+ */
1908
+ flv: {
1909
+ /** Allocate streams according to the onMetaData array */
1910
+ flv_metadata?: boolean | (string & {});
1911
+ /** Dump full metadata of the onMetadata */
1912
+ flv_full_metadata?: boolean | (string & {});
1913
+ /** Ignore the Size of previous tag */
1914
+ flv_ignore_prevtag?: boolean | (string & {});
1915
+ };
1916
+ /**
1917
+ * raw big-endian G.726 (\"left aligned\")
1918
+ * @see https://ffmpeg.org/ffmpeg-formats.html#g726
1919
+ */
1920
+ g726: {
1921
+ /** Bits per G.726 code */
1922
+ code_size?: number | (string & {});
1923
+ sample_rate?: number | (string & {});
1924
+ };
1925
+ /**
1926
+ * raw little-endian G.726 (\"right aligned\")
1927
+ * @see https://ffmpeg.org/ffmpeg-formats.html#g726le
1928
+ */
1929
+ g726le: {
1930
+ /** Bits per G.726 code */
1931
+ code_size?: number | (string & {});
1932
+ sample_rate?: number | (string & {});
1933
+ };
1934
+ /**
1935
+ * G.729 raw format demuxer
1936
+ * @see https://ffmpeg.org/ffmpeg-formats.html#g729
1937
+ */
1938
+ g729: {
1939
+ bit_rate?: number | (string & {});
1940
+ };
1941
+ /**
1942
+ * CompuServe Graphics Interchange Format (GIF)
1943
+ * @see https://ffmpeg.org/ffmpeg-formats.html#gif
1944
+ */
1945
+ gif: {
1946
+ /** minimum valid delay between frames (in hundredths of second) */
1947
+ min_delay?: number | (string & {});
1948
+ /** maximum valid delay between frames (in hundredths of seconds) */
1949
+ max_gif_delay?: number | (string & {});
1950
+ /** default delay between frames (in hundredths of second) */
1951
+ default_delay?: number | (string & {});
1952
+ /** ignore loop setting (netscape extension) */
1953
+ ignore_loop?: boolean | (string & {});
1954
+ };
1955
+ /**
1956
+ * raw GSM
1957
+ * @see https://ffmpeg.org/ffmpeg-formats.html#gsm
1958
+ */
1959
+ gsm: {
1960
+ sample_rate?: number | (string & {});
1961
+ };
1962
+ /**
1963
+ * CRI HCA
1964
+ * @see https://ffmpeg.org/ffmpeg-formats.html#hca
1965
+ */
1966
+ hca: {
1967
+ /** Low key used for handling CRI HCA files */
1968
+ hca_lowkey?: number | (string & {});
1969
+ /** High key used for handling CRI HCA files */
1970
+ hca_highkey?: number | (string & {});
1971
+ /** Subkey used for handling CRI HCA files */
1972
+ hca_subkey?: number | (string & {});
1973
+ };
1974
+ /**
1975
+ * Apple HTTP Live Streaming
1976
+ * @see https://ffmpeg.org/ffmpeg-formats.html#hls
1977
+ */
1978
+ hls: {
1979
+ /** segment index to start live streams at (negative values are from the end) */
1980
+ live_start_index?: number | (string & {});
1981
+ /** prefer to use #EXT-X-START if it's in playlist instead of live_start_index */
1982
+ prefer_x_start?: boolean | (string & {});
1983
+ /** List of file extensions that hls is allowed to access */
1984
+ allowed_extensions?: string | number;
1985
+ /** List of file extensions that hls is allowed to access */
1986
+ allowed_segment_extensions?: string | number;
1987
+ /** Be picky with all extensions matching */
1988
+ extension_picky?: boolean | (string & {});
1989
+ /** Maximum number of times a insufficient list is attempted to be reloaded */
1990
+ max_reload?: number | (string & {});
1991
+ /** The maximum number of times to load m3u8 when it refreshes without new segments */
1992
+ m3u8_hold_counters?: number | (string & {});
1993
+ /** Use persistent HTTP connections */
1994
+ http_persistent?: boolean | (string & {});
1995
+ /** Use multiple HTTP connections for fetching segments */
1996
+ http_multiple?: boolean | (string & {});
1997
+ /** Use HTTP partial requests, 0 = disable, 1 = enable, -1 = auto */
1998
+ http_seekable?: boolean | (string & {});
1999
+ /** Set options for segment demuxer */
2000
+ seg_format_options?: string | number;
2001
+ /** Maximum number of times to reload a segment on error. */
2002
+ seg_max_retry?: number | (string & {});
2003
+ };
2004
+ /**
2005
+ * image2 sequence
2006
+ * @see https://ffmpeg.org/ffmpeg-formats.html#image2
2007
+ */
2008
+ image2: {
2009
+ /** set pattern type */
2010
+ pattern_type?: 'glob' | 'sequence' | 'none' | (string & {}) | number;
2011
+ /** set first number in the sequence */
2012
+ start_number?: number | (string & {});
2013
+ /** set range for looking at the first sequence number */
2014
+ start_number_range?: number | (string & {});
2015
+ /** set frame timestamp from file's one */
2016
+ ts_from_file?: 'none' | 'sec' | 'ns' | (string & {}) | number;
2017
+ /** enable metadata containing input path information */
2018
+ export_path_metadata?: boolean | (string & {});
2019
+ /** set the video framerate */
2020
+ framerate?: string | number;
2021
+ /** set video pixel format */
2022
+ pixel_format?: string | number;
2023
+ /** set video size */
2024
+ video_size?: string | number;
2025
+ /** force loop over input file sequence */
2026
+ loop?: boolean | (string & {});
2027
+ };
2028
+ /**
2029
+ * piped image2 sequence
2030
+ * @see https://ffmpeg.org/ffmpeg-formats.html#image2pipe
2031
+ */
2032
+ image2pipe: {
2033
+ /** force frame size in bytes */
2034
+ frame_size?: number | (string & {});
2035
+ /** set the video framerate */
2036
+ framerate?: string | number;
2037
+ /** set video pixel format */
2038
+ pixel_format?: string | number;
2039
+ /** set video size */
2040
+ video_size?: string | number;
2041
+ /** force loop over input file sequence */
2042
+ loop?: boolean | (string & {});
2043
+ };
2044
+ /**
2045
+ * IMF (Interoperable Master Format)
2046
+ * @see https://ffmpeg.org/ffmpeg-formats.html#imf
2047
+ */
2048
+ imf: {
2049
+ /** Comma-separated paths to ASSETMAP files. */
2050
+ assetmaps?: string | number;
2051
+ };
2052
+ /**
2053
+ * KUX (YouKu)
2054
+ * @see https://ffmpeg.org/ffmpeg-formats.html#kux
2055
+ */
2056
+ kux: {
2057
+ /** Allocate streams according to the onMetaData array */
2058
+ flv_metadata?: boolean | (string & {});
2059
+ /** Dump full metadata of the onMetadata */
2060
+ flv_full_metadata?: boolean | (string & {});
2061
+ /** Ignore the Size of previous tag */
2062
+ flv_ignore_prevtag?: boolean | (string & {});
2063
+ };
2064
+ /**
2065
+ * Game Music Emu demuxer
2066
+ * @see https://ffmpeg.org/ffmpeg-formats.html#libgme
2067
+ */
2068
+ libgme: {
2069
+ /** set track that should be played */
2070
+ track_index?: number | (string & {});
2071
+ /** set sample rate */
2072
+ sample_rate?: number | (string & {});
2073
+ /** set max file size supported (in bytes) */
2074
+ max_size?: number | (string & {});
2075
+ };
2076
+ /**
2077
+ * ModPlug demuxer
2078
+ * @see https://ffmpeg.org/ffmpeg-formats.html#libmodplug
2079
+ */
2080
+ libmodplug: {
2081
+ /** Enable noise reduction 0(off)-1(on) */
2082
+ noise_reduction?: number | (string & {});
2083
+ /** Reverb level 0(quiet)-100(loud) */
2084
+ reverb_depth?: number | (string & {});
2085
+ /** Reverb delay in ms, usually 40-200ms */
2086
+ reverb_delay?: number | (string & {});
2087
+ /** XBass level 0(quiet)-100(loud) */
2088
+ bass_amount?: number | (string & {});
2089
+ /** XBass cutoff in Hz 10-100 */
2090
+ bass_range?: number | (string & {});
2091
+ /** Surround level 0(quiet)-100(heavy) */
2092
+ surround_depth?: number | (string & {});
2093
+ /** Surround delay in ms, usually 5-40ms */
2094
+ surround_delay?: number | (string & {});
2095
+ /** Max file size supported (in bytes). Default is 5MB. Set to 0 for no limit (not recommended) */
2096
+ max_size?: number | (string & {});
2097
+ /** Color formula */
2098
+ video_stream_expr?: string | number;
2099
+ /** Make demuxer output a video stream */
2100
+ video_stream?: number | (string & {});
2101
+ /** Video stream width in char (one char = 8x8px) */
2102
+ video_stream_w?: number | (string & {});
2103
+ /** Video stream height in char (one char = 8x8px) */
2104
+ video_stream_h?: number | (string & {});
2105
+ /** Print speed, tempo, order, ... in video stream */
2106
+ video_stream_ptxt?: number | (string & {});
2107
+ };
2108
+ /**
2109
+ * Tracker formats (libopenmpt)
2110
+ * @see https://ffmpeg.org/ffmpeg-formats.html#libopenmpt
2111
+ */
2112
+ libopenmpt: {
2113
+ /** set sample rate */
2114
+ sample_rate?: number | (string & {});
2115
+ /** set channel layout */
2116
+ layout?: string | number;
2117
+ /** set subsong */
2118
+ subsong?: 'all' | 'auto' | (string & {}) | number;
2119
+ };
2120
+ /**
2121
+ * live RTMP FLV (Flash Video)
2122
+ * @see https://ffmpeg.org/ffmpeg-formats.html#live_005fflv
2123
+ */
2124
+ live_flv: {
2125
+ /** Allocate streams according to the onMetaData array */
2126
+ flv_metadata?: boolean | (string & {});
2127
+ /** Dump full metadata of the onMetadata */
2128
+ flv_full_metadata?: boolean | (string & {});
2129
+ /** Ignore the Size of previous tag */
2130
+ flv_ignore_prevtag?: boolean | (string & {});
2131
+ };
2132
+ /**
2133
+ * QuickTime / MOV
2134
+ * @see https://ffmpeg.org/ffmpeg-formats.html#m4a
2135
+ */
2136
+ m4a: {
2137
+ /** allow using absolute path when opening alias, this is a possible security issue */
2138
+ use_absolute_path?: boolean | (string & {});
2139
+ /** Seek each stream individually to the closest point */
2140
+ seek_streams_individually?: boolean | (string & {});
2141
+ /** Ignore the edit list atom. */
2142
+ ignore_editlist?: boolean | (string & {});
2143
+ /** Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. */
2144
+ advanced_editlist?: boolean | (string & {});
2145
+ ignore_chapters?: boolean | (string & {});
2146
+ /** use mfra for fragment timestamps */
2147
+ use_mfra_for?: 'auto' | 'dts' | 'pts' | (string & {}) | number;
2148
+ /** use tfdt for fragment timestamps */
2149
+ use_tfdt?: boolean | (string & {});
2150
+ /** Export unrecognized metadata entries */
2151
+ export_all?: boolean | (string & {});
2152
+ /** Export full XMP metadata */
2153
+ export_xmp?: boolean | (string & {});
2154
+ /** Secret bytes for Audible AAX files */
2155
+ activation_bytes?: string | number;
2156
+ /** AES-128 Key for Audible AAXC files */
2157
+ audible_key?: string | number;
2158
+ /** AES-128 IV for Audible AAXC files */
2159
+ audible_iv?: string | number;
2160
+ /** Fixed key used for handling Audible AAX files */
2161
+ audible_fixed_key?: string | number;
2162
+ /** The default media decryption key (hex) */
2163
+ decryption_key?: string | number;
2164
+ /** The media decryption keys by KID (hex) */
2165
+ decryption_keys?: string | number;
2166
+ /** Enable external track support. */
2167
+ enable_drefs?: boolean | (string & {});
2168
+ /** treat offsets above this value as invalid */
2169
+ max_stts_delta?: number | (string & {});
2170
+ /** Interleave packets from multiple tracks at demuxer level */
2171
+ interleaved_read?: boolean | (string & {});
2172
+ };
2173
+ /**
2174
+ * MacCaption
2175
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mcc
2176
+ */
2177
+ mcc: {
2178
+ /** extract EIA-608/708 captions from VANC packets */
2179
+ eia608_extract?: boolean | (string & {});
2180
+ };
2181
+ /**
2182
+ * MicroDVD subtitle format
2183
+ * @see https://ffmpeg.org/ffmpeg-formats.html#microdvd
2184
+ */
2185
+ microdvd: {
2186
+ /** set the movie frame rate fallback */
2187
+ subfps?: string | number;
2188
+ };
2189
+ /**
2190
+ * QuickTime / MOV
2191
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mj2
2192
+ */
2193
+ mj2: {
2194
+ /** allow using absolute path when opening alias, this is a possible security issue */
2195
+ use_absolute_path?: boolean | (string & {});
2196
+ /** Seek each stream individually to the closest point */
2197
+ seek_streams_individually?: boolean | (string & {});
2198
+ /** Ignore the edit list atom. */
2199
+ ignore_editlist?: boolean | (string & {});
2200
+ /** Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. */
2201
+ advanced_editlist?: boolean | (string & {});
2202
+ ignore_chapters?: boolean | (string & {});
2203
+ /** use mfra for fragment timestamps */
2204
+ use_mfra_for?: 'auto' | 'dts' | 'pts' | (string & {}) | number;
2205
+ /** use tfdt for fragment timestamps */
2206
+ use_tfdt?: boolean | (string & {});
2207
+ /** Export unrecognized metadata entries */
2208
+ export_all?: boolean | (string & {});
2209
+ /** Export full XMP metadata */
2210
+ export_xmp?: boolean | (string & {});
2211
+ /** Secret bytes for Audible AAX files */
2212
+ activation_bytes?: string | number;
2213
+ /** AES-128 Key for Audible AAXC files */
2214
+ audible_key?: string | number;
2215
+ /** AES-128 IV for Audible AAXC files */
2216
+ audible_iv?: string | number;
2217
+ /** Fixed key used for handling Audible AAX files */
2218
+ audible_fixed_key?: string | number;
2219
+ /** The default media decryption key (hex) */
2220
+ decryption_key?: string | number;
2221
+ /** The media decryption keys by KID (hex) */
2222
+ decryption_keys?: string | number;
2223
+ /** Enable external track support. */
2224
+ enable_drefs?: boolean | (string & {});
2225
+ /** treat offsets above this value as invalid */
2226
+ max_stts_delta?: number | (string & {});
2227
+ /** Interleave packets from multiple tracks at demuxer level */
2228
+ interleaved_read?: boolean | (string & {});
2229
+ };
2230
+ /**
2231
+ * QuickTime / MOV
2232
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mov
2233
+ */
2234
+ mov: {
2235
+ /** allow using absolute path when opening alias, this is a possible security issue */
2236
+ use_absolute_path?: boolean | (string & {});
2237
+ /** Seek each stream individually to the closest point */
2238
+ seek_streams_individually?: boolean | (string & {});
2239
+ /** Ignore the edit list atom. */
2240
+ ignore_editlist?: boolean | (string & {});
2241
+ /** Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. */
2242
+ advanced_editlist?: boolean | (string & {});
2243
+ ignore_chapters?: boolean | (string & {});
2244
+ /** use mfra for fragment timestamps */
2245
+ use_mfra_for?: 'auto' | 'dts' | 'pts' | (string & {}) | number;
2246
+ /** use tfdt for fragment timestamps */
2247
+ use_tfdt?: boolean | (string & {});
2248
+ /** Export unrecognized metadata entries */
2249
+ export_all?: boolean | (string & {});
2250
+ /** Export full XMP metadata */
2251
+ export_xmp?: boolean | (string & {});
2252
+ /** Secret bytes for Audible AAX files */
2253
+ activation_bytes?: string | number;
2254
+ /** AES-128 Key for Audible AAXC files */
2255
+ audible_key?: string | number;
2256
+ /** AES-128 IV for Audible AAXC files */
2257
+ audible_iv?: string | number;
2258
+ /** Fixed key used for handling Audible AAX files */
2259
+ audible_fixed_key?: string | number;
2260
+ /** The default media decryption key (hex) */
2261
+ decryption_key?: string | number;
2262
+ /** The media decryption keys by KID (hex) */
2263
+ decryption_keys?: string | number;
2264
+ /** Enable external track support. */
2265
+ enable_drefs?: boolean | (string & {});
2266
+ /** treat offsets above this value as invalid */
2267
+ max_stts_delta?: number | (string & {});
2268
+ /** Interleave packets from multiple tracks at demuxer level */
2269
+ interleaved_read?: boolean | (string & {});
2270
+ };
2271
+ /**
2272
+ * MP2/3 (MPEG audio layer 2/3)
2273
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mp3
2274
+ */
2275
+ mp3: {
2276
+ /** use table of contents */
2277
+ usetoc?: boolean | (string & {});
2278
+ };
2279
+ /**
2280
+ * QuickTime / MOV
2281
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mp4
2282
+ */
2283
+ mp4: {
2284
+ /** allow using absolute path when opening alias, this is a possible security issue */
2285
+ use_absolute_path?: boolean | (string & {});
2286
+ /** Seek each stream individually to the closest point */
2287
+ seek_streams_individually?: boolean | (string & {});
2288
+ /** Ignore the edit list atom. */
2289
+ ignore_editlist?: boolean | (string & {});
2290
+ /** Modify the AVIndex according to the editlists. Use this option to decode in the order specified by the edits. */
2291
+ advanced_editlist?: boolean | (string & {});
2292
+ ignore_chapters?: boolean | (string & {});
2293
+ /** use mfra for fragment timestamps */
2294
+ use_mfra_for?: 'auto' | 'dts' | 'pts' | (string & {}) | number;
2295
+ /** use tfdt for fragment timestamps */
2296
+ use_tfdt?: boolean | (string & {});
2297
+ /** Export unrecognized metadata entries */
2298
+ export_all?: boolean | (string & {});
2299
+ /** Export full XMP metadata */
2300
+ export_xmp?: boolean | (string & {});
2301
+ /** Secret bytes for Audible AAX files */
2302
+ activation_bytes?: string | number;
2303
+ /** AES-128 Key for Audible AAXC files */
2304
+ audible_key?: string | number;
2305
+ /** AES-128 IV for Audible AAXC files */
2306
+ audible_iv?: string | number;
2307
+ /** Fixed key used for handling Audible AAX files */
2308
+ audible_fixed_key?: string | number;
2309
+ /** The default media decryption key (hex) */
2310
+ decryption_key?: string | number;
2311
+ /** The media decryption keys by KID (hex) */
2312
+ decryption_keys?: string | number;
2313
+ /** Enable external track support. */
2314
+ enable_drefs?: boolean | (string & {});
2315
+ /** treat offsets above this value as invalid */
2316
+ max_stts_delta?: number | (string & {});
2317
+ /** Interleave packets from multiple tracks at demuxer level */
2318
+ interleaved_read?: boolean | (string & {});
2319
+ };
2320
+ /**
2321
+ * MPEG-TS (MPEG-2 Transport Stream)
2322
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mpegts
2323
+ */
2324
+ mpegts: {
2325
+ /** set size limit for looking up a new synchronization */
2326
+ resync_size?: number | (string & {});
2327
+ /** transport stream id */
2328
+ ts_id?: number | (string & {});
2329
+ /** output option carrying the raw packet size */
2330
+ ts_packetsize?: number | (string & {});
2331
+ /** try to fix pts values of dvb teletext streams */
2332
+ fix_teletext_pts?: boolean | (string & {});
2333
+ /** scan and combine all PMTs */
2334
+ scan_all_pmts?: boolean | (string & {});
2335
+ /** skip PMTs for programs not advertised in the PAT */
2336
+ skip_unknown_pmt?: boolean | (string & {});
2337
+ /** reuse streams when PMT's version/pids change */
2338
+ merge_pmt_versions?: boolean | (string & {});
2339
+ /** skip changing / adding streams / programs */
2340
+ skip_changes?: boolean | (string & {});
2341
+ /** skip clearing programs */
2342
+ skip_clear?: boolean | (string & {});
2343
+ /** maximum size of emitted packet */
2344
+ max_packet_size?: number | (string & {});
2345
+ };
2346
+ /**
2347
+ * raw MPEG-TS (MPEG-2 Transport Stream)
2348
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mpegtsraw
2349
+ */
2350
+ mpegtsraw: {
2351
+ /** set size limit for looking up a new synchronization */
2352
+ resync_size?: number | (string & {});
2353
+ /** transport stream id */
2354
+ ts_id?: number | (string & {});
2355
+ /** output option carrying the raw packet size */
2356
+ ts_packetsize?: number | (string & {});
2357
+ /** compute exact PCR for each transport stream packet */
2358
+ compute_pcr?: boolean | (string & {});
2359
+ };
2360
+ /**
2361
+ * MIME multipart JPEG
2362
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mpjpeg
2363
+ */
2364
+ mpjpeg: {
2365
+ /** require MIME boundaries match */
2366
+ strict_mime_boundary?: boolean | (string & {});
2367
+ };
2368
+ /**
2369
+ * MXF (Material eXchange Format)
2370
+ * @see https://ffmpeg.org/ffmpeg-formats.html#mxf
2371
+ */
2372
+ mxf: {
2373
+ /** extract eia 608 captions from s436m track */
2374
+ eia608_extract?: boolean | (string & {});
2375
+ };
2376
+ /**
2377
+ * AV1 low overhead OBU
2378
+ * @see https://ffmpeg.org/ffmpeg-formats.html#obu
2379
+ */
2380
+ obu: {
2381
+ framerate?: string | number;
2382
+ };
2383
+ /**
2384
+ * raw video
2385
+ * @see https://ffmpeg.org/ffmpeg-formats.html#rawvideo
2386
+ */
2387
+ rawvideo: {
2388
+ /** frame line size in bytes */
2389
+ stride?: string | number;
2390
+ /** set pixel format */
2391
+ pixel_format?: string | number;
2392
+ /** set frame size */
2393
+ video_size?: string | number;
2394
+ /** set frame rate */
2395
+ framerate?: string | number;
2396
+ };
2397
+ /**
2398
+ * RTP input
2399
+ * @see https://ffmpeg.org/ffmpeg-formats.html#rtp
2400
+ */
2401
+ rtp: {
2402
+ /** set RTP flags */
2403
+ rtp_flags?: 'filter_src' | (string & {}) | number;
2404
+ /** set maximum timeout (in seconds) to wait for incoming connections */
2405
+ listen_timeout?: string | number;
2406
+ /** local address */
2407
+ localaddr?: string | number;
2408
+ /** set media types to accept from the server */
2409
+ allowed_media_types?: 'video' | 'audio' | 'data' | 'subtitle' | (string & {}) | number;
2410
+ /** set number of packets to buffer for handling of reordered packets */
2411
+ reorder_queue_size?: number | (string & {});
2412
+ /** Underlying protocol send/receive buffer size */
2413
+ buffer_size?: number | (string & {});
2414
+ /** Underlying protocol send packet size */
2415
+ pkt_size?: number | (string & {});
2416
+ };
2417
+ /**
2418
+ * SBaGen binaural beats script
2419
+ * @see https://ffmpeg.org/ffmpeg-formats.html#sbg
2420
+ */
2421
+ sbg: {
2422
+ sample_rate?: number | (string & {});
2423
+ frame_size?: number | (string & {});
2424
+ max_file_size?: number | (string & {});
2425
+ };
2426
+ /**
2427
+ * SDP
2428
+ * @see https://ffmpeg.org/ffmpeg-formats.html#sdp
2429
+ */
2430
+ sdp: {
2431
+ /** SDP flags */
2432
+ sdp_flags?: 'filter_src' | 'custom_io' | 'rtcp_to_source' | (string & {}) | number;
2433
+ /** set maximum timeout (in seconds) to wait for incoming connections */
2434
+ listen_timeout?: string | number;
2435
+ /** local address */
2436
+ localaddr?: string | number;
2437
+ /** set media types to accept from the server */
2438
+ allowed_media_types?: 'video' | 'audio' | 'data' | 'subtitle' | (string & {}) | number;
2439
+ /** set number of packets to buffer for handling of reordered packets */
2440
+ reorder_queue_size?: number | (string & {});
2441
+ /** Underlying protocol send/receive buffer size */
2442
+ buffer_size?: number | (string & {});
2443
+ /** Underlying protocol send packet size */
2444
+ pkt_size?: number | (string & {});
2445
+ };
2446
+ /**
2447
+ * SER (Simple uncompressed video format for astronomical capturing)
2448
+ * @see https://ffmpeg.org/ffmpeg-formats.html#ser
2449
+ */
2450
+ ser: {
2451
+ /** set frame rate */
2452
+ framerate?: string | number;
2453
+ };
2454
+ /**
2455
+ * Asterisk raw pcm
2456
+ * @see https://ffmpeg.org/ffmpeg-formats.html#sln
2457
+ */
2458
+ sln: {
2459
+ sample_rate?: number | (string & {});
2460
+ ch_layout?: string | number;
2461
+ };
2462
+ /**
2463
+ * TED Talks captions
2464
+ * @see https://ffmpeg.org/ffmpeg-formats.html#tedcaptions
2465
+ */
2466
+ tedcaptions: {
2467
+ /** set the start time (offset) of the subtitles, in ms */
2468
+ start_time?: number | (string & {});
2469
+ };
2470
+ /**
2471
+ * Tele-typewriter
2472
+ * @see https://ffmpeg.org/ffmpeg-formats.html#tty
2473
+ */
2474
+ tty: {
2475
+ chars_per_frame?: number | (string & {});
2476
+ /** A string describing frame size, such as 640x480 or hd720. */
2477
+ video_size?: string | number;
2478
+ framerate?: string | number;
2479
+ };
2480
+ /**
2481
+ * VapourSynth demuxer
2482
+ * @see https://ffmpeg.org/ffmpeg-formats.html#vapoursynth
2483
+ */
2484
+ vapoursynth: {
2485
+ /** set max file size supported (in bytes) */
2486
+ max_script_size?: number | (string & {});
2487
+ };
2488
+ /**
2489
+ * VobSub subtitle format
2490
+ * @see https://ffmpeg.org/ffmpeg-formats.html#vobsub
2491
+ */
2492
+ vobsub: {
2493
+ /** URI for .sub file */
2494
+ sub_name?: string | number;
2495
+ };
2496
+ /**
2497
+ * WAV / WAVE (Waveform Audio)
2498
+ * @see https://ffmpeg.org/ffmpeg-formats.html#wav
2499
+ */
2500
+ wav: {
2501
+ /** Ignore length */
2502
+ ignore_length?: boolean | (string & {});
2503
+ /** max size of single packet */
2504
+ max_size?: number | (string & {});
2505
+ };
2506
+ /**
2507
+ * WebM DASH Manifest
2508
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webm_005fdash_005fmanifest
2509
+ */
2510
+ webm_dash_manifest: {
2511
+ /** flag indicating that the input is a live file that only has the headers. */
2512
+ live?: boolean | (string & {});
2513
+ /** bandwidth of this stream to be specified in the DASH manifest. */
2514
+ bandwidth?: number | (string & {});
2515
+ };
2516
+ /**
2517
+ * Animated WebP
2518
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webp_005fanim
2519
+ */
2520
+ webp_anim: {
2521
+ /** minimum valid delay between frames (in milliseconds) */
2522
+ min_delay?: number | (string & {});
2523
+ /** maximum valid delay between frames (in milliseconds) */
2524
+ max_webp_delay?: number | (string & {});
2525
+ /** default delay between frames (in milliseconds) */
2526
+ default_delay?: number | (string & {});
2527
+ /** ignore loop setting */
2528
+ ignore_loop?: boolean | (string & {});
2529
+ /** use background color from ANIM chunk */
2530
+ usebgcolor?: boolean | (string & {});
2531
+ };
2532
+ /**
2533
+ * WebVTT subtitle
2534
+ * @see https://ffmpeg.org/ffmpeg-formats.html#webvtt
2535
+ */
2536
+ webvtt: {
2537
+ /** Set kind of WebVTT track */
2538
+ kind?: 'subtitles' | 'captions' | 'descriptions' | 'metadata' | (string & {}) | number;
2539
+ };
2540
+ }
2541
+ /**
2542
+ * Loose option bag for formats without generated typings, or for protocol/codec
2543
+ * options that flow through the same dictionary (e.g. `rtsp_transport`).
2544
+ */
2545
+ export type UnknownFormatOptions = Record<string, string | number | boolean | bigint | undefined | null>;
2546
+ /**
2547
+ * Options for a muxer: generic AVFormatContext options + the format's private
2548
+ * options (when the format name is known) + an open bag for protocol/other keys.
2549
+ */
2550
+ export type MuxerOptionsFor<F> = FormatContextOptions & (F extends keyof MuxerPrivateOptionsMap ? MuxerPrivateOptionsMap[F] : {}) & UnknownFormatOptions;
2551
+ /**
2552
+ * Options for a demuxer: generic AVFormatContext options + the format's private
2553
+ * options (when the format name is known) + an open bag for protocol/other keys.
2554
+ */
2555
+ export type DemuxerOptionsFor<F> = FormatContextOptions & (F extends keyof DemuxerPrivateOptionsMap ? DemuxerPrivateOptionsMap[F] : {}) & UnknownFormatOptions;