From f5c4671bfbad96bf346bd7e9a21fc4317b4959df Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Sat, 3 Dec 2022 17:00:20 +0530 Subject: Adds most of the tools --- ffmpeg/doc/ffprobe.html | 1219 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1219 insertions(+) create mode 100644 ffmpeg/doc/ffprobe.html (limited to 'ffmpeg/doc/ffprobe.html') diff --git a/ffmpeg/doc/ffprobe.html b/ffmpeg/doc/ffprobe.html new file mode 100644 index 0000000..9f46149 --- /dev/null +++ b/ffmpeg/doc/ffprobe.html @@ -0,0 +1,1219 @@ + + + +
+ +ffprobe [options] input_url +
+ +ffprobe gathers information from multimedia streams and prints it in +human- and machine-readable fashion. +
+For example it can be used to check the format of the container used +by a multimedia stream and the format and type of each media stream +contained in it. +
+If a url is specified in input, ffprobe will try to open and +probe the url content. If the url cannot be opened or recognized as +a multimedia file, a positive exit code is returned. +
+If no output is specified as output with o ffprobe will write +to stdout. +
+ffprobe may be employed both as a standalone application or in +combination with a textual filter, which may perform more +sophisticated processing, e.g. statistical processing or plotting. +
+Options are used to list some of the formats supported by ffprobe or +for specifying which information to display, and for setting how +ffprobe will show it. +
+ffprobe output is designed to be easily parsable by a textual filter, +and consists of one or more sections of a form defined by the selected +writer, which is specified by the print_format option. +
+Sections may contain other nested sections, and are identified by a +name (which may be shared by other sections), and an unique +name. See the output of sections. +
+Metadata tags stored in the container or in the streams are recognized +and printed in the corresponding "FORMAT", "STREAM" or "PROGRAM_STREAM" +section. +
+ + +All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +
+If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiples, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +
+Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +
+ +Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +
+A stream specifier is a string generally appended to the option name and
+separated from it by a colon. E.g. -codec:a:1 ac3
contains the
+a:1
stream specifier, which matches the second audio stream. Therefore, it
+would select the ac3 codec for the second audio stream.
+
A stream specifier can match several streams, so that the option is applied to all
+of them. E.g. the stream specifier in -b:a 128k
matches all audio
+streams.
+
An empty stream specifier matches all streams. For example, -codec copy
+or -codec: copy
would copy all the streams without reencoding.
+
Possible forms of stream specifiers are: +
Matches the stream with this index. E.g. -threads:1 4
would set the
+thread count for the second stream to 4. If stream_index is used as an
+additional stream specifier (see below), then it selects stream number
+stream_index from the matching streams. Stream numbering is based on the
+order of the streams as detected by libavformat except when a program ID is
+also specified. In this case it is based on the ordering of the streams in the
+program.
+
stream_type is one of following: ’v’ or ’V’ for video, ’a’ for audio, ’s’ +for subtitle, ’d’ for data, and ’t’ for attachments. ’v’ matches all video +streams, ’V’ only matches video streams which are not attached pictures, video +thumbnails or cover arts. If additional_stream_specifier is used, then +it matches streams which both have this type and match the +additional_stream_specifier. Otherwise, it matches all streams of the +specified type. +
Matches streams which are in the program with the id program_id. If +additional_stream_specifier is used, then it matches streams which both +are part of the program and match the additional_stream_specifier. +
+Match the stream by stream id (e.g. PID in MPEG-TS container). +
Matches streams with the metadata tag key having the specified value. If +value is not given, matches streams that contain the given tag with any +value. +
Matches streams with usable configuration, the codec must be defined and the +essential information such as video dimension or audio sample rate must be present. +
+Note that in ffmpeg
, matching by metadata will only work properly for
+input files.
+
These options are shared amongst the ff* tools. +
+Show license. +
+Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +
+Possible values of arg are: +
Print advanced tool options in addition to the basic tool options. +
+Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +
+Print detailed information about the decoder named decoder_name. Use the +-decoders option to get a list of all decoders. +
+Print detailed information about the encoder named encoder_name. Use the +-encoders option to get a list of all encoders. +
+Print detailed information about the demuxer named demuxer_name. Use the +-formats option to get a list of all demuxers and muxers. +
+Print detailed information about the muxer named muxer_name. Use the +-formats option to get a list of all muxers and demuxers. +
+Print detailed information about the filter named filter_name. Use the +-filters option to get a list of all filters. +
+Print detailed information about the bitstream filter named bitstream_filter_name. +Use the -bsfs option to get a list of all bitstream filters. +
+Print detailed information about the protocol named protocol_name. +Use the -protocols option to get a list of all protocols. +
Show version. +
+Show the build configuration, one option per line. +
+Show available formats (including devices). +
+Show available demuxers. +
+Show available muxers. +
+Show available devices. +
+Show all codecs known to libavcodec. +
+Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +
+Show available decoders. +
+Show all available encoders. +
+Show available bitstream filters. +
+Show available protocols. +
+Show available libavfilter filters. +
+Show available pixel formats. +
+Show available sample formats. +
+Show channel names and standard channel layouts. +
+Show stream dispositions. +
+Show recognized color names. +
+Show autodetected sources of the input device. +Some devices may provide system-dependent source names that cannot be autodetected. +The returned list cannot be assumed to be always complete. +
ffmpeg -sources pulse,server=192.168.0.4 +
Show autodetected sinks of the output device. +Some devices may provide system-dependent sink names that cannot be autodetected. +The returned list cannot be assumed to be always complete. +
ffmpeg -sinks pulse,server=192.168.0.4 +
Set logging level and flags used by the library. +
+The optional flags prefix can consist of the following values: +
Indicates that repeated log output should not be compressed to the first line +and the "Last message repeated n times" line will be omitted. +
Indicates that log output should add a [level]
prefix to each message
+line. This can be used as an alternative to log coloring, e.g. when dumping the
+log to file.
+
Flags can also be used alone by adding a ’+’/’-’ prefix to set/reset a single +flag without affecting other flags or changing loglevel. When +setting both flags and loglevel, a ’+’ separator is expected +between the last flags value and before loglevel. +
+loglevel is a string or a number containing one of the following values: +
Show nothing at all; be silent. +
Only show fatal errors which could lead the process to crash, such as +an assertion failure. This is not currently used for anything. +
Only show fatal errors. These are errors after which the process absolutely +cannot continue. +
Show all errors, including ones which can be recovered from. +
Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +
Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +
Same as info
, except more verbose.
+
Show everything, including debugging information. +
For example to enable repeated log output, add the level
prefix, and set
+loglevel to verbose
:
+
ffmpeg -loglevel repeat+level+verbose -i input output +
Another example that enables repeated log output without affecting current
+state of level
prefix flag or loglevel:
+
ffmpeg [...] -loglevel +repeat +
By default the program logs to stderr. If coloring is supported by the
+terminal, colors are used to mark errors and warnings. Log coloring
+can be disabled setting the environment variable
+AV_LOG_FORCE_NOCOLOR
, or can be forced setting
+the environment variable AV_LOG_FORCE_COLOR
.
+
Dump full command line and log output to a file named
+program-YYYYMMDD-HHMMSS.log
in the current
+directory.
+This file can be useful for bug reports.
+It also implies -loglevel debug
.
+
Setting the environment variable FFREPORT
to any value has the
+same effect. If the value is a ’:’-separated key=value sequence, these
+options will affect the report; option values must be escaped if they
+contain special characters or the options delimiter ’:’ (see the
+“Quoting and escaping” section in the ffmpeg-utils manual).
+
The following options are recognized: +
set the file name to use for the report; %p
is expanded to the name
+of the program, %t
is expanded to a timestamp, %%
is expanded
+to a plain %
+
set the log verbosity level using a numerical value (see -loglevel
).
+
For example, to output a report to a file named ffreport.log
+using a log level of 32
(alias for log level info
):
+
FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output +
Errors in parsing the environment variable are not fatal, and will not +appear in the report. +
+Suppress printing banner. +
+All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +
+Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +
ffmpeg -cpuflags -sse+mmx ... +ffmpeg -cpuflags mmx ... +ffmpeg -cpuflags 0 ... +
Possible flags for this option are: +
Override detection of CPU count. This option is intended +for testing. Do not use it unless you know what you’re doing. +
ffmpeg -cpucount 2 +
Set the maximum size limit for allocating a block on the heap by ffmpeg’s +family of malloc functions. Exercise extreme caution when using +this option. Don’t use if you do not understand the full consequence of doing so. +Default is INT_MAX. +
These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +-help option. They are separated into two categories: +
These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +
These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +
For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the id3v2_version private option of the MP3 +muxer: +
ffmpeg -i input.flac -id3v2_version 3 out.mp3 +
All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them: +
ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4 +
In the above example, a multichannel audio stream is mapped twice for output. +The first instance is encoded with codec ac3 and bitrate 640k. +The second instance is downmixed to 2 channels and encoded with codec aac. A bitrate of 128k is specified for it using +absolute index of the output stream. +
+Note: the -nooption syntax cannot be used for boolean +AVOptions, use -option 0/-option 1. +
+Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +
+ +Force format to use. +
+Show the unit of the displayed values. +
+Use SI prefixes for the displayed values. +Unless the "-byte_binary_prefix" option is used all the prefixes +are decimal. +
+Force the use of binary prefixes for byte values. +
+Use sexagesimal format HH:MM:SS.MICROSECONDS for time values. +
+Prettify the format of the displayed values, it corresponds to the +options "-unit -prefix -byte_binary_prefix -sexagesimal". +
+Set the output printing format. +
+writer_name specifies the name of the writer, and +writer_options specifies the options to be passed to the writer. +
+For example for printing the output in JSON format, specify: +
-print_format json +
For more details on the available output printing formats, see the +Writers section below. +
+Print sections structure and section information, and exit. The output +is not meant to be parsed by a machine. +
+Select only the streams specified by stream_specifier. This
+option affects only the options related to streams
+(e.g. show_streams
, show_packets
, etc.).
+
For example to show only audio streams, you can use the command: +
ffprobe -show_streams -select_streams a INPUT +
To show only video packets belonging to the video stream with index 1: +
ffprobe -show_packets -select_streams v:1 INPUT +
Show payload data, as a hexadecimal and ASCII dump. Coupled with +-show_packets, it will dump the packets’ data. Coupled with +-show_streams, it will dump the codec extradata. +
+The dump is printed as the "data" field. It may contain newlines. +
+Show a hash of payload data, for packets with -show_packets and for +codec extradata with -show_streams. +
+Show information about the error found when trying to probe the input. +
+The error information is printed within a section with name "ERROR". +
+Show information about the container format of the input multimedia +stream. +
+All the container format information is printed within a section with +name "FORMAT". +
+Like -show_format, but only prints the specified entry of the +container format information, rather than all. This option may be given more +than once, then all specified entries will be shown. +
+This option is deprecated, use show_entries
instead.
+
Set list of entries to show. +
+Entries are specified according to the following
+syntax. section_entries contains a list of section entries
+separated by :
. Each section entry is composed by a section
+name (or unique name), optionally followed by a list of entries local
+to that section, separated by ,
.
+
If section name is specified but is followed by no =
, all
+entries are printed to output, together with all the contained
+sections. Otherwise only the entries specified in the local section
+entries list are printed. In particular, if =
is specified but
+the list of local entries is empty, then no entries will be shown for
+that section.
+
Note that the order of specification of the local section entries is +not honored in the output, and the usual display order will be +retained. +
+The formal syntax is given by: +
LOCAL_SECTION_ENTRIES ::= SECTION_ENTRY_NAME[,LOCAL_SECTION_ENTRIES] +SECTION_ENTRY ::= SECTION_NAME[=[LOCAL_SECTION_ENTRIES]] +SECTION_ENTRIES ::= SECTION_ENTRY[:SECTION_ENTRIES] +
For example, to show only the index and type of each stream, and the PTS +time, duration time, and stream index of the packets, you can specify +the argument: +
packet=pts_time,duration_time,stream_index : stream=index,codec_type +
To show all the entries in the section "format", but only the codec +type in the section "stream", specify the argument: +
format : stream=codec_type +
To show all the tags in the stream and format sections: +
stream_tags : format_tags +
To show only the title
tag (if available) in the stream
+sections:
+
stream_tags=title +
Show information about each packet contained in the input multimedia +stream. +
+The information for each single packet is printed within a dedicated +section with name "PACKET". +
+Show information about each frame and subtitle contained in the input +multimedia stream. +
+The information for each single frame is printed within a dedicated +section with name "FRAME" or "SUBTITLE". +
+Show logging information from the decoder about each frame according to
+the value set in loglevel, (see -loglevel
). This option requires -show_frames
.
+
The information for each log message is printed within a dedicated +section with name "LOG". +
+Show information about each media stream contained in the input +multimedia stream. +
+Each media stream information is printed within a dedicated section +with name "STREAM". +
+Show information about programs and their streams contained in the input +multimedia stream. +
+Each media stream information is printed within a dedicated section +with name "PROGRAM_STREAM". +
+Show information about chapters stored in the format. +
+Each chapter is printed within a dedicated section with name "CHAPTER". +
+Count the number of frames per stream and report it in the +corresponding stream section. +
+Count the number of packets per stream and report it in the +corresponding stream section. +
+Read only the specified intervals. read_intervals must be a
+sequence of interval specifications separated by ",".
+ffprobe
will seek to the interval starting point, and will
+continue reading from that.
+
Each interval is specified by two optional parts, separated by "%". +
+The first part specifies the interval start position. It is +interpreted as an absolute position, or as a relative offset from the +current position if it is preceded by the "+" character. If this first +part is not specified, no seeking will be performed when reading this +interval. +
+The second part specifies the interval end position. It is interpreted +as an absolute position, or as a relative offset from the current +position if it is preceded by the "+" character. If the offset +specification starts with "#", it is interpreted as the number of +packets to read (not including the flushing packets) from the interval +start. If no second part is specified, the program will read until the +end of the input. +
+Note that seeking is not accurate, thus the actual interval start +point may be different from the specified position. Also, when an +interval duration is specified, the absolute end time will be computed +by adding the duration to the interval start point found by seeking +the file, rather than to the specified start value. +
+The formal syntax is given by: +
INTERVAL ::= [START|+START_OFFSET][%[END|+END_OFFSET]] +INTERVALS ::= INTERVAL[,INTERVALS] +
A few examples follow. +
01:30
(1 minute and thirty
+seconds) and read packets until position 01:45
.
+10%+20,01:30%01:45 +
01:23
:
+01:23%+#42 +
%+20 +
02:30
:
+%02:30 +
Show private data, that is data depending on the format of the +particular shown element. +This option is enabled by default, but you may need to disable it +for specific uses, for example when creating XSD-compliant XML output. +
+Show information related to program version. +
+Version information is printed within a section with name +"PROGRAM_VERSION". +
+Show information related to library versions. +
+Version information for each library is printed within a section with +name "LIBRARY_VERSION". +
+Show information related to program and library versions. This is the +equivalent of setting both -show_program_version and +-show_library_versions options. +
+Show information about all pixel formats supported by FFmpeg. +
+Pixel format information for each format is printed within a section +with name "PIXEL_FORMAT". +
+Some writers viz. JSON and XML, omit the printing of fields with invalid or non-applicable values,
+while other writers always print them. This option enables one to control this behaviour.
+Valid values are always
/1
, never
/0
and auto
/-1
.
+Default is auto.
+
Force bitexact output, useful to produce output which is not dependent +on the specific build. +
+Read input_url. +
+Write output to output_url. If not specified, the output is sent +to stdout. +
+A writer defines the output format adopted by ffprobe
, and will be
+used for printing all the parts of the output.
+
A writer may accept one or more arguments, which specify the options +to adopt. The options are specified as a list of key=value +pairs, separated by ":". +
+All writers support the following options: +
+Set string validation mode. +
+The following values are accepted. +
The writer will fail immediately in case an invalid string (UTF-8) +sequence or code point is found in the input. This is especially +useful to validate input metadata. +
+Any validation error will be ignored. This will result in possibly +broken output, especially with the json or xml writer. +
+The writer will substitute invalid UTF-8 sequences or code points with +the string specified with the string_validation_replacement. +
Default value is ‘replace’. +
+Set replacement string to use in case string_validation is +set to ‘replace’. +
+In case the option is not specified, the writer will assume the empty +string, that is it will remove the invalid sequences from the input +strings. +
A description of the currently available writers follows. +
+ +Default format. +
+Print each section in the form: +
[SECTION] +key1=val1 +... +keyN=valN +[/SECTION] +
Metadata tags are printed as a line in the corresponding FORMAT, STREAM or +PROGRAM_STREAM section, and are prefixed by the string "TAG:". +
+A description of the accepted options follows. +
+If set to 1 specify not to print the key of each field. Default value +is 0. +
+If set to 1 specify not to print the section header and footer. +Default value is 0. +
Compact and CSV format. +
+The csv
writer is equivalent to compact
, but supports
+different defaults.
+
Each section is printed on a single line. +If no option is specified, the output has the form: +
section|key1=val1| ... |keyN=valN +
Metadata tags are printed in the corresponding "format" or "stream" +section. A metadata tag key, if printed, is prefixed by the string +"tag:". +
+The description of the accepted options follows. +
+Specify the character to use for separating fields in the output line.
+It must be a single printable character, it is "|" by default ("," for
+the csv
writer).
+
If set to 1 specify not to print the key of each field. Its default
+value is 0 (1 for the csv
writer).
+
Set the escape mode to use, default to "c" ("csv" for the csv
+writer).
+
It can assume one of the following values: +
Perform C-like escaping. Strings containing a newline (‘\n’), carriage +return (‘\r’), a tab (‘\t’), a form feed (‘\f’), the escaping +character (‘\’) or the item separator character SEP are escaped +using C-like fashioned escaping, so that a newline is converted to the +sequence ‘\n’, a carriage return to ‘\r’, ‘\’ to ‘\\’ and +the separator SEP is converted to ‘\SEP’. +
+Perform CSV-like escaping, as described in RFC4180. Strings +containing a newline (‘\n’), a carriage return (‘\r’), a double quote +(‘"’), or SEP are enclosed in double-quotes. +
+Perform no escaping. +
Print the section name at the beginning of each line if the value is
+1
, disable it with value set to 0
. Default value is
+1
.
+
Flat format. +
+A free-form output where each line contains an explicit key=value, such as +"streams.stream.3.tags.foo=bar". The output is shell escaped, so it can be +directly embedded in sh scripts as long as the separator character is an +alphanumeric character or an underscore (see sep_char option). +
+The description of the accepted options follows. +
+Separator character used to separate the chapter, the section name, IDs and +potential tags in the printed field key. +
+Default value is ‘.’. +
+Specify if the section name specification should be hierarchical. If +set to 1, and if there is more than one section in the current +chapter, the section name will be prefixed by the name of the +chapter. A value of 0 will disable this behavior. +
+Default value is 1. +
INI format output. +
+Print output in an INI based format. +
+The following conventions are adopted: +
+This writer accepts options as a list of key=value pairs, +separated by ‘:’. +
+The description of the accepted options follows. +
+Specify if the section name specification should be hierarchical. If +set to 1, and if there is more than one section in the current +chapter, the section name will be prefixed by the name of the +chapter. A value of 0 will disable this behavior. +
+Default value is 1. +
JSON based format. +
+Each section is printed using JSON notation. +
+The description of the accepted options follows. +
+If set to 1 enable compact output, that is each section will be +printed on a single line. Default value is 0. +
For more information about JSON, see http://www.json.org/. +
+ +XML based format. +
+The XML output is described in the XML schema description file +ffprobe.xsd installed in the FFmpeg datadir. +
+An updated version of the schema can be retrieved at the url +http://www.ffmpeg.org/schema/ffprobe.xsd, which redirects to the +latest schema committed into the FFmpeg development source code tree. +
+Note that the output issued will be compliant to the +ffprobe.xsd schema only when no special global output options +(unit, prefix, byte_binary_prefix, +sexagesimal etc.) are specified. +
+The description of the accepted options follows. +
+If set to 1 specify if the output should be fully qualified. Default +value is 0. +This is required for generating an XML file which can be validated +through an XSD file. +
+If set to 1 perform more checks for ensuring that the output is XSD +compliant. Default value is 0. +This option automatically sets fully_qualified to 1. +
For more information about the XML format, see +https://www.w3.org/XML/. +
+ +ffprobe
supports Timecode extraction:
+
ffprobe-all, +ffmpeg, ffplay, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +
+ + +The FFmpeg developers. +
+For details about the authorship, see the Git history of the project
+(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
+git log
in the FFmpeg source directory, or browsing the
+online repository at http://source.ffmpeg.org.
+
Maintainers for the specific components are listed in the file +MAINTAINERS in the source code tree. +
+ ++ This document was generated using makeinfo. +
+