OS Manuals

/usr/bin/ffmpeg

ffmpeg multimedia library

From ffmpeg-8.0 8.0.3-r11 (enterprise-packages), captured 2026-11-08 by running ffmpeg --help (exit 0). permalink

ffmpeg version n8.0.3 Copyright (c) 2000-2026 the FFmpeg developers
  built with gcc 16 (Wolfi 16.2.0-r2)
  configuration: --prefix=/usr --libdir=/usr/lib --enable-shared --enable-libx264 --enable-libx265 --enable-libaom --enable-libtheora --enable-gpl --enable-version3 --enable-openssl --enable-libmp3lame --enable-libopencore-amrnb --enable-ffplay --enable-libdav1d --enable-libharfbuzz --enable-libopus --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq
  libavutil      60.  8.103 / 60.  8.103
  libavcodec     62. 11.103 / 62. 11.103
  libavformat    62.  3.103 / 62.  3.103
  libavdevice    62.  1.103 / 62.  1.103
  libavfilter    11.  4.103 / 11.  4.103
  libswscale      9.  1.103 /  9.  1.103
  libswresample   6.  1.103 /  6.  1.103
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Getting help:
    -h      -- print basic options
    -h long -- print more options
    -h full -- print all options (including all format and codec specific options, very long)
    -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol
    See man ffmpeg for detailed description of the options.

Per-stream options can be followed by :<stream_spec> to apply that option to specific streams only. <stream_spec> can be a stream index, or v/a/s for video/audio/subtitle (see manual for full syntax).

Print help / information / capabilities:
-L                  show license
-h <topic>          show help
-version            show version
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-decoders           show available decoders
-encoders           show available encoders
-filters            show available filters
-pix_fmts           show available pixel formats
-layouts            show standard channel layouts
-sample_fmts        show available audio sample formats

Global options (affect whole program instead of just one file):
-v <loglevel>       set logging level
-y                  overwrite output files
-n                  never overwrite output files
-print_graphs       print execution graph data to stderr
-print_graphs_file <filename>  write execution graph data to the specified file
-print_graphs_format <format>  set the output printing format (available formats are: default, compact, csv, flat, ini, json, xml, mermaid, mermaidhtml)
-stats              print progress report during encoding

Per-file options (input and output):
-f <fmt>            force container format (auto-detected otherwise)
-t <duration>       stop transcoding after specified duration
-to <time_stop>     stop transcoding after specified time is reached
-ss <time_off>      start transcoding at specified time


Per-file options (output-only):
-metadata[:<spec>] <key=value>  add metadata

Per-stream options:
-c[:<stream_spec>] <codec>  select encoder/decoder ('copy' to copy stream without reencoding)
-filter[:<stream_spec>] <filter_graph>  apply specified filters to audio/video

Video options:
-r[:<stream_spec>] <rate>  override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)
-aspect[:<stream_spec>] <aspect>  set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
-vn                 disable video
-vcodec <codec>     alias for -c:v (select encoder/decoder for video streams)
-vf <filter_graph>  alias for -filter:v (apply filters to video streams)
-b <bitrate>        video bitrate (please use -b:v)

Audio options:
-aq <quality>       set audio quality (codec-specific)
-ar[:<stream_spec>] <rate>  set audio sampling rate (in Hz)
-ac[:<stream_spec>] <channels>  set number of audio channels
-an                 disable audio
-acodec <codec>     alias for -c:a (select encoder/decoder for audio streams)
-ab <bitrate>       alias for -b:a (select bitrate for audio streams)
-af <filter_graph>  alias for -filter:a (apply filters to audio streams)

Subtitle options:
-sn                 disable subtitle
-scodec <codec>     alias for -c:s (select encoder/decoder for subtitle streams)



