ffmpeg-utils.html 52 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by , GNU Texinfo 7.1 -->
  4. <head>
  5. <meta charset="utf-8">
  6. <title>
  7. FFmpeg Utilities Documentation
  8. </title>
  9. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  10. <link rel="stylesheet" type="text/css" href="bootstrap.min.css">
  11. <link rel="stylesheet" type="text/css" href="style.min.css">
  12. </head>
  13. <body>
  14. <div class="container">
  15. <h1>
  16. FFmpeg Utilities Documentation
  17. </h1>
  18. <div class="top-level-extent" id="SEC_Top">
  19. <div class="element-contents" id="SEC_Contents">
  20. <h2 class="contents-heading">Table of Contents</h2>
  21. <div class="contents">
  22. <ul class="toc-numbered-mark">
  23. <li><a id="toc-Description" href="#Description">1 Description</a></li>
  24. <li><a id="toc-Syntax" href="#Syntax">2 Syntax</a>
  25. <ul class="toc-numbered-mark">
  26. <li><a id="toc-Quoting-and-escaping" href="#Quoting-and-escaping">2.1 Quoting and escaping</a>
  27. <ul class="toc-numbered-mark">
  28. <li><a id="toc-Examples" href="#Examples">2.1.1 Examples</a></li>
  29. </ul></li>
  30. <li><a id="toc-Date" href="#Date">2.2 Date</a></li>
  31. <li><a id="toc-Time-duration" href="#Time-duration">2.3 Time duration</a>
  32. <ul class="toc-numbered-mark">
  33. <li><a id="toc-Examples-1" href="#Examples-1">2.3.1 Examples</a></li>
  34. </ul></li>
  35. <li><a id="toc-Video-size" href="#Video-size">2.4 Video size</a></li>
  36. <li><a id="toc-Video-rate" href="#Video-rate">2.5 Video rate</a></li>
  37. <li><a id="toc-Ratio" href="#Ratio">2.6 Ratio</a></li>
  38. <li><a id="toc-Color" href="#Color">2.7 Color</a></li>
  39. <li><a id="toc-Channel-Layout" href="#Channel-Layout">2.8 Channel Layout</a></li>
  40. </ul></li>
  41. <li><a id="toc-Expression-Evaluation" href="#Expression-Evaluation">3 Expression Evaluation</a></li>
  42. <li><a id="toc-See-Also" href="#See-Also">4 See Also</a></li>
  43. <li><a id="toc-Authors" href="#Authors">5 Authors</a></li>
  44. </ul>
  45. </div>
  46. </div>
  47. <ul class="mini-toc">
  48. <li><a href="#Description" accesskey="1">Description</a></li>
  49. <li><a href="#Syntax" accesskey="2">Syntax</a></li>
  50. <li><a href="#Expression-Evaluation" accesskey="3">Expression Evaluation</a></li>
  51. <li><a href="#See-Also" accesskey="4">See Also</a></li>
  52. <li><a href="#Authors" accesskey="5">Authors</a></li>
  53. </ul>
  54. <div class="chapter-level-extent" id="Description">
  55. <h2 class="chapter"><span>1 Description<a class="copiable-link" href="#Description"> &para;</a></span></h2>
  56. <p>This document describes some generic features and utilities provided
  57. by the libavutil library.
  58. </p>
  59. </div>
  60. <div class="chapter-level-extent" id="Syntax">
  61. <h2 class="chapter"><span>2 Syntax<a class="copiable-link" href="#Syntax"> &para;</a></span></h2>
  62. <p>This section documents the syntax and formats employed by the FFmpeg
  63. libraries and tools.
  64. </p>
  65. <a class="anchor" id="quoting_005fand_005fescaping"></a><ul class="mini-toc">
  66. <li><a href="#Quoting-and-escaping" accesskey="1">Quoting and escaping</a></li>
  67. <li><a href="#Date" accesskey="2">Date</a></li>
  68. <li><a href="#Time-duration" accesskey="3">Time duration</a></li>
  69. <li><a href="#Video-size" accesskey="4">Video size</a></li>
  70. <li><a href="#Video-rate" accesskey="5">Video rate</a></li>
  71. <li><a href="#Ratio" accesskey="6">Ratio</a></li>
  72. <li><a href="#Color" accesskey="7">Color</a></li>
  73. <li><a href="#Channel-Layout" accesskey="8">Channel Layout</a></li>
  74. </ul>
  75. <div class="section-level-extent" id="Quoting-and-escaping">
  76. <h3 class="section"><span>2.1 Quoting and escaping<a class="copiable-link" href="#Quoting-and-escaping"> &para;</a></span></h3>
  77. <p>FFmpeg adopts the following quoting and escaping mechanism, unless
  78. explicitly specified. The following rules are applied:
  79. </p>
  80. <ul class="itemize mark-bullet">
  81. <li>&lsquo;<samp class="samp">'</samp>&rsquo; and &lsquo;<samp class="samp">\</samp>&rsquo; are special characters (respectively used for
  82. quoting and escaping). In addition to them, there might be other
  83. special characters depending on the specific syntax where the escaping
  84. and quoting are employed.
  85. </li><li>A special character is escaped by prefixing it with a &lsquo;<samp class="samp">\</samp>&rsquo;.
  86. </li><li>All characters enclosed between &lsquo;<samp class="samp">''</samp>&rsquo; are included literally in the
  87. parsed string. The quote character &lsquo;<samp class="samp">'</samp>&rsquo; itself cannot be quoted,
  88. so you may need to close the quote and escape it.
  89. </li><li>Leading and trailing whitespaces, unless escaped or quoted, are
  90. removed from the parsed string.
  91. </li></ul>
  92. <p>Note that you may need to add a second level of escaping when using
  93. the command line or a script, which depends on the syntax of the
  94. adopted shell language.
  95. </p>
  96. <p>The function <code class="code">av_get_token</code> defined in
  97. <samp class="file">libavutil/avstring.h</samp> can be used to parse a token quoted or
  98. escaped according to the rules defined above.
  99. </p>
  100. <p>The tool <samp class="file">tools/ffescape</samp> in the FFmpeg source tree can be used
  101. to automatically quote or escape a string in a script.
  102. </p>
  103. <ul class="mini-toc">
  104. <li><a href="#Examples" accesskey="1">Examples</a></li>
  105. </ul>
  106. <div class="subsection-level-extent" id="Examples">
  107. <h4 class="subsection"><span>2.1.1 Examples<a class="copiable-link" href="#Examples"> &para;</a></span></h4>
  108. <ul class="itemize mark-bullet">
  109. <li>Escape the string <code class="code">Crime d'Amour</code> containing the <code class="code">'</code> special
  110. character:
  111. <div class="example">
  112. <pre class="example-preformatted">Crime d\'Amour
  113. </pre></div>
  114. </li><li>The string above contains a quote, so the <code class="code">'</code> needs to be escaped
  115. when quoting it:
  116. <div class="example">
  117. <pre class="example-preformatted">'Crime d'\''Amour'
  118. </pre></div>
  119. </li><li>Include leading or trailing whitespaces using quoting:
  120. <div class="example">
  121. <pre class="example-preformatted">' this string starts and ends with whitespaces '
  122. </pre></div>
  123. </li><li>Escaping and quoting can be mixed together:
  124. <div class="example">
  125. <pre class="example-preformatted">' The string '\'string\'' is a string '
  126. </pre></div>
  127. </li><li>To include a literal &lsquo;<samp class="samp">\</samp>&rsquo; you can use either escaping or quoting:
  128. <div class="example">
  129. <pre class="example-preformatted">'c:\foo' can be written as c:\\foo
  130. </pre></div>
  131. </li></ul>
  132. <a class="anchor" id="date-syntax"></a></div>
  133. </div>
  134. <div class="section-level-extent" id="Date">
  135. <h3 class="section"><span>2.2 Date<a class="copiable-link" href="#Date"> &para;</a></span></h3>
  136. <p>The accepted syntax is:
  137. </p><div class="example">
  138. <pre class="example-preformatted">[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
  139. now
  140. </pre></div>
  141. <p>If the value is &quot;now&quot; it takes the current time.
  142. </p>
  143. <p>Time is local time unless Z is appended, in which case it is
  144. interpreted as UTC.
  145. If the year-month-day part is not specified it takes the current
  146. year-month-day.
  147. </p>
  148. <a class="anchor" id="time-duration-syntax"></a></div>
  149. <div class="section-level-extent" id="Time-duration">
  150. <h3 class="section"><span>2.3 Time duration<a class="copiable-link" href="#Time-duration"> &para;</a></span></h3>
  151. <p>There are two accepted syntaxes for expressing time duration.
  152. </p>
  153. <div class="example">
  154. <pre class="example-preformatted">[-][<var class="var">HH</var>:]<var class="var">MM</var>:<var class="var">SS</var>[.<var class="var">m</var>...]
  155. </pre></div>
  156. <p><var class="var">HH</var> expresses the number of hours, <var class="var">MM</var> the number of minutes
  157. for a maximum of 2 digits, and <var class="var">SS</var> the number of seconds for a
  158. maximum of 2 digits. The <var class="var">m</var> at the end expresses decimal value for
  159. <var class="var">SS</var>.
  160. </p>
  161. <p><em class="emph">or</em>
  162. </p>
  163. <div class="example">
  164. <pre class="example-preformatted">[-]<var class="var">S</var>+[.<var class="var">m</var>...][s|ms|us]
  165. </pre></div>
  166. <p><var class="var">S</var> expresses the number of seconds, with the optional decimal part
  167. <var class="var">m</var>. The optional literal suffixes &lsquo;<samp class="samp">s</samp>&rsquo;, &lsquo;<samp class="samp">ms</samp>&rsquo; or &lsquo;<samp class="samp">us</samp>&rsquo;
  168. indicate to interpret the value as seconds, milliseconds or microseconds,
  169. respectively.
  170. </p>
  171. <p>In both expressions, the optional &lsquo;<samp class="samp">-</samp>&rsquo; indicates negative duration.
  172. </p>
  173. <ul class="mini-toc">
  174. <li><a href="#Examples-1" accesskey="1">Examples</a></li>
  175. </ul>
  176. <div class="subsection-level-extent" id="Examples-1">
  177. <h4 class="subsection"><span>2.3.1 Examples<a class="copiable-link" href="#Examples-1"> &para;</a></span></h4>
  178. <p>The following examples are all valid time duration:
  179. </p>
  180. <dl class="table">
  181. <dt>&lsquo;<samp class="samp">55</samp>&rsquo;</dt>
  182. <dd><p>55 seconds
  183. </p>
  184. </dd>
  185. <dt>&lsquo;<samp class="samp">0.2</samp>&rsquo;</dt>
  186. <dd><p>0.2 seconds
  187. </p>
  188. </dd>
  189. <dt>&lsquo;<samp class="samp">200ms</samp>&rsquo;</dt>
  190. <dd><p>200 milliseconds, that&rsquo;s 0.2s
  191. </p>
  192. </dd>
  193. <dt>&lsquo;<samp class="samp">200000us</samp>&rsquo;</dt>
  194. <dd><p>200000 microseconds, that&rsquo;s 0.2s
  195. </p>
  196. </dd>
  197. <dt>&lsquo;<samp class="samp">12:03:45</samp>&rsquo;</dt>
  198. <dd><p>12 hours, 03 minutes and 45 seconds
  199. </p>
  200. </dd>
  201. <dt>&lsquo;<samp class="samp">23.189</samp>&rsquo;</dt>
  202. <dd><p>23.189 seconds
  203. </p></dd>
  204. </dl>
  205. <a class="anchor" id="video-size-syntax"></a></div>
  206. </div>
  207. <div class="section-level-extent" id="Video-size">
  208. <h3 class="section"><span>2.4 Video size<a class="copiable-link" href="#Video-size"> &para;</a></span></h3>
  209. <p>Specify the size of the sourced video, it may be a string of the form
  210. <var class="var">width</var>x<var class="var">height</var>, or the name of a size abbreviation.
  211. </p>
  212. <p>The following abbreviations are recognized:
  213. </p><dl class="table">
  214. <dt>&lsquo;<samp class="samp">ntsc</samp>&rsquo;</dt>
  215. <dd><p>720x480
  216. </p></dd>
  217. <dt>&lsquo;<samp class="samp">pal</samp>&rsquo;</dt>
  218. <dd><p>720x576
  219. </p></dd>
  220. <dt>&lsquo;<samp class="samp">qntsc</samp>&rsquo;</dt>
  221. <dd><p>352x240
  222. </p></dd>
  223. <dt>&lsquo;<samp class="samp">qpal</samp>&rsquo;</dt>
  224. <dd><p>352x288
  225. </p></dd>
  226. <dt>&lsquo;<samp class="samp">sntsc</samp>&rsquo;</dt>
  227. <dd><p>640x480
  228. </p></dd>
  229. <dt>&lsquo;<samp class="samp">spal</samp>&rsquo;</dt>
  230. <dd><p>768x576
  231. </p></dd>
  232. <dt>&lsquo;<samp class="samp">film</samp>&rsquo;</dt>
  233. <dd><p>352x240
  234. </p></dd>
  235. <dt>&lsquo;<samp class="samp">ntsc-film</samp>&rsquo;</dt>
  236. <dd><p>352x240
  237. </p></dd>
  238. <dt>&lsquo;<samp class="samp">sqcif</samp>&rsquo;</dt>
  239. <dd><p>128x96
  240. </p></dd>
  241. <dt>&lsquo;<samp class="samp">qcif</samp>&rsquo;</dt>
  242. <dd><p>176x144
  243. </p></dd>
  244. <dt>&lsquo;<samp class="samp">cif</samp>&rsquo;</dt>
  245. <dd><p>352x288
  246. </p></dd>
  247. <dt>&lsquo;<samp class="samp">4cif</samp>&rsquo;</dt>
  248. <dd><p>704x576
  249. </p></dd>
  250. <dt>&lsquo;<samp class="samp">16cif</samp>&rsquo;</dt>
  251. <dd><p>1408x1152
  252. </p></dd>
  253. <dt>&lsquo;<samp class="samp">qqvga</samp>&rsquo;</dt>
  254. <dd><p>160x120
  255. </p></dd>
  256. <dt>&lsquo;<samp class="samp">qvga</samp>&rsquo;</dt>
  257. <dd><p>320x240
  258. </p></dd>
  259. <dt>&lsquo;<samp class="samp">vga</samp>&rsquo;</dt>
  260. <dd><p>640x480
  261. </p></dd>
  262. <dt>&lsquo;<samp class="samp">svga</samp>&rsquo;</dt>
  263. <dd><p>800x600
  264. </p></dd>
  265. <dt>&lsquo;<samp class="samp">xga</samp>&rsquo;</dt>
  266. <dd><p>1024x768
  267. </p></dd>
  268. <dt>&lsquo;<samp class="samp">uxga</samp>&rsquo;</dt>
  269. <dd><p>1600x1200
  270. </p></dd>
  271. <dt>&lsquo;<samp class="samp">qxga</samp>&rsquo;</dt>
  272. <dd><p>2048x1536
  273. </p></dd>
  274. <dt>&lsquo;<samp class="samp">sxga</samp>&rsquo;</dt>
  275. <dd><p>1280x1024
  276. </p></dd>
  277. <dt>&lsquo;<samp class="samp">qsxga</samp>&rsquo;</dt>
  278. <dd><p>2560x2048
  279. </p></dd>
  280. <dt>&lsquo;<samp class="samp">hsxga</samp>&rsquo;</dt>
  281. <dd><p>5120x4096
  282. </p></dd>
  283. <dt>&lsquo;<samp class="samp">wvga</samp>&rsquo;</dt>
  284. <dd><p>852x480
  285. </p></dd>
  286. <dt>&lsquo;<samp class="samp">wxga</samp>&rsquo;</dt>
  287. <dd><p>1366x768
  288. </p></dd>
  289. <dt>&lsquo;<samp class="samp">wsxga</samp>&rsquo;</dt>
  290. <dd><p>1600x1024
  291. </p></dd>
  292. <dt>&lsquo;<samp class="samp">wuxga</samp>&rsquo;</dt>
  293. <dd><p>1920x1200
  294. </p></dd>
  295. <dt>&lsquo;<samp class="samp">woxga</samp>&rsquo;</dt>
  296. <dd><p>2560x1600
  297. </p></dd>
  298. <dt>&lsquo;<samp class="samp">wqsxga</samp>&rsquo;</dt>
  299. <dd><p>3200x2048
  300. </p></dd>
  301. <dt>&lsquo;<samp class="samp">wquxga</samp>&rsquo;</dt>
  302. <dd><p>3840x2400
  303. </p></dd>
  304. <dt>&lsquo;<samp class="samp">whsxga</samp>&rsquo;</dt>
  305. <dd><p>6400x4096
  306. </p></dd>
  307. <dt>&lsquo;<samp class="samp">whuxga</samp>&rsquo;</dt>
  308. <dd><p>7680x4800
  309. </p></dd>
  310. <dt>&lsquo;<samp class="samp">cga</samp>&rsquo;</dt>
  311. <dd><p>320x200
  312. </p></dd>
  313. <dt>&lsquo;<samp class="samp">ega</samp>&rsquo;</dt>
  314. <dd><p>640x350
  315. </p></dd>
  316. <dt>&lsquo;<samp class="samp">hd480</samp>&rsquo;</dt>
  317. <dd><p>852x480
  318. </p></dd>
  319. <dt>&lsquo;<samp class="samp">hd720</samp>&rsquo;</dt>
  320. <dd><p>1280x720
  321. </p></dd>
  322. <dt>&lsquo;<samp class="samp">hd1080</samp>&rsquo;</dt>
  323. <dd><p>1920x1080
  324. </p></dd>
  325. <dt>&lsquo;<samp class="samp">2k</samp>&rsquo;</dt>
  326. <dd><p>2048x1080
  327. </p></dd>
  328. <dt>&lsquo;<samp class="samp">2kflat</samp>&rsquo;</dt>
  329. <dd><p>1998x1080
  330. </p></dd>
  331. <dt>&lsquo;<samp class="samp">2kscope</samp>&rsquo;</dt>
  332. <dd><p>2048x858
  333. </p></dd>
  334. <dt>&lsquo;<samp class="samp">4k</samp>&rsquo;</dt>
  335. <dd><p>4096x2160
  336. </p></dd>
  337. <dt>&lsquo;<samp class="samp">4kflat</samp>&rsquo;</dt>
  338. <dd><p>3996x2160
  339. </p></dd>
  340. <dt>&lsquo;<samp class="samp">4kscope</samp>&rsquo;</dt>
  341. <dd><p>4096x1716
  342. </p></dd>
  343. <dt>&lsquo;<samp class="samp">nhd</samp>&rsquo;</dt>
  344. <dd><p>640x360
  345. </p></dd>
  346. <dt>&lsquo;<samp class="samp">hqvga</samp>&rsquo;</dt>
  347. <dd><p>240x160
  348. </p></dd>
  349. <dt>&lsquo;<samp class="samp">wqvga</samp>&rsquo;</dt>
  350. <dd><p>400x240
  351. </p></dd>
  352. <dt>&lsquo;<samp class="samp">fwqvga</samp>&rsquo;</dt>
  353. <dd><p>432x240
  354. </p></dd>
  355. <dt>&lsquo;<samp class="samp">hvga</samp>&rsquo;</dt>
  356. <dd><p>480x320
  357. </p></dd>
  358. <dt>&lsquo;<samp class="samp">qhd</samp>&rsquo;</dt>
  359. <dd><p>960x540
  360. </p></dd>
  361. <dt>&lsquo;<samp class="samp">2kdci</samp>&rsquo;</dt>
  362. <dd><p>2048x1080
  363. </p></dd>
  364. <dt>&lsquo;<samp class="samp">4kdci</samp>&rsquo;</dt>
  365. <dd><p>4096x2160
  366. </p></dd>
  367. <dt>&lsquo;<samp class="samp">uhd2160</samp>&rsquo;</dt>
  368. <dd><p>3840x2160
  369. </p></dd>
  370. <dt>&lsquo;<samp class="samp">uhd4320</samp>&rsquo;</dt>
  371. <dd><p>7680x4320
  372. </p></dd>
  373. </dl>
  374. <a class="anchor" id="video-rate-syntax"></a></div>
  375. <div class="section-level-extent" id="Video-rate">
  376. <h3 class="section"><span>2.5 Video rate<a class="copiable-link" href="#Video-rate"> &para;</a></span></h3>
  377. <p>Specify the frame rate of a video, expressed as the number of frames
  378. generated per second. It has to be a string in the format
  379. <var class="var">frame_rate_num</var>/<var class="var">frame_rate_den</var>, an integer number, a float
  380. number or a valid video frame rate abbreviation.
  381. </p>
  382. <p>The following abbreviations are recognized:
  383. </p><dl class="table">
  384. <dt>&lsquo;<samp class="samp">ntsc</samp>&rsquo;</dt>
  385. <dd><p>30000/1001
  386. </p></dd>
  387. <dt>&lsquo;<samp class="samp">pal</samp>&rsquo;</dt>
  388. <dd><p>25/1
  389. </p></dd>
  390. <dt>&lsquo;<samp class="samp">qntsc</samp>&rsquo;</dt>
  391. <dd><p>30000/1001
  392. </p></dd>
  393. <dt>&lsquo;<samp class="samp">qpal</samp>&rsquo;</dt>
  394. <dd><p>25/1
  395. </p></dd>
  396. <dt>&lsquo;<samp class="samp">sntsc</samp>&rsquo;</dt>
  397. <dd><p>30000/1001
  398. </p></dd>
  399. <dt>&lsquo;<samp class="samp">spal</samp>&rsquo;</dt>
  400. <dd><p>25/1
  401. </p></dd>
  402. <dt>&lsquo;<samp class="samp">film</samp>&rsquo;</dt>
  403. <dd><p>24/1
  404. </p></dd>
  405. <dt>&lsquo;<samp class="samp">ntsc-film</samp>&rsquo;</dt>
  406. <dd><p>24000/1001
  407. </p></dd>
  408. </dl>
  409. <a class="anchor" id="ratio-syntax"></a></div>
  410. <div class="section-level-extent" id="Ratio">
  411. <h3 class="section"><span>2.6 Ratio<a class="copiable-link" href="#Ratio"> &para;</a></span></h3>
  412. <p>A ratio can be expressed as an expression, or in the form
  413. <var class="var">numerator</var>:<var class="var">denominator</var>.
  414. </p>
  415. <p>Note that a ratio with infinite (1/0) or negative value is
  416. considered valid, so you should check on the returned value if you
  417. want to exclude those values.
  418. </p>
  419. <p>The undefined value can be expressed using the &quot;0:0&quot; string.
  420. </p>
  421. <a class="anchor" id="color-syntax"></a></div>
  422. <div class="section-level-extent" id="Color">
  423. <h3 class="section"><span>2.7 Color<a class="copiable-link" href="#Color"> &para;</a></span></h3>
  424. <p>It can be the name of a color as defined below (case insensitive match) or a
  425. <code class="code">[0x|#]RRGGBB[AA]</code> sequence, possibly followed by @ and a string
  426. representing the alpha component.
  427. </p>
  428. <p>The alpha component may be a string composed by &quot;0x&quot; followed by an
  429. hexadecimal number or a decimal number between 0.0 and 1.0, which
  430. represents the opacity value (&lsquo;<samp class="samp">0x00</samp>&rsquo; or &lsquo;<samp class="samp">0.0</samp>&rsquo; means completely
  431. transparent, &lsquo;<samp class="samp">0xff</samp>&rsquo; or &lsquo;<samp class="samp">1.0</samp>&rsquo; completely opaque). If the alpha
  432. component is not specified then &lsquo;<samp class="samp">0xff</samp>&rsquo; is assumed.
  433. </p>
  434. <p>The string &lsquo;<samp class="samp">random</samp>&rsquo; will result in a random color.
  435. </p>
  436. <p>The following names of colors are recognized:
  437. </p><dl class="table">
  438. <dt>&lsquo;<samp class="samp">AliceBlue</samp>&rsquo;</dt>
  439. <dd><p>0xF0F8FF
  440. </p></dd>
  441. <dt>&lsquo;<samp class="samp">AntiqueWhite</samp>&rsquo;</dt>
  442. <dd><p>0xFAEBD7
  443. </p></dd>
  444. <dt>&lsquo;<samp class="samp">Aqua</samp>&rsquo;</dt>
  445. <dd><p>0x00FFFF
  446. </p></dd>
  447. <dt>&lsquo;<samp class="samp">Aquamarine</samp>&rsquo;</dt>
  448. <dd><p>0x7FFFD4
  449. </p></dd>
  450. <dt>&lsquo;<samp class="samp">Azure</samp>&rsquo;</dt>
  451. <dd><p>0xF0FFFF
  452. </p></dd>
  453. <dt>&lsquo;<samp class="samp">Beige</samp>&rsquo;</dt>
  454. <dd><p>0xF5F5DC
  455. </p></dd>
  456. <dt>&lsquo;<samp class="samp">Bisque</samp>&rsquo;</dt>
  457. <dd><p>0xFFE4C4
  458. </p></dd>
  459. <dt>&lsquo;<samp class="samp">Black</samp>&rsquo;</dt>
  460. <dd><p>0x000000
  461. </p></dd>
  462. <dt>&lsquo;<samp class="samp">BlanchedAlmond</samp>&rsquo;</dt>
  463. <dd><p>0xFFEBCD
  464. </p></dd>
  465. <dt>&lsquo;<samp class="samp">Blue</samp>&rsquo;</dt>
  466. <dd><p>0x0000FF
  467. </p></dd>
  468. <dt>&lsquo;<samp class="samp">BlueViolet</samp>&rsquo;</dt>
  469. <dd><p>0x8A2BE2
  470. </p></dd>
  471. <dt>&lsquo;<samp class="samp">Brown</samp>&rsquo;</dt>
  472. <dd><p>0xA52A2A
  473. </p></dd>
  474. <dt>&lsquo;<samp class="samp">BurlyWood</samp>&rsquo;</dt>
  475. <dd><p>0xDEB887
  476. </p></dd>
  477. <dt>&lsquo;<samp class="samp">CadetBlue</samp>&rsquo;</dt>
  478. <dd><p>0x5F9EA0
  479. </p></dd>
  480. <dt>&lsquo;<samp class="samp">Chartreuse</samp>&rsquo;</dt>
  481. <dd><p>0x7FFF00
  482. </p></dd>
  483. <dt>&lsquo;<samp class="samp">Chocolate</samp>&rsquo;</dt>
  484. <dd><p>0xD2691E
  485. </p></dd>
  486. <dt>&lsquo;<samp class="samp">Coral</samp>&rsquo;</dt>
  487. <dd><p>0xFF7F50
  488. </p></dd>
  489. <dt>&lsquo;<samp class="samp">CornflowerBlue</samp>&rsquo;</dt>
  490. <dd><p>0x6495ED
  491. </p></dd>
  492. <dt>&lsquo;<samp class="samp">Cornsilk</samp>&rsquo;</dt>
  493. <dd><p>0xFFF8DC
  494. </p></dd>
  495. <dt>&lsquo;<samp class="samp">Crimson</samp>&rsquo;</dt>
  496. <dd><p>0xDC143C
  497. </p></dd>
  498. <dt>&lsquo;<samp class="samp">Cyan</samp>&rsquo;</dt>
  499. <dd><p>0x00FFFF
  500. </p></dd>
  501. <dt>&lsquo;<samp class="samp">DarkBlue</samp>&rsquo;</dt>
  502. <dd><p>0x00008B
  503. </p></dd>
  504. <dt>&lsquo;<samp class="samp">DarkCyan</samp>&rsquo;</dt>
  505. <dd><p>0x008B8B
  506. </p></dd>
  507. <dt>&lsquo;<samp class="samp">DarkGoldenRod</samp>&rsquo;</dt>
  508. <dd><p>0xB8860B
  509. </p></dd>
  510. <dt>&lsquo;<samp class="samp">DarkGray</samp>&rsquo;</dt>
  511. <dd><p>0xA9A9A9
  512. </p></dd>
  513. <dt>&lsquo;<samp class="samp">DarkGreen</samp>&rsquo;</dt>
  514. <dd><p>0x006400
  515. </p></dd>
  516. <dt>&lsquo;<samp class="samp">DarkKhaki</samp>&rsquo;</dt>
  517. <dd><p>0xBDB76B
  518. </p></dd>
  519. <dt>&lsquo;<samp class="samp">DarkMagenta</samp>&rsquo;</dt>
  520. <dd><p>0x8B008B
  521. </p></dd>
  522. <dt>&lsquo;<samp class="samp">DarkOliveGreen</samp>&rsquo;</dt>
  523. <dd><p>0x556B2F
  524. </p></dd>
  525. <dt>&lsquo;<samp class="samp">Darkorange</samp>&rsquo;</dt>
  526. <dd><p>0xFF8C00
  527. </p></dd>
  528. <dt>&lsquo;<samp class="samp">DarkOrchid</samp>&rsquo;</dt>
  529. <dd><p>0x9932CC
  530. </p></dd>
  531. <dt>&lsquo;<samp class="samp">DarkRed</samp>&rsquo;</dt>
  532. <dd><p>0x8B0000
  533. </p></dd>
  534. <dt>&lsquo;<samp class="samp">DarkSalmon</samp>&rsquo;</dt>
  535. <dd><p>0xE9967A
  536. </p></dd>
  537. <dt>&lsquo;<samp class="samp">DarkSeaGreen</samp>&rsquo;</dt>
  538. <dd><p>0x8FBC8F
  539. </p></dd>
  540. <dt>&lsquo;<samp class="samp">DarkSlateBlue</samp>&rsquo;</dt>
  541. <dd><p>0x483D8B
  542. </p></dd>
  543. <dt>&lsquo;<samp class="samp">DarkSlateGray</samp>&rsquo;</dt>
  544. <dd><p>0x2F4F4F
  545. </p></dd>
  546. <dt>&lsquo;<samp class="samp">DarkTurquoise</samp>&rsquo;</dt>
  547. <dd><p>0x00CED1
  548. </p></dd>
  549. <dt>&lsquo;<samp class="samp">DarkViolet</samp>&rsquo;</dt>
  550. <dd><p>0x9400D3
  551. </p></dd>
  552. <dt>&lsquo;<samp class="samp">DeepPink</samp>&rsquo;</dt>
  553. <dd><p>0xFF1493
  554. </p></dd>
  555. <dt>&lsquo;<samp class="samp">DeepSkyBlue</samp>&rsquo;</dt>
  556. <dd><p>0x00BFFF
  557. </p></dd>
  558. <dt>&lsquo;<samp class="samp">DimGray</samp>&rsquo;</dt>
  559. <dd><p>0x696969
  560. </p></dd>
  561. <dt>&lsquo;<samp class="samp">DodgerBlue</samp>&rsquo;</dt>
  562. <dd><p>0x1E90FF
  563. </p></dd>
  564. <dt>&lsquo;<samp class="samp">FireBrick</samp>&rsquo;</dt>
  565. <dd><p>0xB22222
  566. </p></dd>
  567. <dt>&lsquo;<samp class="samp">FloralWhite</samp>&rsquo;</dt>
  568. <dd><p>0xFFFAF0
  569. </p></dd>
  570. <dt>&lsquo;<samp class="samp">ForestGreen</samp>&rsquo;</dt>
  571. <dd><p>0x228B22
  572. </p></dd>
  573. <dt>&lsquo;<samp class="samp">Fuchsia</samp>&rsquo;</dt>
  574. <dd><p>0xFF00FF
  575. </p></dd>
  576. <dt>&lsquo;<samp class="samp">Gainsboro</samp>&rsquo;</dt>
  577. <dd><p>0xDCDCDC
  578. </p></dd>
  579. <dt>&lsquo;<samp class="samp">GhostWhite</samp>&rsquo;</dt>
  580. <dd><p>0xF8F8FF
  581. </p></dd>
  582. <dt>&lsquo;<samp class="samp">Gold</samp>&rsquo;</dt>
  583. <dd><p>0xFFD700
  584. </p></dd>
  585. <dt>&lsquo;<samp class="samp">GoldenRod</samp>&rsquo;</dt>
  586. <dd><p>0xDAA520
  587. </p></dd>
  588. <dt>&lsquo;<samp class="samp">Gray</samp>&rsquo;</dt>
  589. <dd><p>0x808080
  590. </p></dd>
  591. <dt>&lsquo;<samp class="samp">Green</samp>&rsquo;</dt>
  592. <dd><p>0x008000
  593. </p></dd>
  594. <dt>&lsquo;<samp class="samp">GreenYellow</samp>&rsquo;</dt>
  595. <dd><p>0xADFF2F
  596. </p></dd>
  597. <dt>&lsquo;<samp class="samp">HoneyDew</samp>&rsquo;</dt>
  598. <dd><p>0xF0FFF0
  599. </p></dd>
  600. <dt>&lsquo;<samp class="samp">HotPink</samp>&rsquo;</dt>
  601. <dd><p>0xFF69B4
  602. </p></dd>
  603. <dt>&lsquo;<samp class="samp">IndianRed</samp>&rsquo;</dt>
  604. <dd><p>0xCD5C5C
  605. </p></dd>
  606. <dt>&lsquo;<samp class="samp">Indigo</samp>&rsquo;</dt>
  607. <dd><p>0x4B0082
  608. </p></dd>
  609. <dt>&lsquo;<samp class="samp">Ivory</samp>&rsquo;</dt>
  610. <dd><p>0xFFFFF0
  611. </p></dd>
  612. <dt>&lsquo;<samp class="samp">Khaki</samp>&rsquo;</dt>
  613. <dd><p>0xF0E68C
  614. </p></dd>
  615. <dt>&lsquo;<samp class="samp">Lavender</samp>&rsquo;</dt>
  616. <dd><p>0xE6E6FA
  617. </p></dd>
  618. <dt>&lsquo;<samp class="samp">LavenderBlush</samp>&rsquo;</dt>
  619. <dd><p>0xFFF0F5
  620. </p></dd>
  621. <dt>&lsquo;<samp class="samp">LawnGreen</samp>&rsquo;</dt>
  622. <dd><p>0x7CFC00
  623. </p></dd>
  624. <dt>&lsquo;<samp class="samp">LemonChiffon</samp>&rsquo;</dt>
  625. <dd><p>0xFFFACD
  626. </p></dd>
  627. <dt>&lsquo;<samp class="samp">LightBlue</samp>&rsquo;</dt>
  628. <dd><p>0xADD8E6
  629. </p></dd>
  630. <dt>&lsquo;<samp class="samp">LightCoral</samp>&rsquo;</dt>
  631. <dd><p>0xF08080
  632. </p></dd>
  633. <dt>&lsquo;<samp class="samp">LightCyan</samp>&rsquo;</dt>
  634. <dd><p>0xE0FFFF
  635. </p></dd>
  636. <dt>&lsquo;<samp class="samp">LightGoldenRodYellow</samp>&rsquo;</dt>
  637. <dd><p>0xFAFAD2
  638. </p></dd>
  639. <dt>&lsquo;<samp class="samp">LightGreen</samp>&rsquo;</dt>
  640. <dd><p>0x90EE90
  641. </p></dd>
  642. <dt>&lsquo;<samp class="samp">LightGrey</samp>&rsquo;</dt>
  643. <dd><p>0xD3D3D3
  644. </p></dd>
  645. <dt>&lsquo;<samp class="samp">LightPink</samp>&rsquo;</dt>
  646. <dd><p>0xFFB6C1
  647. </p></dd>
  648. <dt>&lsquo;<samp class="samp">LightSalmon</samp>&rsquo;</dt>
  649. <dd><p>0xFFA07A
  650. </p></dd>
  651. <dt>&lsquo;<samp class="samp">LightSeaGreen</samp>&rsquo;</dt>
  652. <dd><p>0x20B2AA
  653. </p></dd>
  654. <dt>&lsquo;<samp class="samp">LightSkyBlue</samp>&rsquo;</dt>
  655. <dd><p>0x87CEFA
  656. </p></dd>
  657. <dt>&lsquo;<samp class="samp">LightSlateGray</samp>&rsquo;</dt>
  658. <dd><p>0x778899
  659. </p></dd>
  660. <dt>&lsquo;<samp class="samp">LightSteelBlue</samp>&rsquo;</dt>
  661. <dd><p>0xB0C4DE
  662. </p></dd>
  663. <dt>&lsquo;<samp class="samp">LightYellow</samp>&rsquo;</dt>
  664. <dd><p>0xFFFFE0
  665. </p></dd>
  666. <dt>&lsquo;<samp class="samp">Lime</samp>&rsquo;</dt>
  667. <dd><p>0x00FF00
  668. </p></dd>
  669. <dt>&lsquo;<samp class="samp">LimeGreen</samp>&rsquo;</dt>
  670. <dd><p>0x32CD32
  671. </p></dd>
  672. <dt>&lsquo;<samp class="samp">Linen</samp>&rsquo;</dt>
  673. <dd><p>0xFAF0E6
  674. </p></dd>
  675. <dt>&lsquo;<samp class="samp">Magenta</samp>&rsquo;</dt>
  676. <dd><p>0xFF00FF
  677. </p></dd>
  678. <dt>&lsquo;<samp class="samp">Maroon</samp>&rsquo;</dt>
  679. <dd><p>0x800000
  680. </p></dd>
  681. <dt>&lsquo;<samp class="samp">MediumAquaMarine</samp>&rsquo;</dt>
  682. <dd><p>0x66CDAA
  683. </p></dd>
  684. <dt>&lsquo;<samp class="samp">MediumBlue</samp>&rsquo;</dt>
  685. <dd><p>0x0000CD
  686. </p></dd>
  687. <dt>&lsquo;<samp class="samp">MediumOrchid</samp>&rsquo;</dt>
  688. <dd><p>0xBA55D3
  689. </p></dd>
  690. <dt>&lsquo;<samp class="samp">MediumPurple</samp>&rsquo;</dt>
  691. <dd><p>0x9370D8
  692. </p></dd>
  693. <dt>&lsquo;<samp class="samp">MediumSeaGreen</samp>&rsquo;</dt>
  694. <dd><p>0x3CB371
  695. </p></dd>
  696. <dt>&lsquo;<samp class="samp">MediumSlateBlue</samp>&rsquo;</dt>
  697. <dd><p>0x7B68EE
  698. </p></dd>
  699. <dt>&lsquo;<samp class="samp">MediumSpringGreen</samp>&rsquo;</dt>
  700. <dd><p>0x00FA9A
  701. </p></dd>
  702. <dt>&lsquo;<samp class="samp">MediumTurquoise</samp>&rsquo;</dt>
  703. <dd><p>0x48D1CC
  704. </p></dd>
  705. <dt>&lsquo;<samp class="samp">MediumVioletRed</samp>&rsquo;</dt>
  706. <dd><p>0xC71585
  707. </p></dd>
  708. <dt>&lsquo;<samp class="samp">MidnightBlue</samp>&rsquo;</dt>
  709. <dd><p>0x191970
  710. </p></dd>
  711. <dt>&lsquo;<samp class="samp">MintCream</samp>&rsquo;</dt>
  712. <dd><p>0xF5FFFA
  713. </p></dd>
  714. <dt>&lsquo;<samp class="samp">MistyRose</samp>&rsquo;</dt>
  715. <dd><p>0xFFE4E1
  716. </p></dd>
  717. <dt>&lsquo;<samp class="samp">Moccasin</samp>&rsquo;</dt>
  718. <dd><p>0xFFE4B5
  719. </p></dd>
  720. <dt>&lsquo;<samp class="samp">NavajoWhite</samp>&rsquo;</dt>
  721. <dd><p>0xFFDEAD
  722. </p></dd>
  723. <dt>&lsquo;<samp class="samp">Navy</samp>&rsquo;</dt>
  724. <dd><p>0x000080
  725. </p></dd>
  726. <dt>&lsquo;<samp class="samp">OldLace</samp>&rsquo;</dt>
  727. <dd><p>0xFDF5E6
  728. </p></dd>
  729. <dt>&lsquo;<samp class="samp">Olive</samp>&rsquo;</dt>
  730. <dd><p>0x808000
  731. </p></dd>
  732. <dt>&lsquo;<samp class="samp">OliveDrab</samp>&rsquo;</dt>
  733. <dd><p>0x6B8E23
  734. </p></dd>
  735. <dt>&lsquo;<samp class="samp">Orange</samp>&rsquo;</dt>
  736. <dd><p>0xFFA500
  737. </p></dd>
  738. <dt>&lsquo;<samp class="samp">OrangeRed</samp>&rsquo;</dt>
  739. <dd><p>0xFF4500
  740. </p></dd>
  741. <dt>&lsquo;<samp class="samp">Orchid</samp>&rsquo;</dt>
  742. <dd><p>0xDA70D6
  743. </p></dd>
  744. <dt>&lsquo;<samp class="samp">PaleGoldenRod</samp>&rsquo;</dt>
  745. <dd><p>0xEEE8AA
  746. </p></dd>
  747. <dt>&lsquo;<samp class="samp">PaleGreen</samp>&rsquo;</dt>
  748. <dd><p>0x98FB98
  749. </p></dd>
  750. <dt>&lsquo;<samp class="samp">PaleTurquoise</samp>&rsquo;</dt>
  751. <dd><p>0xAFEEEE
  752. </p></dd>
  753. <dt>&lsquo;<samp class="samp">PaleVioletRed</samp>&rsquo;</dt>
  754. <dd><p>0xD87093
  755. </p></dd>
  756. <dt>&lsquo;<samp class="samp">PapayaWhip</samp>&rsquo;</dt>
  757. <dd><p>0xFFEFD5
  758. </p></dd>
  759. <dt>&lsquo;<samp class="samp">PeachPuff</samp>&rsquo;</dt>
  760. <dd><p>0xFFDAB9
  761. </p></dd>
  762. <dt>&lsquo;<samp class="samp">Peru</samp>&rsquo;</dt>
  763. <dd><p>0xCD853F
  764. </p></dd>
  765. <dt>&lsquo;<samp class="samp">Pink</samp>&rsquo;</dt>
  766. <dd><p>0xFFC0CB
  767. </p></dd>
  768. <dt>&lsquo;<samp class="samp">Plum</samp>&rsquo;</dt>
  769. <dd><p>0xDDA0DD
  770. </p></dd>
  771. <dt>&lsquo;<samp class="samp">PowderBlue</samp>&rsquo;</dt>
  772. <dd><p>0xB0E0E6
  773. </p></dd>
  774. <dt>&lsquo;<samp class="samp">Purple</samp>&rsquo;</dt>
  775. <dd><p>0x800080
  776. </p></dd>
  777. <dt>&lsquo;<samp class="samp">Red</samp>&rsquo;</dt>
  778. <dd><p>0xFF0000
  779. </p></dd>
  780. <dt>&lsquo;<samp class="samp">RosyBrown</samp>&rsquo;</dt>
  781. <dd><p>0xBC8F8F
  782. </p></dd>
  783. <dt>&lsquo;<samp class="samp">RoyalBlue</samp>&rsquo;</dt>
  784. <dd><p>0x4169E1
  785. </p></dd>
  786. <dt>&lsquo;<samp class="samp">SaddleBrown</samp>&rsquo;</dt>
  787. <dd><p>0x8B4513
  788. </p></dd>
  789. <dt>&lsquo;<samp class="samp">Salmon</samp>&rsquo;</dt>
  790. <dd><p>0xFA8072
  791. </p></dd>
  792. <dt>&lsquo;<samp class="samp">SandyBrown</samp>&rsquo;</dt>
  793. <dd><p>0xF4A460
  794. </p></dd>
  795. <dt>&lsquo;<samp class="samp">SeaGreen</samp>&rsquo;</dt>
  796. <dd><p>0x2E8B57
  797. </p></dd>
  798. <dt>&lsquo;<samp class="samp">SeaShell</samp>&rsquo;</dt>
  799. <dd><p>0xFFF5EE
  800. </p></dd>
  801. <dt>&lsquo;<samp class="samp">Sienna</samp>&rsquo;</dt>
  802. <dd><p>0xA0522D
  803. </p></dd>
  804. <dt>&lsquo;<samp class="samp">Silver</samp>&rsquo;</dt>
  805. <dd><p>0xC0C0C0
  806. </p></dd>
  807. <dt>&lsquo;<samp class="samp">SkyBlue</samp>&rsquo;</dt>
  808. <dd><p>0x87CEEB
  809. </p></dd>
  810. <dt>&lsquo;<samp class="samp">SlateBlue</samp>&rsquo;</dt>
  811. <dd><p>0x6A5ACD
  812. </p></dd>
  813. <dt>&lsquo;<samp class="samp">SlateGray</samp>&rsquo;</dt>
  814. <dd><p>0x708090
  815. </p></dd>
  816. <dt>&lsquo;<samp class="samp">Snow</samp>&rsquo;</dt>
  817. <dd><p>0xFFFAFA
  818. </p></dd>
  819. <dt>&lsquo;<samp class="samp">SpringGreen</samp>&rsquo;</dt>
  820. <dd><p>0x00FF7F
  821. </p></dd>
  822. <dt>&lsquo;<samp class="samp">SteelBlue</samp>&rsquo;</dt>
  823. <dd><p>0x4682B4
  824. </p></dd>
  825. <dt>&lsquo;<samp class="samp">Tan</samp>&rsquo;</dt>
  826. <dd><p>0xD2B48C
  827. </p></dd>
  828. <dt>&lsquo;<samp class="samp">Teal</samp>&rsquo;</dt>
  829. <dd><p>0x008080
  830. </p></dd>
  831. <dt>&lsquo;<samp class="samp">Thistle</samp>&rsquo;</dt>
  832. <dd><p>0xD8BFD8
  833. </p></dd>
  834. <dt>&lsquo;<samp class="samp">Tomato</samp>&rsquo;</dt>
  835. <dd><p>0xFF6347
  836. </p></dd>
  837. <dt>&lsquo;<samp class="samp">Turquoise</samp>&rsquo;</dt>
  838. <dd><p>0x40E0D0
  839. </p></dd>
  840. <dt>&lsquo;<samp class="samp">Violet</samp>&rsquo;</dt>
  841. <dd><p>0xEE82EE
  842. </p></dd>
  843. <dt>&lsquo;<samp class="samp">Wheat</samp>&rsquo;</dt>
  844. <dd><p>0xF5DEB3
  845. </p></dd>
  846. <dt>&lsquo;<samp class="samp">White</samp>&rsquo;</dt>
  847. <dd><p>0xFFFFFF
  848. </p></dd>
  849. <dt>&lsquo;<samp class="samp">WhiteSmoke</samp>&rsquo;</dt>
  850. <dd><p>0xF5F5F5
  851. </p></dd>
  852. <dt>&lsquo;<samp class="samp">Yellow</samp>&rsquo;</dt>
  853. <dd><p>0xFFFF00
  854. </p></dd>
  855. <dt>&lsquo;<samp class="samp">YellowGreen</samp>&rsquo;</dt>
  856. <dd><p>0x9ACD32
  857. </p></dd>
  858. </dl>
  859. <a class="anchor" id="channel-layout-syntax"></a></div>
  860. <div class="section-level-extent" id="Channel-Layout">
  861. <h3 class="section"><span>2.8 Channel Layout<a class="copiable-link" href="#Channel-Layout"> &para;</a></span></h3>
  862. <p>A channel layout specifies the spatial disposition of the channels in
  863. a multi-channel audio stream. To specify a channel layout, FFmpeg
  864. makes use of a special syntax.
  865. </p>
  866. <p>Individual channels are identified by an id, as given by the table
  867. below:
  868. </p><dl class="table">
  869. <dt>&lsquo;<samp class="samp">FL</samp>&rsquo;</dt>
  870. <dd><p>front left
  871. </p></dd>
  872. <dt>&lsquo;<samp class="samp">FR</samp>&rsquo;</dt>
  873. <dd><p>front right
  874. </p></dd>
  875. <dt>&lsquo;<samp class="samp">FC</samp>&rsquo;</dt>
  876. <dd><p>front center
  877. </p></dd>
  878. <dt>&lsquo;<samp class="samp">LFE</samp>&rsquo;</dt>
  879. <dd><p>low frequency
  880. </p></dd>
  881. <dt>&lsquo;<samp class="samp">BL</samp>&rsquo;</dt>
  882. <dd><p>back left
  883. </p></dd>
  884. <dt>&lsquo;<samp class="samp">BR</samp>&rsquo;</dt>
  885. <dd><p>back right
  886. </p></dd>
  887. <dt>&lsquo;<samp class="samp">FLC</samp>&rsquo;</dt>
  888. <dd><p>front left-of-center
  889. </p></dd>
  890. <dt>&lsquo;<samp class="samp">FRC</samp>&rsquo;</dt>
  891. <dd><p>front right-of-center
  892. </p></dd>
  893. <dt>&lsquo;<samp class="samp">BC</samp>&rsquo;</dt>
  894. <dd><p>back center
  895. </p></dd>
  896. <dt>&lsquo;<samp class="samp">SL</samp>&rsquo;</dt>
  897. <dd><p>side left
  898. </p></dd>
  899. <dt>&lsquo;<samp class="samp">SR</samp>&rsquo;</dt>
  900. <dd><p>side right
  901. </p></dd>
  902. <dt>&lsquo;<samp class="samp">TC</samp>&rsquo;</dt>
  903. <dd><p>top center
  904. </p></dd>
  905. <dt>&lsquo;<samp class="samp">TFL</samp>&rsquo;</dt>
  906. <dd><p>top front left
  907. </p></dd>
  908. <dt>&lsquo;<samp class="samp">TFC</samp>&rsquo;</dt>
  909. <dd><p>top front center
  910. </p></dd>
  911. <dt>&lsquo;<samp class="samp">TFR</samp>&rsquo;</dt>
  912. <dd><p>top front right
  913. </p></dd>
  914. <dt>&lsquo;<samp class="samp">TBL</samp>&rsquo;</dt>
  915. <dd><p>top back left
  916. </p></dd>
  917. <dt>&lsquo;<samp class="samp">TBC</samp>&rsquo;</dt>
  918. <dd><p>top back center
  919. </p></dd>
  920. <dt>&lsquo;<samp class="samp">TBR</samp>&rsquo;</dt>
  921. <dd><p>top back right
  922. </p></dd>
  923. <dt>&lsquo;<samp class="samp">DL</samp>&rsquo;</dt>
  924. <dd><p>downmix left
  925. </p></dd>
  926. <dt>&lsquo;<samp class="samp">DR</samp>&rsquo;</dt>
  927. <dd><p>downmix right
  928. </p></dd>
  929. <dt>&lsquo;<samp class="samp">WL</samp>&rsquo;</dt>
  930. <dd><p>wide left
  931. </p></dd>
  932. <dt>&lsquo;<samp class="samp">WR</samp>&rsquo;</dt>
  933. <dd><p>wide right
  934. </p></dd>
  935. <dt>&lsquo;<samp class="samp">SDL</samp>&rsquo;</dt>
  936. <dd><p>surround direct left
  937. </p></dd>
  938. <dt>&lsquo;<samp class="samp">SDR</samp>&rsquo;</dt>
  939. <dd><p>surround direct right
  940. </p></dd>
  941. <dt>&lsquo;<samp class="samp">LFE2</samp>&rsquo;</dt>
  942. <dd><p>low frequency 2
  943. </p></dd>
  944. </dl>
  945. <p>Standard channel layout compositions can be specified by using the
  946. following identifiers:
  947. </p><dl class="table">
  948. <dt>&lsquo;<samp class="samp">mono</samp>&rsquo;</dt>
  949. <dd><p>FC
  950. </p></dd>
  951. <dt>&lsquo;<samp class="samp">stereo</samp>&rsquo;</dt>
  952. <dd><p>FL+FR
  953. </p></dd>
  954. <dt>&lsquo;<samp class="samp">2.1</samp>&rsquo;</dt>
  955. <dd><p>FL+FR+LFE
  956. </p></dd>
  957. <dt>&lsquo;<samp class="samp">3.0</samp>&rsquo;</dt>
  958. <dd><p>FL+FR+FC
  959. </p></dd>
  960. <dt>&lsquo;<samp class="samp">3.0(back)</samp>&rsquo;</dt>
  961. <dd><p>FL+FR+BC
  962. </p></dd>
  963. <dt>&lsquo;<samp class="samp">4.0</samp>&rsquo;</dt>
  964. <dd><p>FL+FR+FC+BC
  965. </p></dd>
  966. <dt>&lsquo;<samp class="samp">quad</samp>&rsquo;</dt>
  967. <dd><p>FL+FR+BL+BR
  968. </p></dd>
  969. <dt>&lsquo;<samp class="samp">quad(side)</samp>&rsquo;</dt>
  970. <dd><p>FL+FR+SL+SR
  971. </p></dd>
  972. <dt>&lsquo;<samp class="samp">3.1</samp>&rsquo;</dt>
  973. <dd><p>FL+FR+FC+LFE
  974. </p></dd>
  975. <dt>&lsquo;<samp class="samp">5.0</samp>&rsquo;</dt>
  976. <dd><p>FL+FR+FC+BL+BR
  977. </p></dd>
  978. <dt>&lsquo;<samp class="samp">5.0(side)</samp>&rsquo;</dt>
  979. <dd><p>FL+FR+FC+SL+SR
  980. </p></dd>
  981. <dt>&lsquo;<samp class="samp">4.1</samp>&rsquo;</dt>
  982. <dd><p>FL+FR+FC+LFE+BC
  983. </p></dd>
  984. <dt>&lsquo;<samp class="samp">5.1</samp>&rsquo;</dt>
  985. <dd><p>FL+FR+FC+LFE+BL+BR
  986. </p></dd>
  987. <dt>&lsquo;<samp class="samp">5.1(side)</samp>&rsquo;</dt>
  988. <dd><p>FL+FR+FC+LFE+SL+SR
  989. </p></dd>
  990. <dt>&lsquo;<samp class="samp">6.0</samp>&rsquo;</dt>
  991. <dd><p>FL+FR+FC+BC+SL+SR
  992. </p></dd>
  993. <dt>&lsquo;<samp class="samp">6.0(front)</samp>&rsquo;</dt>
  994. <dd><p>FL+FR+FLC+FRC+SL+SR
  995. </p></dd>
  996. <dt>&lsquo;<samp class="samp">hexagonal</samp>&rsquo;</dt>
  997. <dd><p>FL+FR+FC+BL+BR+BC
  998. </p></dd>
  999. <dt>&lsquo;<samp class="samp">6.1</samp>&rsquo;</dt>
  1000. <dd><p>FL+FR+FC+LFE+BC+SL+SR
  1001. </p></dd>
  1002. <dt>&lsquo;<samp class="samp">6.1</samp>&rsquo;</dt>
  1003. <dd><p>FL+FR+FC+LFE+BL+BR+BC
  1004. </p></dd>
  1005. <dt>&lsquo;<samp class="samp">6.1(front)</samp>&rsquo;</dt>
  1006. <dd><p>FL+FR+LFE+FLC+FRC+SL+SR
  1007. </p></dd>
  1008. <dt>&lsquo;<samp class="samp">7.0</samp>&rsquo;</dt>
  1009. <dd><p>FL+FR+FC+BL+BR+SL+SR
  1010. </p></dd>
  1011. <dt>&lsquo;<samp class="samp">7.0(front)</samp>&rsquo;</dt>
  1012. <dd><p>FL+FR+FC+FLC+FRC+SL+SR
  1013. </p></dd>
  1014. <dt>&lsquo;<samp class="samp">7.1</samp>&rsquo;</dt>
  1015. <dd><p>FL+FR+FC+LFE+BL+BR+SL+SR
  1016. </p></dd>
  1017. <dt>&lsquo;<samp class="samp">7.1(wide)</samp>&rsquo;</dt>
  1018. <dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC
  1019. </p></dd>
  1020. <dt>&lsquo;<samp class="samp">7.1(wide-side)</samp>&rsquo;</dt>
  1021. <dd><p>FL+FR+FC+LFE+FLC+FRC+SL+SR
  1022. </p></dd>
  1023. <dt>&lsquo;<samp class="samp">octagonal</samp>&rsquo;</dt>
  1024. <dd><p>FL+FR+FC+BL+BR+BC+SL+SR
  1025. </p></dd>
  1026. <dt>&lsquo;<samp class="samp">hexadecagonal</samp>&rsquo;</dt>
  1027. <dd><p>FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
  1028. </p></dd>
  1029. <dt>&lsquo;<samp class="samp">downmix</samp>&rsquo;</dt>
  1030. <dd><p>DL+DR
  1031. </p></dd>
  1032. <dt>&lsquo;<samp class="samp">22.2</samp>&rsquo;</dt>
  1033. <dd><p>FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
  1034. </p></dd>
  1035. </dl>
  1036. <p>A custom channel layout can be specified as a sequence of terms, separated by &rsquo;+&rsquo;.
  1037. Each term can be:
  1038. </p><ul class="itemize mark-bullet">
  1039. <li>the name of a single channel (e.g. &lsquo;<samp class="samp">FL</samp>&rsquo;, &lsquo;<samp class="samp">FR</samp>&rsquo;, &lsquo;<samp class="samp">FC</samp>&rsquo;, &lsquo;<samp class="samp">LFE</samp>&rsquo;, etc.),
  1040. each optionally containing a custom name after a &rsquo;@&rsquo;, (e.g. &lsquo;<samp class="samp">FL@Left</samp>&rsquo;,
  1041. &lsquo;<samp class="samp">FR@Right</samp>&rsquo;, &lsquo;<samp class="samp">FC@Center</samp>&rsquo;, &lsquo;<samp class="samp">LFE@Low_Frequency</samp>&rsquo;, etc.)
  1042. </li></ul>
  1043. <p>A standard channel layout can be specified by the following:
  1044. </p><ul class="itemize mark-bullet">
  1045. <li>the name of a single channel (e.g. &lsquo;<samp class="samp">FL</samp>&rsquo;, &lsquo;<samp class="samp">FR</samp>&rsquo;, &lsquo;<samp class="samp">FC</samp>&rsquo;, &lsquo;<samp class="samp">LFE</samp>&rsquo;, etc.)
  1046. </li><li>the name of a standard channel layout (e.g. &lsquo;<samp class="samp">mono</samp>&rsquo;,
  1047. &lsquo;<samp class="samp">stereo</samp>&rsquo;, &lsquo;<samp class="samp">4.0</samp>&rsquo;, &lsquo;<samp class="samp">quad</samp>&rsquo;, &lsquo;<samp class="samp">5.0</samp>&rsquo;, etc.)
  1048. </li><li>a number of channels, in decimal, followed by &rsquo;c&rsquo;, yielding the default channel
  1049. layout for that number of channels (see the function
  1050. <code class="code">av_channel_layout_default</code>). Note that not all channel counts have a
  1051. default layout.
  1052. </li><li>a number of channels, in decimal, followed by &rsquo;C&rsquo;, yielding an unknown channel
  1053. layout with the specified number of channels. Note that not all channel layout
  1054. specification strings support unknown channel layouts.
  1055. </li><li>a channel layout mask, in hexadecimal starting with &quot;0x&quot; (see the
  1056. <code class="code">AV_CH_*</code> macros in <samp class="file">libavutil/channel_layout.h</samp>.
  1057. </li></ul>
  1058. <p>Before libavutil version 53 the trailing character &quot;c&quot; to specify a number of
  1059. channels was optional, but now it is required, while a channel layout mask can
  1060. also be specified as a decimal number (if and only if not followed by &quot;c&quot; or &quot;C&quot;).
  1061. </p>
  1062. <p>See also the function <code class="code">av_channel_layout_from_string</code> defined in
  1063. <samp class="file">libavutil/channel_layout.h</samp>.
  1064. </p>
  1065. </div>
  1066. </div>
  1067. <div class="chapter-level-extent" id="Expression-Evaluation">
  1068. <h2 class="chapter"><span>3 Expression Evaluation<a class="copiable-link" href="#Expression-Evaluation"> &para;</a></span></h2>
  1069. <p>When evaluating an arithmetic expression, FFmpeg uses an internal
  1070. formula evaluator, implemented through the <samp class="file">libavutil/eval.h</samp>
  1071. interface.
  1072. </p>
  1073. <p>An expression may contain unary, binary operators, constants, and
  1074. functions.
  1075. </p>
  1076. <p>Two expressions <var class="var">expr1</var> and <var class="var">expr2</var> can be combined to form
  1077. another expression &quot;<var class="var">expr1</var>;<var class="var">expr2</var>&quot;.
  1078. <var class="var">expr1</var> and <var class="var">expr2</var> are evaluated in turn, and the new
  1079. expression evaluates to the value of <var class="var">expr2</var>.
  1080. </p>
  1081. <p>The following binary operators are available: <code class="code">+</code>, <code class="code">-</code>,
  1082. <code class="code">*</code>, <code class="code">/</code>, <code class="code">^</code>.
  1083. </p>
  1084. <p>The following unary operators are available: <code class="code">+</code>, <code class="code">-</code>.
  1085. </p>
  1086. <p>The following functions are available:
  1087. </p><dl class="table">
  1088. <dt><samp class="option">abs(x)</samp></dt>
  1089. <dd><p>Compute absolute value of <var class="var">x</var>.
  1090. </p>
  1091. </dd>
  1092. <dt><samp class="option">acos(x)</samp></dt>
  1093. <dd><p>Compute arccosine of <var class="var">x</var>.
  1094. </p>
  1095. </dd>
  1096. <dt><samp class="option">asin(x)</samp></dt>
  1097. <dd><p>Compute arcsine of <var class="var">x</var>.
  1098. </p>
  1099. </dd>
  1100. <dt><samp class="option">atan(x)</samp></dt>
  1101. <dd><p>Compute arctangent of <var class="var">x</var>.
  1102. </p>
  1103. </dd>
  1104. <dt><samp class="option">atan2(x, y)</samp></dt>
  1105. <dd><p>Compute principal value of the arc tangent of <var class="var">y</var>/<var class="var">x</var>.
  1106. </p>
  1107. </dd>
  1108. <dt><samp class="option">between(x, min, max)</samp></dt>
  1109. <dd><p>Return 1 if <var class="var">x</var> is greater than or equal to <var class="var">min</var> and lesser than or
  1110. equal to <var class="var">max</var>, 0 otherwise.
  1111. </p>
  1112. </dd>
  1113. <dt><samp class="option">bitand(x, y)</samp></dt>
  1114. <dt><samp class="option">bitor(x, y)</samp></dt>
  1115. <dd><p>Compute bitwise and/or operation on <var class="var">x</var> and <var class="var">y</var>.
  1116. </p>
  1117. <p>The results of the evaluation of <var class="var">x</var> and <var class="var">y</var> are converted to
  1118. integers before executing the bitwise operation.
  1119. </p>
  1120. <p>Note that both the conversion to integer and the conversion back to
  1121. floating point can lose precision. Beware of unexpected results for
  1122. large numbers (usually 2^53 and larger).
  1123. </p>
  1124. </dd>
  1125. <dt><samp class="option">ceil(expr)</samp></dt>
  1126. <dd><p>Round the value of expression <var class="var">expr</var> upwards to the nearest
  1127. integer. For example, &quot;ceil(1.5)&quot; is &quot;2.0&quot;.
  1128. </p>
  1129. </dd>
  1130. <dt><samp class="option">clip(x, min, max)</samp></dt>
  1131. <dd><p>Return the value of <var class="var">x</var> clipped between <var class="var">min</var> and <var class="var">max</var>.
  1132. </p>
  1133. </dd>
  1134. <dt><samp class="option">cos(x)</samp></dt>
  1135. <dd><p>Compute cosine of <var class="var">x</var>.
  1136. </p>
  1137. </dd>
  1138. <dt><samp class="option">cosh(x)</samp></dt>
  1139. <dd><p>Compute hyperbolic cosine of <var class="var">x</var>.
  1140. </p>
  1141. </dd>
  1142. <dt><samp class="option">eq(x, y)</samp></dt>
  1143. <dd><p>Return 1 if <var class="var">x</var> and <var class="var">y</var> are equivalent, 0 otherwise.
  1144. </p>
  1145. </dd>
  1146. <dt><samp class="option">exp(x)</samp></dt>
  1147. <dd><p>Compute exponential of <var class="var">x</var> (with base <code class="code">e</code>, the Euler&rsquo;s number).
  1148. </p>
  1149. </dd>
  1150. <dt><samp class="option">floor(expr)</samp></dt>
  1151. <dd><p>Round the value of expression <var class="var">expr</var> downwards to the nearest
  1152. integer. For example, &quot;floor(-1.5)&quot; is &quot;-2.0&quot;.
  1153. </p>
  1154. </dd>
  1155. <dt><samp class="option">gauss(x)</samp></dt>
  1156. <dd><p>Compute Gauss function of <var class="var">x</var>, corresponding to
  1157. <code class="code">exp(-x*x/2) / sqrt(2*PI)</code>.
  1158. </p>
  1159. </dd>
  1160. <dt><samp class="option">gcd(x, y)</samp></dt>
  1161. <dd><p>Return the greatest common divisor of <var class="var">x</var> and <var class="var">y</var>. If both <var class="var">x</var> and
  1162. <var class="var">y</var> are 0 or either or both are less than zero then behavior is undefined.
  1163. </p>
  1164. </dd>
  1165. <dt><samp class="option">gt(x, y)</samp></dt>
  1166. <dd><p>Return 1 if <var class="var">x</var> is greater than <var class="var">y</var>, 0 otherwise.
  1167. </p>
  1168. </dd>
  1169. <dt><samp class="option">gte(x, y)</samp></dt>
  1170. <dd><p>Return 1 if <var class="var">x</var> is greater than or equal to <var class="var">y</var>, 0 otherwise.
  1171. </p>
  1172. </dd>
  1173. <dt><samp class="option">hypot(x, y)</samp></dt>
  1174. <dd><p>This function is similar to the C function with the same name; it returns
  1175. &quot;sqrt(<var class="var">x</var>*<var class="var">x</var> + <var class="var">y</var>*<var class="var">y</var>)&quot;, the length of the hypotenuse of a
  1176. right triangle with sides of length <var class="var">x</var> and <var class="var">y</var>, or the distance of the
  1177. point (<var class="var">x</var>, <var class="var">y</var>) from the origin.
  1178. </p>
  1179. </dd>
  1180. <dt><samp class="option">if(x, y)</samp></dt>
  1181. <dd><p>Evaluate <var class="var">x</var>, and if the result is non-zero return the result of
  1182. the evaluation of <var class="var">y</var>, return 0 otherwise.
  1183. </p>
  1184. </dd>
  1185. <dt><samp class="option">if(x, y, z)</samp></dt>
  1186. <dd><p>Evaluate <var class="var">x</var>, and if the result is non-zero return the evaluation
  1187. result of <var class="var">y</var>, otherwise the evaluation result of <var class="var">z</var>.
  1188. </p>
  1189. </dd>
  1190. <dt><samp class="option">ifnot(x, y)</samp></dt>
  1191. <dd><p>Evaluate <var class="var">x</var>, and if the result is zero return the result of the
  1192. evaluation of <var class="var">y</var>, return 0 otherwise.
  1193. </p>
  1194. </dd>
  1195. <dt><samp class="option">ifnot(x, y, z)</samp></dt>
  1196. <dd><p>Evaluate <var class="var">x</var>, and if the result is zero return the evaluation
  1197. result of <var class="var">y</var>, otherwise the evaluation result of <var class="var">z</var>.
  1198. </p>
  1199. </dd>
  1200. <dt><samp class="option">isinf(x)</samp></dt>
  1201. <dd><p>Return 1.0 if <var class="var">x</var> is +/-INFINITY, 0.0 otherwise.
  1202. </p>
  1203. </dd>
  1204. <dt><samp class="option">isnan(x)</samp></dt>
  1205. <dd><p>Return 1.0 if <var class="var">x</var> is NAN, 0.0 otherwise.
  1206. </p>
  1207. </dd>
  1208. <dt><samp class="option">ld(var)</samp></dt>
  1209. <dd><p>Load the value of the internal variable with number
  1210. <var class="var">var</var>, which was previously stored with st(<var class="var">var</var>, <var class="var">expr</var>).
  1211. The function returns the loaded value.
  1212. </p>
  1213. </dd>
  1214. <dt><samp class="option">lerp(x, y, z)</samp></dt>
  1215. <dd><p>Return linear interpolation between <var class="var">x</var> and <var class="var">y</var> by amount of <var class="var">z</var>.
  1216. </p>
  1217. </dd>
  1218. <dt><samp class="option">log(x)</samp></dt>
  1219. <dd><p>Compute natural logarithm of <var class="var">x</var>.
  1220. </p>
  1221. </dd>
  1222. <dt><samp class="option">lt(x, y)</samp></dt>
  1223. <dd><p>Return 1 if <var class="var">x</var> is lesser than <var class="var">y</var>, 0 otherwise.
  1224. </p>
  1225. </dd>
  1226. <dt><samp class="option">lte(x, y)</samp></dt>
  1227. <dd><p>Return 1 if <var class="var">x</var> is lesser than or equal to <var class="var">y</var>, 0 otherwise.
  1228. </p>
  1229. </dd>
  1230. <dt><samp class="option">max(x, y)</samp></dt>
  1231. <dd><p>Return the maximum between <var class="var">x</var> and <var class="var">y</var>.
  1232. </p>
  1233. </dd>
  1234. <dt><samp class="option">min(x, y)</samp></dt>
  1235. <dd><p>Return the minimum between <var class="var">x</var> and <var class="var">y</var>.
  1236. </p>
  1237. </dd>
  1238. <dt><samp class="option">mod(x, y)</samp></dt>
  1239. <dd><p>Compute the remainder of division of <var class="var">x</var> by <var class="var">y</var>.
  1240. </p>
  1241. </dd>
  1242. <dt><samp class="option">not(expr)</samp></dt>
  1243. <dd><p>Return 1.0 if <var class="var">expr</var> is zero, 0.0 otherwise.
  1244. </p>
  1245. </dd>
  1246. <dt><samp class="option">pow(x, y)</samp></dt>
  1247. <dd><p>Compute the power of <var class="var">x</var> elevated <var class="var">y</var>, it is equivalent to
  1248. &quot;(<var class="var">x</var>)^(<var class="var">y</var>)&quot;.
  1249. </p>
  1250. </dd>
  1251. <dt><samp class="option">print(t)</samp></dt>
  1252. <dt><samp class="option">print(t, l)</samp></dt>
  1253. <dd><p>Print the value of expression <var class="var">t</var> with loglevel <var class="var">l</var>. If
  1254. <var class="var">l</var> is not specified then a default log level is used.
  1255. Returns the value of the expression printed.
  1256. </p>
  1257. <p>Prints t with loglevel l
  1258. </p>
  1259. </dd>
  1260. <dt><samp class="option">random(x)</samp></dt>
  1261. <dd><p>Return a pseudo random value between 0.0 and 1.0. <var class="var">x</var> is the index of the
  1262. internal variable which will be used to save the seed/state.
  1263. </p>
  1264. </dd>
  1265. <dt><samp class="option">root(expr, max)</samp></dt>
  1266. <dd><p>Find an input value for which the function represented by <var class="var">expr</var>
  1267. with argument <var class="var">ld(0)</var> is 0 in the interval 0..<var class="var">max</var>.
  1268. </p>
  1269. <p>The expression in <var class="var">expr</var> must denote a continuous function or the
  1270. result is undefined.
  1271. </p>
  1272. <p><var class="var">ld(0)</var> is used to represent the function input value, which means
  1273. that the given expression will be evaluated multiple times with
  1274. various input values that the expression can access through
  1275. <code class="code">ld(0)</code>. When the expression evaluates to 0 then the
  1276. corresponding input value will be returned.
  1277. </p>
  1278. </dd>
  1279. <dt><samp class="option">round(expr)</samp></dt>
  1280. <dd><p>Round the value of expression <var class="var">expr</var> to the nearest integer. For example, &quot;round(1.5)&quot; is &quot;2.0&quot;.
  1281. </p>
  1282. </dd>
  1283. <dt><samp class="option">sgn(x)</samp></dt>
  1284. <dd><p>Compute sign of <var class="var">x</var>.
  1285. </p>
  1286. </dd>
  1287. <dt><samp class="option">sin(x)</samp></dt>
  1288. <dd><p>Compute sine of <var class="var">x</var>.
  1289. </p>
  1290. </dd>
  1291. <dt><samp class="option">sinh(x)</samp></dt>
  1292. <dd><p>Compute hyperbolic sine of <var class="var">x</var>.
  1293. </p>
  1294. </dd>
  1295. <dt><samp class="option">sqrt(expr)</samp></dt>
  1296. <dd><p>Compute the square root of <var class="var">expr</var>. This is equivalent to
  1297. &quot;(<var class="var">expr</var>)^.5&quot;.
  1298. </p>
  1299. </dd>
  1300. <dt><samp class="option">squish(x)</samp></dt>
  1301. <dd><p>Compute expression <code class="code">1/(1 + exp(4*x))</code>.
  1302. </p>
  1303. </dd>
  1304. <dt><samp class="option">st(var, expr)</samp></dt>
  1305. <dd><p>Store the value of the expression <var class="var">expr</var> in an internal
  1306. variable. <var class="var">var</var> specifies the number of the variable where to
  1307. store the value, and it is a value ranging from 0 to 9. The function
  1308. returns the value stored in the internal variable.
  1309. Note, Variables are currently not shared between expressions.
  1310. </p>
  1311. </dd>
  1312. <dt><samp class="option">tan(x)</samp></dt>
  1313. <dd><p>Compute tangent of <var class="var">x</var>.
  1314. </p>
  1315. </dd>
  1316. <dt><samp class="option">tanh(x)</samp></dt>
  1317. <dd><p>Compute hyperbolic tangent of <var class="var">x</var>.
  1318. </p>
  1319. </dd>
  1320. <dt><samp class="option">taylor(expr, x)</samp></dt>
  1321. <dt><samp class="option">taylor(expr, x, id)</samp></dt>
  1322. <dd><p>Evaluate a Taylor series at <var class="var">x</var>, given an expression representing
  1323. the <code class="code">ld(id)</code>-th derivative of a function at 0.
  1324. </p>
  1325. <p>When the series does not converge the result is undefined.
  1326. </p>
  1327. <p><var class="var">ld(id)</var> is used to represent the derivative order in <var class="var">expr</var>,
  1328. which means that the given expression will be evaluated multiple times
  1329. with various input values that the expression can access through
  1330. <code class="code">ld(id)</code>. If <var class="var">id</var> is not specified then 0 is assumed.
  1331. </p>
  1332. <p>Note, when you have the derivatives at y instead of 0,
  1333. <code class="code">taylor(expr, x-y)</code> can be used.
  1334. </p>
  1335. </dd>
  1336. <dt><samp class="option">time(0)</samp></dt>
  1337. <dd><p>Return the current (wallclock) time in seconds.
  1338. </p>
  1339. </dd>
  1340. <dt><samp class="option">trunc(expr)</samp></dt>
  1341. <dd><p>Round the value of expression <var class="var">expr</var> towards zero to the nearest
  1342. integer. For example, &quot;trunc(-1.5)&quot; is &quot;-1.0&quot;.
  1343. </p>
  1344. </dd>
  1345. <dt><samp class="option">while(cond, expr)</samp></dt>
  1346. <dd><p>Evaluate expression <var class="var">expr</var> while the expression <var class="var">cond</var> is
  1347. non-zero, and returns the value of the last <var class="var">expr</var> evaluation, or
  1348. NAN if <var class="var">cond</var> was always false.
  1349. </p></dd>
  1350. </dl>
  1351. <p>The following constants are available:
  1352. </p><dl class="table">
  1353. <dt><samp class="option">PI</samp></dt>
  1354. <dd><p>area of the unit disc, approximately 3.14
  1355. </p></dd>
  1356. <dt><samp class="option">E</samp></dt>
  1357. <dd><p>exp(1) (Euler&rsquo;s number), approximately 2.718
  1358. </p></dd>
  1359. <dt><samp class="option">PHI</samp></dt>
  1360. <dd><p>golden ratio (1+sqrt(5))/2, approximately 1.618
  1361. </p></dd>
  1362. </dl>
  1363. <p>Assuming that an expression is considered &quot;true&quot; if it has a non-zero
  1364. value, note that:
  1365. </p>
  1366. <p><code class="code">*</code> works like AND
  1367. </p>
  1368. <p><code class="code">+</code> works like OR
  1369. </p>
  1370. <p>For example the construct:
  1371. </p><div class="example">
  1372. <pre class="example-preformatted">if (A AND B) then C
  1373. </pre></div>
  1374. <p>is equivalent to:
  1375. </p><div class="example">
  1376. <pre class="example-preformatted">if(A*B, C)
  1377. </pre></div>
  1378. <p>In your C code, you can extend the list of unary and binary functions,
  1379. and define recognized constants, so that they are available for your
  1380. expressions.
  1381. </p>
  1382. <p>The evaluator also recognizes the International System unit prefixes.
  1383. If &rsquo;i&rsquo; is appended after the prefix, binary prefixes are used, which
  1384. are based on powers of 1024 instead of powers of 1000.
  1385. The &rsquo;B&rsquo; postfix multiplies the value by 8, and can be appended after a
  1386. unit prefix or used alone. This allows using for example &rsquo;KB&rsquo;, &rsquo;MiB&rsquo;,
  1387. &rsquo;G&rsquo; and &rsquo;B&rsquo; as number postfix.
  1388. </p>
  1389. <p>The list of available International System prefixes follows, with
  1390. indication of the corresponding powers of 10 and of 2.
  1391. </p><dl class="table">
  1392. <dt><samp class="option">y</samp></dt>
  1393. <dd><p>10^-24 / 2^-80
  1394. </p></dd>
  1395. <dt><samp class="option">z</samp></dt>
  1396. <dd><p>10^-21 / 2^-70
  1397. </p></dd>
  1398. <dt><samp class="option">a</samp></dt>
  1399. <dd><p>10^-18 / 2^-60
  1400. </p></dd>
  1401. <dt><samp class="option">f</samp></dt>
  1402. <dd><p>10^-15 / 2^-50
  1403. </p></dd>
  1404. <dt><samp class="option">p</samp></dt>
  1405. <dd><p>10^-12 / 2^-40
  1406. </p></dd>
  1407. <dt><samp class="option">n</samp></dt>
  1408. <dd><p>10^-9 / 2^-30
  1409. </p></dd>
  1410. <dt><samp class="option">u</samp></dt>
  1411. <dd><p>10^-6 / 2^-20
  1412. </p></dd>
  1413. <dt><samp class="option">m</samp></dt>
  1414. <dd><p>10^-3 / 2^-10
  1415. </p></dd>
  1416. <dt><samp class="option">c</samp></dt>
  1417. <dd><p>10^-2
  1418. </p></dd>
  1419. <dt><samp class="option">d</samp></dt>
  1420. <dd><p>10^-1
  1421. </p></dd>
  1422. <dt><samp class="option">h</samp></dt>
  1423. <dd><p>10^2
  1424. </p></dd>
  1425. <dt><samp class="option">k</samp></dt>
  1426. <dd><p>10^3 / 2^10
  1427. </p></dd>
  1428. <dt><samp class="option">K</samp></dt>
  1429. <dd><p>10^3 / 2^10
  1430. </p></dd>
  1431. <dt><samp class="option">M</samp></dt>
  1432. <dd><p>10^6 / 2^20
  1433. </p></dd>
  1434. <dt><samp class="option">G</samp></dt>
  1435. <dd><p>10^9 / 2^30
  1436. </p></dd>
  1437. <dt><samp class="option">T</samp></dt>
  1438. <dd><p>10^12 / 2^40
  1439. </p></dd>
  1440. <dt><samp class="option">P</samp></dt>
  1441. <dd><p>10^15 / 2^40
  1442. </p></dd>
  1443. <dt><samp class="option">E</samp></dt>
  1444. <dd><p>10^18 / 2^50
  1445. </p></dd>
  1446. <dt><samp class="option">Z</samp></dt>
  1447. <dd><p>10^21 / 2^60
  1448. </p></dd>
  1449. <dt><samp class="option">Y</samp></dt>
  1450. <dd><p>10^24 / 2^70
  1451. </p></dd>
  1452. </dl>
  1453. </div>
  1454. <div class="chapter-level-extent" id="See-Also">
  1455. <h2 class="chapter"><span>4 See Also<a class="copiable-link" href="#See-Also"> &para;</a></span></h2>
  1456. <p><a class="url" href="ffmpeg.html">ffmpeg</a>, <a class="url" href="ffplay.html">ffplay</a>, <a class="url" href="ffprobe.html">ffprobe</a>,
  1457. <a class="url" href="libavutil.html">libavutil</a>
  1458. </p>
  1459. </div>
  1460. <div class="chapter-level-extent" id="Authors">
  1461. <h2 class="chapter"><span>5 Authors<a class="copiable-link" href="#Authors"> &para;</a></span></h2>
  1462. <p>The FFmpeg developers.
  1463. </p>
  1464. <p>For details about the authorship, see the Git history of the project
  1465. (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command
  1466. <code class="command">git log</code> in the FFmpeg source directory, or browsing the
  1467. online repository at <a class="url" href="https://git.ffmpeg.org/ffmpeg">https://git.ffmpeg.org/ffmpeg</a>.
  1468. </p>
  1469. <p>Maintainers for the specific components are listed in the file
  1470. <samp class="file">MAINTAINERS</samp> in the source code tree.
  1471. </p>
  1472. </div>
  1473. </div>
  1474. <p style="font-size: small;">
  1475. This document was generated using <a class="uref" href="https://www.gnu.org/software/texinfo/"><em class="emph">makeinfo</em></a>.
  1476. </p>
  1477. </div>
  1478. </body>
  1479. </html>