node-av 6.0.0-beta.3 → 6.0.0-beta.4

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.
@@ -300,6 +300,16 @@ export interface MuxerPrivateOptionsMap {
300
300
  /** Loopend position in milliseconds. */
301
301
  loopend?: number | (string & {});
302
302
  };
303
+ /**
304
+ * AudioToolbox output device
305
+ * @see https://ffmpeg.org/ffmpeg-formats.html#audiotoolbox
306
+ */
307
+ audiotoolbox: {
308
+ /** list available audio devices */
309
+ list_devices?: boolean | (string & {});
310
+ /** select audio device by index (starts at 0) */
311
+ audio_device_index?: number | (string & {});
312
+ };
303
313
  /**
304
314
  * AVI (Audio Video Interleaved)
305
315
  * @see https://ffmpeg.org/ffmpeg-formats.html#avi
@@ -322,6 +332,30 @@ export interface MuxerPrivateOptionsMap {
322
332
  /** Number of times to loop animated AVIF: 0 - infinite loop */
323
333
  loop?: number | (string & {});
324
334
  };
335
+ /**
336
+ * caca (color ASCII art) output device
337
+ * @see https://ffmpeg.org/ffmpeg-formats.html#caca
338
+ */
339
+ caca: {
340
+ /** set window forced size */
341
+ window_size?: string | number;
342
+ /** set window title */
343
+ window_title?: string | number;
344
+ /** set display driver */
345
+ driver?: string | number;
346
+ /** set dithering algorithm */
347
+ algorithm?: string | number;
348
+ /** set antialias method */
349
+ antialias?: string | number;
350
+ /** set charset used to render output */
351
+ charset?: string | number;
352
+ /** set color used to render output */
353
+ color?: string | number;
354
+ /** list available drivers */
355
+ list_drivers?: boolean | (string & {});
356
+ /** list available dither options */
357
+ list_dither?: 'algorithms' | 'antialiases' | 'charsets' | 'colors' | (string & {}) | number;
358
+ };
325
359
  /**
326
360
  * Chromaprint
327
361
  * @see https://ffmpeg.org/ffmpeg-formats.html#chromaprint
@@ -412,6 +446,30 @@ export interface MuxerPrivateOptionsMap {
412
446
  /** Write producer reference time element */
413
447
  write_prft?: boolean | (string & {});
414
448
  };
449
+ /**
450
+ * Blackmagic DeckLink output
451
+ * @see https://ffmpeg.org/ffmpeg-formats.html#decklink
452
+ */
453
+ decklink: {
454
+ /** use ffmpeg -sinks decklink instead */
455
+ list_devices?: boolean | (string & {});
456
+ /** list supported formats */
457
+ list_formats?: number | (string & {});
458
+ /** video preroll in seconds */
459
+ preroll?: number | (string & {});
460
+ /** VANC queue buffer size */
461
+ vanc_queue_size?: number | (string & {});
462
+ /** duplex mode */
463
+ duplex_mode?: 'unset' | 'half' | 'full' | 'one_sub_device_full' | 'one_sub_device_half' | 'two_sub_device_full' | 'four_sub_device_half' | (string & {}) | number;
464
+ /** single/dual/quad SDI link configuration */
465
+ link?: 'unset' | 'single' | 'dual' | 'quad' | (string & {}) | number;
466
+ /** set Square Division */
467
+ sqd?: 'unset' | 'false' | 'true' | (string & {}) | number;
468
+ /** set SMPTE LevelA */
469
+ level_a?: 'unset' | 'false' | 'true' | (string & {}) | number;
470
+ /** genlock timing pixel offset */
471
+ timing_offset?: 'unset' | (string & {}) | number;
472
+ };
415
473
  /**
416
474
  * MPEG-2 PS (DVD VOB)
417
475
  * @see https://ffmpeg.org/ffmpeg-formats.html#dvd
@@ -478,6 +536,16 @@ export interface MuxerPrivateOptionsMap {
478
536
  /** force or disable writing tmcd */
479
537
  write_tmcd?: boolean | (string & {});