Exiting with exit code 0
Options (130)
OptionDescriptionSource
-h-- print basic optionshelp
-LShow license.help + man
-versionShow version.help + man
-muxersShow available muxers.help + man
-demuxersShow available demuxers.help + man
-devicesShow available devices.help + man
-decodersShow available decoders.help + man
-encodersShow all available encoders.help + man
-filtersShow available libavfilter filters.help + man
-pix_fmtsShow available pixel formats.help + man
-layoutsShow channel names and standard channel layouts.help + man
-sample_fmtsshow available audio sample formatshelp + man
-v loglevelset logging levelhelp
-y (global)Overwrite output files without asking.help + man
-n (global)Do not overwrite output files, and exit immediately if a specified output file already exists.help + man
-print_graphs (global)Prints execution graph details to stderr in the format set via -print_graphs_format.help + man
-print_graphs_file filenameWrites execution graph details to the specified file in the format set via -print_graphs_format.help + man
-print_graphs_format formatSets the output format (available formats are: default, compact, csv, flat, ini, json, xml, mermaid, mermaidhtml) The default format is json.help + man
-stats (global)Log encoding progress/statistics as "info"-level log (see "-loglevel").help + man
-f fmtforce container format (auto-detected otherwise)help + man
-t durationWhen used as an input option (before "-i"), limit the duration of data read from the input file.help + man
-to time_stopstop transcoding after specified time is reachedhelp + man
-ss time_offWhen used as an input option (before "-i"), seeks in this input file to position.help + man
-metadata :<specadd metadatahelp
-c :<stream_specselect encoder/decoder ('copy' to copy stream without reencoding)help
-filter :<stream_specapply specified filters to audio/videohelp
-r :<stream_specoverride input framerate/convert to given output framerate (Hz value, fraction or abbreviation)help
-aspect :<stream_specset aspect ratio (4:3, 16:9 or 1.3333, 1.7777)help
-vn (input/output)As an input option, blocks all video streams of a file from being filtered or being automatically selected or mapped for any output.help + man
-vcodec codecalias for -c:v (select encoder/decoder for video streams)help + man
-vf filter_graphCreate the filtergraph specified by filtergraph and use it to filter the stream.help + man
-b bitratevideo bitrate (please use -b:v)help
-aq qualitySet the audio quality (codec-specific, VBR).help + man
-ar :<stream_specset audio sampling rate (in Hz)help
-ac :<stream_specset number of audio channelshelp
-an (input/output)As an input option, blocks all audio streams of a file from being filtered or being automatically selected or mapped for any output.help + man
-acodec codecalias for -c:a (select encoder/decoder for audio streams)help + man
-ab bitratealias for -b:a (select bitrate for audio streams)help
-af filter_graphCreate the filtergraph specified by filtergraph and use it to filter the stream.help + man
-sn (input/output)As an input option, blocks all subtitle streams of a file from being filtered or being automatically selected or mapped for any output.help + man
-scodec codecalias for -c:s (select encoder/decoder for subtitle streams)help + man
-buildconfShow the build configuration, one option per line. (in the manual page but not in --help)man
-formatsShow available formats (including devices). (in the manual page but not in --help)man
-codecsShow all codecs known to libavcodec. (in the manual page but not in --help)man
-bsfsShow available bitstream filters. (in the manual page but not in --help)man
-protocolsShow available protocols. (in the manual page but not in --help)man
-dispositionsShow stream dispositions. (in the manual page but not in --help)man
-colorsShow recognized color names. (in the manual page but not in --help)man
-reportDump full command line and log output to a file named "program-YYYYMMDD-HHMMSS.log" in the current directory. (in the manual page but not in --help)man
-hide_bannerSuppress printing banner. (in the manual page but not in --help)man
-cpuflags flagsAllows setting and clearing cpu flags. (in the manual page but not in --help)man
-cpucount countOverride detection of CPU count. (in the manual page but not in --help)man
-max_alloc bytesSet the maximum size limit for allocating a block on the heap by ffmpeg's family of malloc functions. (in the manual page but not in --help)man
-i urlinput file url (in the manual page but not in --help)man
-stream_loop numberSet number of times input stream shall be looped. (in the manual page but not in --help)man
-recast_media (global)Allow forcing a decoder of a different media type than the one detected or designated by the demuxer. (in the manual page but not in --help)man
-fs limit_sizeSet the file size limit, expressed in bytes. (in the manual page but not in --help)man
-sseof positionLike the "-ss" option but relative to the "end of file". (in the manual page but not in --help)man
-isync input_indexAssign an input as a sync source. (in the manual page but not in --help)man
-itsoffset offsetSet the input time offset. (in the manual page but not in --help)man
-itsscale scaleRescale input timestamps. (in the manual page but not in --help)man
-timestamp dateSet the recording timestamp in the container. (in the manual page but not in --help)man
-target typeSpecify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). (in the manual page but not in --help)man
-dn (input/output)As an input option, blocks all data streams of a file from being filtered or being automatically selected or mapped for any output. (in the manual page but not in --help)man
-dframes numberSet the number of data frames to output. (in the manual page but not in --help)man
-filter_threads nb_threadsDefines how many threads are used to process a filter pipeline. (in the manual page but not in --help)man
-filter_buffered_frames nb_framesDefines the maximum number of buffered frames allowed in a filtergraph. (in the manual page but not in --help)man
-stats_period timeSet period at which encoding progress/statistics are updated. (in the manual page but not in --help)man
-progress urlSend program-friendly progress information to url. (in the manual page but not in --help)man
-stdinEnable interaction on standard input. (in the manual page but not in --help)man
-debug_ts (global)Print timestamp/latency information. (in the manual page but not in --help)man
-attach filenameAdd an attachment to the output file. (in the manual page but not in --help)man
-vframes numberSet the number of video frames to output. (in the manual page but not in --help)man
-autorotateAutomatically rotate the video according to file metadata. (in the manual page but not in --help)man
-autoscaleAutomatically scale the video according to the resolution of first frame. (in the manual page but not in --help)man
-sws_flags flagsSet default flags for the libswscale library. (in the manual page but not in --help)man
-vstatsDump video coding statistics to vstats_HHMMSS.log. (in the manual page but not in --help)man
-vstats_file fileDump video coding statistics to file. (in the manual page but not in --help)man
-vstats_version fileSpecify which version of the vstats format to use. (in the manual page but not in --help)man
-vtag fourcc/tagForce video tag/fourcc. (in the manual page but not in --help)man
-init_hw_device cuda:1Choose the second device on the system. (in the manual page but not in --help)man
-filter_hw_device namePass the hardware device called name to all filters in any filter graph. (in the manual page but not in --help)man
-hwaccelsList all hardware acceleration components enabled in this build of ffmpeg. (in the manual page but not in --help)man
-aframes numberSet the number of audio frames to output. (in the manual page but not in --help)man
-atag fourcc/tagForce audio tag/fourcc. (in the manual page but not in --help)man
-guess_layout_max channelsIf some input channel layout is not known, try to guess only if it corresponds to at most the specified number of channels. (in the manual page but not in --help)man
-fix_sub_durationFix subtitles durations. (in the manual page but not in --help)man
-canvas_size sizeSet the size of the canvas used to render subtitles. (in the manual page but not in --help)man
-ignore_unknownIgnore input streams with unknown type instead of failing if copying such streams is attempted. (in the manual page but not in --help)man
-copy_unknownAllow input streams with unknown type to be copied instead of failing if copying such streams is attempted. (in the manual page but not in --help)man
-map_chapters input_file_indexCopy chapters from input file with index input_file_index to the next output file. (in the manual page but not in --help)man
-benchmark (global)Show benchmarking information at the end of an encode. (in the manual page but not in --help)man
-benchmark_all (global)Show benchmarking information during the encode. (in the manual page but not in --help)man
-timelimit durationExit after ffmpeg has been running for duration seconds in CPU user time. (in the manual page but not in --help)man
-dump (global)Dump each input packet to stderr. (in the manual page but not in --help)man
-hex (global)When dumping packets, also dump the payload. (in the manual page but not in --help)man
-readrate speedLimit input read speed. (in the manual page but not in --help)man
-re (input)Read input at native frame rate. (in the manual page but not in --help)man
-readrate_initial_burst secondsSet an initial read burst time, in seconds, after which -re/-readrate will be enforced. (in the manual page but not in --help)man
-readrate_catchup speedIf either the input or output is blocked leading to actual read speed falling behind the specified readrate, then this rate takes effect till the input catches up with the specified readrate. (in the manual page but not in --help)man
-vsync parameter[-fps_mode[:stream_specifier] parameter (output,per-stream)](#fps_mode_:) (in the manual page but not in --help)man
-frame_drop_threshold parameterFrame drop threshold, which specifies how much behind video frames can be before they are dropped. (in the manual page but not in --help)man
-apad parametersPad the output audio stream(s). (in the manual page but not in --help)man
-copytsDo not process input timestamps, but keep their values without trying to sanitize them. (in the manual page but not in --help)man
-start_at_zeroWhen used with copyts, shift input timestamps so they start at zero. (in the manual page but not in --help)man
-copytb modeSpecify how to set the encoder timebase when stream copying. (in the manual page but not in --help)man
-1Try to make the choice automatically, in order to generate a sane output. (in the manual page but not in --help)man
-bitexact (input/output)Enable bitexact mode for (de)muxer and (de/en)coder (in the manual page but not in --help)man
-shortest (output)Finish encoding when the shortest output stream ends. (in the manual page but not in --help)man
-shortest_buf_duration durationThe "-shortest" option may require buffering potentially large amounts of data when at least one of the streams is "sparse" (i.e. has large gaps between frames – this is typically the case for… (in the manual page but not in --help)man
-dts_delta_threshold thresholdTimestamp discontinuity delta threshold, expressed as a decimal number of seconds. (in the manual page but not in --help)man
-dts_error_threshold thresholdTimestamp error delta threshold, expressed as a decimal number of seconds. (in the manual page but not in --help)man
-muxdelay secondsSet the maximum demux-decode delay. (in the manual page but not in --help)man
-muxpreload secondsSet the initial demux-decode delay. (in the manual page but not in --help)man
-streamid output-stream-index:new-valueAssign a new stream-id value to an output stream. (in the manual page but not in --help)man
-timecode hh:mm:ssSEPffSpecify Timecode for writing. (in the manual page but not in --help)man
-filter_complex filtergraphDefine a complex filtergraph, i.e. one with arbitrary number of inputs and/or outputs. (in the manual page but not in --help)man
-filter_complex_threads nb_threadsDefines how many threads are used to process a filter_complex graph. (in the manual page but not in --help)man
-lavfi filtergraphDefine a complex filtergraph, i.e. one with arbitrary number of inputs and/or outputs. (in the manual page but not in --help)man
-accurate_seek (input)This option enables or disables accurate seeking in input files with the -ss option. (in the manual page but not in --help)man
-seek_timestamp (input)This option enables or disables seeking by timestamp in input files with the -ss option. (in the manual page but not in --help)man
-thread_queue_size sizeFor input, this option sets the maximum number of queued packets when reading from the file or device. (in the manual page but not in --help)man
-sdp_file filePrint sdp information for an output stream to file. (in the manual page but not in --help)man
-discard (input)Allows discarding specific streams or frames from streams. (in the manual page but not in --help)man
-abort_on flagsStop and abort on various conditions. (in the manual page but not in --help)man
-max_error_rate (global)Set fraction of decoding frame failures across all inputs which when crossed ffmpeg will return exit code 69. (in the manual page but not in --help)man
-xerror (global)Stop and exit on error (in the manual page but not in --help)man
-max_muxing_queue_size packetsWhen transcoding audio and/or video streams, ffmpeg will not begin writing into the output until it has one packet for each such stream. (in the manual page but not in --help)man
-muxing_queue_data_threshold bytesThis is a minimum threshold until which the muxing queue size is not taken into account. (in the manual page but not in --help)man
-auto_conversion_filters (global)Enable automatically inserting format conversion filters in all filter graphs, including those defined by -vf, -af, -filter_complex and -lavfi. (in the manual page but not in --help)man
Examples (4) from the manual page, untested

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.