mirror of https://github.com/FFmpeg/FFmpeg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
230 lines
4.8 KiB
230 lines
4.8 KiB
@chapter Syntax |
|
@c man begin SYNTAX |
|
|
|
This section documents the syntax and formats employed by the FFmpeg |
|
libraries and tools. |
|
|
|
@anchor{quoting_and_escaping} |
|
@section Quoting and escaping |
|
|
|
FFmpeg adopts the following quoting and escaping mechanism, unless |
|
explicitly specified. The following rules are applied: |
|
|
|
@itemize |
|
@item |
|
@code{'} and @code{\} are special characters (respectively used for |
|
quoting and escaping). In addition to them, there might be other |
|
special characters depending on the specific syntax where the escaping |
|
and quoting are employed. |
|
|
|
@item |
|
A special character is escaped by prefixing it with a '\'. |
|
|
|
@item |
|
All characters enclosed between '' are included literally in the |
|
parsed string. The quote character @code{'} itself cannot be quoted, |
|
so you may need to close the quote and escape it. |
|
|
|
@item |
|
Leading and trailing whitespaces, unless escaped or quoted, are |
|
removed from the parsed string. |
|
@end itemize |
|
|
|
Note that you may need to add a second level of escaping when using |
|
the command line or a script, which depends on the syntax of the |
|
adopted shell language. |
|
|
|
The function @code{av_get_token} defined in |
|
@file{libavutil/avstring.h} can be used to parse a token quoted or |
|
escaped according to the rules defined above. |
|
|
|
The tool @file{tools/ffescape} in the FFmpeg source tree can be used |
|
to automatically quote or escape a string in a script. |
|
|
|
@subsection Examples |
|
|
|
@itemize |
|
@item |
|
Escape the string @code{Crime d'Amour} containing the @code{'} special |
|
character: |
|
@example |
|
Crime d\'Amour |
|
@end example |
|
|
|
@item |
|
The string above contains a quote, so the @code{'} needs to be escaped |
|
when quoting it: |
|
@example |
|
'Crime d'\''Amour' |
|
@end example |
|
|
|
@item |
|
Include leading or trailing whitespaces using quoting: |
|
@example |
|
' this string starts and ends with whitespaces ' |
|
@end example |
|
|
|
@item |
|
Escaping and quoting can be mixed together: |
|
@example |
|
' The string '\'string\'' is a string ' |
|
@end example |
|
|
|
@item |
|
To include a literal @code{\} you can use either escaping or quoting: |
|
@example |
|
'c:\foo' can be written as c:\\foo |
|
@end example |
|
@end itemize |
|
|
|
@anchor{date syntax} |
|
@section Date |
|
|
|
The accepted syntax is: |
|
@example |
|
[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z] |
|
now |
|
@end example |
|
|
|
If the value is "now" it takes the current time. |
|
|
|
Time is local time unless Z is appended, in which case it is |
|
interpreted as UTC. |
|
If the year-month-day part is not specified it takes the current |
|
year-month-day. |
|
|
|
@anchor{time duration syntax} |
|
@section Time duration |
|
|
|
The accepted syntax is: |
|
@example |
|
[-]HH:MM:SS[.m...] |
|
[-]S+[.m...] |
|
@end example |
|
|
|
@var{HH} expresses the number of hours, @var{MM} the number a of minutes |
|
and @var{SS} the number of seconds. |
|
|
|
@anchor{video size syntax} |
|
@section Video size |
|
Specify the size of the sourced video, it may be a string of the form |
|
@var{width}x@var{height}, or the name of a size abbreviation. |
|
|
|
The following abbreviations are recognized: |
|
@table @samp |
|
@item sqcif |
|
128x96 |
|
@item qcif |
|
176x144 |
|
@item cif |
|
352x288 |
|
@item 4cif |
|
704x576 |
|
@item 16cif |
|
1408x1152 |
|
@item qqvga |
|
160x120 |
|
@item qvga |
|
320x240 |
|
@item vga |
|
640x480 |
|
@item svga |
|
800x600 |
|
@item xga |
|
1024x768 |
|
@item uxga |
|
1600x1200 |
|
@item qxga |
|
2048x1536 |
|
@item sxga |
|
1280x1024 |
|
@item qsxga |
|
2560x2048 |
|
@item hsxga |
|
5120x4096 |
|
@item wvga |
|
852x480 |
|
@item wxga |
|
1366x768 |
|
@item wsxga |
|
1600x1024 |
|
@item wuxga |
|
1920x1200 |
|
@item woxga |
|
2560x1600 |
|
@item wqsxga |
|
3200x2048 |
|
@item wquxga |
|
3840x2400 |
|
@item whsxga |
|
6400x4096 |
|
@item whuxga |
|
7680x4800 |
|
@item cga |
|
320x200 |
|
@item ega |
|
640x350 |
|
@item hd480 |
|
852x480 |
|
@item hd720 |
|
1280x720 |
|
@item hd1080 |
|
1920x1080 |
|
@end table |
|
|
|
@anchor{video rate syntax} |
|
@section Video rate |
|
|
|
Specify the frame rate of a video, expressed as the number of frames |
|
generated per second. It has to be a string in the format |
|
@var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float |
|
number or a valid video frame rate abbreviation. |
|
|
|
The following abbreviations are recognized: |
|
@table @samp |
|
@item ntsc |
|
30000/1001 |
|
@item pal |
|
25/1 |
|
@item qntsc |
|
30000/1 |
|
@item qpal |
|
25/1 |
|
@item sntsc |
|
30000/1 |
|
@item spal |
|
25/1 |
|
@item film |
|
24/1 |
|
@item ntsc-film |
|
24000/1 |
|
@end table |
|
|
|
@anchor{ratio syntax} |
|
@section Ratio |
|
|
|
A ratio can be expressed as an expression, or in the form |
|
@var{numerator}:@var{denominator}. |
|
|
|
Note that a ratio with infinite (1/0) or negative value is |
|
considered valid, so you should check on the returned value if you |
|
want to exclude those values. |
|
|
|
The undefined value can be expressed using the "0:0" string. |
|
|
|
@anchor{color syntax} |
|
@section Color |
|
|
|
It can be the name of a color (case insensitive match) or a |
|
[0x|#]RRGGBB[AA] sequence, possibly followed by "@@" and a string |
|
representing the alpha component. |
|
|
|
The alpha component may be a string composed by "0x" followed by an |
|
hexadecimal number or a decimal number between 0.0 and 1.0, which |
|
represents the opacity value (0x00/0.0 means completely transparent, |
|
0xff/1.0 completely opaque). |
|
If the alpha component is not specified then 0xff is assumed. |
|
|
|
The string "random" will result in a random color. |
|
|
|
@c man end SYNTAX
|
|
|