480
538
  };
539
+ /**
540
+ * Linux framebuffer
541
+ * @see https://ffmpeg.org/ffmpeg-formats.html#fbdev
542
+ */
543
+ fbdev: {
544
+ /** set x coordinate of top left corner */
545
+ xoffset?: number | (string & {});
546
+ /** set y coordinate of top left corner */
547
+ yoffset?: number | (string & {});
548
+ };
481
549
  /**
482
550
  * FIFO queue pseudo-muxer
483
551
  * @see https://ffmpeg.org/ffmpeg-formats.html#fifo
@@ -1202,6 +1270,28 @@ export interface MuxerPrivateOptionsMap {
1202
1270
  /** force or disable writing tmcd */
1203
1271
  write_tmcd?: boolean | (string & {});
1204
1272
  };
1273
+ /**
1274
+ * Pulse audio output
1275
+ * @see https://ffmpeg.org/ffmpeg-formats.html#pulse
1276
+ */
1277
+ pulse: {
1278
+ /** set PulseAudio server */
1279
+ server?: string | number;
1280
+ /** set application name */
1281
+ name?: string | number;
1282
+ /** set stream description */
1283
+ stream_name?: string | number;
1284
+ /** set device name */
1285
+ device?: string | number;
1286
+ /** set buffer size in bytes */
1287
+ buffer_size?: number | (string & {});
1288
+ /** set buffer duration in millisecs */
1289
+ buffer_duration?: number | (string & {});
1290
+ /** set pre-buffering size */
1291
+ prebuf?: number | (string & {});
1292
+ /** set minimum request size */
1293
+ minreq?: number | (string & {});
1294
+ };
1205
1295
  /**
1206
1296
  * RTP output
1207
1297
  * @see https://ffmpeg.org/ffmpeg-formats.html#rtp
@@ -1616,6 +1706,24 @@ export interface MuxerPrivateOptionsMap {
1616
1706
  /** The optional private key file path for DTLS */
1617
1707
  key_file?: string | number;
1618
1708
  };
1709
+ /**
1710
+ * XV (XVideo) output device
1711
+ * @see https://ffmpeg.org/ffmpeg-formats.html#xv
1712
+ */
1713
+ xv: {
1714
+ /** set display name */
1715
+ display_name?: string | number;
1716
+ /** set existing window id */
1717
+ window_id?: number | (string & {});
1718
+ /** set window forced size */
1719
+ window_size?: string | number;
1720
+ /** set window title */
1721
+ window_title?: string | number;
1722
+ /** set window x offset */
1723
+ window_x?: number | (string & {});
1724
+ /** set window y offset */
1725
+ window_y?: number | (string & {});
1726
+ };
1619
1727
  }
1620
1728
  export interface DemuxerPrivateOptionsMap {
1621
1729
  /**
@@ -1708,6 +1816,29 @@ export interface DemuxerPrivateOptionsMap {
1708
1816
  /** Fixed key used for handling Audible AA files */
1709
1817
  aa_fixed_key?: string | number;
1710
1818
  };
