231 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			231 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @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
 |