1819
+ /**
1820
+ * ALSA audio input
1821
+ * @see https://ffmpeg.org/ffmpeg-formats.html#alsa
1822
+ */
1823
+ alsa: {
1824
+ sample_rate?: number | (string & {});
1825
+ channels?: number | (string & {});
1826
+ ch_layout?: string | number;
1827
+ };
1828
+ /**
1829
+ * Android camera input device
1830
+ * @see https://ffmpeg.org/ffmpeg-formats.html#android_005fcamera
1831
+ */
1832
+ android_camera: {
1833
+ /** set video size given as a string such as 640x480 or hd720 */
1834
+ video_size?: string | number;
1835
+ /** set video frame rate */
1836
+ framerate?: string | number;
1837
+ /** set index of camera to use */
1838
+ camera_index?: number | (string & {});
1839
+ /** set maximum number of frames to buffer */
1840
+ input_queue_size?: number | (string & {});
1841
+ };
1711
1842
  /**
1712
1843
  * Animated Portable Network Graphics
1713
1844
  * @see https://ffmpeg.org/ffmpeg-formats.html#apng
@@ -1767,6 +1898,42 @@ export interface DemuxerPrivateOptionsMap {
1767
1898
  av1: {
1768
1899
  framerate?: string | number;
1769
1900
  };
1901
+ /**
1902
+ * AVFoundation input device
1903
+ * @see https://ffmpeg.org/ffmpeg-formats.html#avfoundation
1904
+ */
1905
+ avfoundation: {
1906
+ /** list available devices */
1907
+ list_devices?: boolean | (string & {});
1908
+ /** select video device by index for devices with same name (starts at 0) */
1909
+ video_device_index?: number | (string & {});
1910
+ /** select audio device by index for devices with same name (starts at 0) */
1911
+ audio_device_index?: number | (string & {});
1912
+ /** set pixel format */
1913
+ pixel_format?: string | number;
1914
+ /** set frame rate */
1915
+ framerate?: string | number;
1916
+ /** set video size */
1917
+ video_size?: string | number;
1918
+ /** capture the screen cursor */
1919
+ capture_cursor?: boolean | (string & {});
1920
+ /** capture the screen mouse clicks */
1921
+ capture_mouse_clicks?: boolean | (string & {});
1922
+ /** capture the raw data from device connection */
1923
+ capture_raw_data?: boolean | (string & {});
1924
+ /** drop frames that are available later than expected */
1925
+ drop_late_frames?: boolean | (string & {});
1926
+ /** capture system audio via ScreenCaptureKit (macOS 13.0+) */
1927
+ capture_system_audio?: boolean | (string & {});
1928
+ /** exclude current process audio from system audio capture */
1929
+ exclude_process_audio?: boolean | (string & {});
1930
+ /** set system audio sample rate (8000/16000/24000/48000) */
1931
+ sck_audio_sample_rate?: number | (string & {});
1932
+ /** set system audio channel count (1=mono, 2=stereo) */
1933
+ sck_audio_channels?: number | (string & {});
1934
+ /** capture a specific window by ID via ScreenCaptureKit (0=disabled) */
1935
+ capture_window_id?: number | (string & {});
1936
+ };
1770
1937
  /**
1771
1938
  * AVI (Audio Video Interleaved)
1772
1939
  * @see https://ffmpeg.org/ffmpeg-formats.html#avi
@@ -1840,6 +2007,52 @@ export interface DemuxerPrivateOptionsMap {
1840
2007
  data: {
1841
2008
  raw_packet_size?: number | (string & {});
1842
2009
  };
2010
+ /**
2011
+ * Blackmagic DeckLink input
2012
+ * @see https://ffmpeg.org/ffmpeg-formats.html#decklink
2013
+ */
2014
+ decklink: {
2015
+ /** use ffmpeg -sources decklink instead */
2016
+ list_devices?: boolean | (string & {});
2017
+ /** list supported formats */
2018
+ list_formats?: number | (string & {});
2019
+ /** set format by fourcc */
2020
+ format_code?: string | number;
2021
+ /** pixel format to be returned by the card when capturing */
2022
+ raw_format?: 'auto' | 'uyvy422' | 'yuv422p10' | 'argb' | 'bgra' | 'rgb10' | (string & {}) | number;
2023
+ /** output klv if present in vanc */
2024
+ enable_klv?: boolean | (string & {});
2025
+ /** teletext lines bitmask */
2026
+ teletext_lines?: 'standard' | 'all' | (string & {}) | number;
2027
+ /** number of audio channels */
2028
+ channels?: number | (string & {});
2029
+ /** duplex mode */
2030
+ duplex_mode?: 'unset' | 'half' | 'full' | 'one_sub_device_full' | 'one_sub_device_half' | 'two_sub_device_full' | 'four_sub_device_half' | (string & {}) | number;
2031
+ /** timecode format */
2032
+ timecode_format?: 'none' | 'rp188vitc' | 'rp188vitc2' | 'rp188ltc' | 'rp188any' | 'vitc' | 'vitc2' | 'serial' | 'rp188hfr' | (string & {}) | number;
2033
+ /** video input */
2034
+ video_input?: 'unset' | 'sdi' | 'hdmi' | 'optical_sdi' | 'component' | 'composite' | 's_video' | (string & {}) | number;
2035
+ /** audio input */
2036
+ audio_input?: 'unset' | 'embedded' | 'aes_ebu' | 'analog' | 'analog_xlr' | 'analog_rca' | 'microphone' | (string & {}) | number;
2037
+ /** audio pts source */
2038
+ audio_pts?: 'audio' | 'video' | 'reference' | 'wallclock' | 'abs_wallclock' | (string & {}) | number;
2039
+ /** video pts source */
2040
+ video_pts?: 'audio' | 'video' | 'reference' | 'wallclock' | 'abs_wallclock' | (string & {}) | number;
2041
+ /** use option signal_loss_action instead */
2042
+ draw_bars?: boolean | (string & {});
2043
+ /** input queue buffer size */
2044
+ queue_size?: number | (string & {});
2045
+ /** audio bitdepth (16 or 32) */
2046
+ audio_depth?: number | (string & {});
2047
+ /** copy timestamps, do not remove the initial offset */
2048
+ decklink_copyts?: boolean | (string & {});
2049
+ /** capture start time alignment (in seconds) */
2050
+ timestamp_align?: string | number;
2051
+ /** drop frames till a frame with timecode is received. TC format must be set */
2052
+ wait_for_tc?: boolean | (string & {});
2053
+ /** action on signal loss */
2054
+ signal_loss_action?: 'none' | 'bars' | 'repeat' | (string & {}) | number;
2055
+ };
1843
2056
  /**
1844
2057
  * raw DFPWM1a
1845
2058
  * @see https://ffmpeg.org/ffmpeg-formats.html#dfpwm
@@ -1848,6 +2061,64 @@ export interface DemuxerPrivateOptionsMap {
1848
2061
  sample_rate?: number | (string & {});
1849
2062
  ch_layout?: string | number;
1850
2063
  };
2064
+ /**
2065
+ * DirectShow capture
2066
+ * @see https://ffmpeg.org/ffmpeg-formats.html#dshow
2067
+ */
2068
+ dshow: {
2069
+ /** set video size given a string such as 640x480 or hd720. */
2070
+ video_size?: string | number;
2071
+ /** set video pixel format */
2072
+ pixel_format?: string | number;
2073
+ /** set video frame rate */
2074
+ framerate?: string | number;
2075
+ /** set audio sample rate */
2076
+ sample_rate?: number | (string & {});
2077
+ /** set audio sample size */
2078
+ sample_size?: number | (string & {});
2079
+ /** set number of audio channels, such as 1 or 2 */
2080
+ channels?: number | (string & {});
2081
+ /** set audio device buffer latency size in milliseconds (default is the device's default) */
2082
+ audio_buffer_size?: number | (string & {});
2083
+ /** list available devices */
2084
+ list_devices?: boolean | (string & {});
2085
+ /** list available options for specified device */
2086
+ list_options?: boolean | (string & {});
2087
+ /** set video device number for devices with same name (starts at 0) */
2088
+ video_device_number?: number | (string & {});
2089
+ /** set audio device number for devices with same name (starts at 0) */
2090
+ audio_device_number?: number | (string & {});
2091
+ /** select video capture pin by name */
2092
+ video_pin_name?: string | number;
2093
+ /** select audio capture pin by name */
2094
+ audio_pin_name?: string | number;
2095
+ /** set video input pin number for crossbar device */
2096
+ crossbar_video_input_pin_number?: number | (string & {});
2097
+ /** set audio input pin number for crossbar device */
2098
+ crossbar_audio_input_pin_number?: number | (string & {});
2099
+ /** display property dialog for video capture device */
2100
+ show_video_device_dialog?: boolean | (string & {});
2101
+ /** display property dialog for audio capture device */
2102
+ show_audio_device_dialog?: boolean | (string & {});
2103
+ /** display property dialog for crossbar connecting pins filter on video device */
2104
+ show_video_crossbar_connection_dialog?: boolean | (string & {});
2105
+ /** display property dialog for crossbar connecting pins filter on audio device */
2106
+ show_audio_crossbar_connection_dialog?: boolean | (string & {});
2107
+ /** display property dialog for analog tuner filter */
2108
+ show_analog_tv_tuner_dialog?: boolean | (string & {});
2109
+ /** display property dialog for analog tuner audio filter */
2110
+ show_analog_tv_tuner_audio_dialog?: boolean | (string & {});
2111
+ /** load audio capture filter device (and properties) from file */
2112
+ audio_device_load?: string | number;
2113
+ /** save audio capture filter device (and properties) to file */
2114
+ audio_device_save?: string | number;
2115
+ /** load video capture filter device (and properties) from file */
2116
+ video_device_load?: string | number;
2117
+ /** save video capture filter device (and properties) to file */
2118
+ video_device_save?: string | number;
2119
+ /** use device instead of wallclock timestamps for video frames */
2120
+ use_video_device_timestamps?: boolean | (string & {});
2121
+ };
1851
2122
  /**
1852
2123
  * DVD-Video
1853
2124
  * @see https://ffmpeg.org/ffmpeg-formats.html#dvdvideo
@@ -1893,6 +2164,13 @@ export interface DemuxerPrivateOptionsMap {
1893
2164
  evc: {
1894
2165
  framerate?: string | number;
1895
2166
  };
2167
+ /**
2168
+ * Linux framebuffer
2169
+ * @see https://ffmpeg.org/ffmpeg-formats.html#fbdev
2170
+ */
2171
+ fbdev: {
2172
+ framerate?: string | number;
2173
+ };
1896
2174
  /**
1897
2175
  * Flexible Image Transport System
1898
2176
  * @see https://ffmpeg.org/ffmpeg-formats.html#fits
@@ -1938,6 +2216,24 @@ export interface DemuxerPrivateOptionsMap {
1938
2216
  g729: {
1939
2217
  bit_rate?: number | (string & {});
1940
2218
  };
2219
+ /**
2220
+ * GDI API Windows frame grabber
2221
+ * @see https://ffmpeg.org/ffmpeg-formats.html#gdigrab
2222
+ */
2223
+ gdigrab: {
2224
+ /** draw the mouse pointer */
2225
+ draw_mouse?: number | (string & {});
2226
+ /** draw border around capture area */
2227
+ show_region?: number | (string & {});
2228
+ /** set video frame rate */
2229
+ framerate?: string | number;
2230
+ /** set video frame size */
2231
+ video_size?: string | number;
2232
+ /** capture area x offset */
2233
+ offset_x?: number | (string & {});
2234
+ /** capture area y offset */
2235
+ offset_y?: number | (string & {});
2236
+ };
1941
2237
  /**
1942
2238
  * CompuServe Graphics Interchange Format (GIF)
1943
2239
  * @see https://ffmpeg.org/ffmpeg-formats.html#gif
@@ -2001,6 +2297,18 @@ export interface DemuxerPrivateOptionsMap {
2001
2297
  /** Maximum number of times to reload a segment on error. */
2002
2298
  seg_max_retry?: number | (string & {});
2003
2299
  };
2300
+ /**
2301
+ * libiec61883 (new DV1394) A/V input device
2302
+ * @see https://ffmpeg.org/ffmpeg-formats.html#iec61883
2303
+ */
2304
+ iec61883: {
2305
+ /** override autodetection of DV/HDV */
2306
+ dvtype?: 'auto' | 'dv' | 'hdv' | (string & {}) | number;
2307
+ /** set queue buffer size (in packets) */
2308
+ dvbuffer?: number | (string & {});
2309
+ /** select one of multiple DV devices by its GUID */
2310
+ dvguid?: string | number;
2311
+ };
2004
2312
  /**
2005
2313
  * image2 sequence
2006
2314
  * @see https://ffmpeg.org/ffmpeg-formats.html#image2
@@ -2049,6 +2357,32 @@ export interface DemuxerPrivateOptionsMap {
2049
2357
  /** Comma-separated paths to ASSETMAP files. */
2050
2358
  assetmaps?: string | number;
2051
2359
  };
2360
+ /**
2361
+ * JACK Audio Connection Kit
2362
+ * @see https://ffmpeg.org/ffmpeg-formats.html#jack
2363
+ */
2364
+ jack: {
2365
+ /** Number of audio channels. */
2366
+ channels?: number | (string & {});
2367
+ };
2368
+ /**
2369
+ * KMS screen capture
2370
+ * @see https://ffmpeg.org/ffmpeg-formats.html#kmsgrab
2371
+ */
2372
+ kmsgrab: {
2373
+ /** DRM device path */
2374
+ device?: string | number;
2375
+ /** Pixel format for framebuffer */
2376
+ format?: string | number;
2377
+ /** DRM format modifier for framebuffer */
2378
+ format_modifier?: number | (string & {});
2379
+ /** CRTC ID to define capture source */
2380
+ crtc_id?: number | (string & {});
2381
+ /** Plane ID to define capture source */
2382
+ plane_id?: number | (string & {});
2383
+ /** Framerate to capture at */
2384
+ framerate?: string | number;
2385
+ };
2052
2386
  /**
2053
2387
  * KUX (YouKu)
2054
2388
  * @see https://ffmpeg.org/ffmpeg-formats.html#kux
@@ -2061,6 +2395,37 @@ export interface DemuxerPrivateOptionsMap {
2061
2395
  /** Ignore the Size of previous tag */
2062
2396
  flv_ignore_prevtag?: boolean | (string & {});
2063
2397
  };
2398
+ /**
2399
+ * Libavfilter virtual input device
2400
+ * @see https://ffmpeg.org/ffmpeg-formats.html#lavfi
2401
+ */
2402
+ lavfi: {
2403
+ /** set libavfilter graph */
2404
+ graph?: string | number;
2405
+ /** set libavfilter graph filename */
2406
+ graph_file?: string | number;
2407
+ /** dump graph to stderr */
2408
+ dumpgraph?: string | number;
2409
+ };
2410
+ /**
2411
+ * @see https://ffmpeg.org/ffmpeg-formats.html#libcdio
2412
+ */
2413
+ libcdio: {
2414
+ /** set drive reading speed */
2415
+ speed?: number | (string & {});
2416
+ /** set error recovery mode */
2417
+ paranoia_mode?: 'disable' | 'verify' | 'overlap' | 'neverskip' | 'full' | (string & {}) | number;
2418
+ };
2419
+ /**
2420
+ * dc1394 v.2 A/V grab
2421
+ * @see https://ffmpeg.org/ffmpeg-formats.html#libdc1394
2422
+ */
2423
+ libdc1394: {
2424
+ /** A string describing frame size, such as 640x480 or hd720. */
2425
+ video_size?: string | number;
2426
+ pixel_format?: string | number;
2427
+ framerate?: string | number;
2428
+ };
2064
2429
  /**
2065
2430
  * Game Music Emu demuxer
2066
2431
  * @see https://ffmpeg.org/ffmpeg-formats.html#libgme
@@ -2380,6 +2745,50 @@ export interface DemuxerPrivateOptionsMap {
2380
2745
  obu: {
2381
2746
  framerate?: string | number;
2382
2747
  };
2748
+ /**
2749
+ * OpenAL audio capture device
2750
+ * @see https://ffmpeg.org/ffmpeg-formats.html#openal
2751
+ */
2752
+ openal: {
2753
+ /** set number of channels */
2754
+ channels?: number | (string & {});
2755
+ /** set sample rate */
2756
+ sample_rate?: number | (string & {});
2757
+ /** set sample size */
2758
+ sample_size?: number | (string & {});
2759
+ /** list available devices */
2760
+ list_devices?: 'true' | 'false' | (string & {}) | number;
2761
+ };
2762
+ /**
2763
+ * OSS (Open Sound System) capture
2764
+ * @see https://ffmpeg.org/ffmpeg-formats.html#oss
2765
+ */
2766
+ oss: {
2767
+ sample_rate?: number | (string & {});
2768
+ channels?: number | (string & {});
2769
+ };
2770
+ /**
2771
+ * Pulse audio input
2772
+ * @see https://ffmpeg.org/ffmpeg-formats.html#pulse
2773
+ */
2774
+ pulse: {
2775
+ /** set PulseAudio server */
2776
+ server?: string | number;
2777
+ /** set application name */
2778
+ name?: string | number;
2779
+ /** set stream description */
2780
+ stream_name?: string | number;
2781
+ /** set sample rate in Hz */
2782
+ sample_rate?: number | (string & {});
2783
+ /** set number of audio channels */
2784
+ channels?: number | (string & {});
2785
+ /** set number of bytes per frame */
2786
+ frame_size?: number | (string & {});
2787
+ /** set buffering size, affects latency and cpu usage */
2788
+ fragment_size?: number | (string & {});
2789
+ /** set the initial pts using the current time */
2790
+ wallclock?: number | (string & {});
2791
+ };
2383
2792
  /**
2384
2793
  * raw video
2385
2794
  * @see https://ffmpeg.org/ffmpeg-formats.html#rawvideo
@@ -2459,6 +2868,14 @@ export interface DemuxerPrivateOptionsMap {
2459
2868
  sample_rate?: number | (string & {});
2460
2869
  ch_layout?: string | number;
2461
2870
  };
2871
+ /**
2872
+ * sndio audio capture
2873
+ * @see https://ffmpeg.org/ffmpeg-formats.html#sndio
2874
+ */
2875
+ sndio: {
2876
+ sample_rate?: number | (string & {});
2877
+ channels?: number | (string & {});
2878
+ };
2462
2879
  /**
2463
2880
  * TED Talks captions
2464
2881
  * @see https://ffmpeg.org/ffmpeg-formats.html#tedcaptions
@@ -2477,6 +2894,34 @@ export interface DemuxerPrivateOptionsMap {
2477
2894
  video_size?: string | number;
2478
2895
  framerate?: string | number;
2479
2896
  };
2897
+ /**
2898
+ * Video4Linux2 device grab
2899
+ * @see https://ffmpeg.org/ffmpeg-formats.html#v4l2
2900
+ */
2901
+ v4l2: {
2902
+ /** set TV standard, used only by analog frame grabber */
2903
+ standard?: string | number;
2904
+ /** set TV channel, used only by frame grabber */
2905
+ channel?: number | (string & {});
2906
+ /** set frame size */
2907
+ video_size?: string | number;
2908
+ /** set preferred pixel format */
2909
+ pixel_format?: string | number;
2910
+ /** set preferred pixel format (for raw video) or codec name */
2911
+ input_format?: string | number;
2912
+ /** set frame rate */
2913
+ framerate?: string | number;
2914
+ /** list available formats and exit */
2915
+ list_formats?: 'all' | 'raw' | 'compressed' | (string & {}) | number;
2916
+ /** list supported standards and exit */
2917
+ list_standards?: 'all' | (string & {}) | number;
2918
+ /** set type of timestamps for grabbed frames */
2919
+ timestamps?: 'default' | 'abs' | 'mono2abs' | (string & {}) | number;
2920
+ /** set type of timestamps for grabbed frames */
2921
+ ts?: 'default' | 'abs' | 'mono2abs' | (string & {}) | number;
2922
+ /** use libv4l2 (v4l-utils) conversion functions */
2923
+ use_libv4l2?: boolean | (string & {});
2924
+ };
2480
2925
  /**
2481
2926
  * VapourSynth demuxer
2482
2927
  * @see https://ffmpeg.org/ffmpeg-formats.html#vapoursynth
@@ -2485,6 +2930,43 @@ export interface DemuxerPrivateOptionsMap {
2485
2930
  /** set max file size supported (in bytes) */
2486
2931
  max_script_size?: number | (string & {});
2487
2932
  };
2933
+ /**
2934
+ * VfW video capture
2935
+ * @see https://ffmpeg.org/ffmpeg-formats.html#vfwcap
2936
+ */
2937
+ vfwcap: {
2938
+ /** A string describing frame size, such as 640x480 or hd720. */
2939
+ video_size?: string | number;
2940
+ framerate?: string | number;
2941
+ };
2942
+ /**
2943
+ * Video4Linux2 device grab
2944
+ * @see https://ffmpeg.org/ffmpeg-formats.html#video4linux2
2945
+ */
2946
+ video4linux2: {
2947
+ /** set TV standard, used only by analog frame grabber */
2948
+ standard?: string | number;
2949
+ /** set TV channel, used only by frame grabber */
2950
+ channel?: number | (string & {});
2951
+ /** set frame size */
2952
+ video_size?: string | number;
2953
+ /** set preferred pixel format */
2954
+ pixel_format?: string | number;
2955
+ /** set preferred pixel format (for raw video) or codec name */
2956
+ input_format?: string | number;
2957
+ /** set frame rate */
2958
+ framerate?: string | number;
2959
+ /** list available formats and exit */
2960
+ list_formats?: 'all' | 'raw' | 'compressed' | (string & {}) | number;
2961
+ /** list supported standards and exit */
2962
+ list_standards?: 'all' | (string & {}) | number;
2963
+ /** set type of timestamps for grabbed frames */
2964
+ timestamps?: 'default' | 'abs' | 'mono2abs' | (string & {}) | number;
2965
+ /** set type of timestamps for grabbed frames */
2966
+ ts?: 'default' | 'abs' | 'mono2abs' | (string & {}) | number;
2967
+ /** use libv4l2 (v4l-utils) conversion functions */
2968
+ use_libv4l2?: boolean | (string & {});
2969
+ };
2488
2970
  /**
2489
2971
  * VobSub subtitle format
2490
2972
  * @see https://ffmpeg.org/ffmpeg-formats.html#vobsub
@@ -2537,19 +3019,38 @@ export interface DemuxerPrivateOptionsMap {
2537
3019
  /** Set kind of WebVTT track */
2538
3020
  kind?: 'subtitles' | 'captions' | 'descriptions' | 'metadata' | (string & {}) | number;
2539
3021
  };
3022
+ /**
3023
+ * X11 screen capture, using XCB
3024
+ * @see https://ffmpeg.org/ffmpeg-formats.html#x11grab
3025
+ */
3026
+ x11grab: {
3027
+ /** Window to capture. */
3028
+ window_id?: number | (string & {});
3029
+ /** Initial x coordinate. */
3030
+ x?: number | (string & {});
3031
+ /** Initial y coordinate. */
3032
+ y?: number | (string & {});
3033
+ /** Initial x coordinate. */
3034
+ grab_x?: number | (string & {});
3035
+ /** Initial y coordinate. */
3036
+ grab_y?: number | (string & {});
3037
+ /** A string describing frame size, such as 640x480 or hd720. */
3038
+ video_size?: string | number;
3039
+ framerate?: string | number;
3040
+ /** Draw the mouse pointer. */
3041
+ draw_mouse?: number | (string & {});
3042
+ /** Move the grabbing region when the mouse pointer reaches within specified amount of pixels to the edge of region. */
3043
+ follow_mouse?: 'centered' | (string & {}) | number;
3044
+ /** Show the grabbing region. */
3045
+ show_region?: number | (string & {});
3046
+ /** Set the region border thickness. */
3047
+ region_border?: number | (string & {});
3048
+ /** Select the grabbing region graphically using the pointer. */
3049
+ select_region?: boolean | (string & {});
3050
+ };
2540
3051
  }
2541
3052
  /**
2542
3053
  * Loose option bag for formats without generated typings, or for protocol/codec
2543
3054
  * options that flow through the same dictionary (e.g. `rtsp_transport`).
2544
3055
  */
2545
3056
  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;