FFMPEG-UTILS(1) راهنمای ابزارهای چندرسانه‌ای FFMPEG-UTILS(1)

ffmpeg-utils - ابزارهای عمومی و مستندات نحوه استفاده در FFmpeg

این سند برخی از قابلیت‌ها و ابزارهای عمومی ارائه‌شده توسط کتابخانه libavutil را شرح می‌دهد.

این بخش سینتکس و قالب‌های مورد استفاده توسط کتابخانه‌ها و ابزارهای FFmpeg را شرح می‌دهد.

ابزار FFmpeg سازوکار نقل‌قول و گریز (Quoting and Escaping) زیر را به کار می‌گیرد، مگر اینکه صریحاً چیز دیگری مشخص شده باشد. قواعد زیر اعمال می‌شوند:

  • ' و \ نویسه‌های ویژه هستند (به ترتیب برای نقل‌قول و گریز/اسکیپ استفاده می‌شوند). علاوه بر آن‌ها، بسته به سینتکس خاصی که اسکیپ و نقل‌قول در آن به کار می‌رود ممکن است نویسه‌های ویژهٔ دیگری نیز وجود داشته باشند.
  • یک نویسهٔ ویژه با قرار دادن پیشوند \ قبل از آن اسکیپ می‌شود.
  • تمام نویسه‌های محصور میان '' به صورت تحت‌اللفظی (literal) در رشتهٔ پردازش‌شده گنجانده می‌شوند. خود نویسهٔ نقل‌قول ' نمی‌تواند داخل نقل‌قول قرار گیرد، بنابراین ممکن است لازم باشد نقل‌قول را ببندید و آن را اسکیپ کنید.
  • فاصله‌های خالی (whitespaces) ابتدایی و انتهایی، مگر اینکه اسکیپ یا در نقل‌قول قرار گرفته باشند، از رشتهٔ پردازش‌شده حذف می‌شوند.

توجه داشته باشید که هنگام استفاده از خط فرمان یا یک اسکریپت، ممکن است لازم باشد یک سطح دوم از اسکیپ کردن را اضافه کنید، که به سینتکس زبان پوسته (shell) مورد استفاده بستگی دارد.

تابع "av_get_token" تعریف‌شده در libavutil/avstring.h می‌تواند برای تجزیه توکنی که بر اساس قواعد تعریف‌شده در بالا نقل‌قول یا اسکیپ شده است استفاده شود.

ابزار tools/ffescape در درخت منبع FFmpeg می‌تواند برای نقل‌قول یا اسکیپ کردن خودکار یک رشته در اسکریپت استفاده شود.

مثال‌ها

  • اسکیپ کردن رشتهٔ "Crime d'Amour" شامل نویسهٔ ویژهٔ "'":
    Crime d\'Amour
  • رشته بالا شامل یک کوتیشن است، بنابراین هنگام قرار دادن آن در نقل‌قول، "'" باید اسکیپ شود:
    'Crime d'\''Amour'
  • گنجاندن فاصله‌های خالی ابتدایی یا انتهایی با استفاده از نقل‌قول:
    '  this string starts and ends with whitespaces  '
  • اسکیپ کردن و نقل‌قول می‌توانند با هم ترکیب شوند:
    ' The string '\'string\'' is a string '
  • برای گنجاندن یک \ واقعی می‌توانید از اسکیپ کردن یا نقل‌قول استفاده کنید:
    'c:\foo' can be written as c:\\foo

سینتکس پذیرفته‌شده عبارت است از:

[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
now

اگر مقدار برابر با "now" باشد، زمان فعلی را می‌گیرد.

زمان به عنوان زمان محلی تفسیر می‌شود مگر اینکه Z به آن اضافه شود، که در این صورت به عنوان UTC در نظر گرفته می‌شود. اگر بخش سال-ماه-روز مشخص نشود، سال-ماه-روز فعلی را در نظر می‌گیرد.

دو سینتکس پذیرفته‌شده برای بیان مدت زمان وجود دارد:

[-][<HH>:]<MM>:<SS>[.<m>...]

HH تعداد ساعت‌ها، MM تعداد دقیقه‌ها را با حداکثر ۲ رقم، و SS تعداد ثانیه‌ها را با حداکثر ۲ رقم بیان می‌کند. مقدار m در انتها مقدار اعشاری را برای SS بیان می‌نماید.

یا

[-]<S>+[.<m>...][s|ms|us]

S تعداد ثانیه‌ها را همراه با بخش اعشاری اختیاری m بیان می‌کند. پسوندهای اختیاری s، ms یا us به ترتیب نشان‌دهنده تفسیر مقدار بر حسب ثانیه، میلی‌ثانیه یا میکروثانیه هستند.

در هر دو عبارت، علامت اختیاری - نشان‌دهنده مدت زمان منفی است.

مثال‌ها

مثال‌های زیر همگی مدت زمان‌های معتبر هستند:

55
55 ثانیه
0.2
0.2 ثانیه
200ms
200 میلی‌ثانیه، یعنی 0.2s
200000us
200000 میکروثانیه، یعنی 0.2s
12:03:45
12 ساعت و 03 دقیقه و 45 ثانیه
23.189
23.189 ثانیه

اندازه ویدیوی منبع را مشخص می‌کند، می‌تواند رشته‌ای به شکل widthxheight یا نام یکی از اختصارات اندازه باشد.

اختصارات زیر شناخته‌شده هستند:

720x480
720x576
352x240
352x288
640x480
768x576
352x240
352x240
128x96
176x144
352x288
4cif
704x576
16cif
1408x1152
160x120
320x240
640x480
800x600
1024x768
1600x1200
2048x1536
1280x1024
2560x2048
5120x4096
852x480
1366x768
1600x1024
1920x1200
2560x1600
3200x2048
3840x2400
6400x4096
7680x4800
320x200
640x350
852x480
1280x720
1920x1080
2k
2048x1080
2kflat
1998x1080
2kscope
2048x858
4k
4096x2160
4kflat
3996x2160
4kscope
4096x1716
640x360
240x160
400x240
432x240
480x320
960x540
2kdci
2048x1080
4kdci
4096x2160
3840x2160
7680x4320

نرخ فریم ویدیو را مشخص می‌کند که بر حسب تعداد فریم‌های تولیدشده در هر ثانیه بیان می‌شود. باید رشته‌ای در قالب frame_rate_num/frame_rate_den، یک عدد صحیح، یک عدد اعشاری یا یک اختصار معتبر نرخ فریم ویدیو باشد.

اختصارات زیر شناخته‌شده هستند:

30000/1001
25/1
30000/1001
25/1
30000/1001
25/1
24/1
24000/1001

یک نسبت می‌تواند به صورت یک عبارت محاسباتی، یا به شکل numerator:denominator بیان شود.

توجه داشته باشید که نسبت با مقدار بی‌نهایت (1/0) یا منفی معتبر در نظر گرفته می‌شود، بنابراین اگر می‌خواهید این مقادیر را مستثنی کنید باید مقدار بازگردانده‌شده را بررسی نمایید.

مقدار تعریف‌نشده می‌تواند با استفاده از رشتهٔ "0:0" بیان شود.

می‌تواند نام یک رنگ همان‌طور که در زیر تعریف شده است (تطبیق غیرحساس به حروف بزرگ و کوچک) یا یک توالی "[0x|#]RRGGBB[AA]" باشد که ممکن است با @ و یک رشته به عنوان مولفهٔ آلفا دنبال شود.

مولفهٔ آلفا ممکن است رشته‌ای متشکل از "0x" و به دنبال آن یک عدد هگزادسیمال یا یک عدد اعشاری بین 0.0 و 1.0 باشد که مقدار شفافیت (opacity) را نشان می‌دهد (0x00 یا 0.0 به معنی کاملاً شفاف، 0xff یا 1.0 به معنی کاملاً مات است). اگر مولفهٔ آلفا مشخص نشود، 0xff در نظر گرفته می‌شود.

رشتهٔ random منجر به یک رنگ تصادفی خواهد شد.

نام‌های رنگ‌های زیر شناخته‌شده هستند:

0xF0F8FF
0xFAEBD7
0x00FFFF
0x7FFFD4
0xF0FFFF
0xF5F5DC
0xFFE4C4
0x000000
0xFFEBCD
0x0000FF
0x8A2BE2
0xA52A2A
0xDEB887
0x5F9EA0
0x7FFF00
0xD2691E
0xFF7F50
0x6495ED
0xFFF8DC
0xDC143C
0x00FFFF
0x00008B
0x008B8B
0xB8860B
0xA9A9A9
0x006400
0xBDB76B
0x8B008B
0x556B2F
0xFF8C00
0x9932CC
0x8B0000
0xE9967A
0x8FBC8F
0x483D8B
0x2F4F4F
0x00CED1
0x9400D3
0xFF1493
0x00BFFF
0x696969
0x1E90FF
0xB22222
0xFFFAF0
0x228B22
0xFF00FF
0xDCDCDC
0xF8F8FF
0xFFD700
0xDAA520
0x808080
0x008000
0xADFF2F
0xF0FFF0
0xFF69B4
0xCD5C5C
0x4B0082
0xFFFFF0
0xF0E68C
0xE6E6FA
0xFFF0F5
0x7CFC00
0xFFFACD
0xADD8E6
0xF08080
0xE0FFFF
0xFAFAD2
0x90EE90
0xD3D3D3
0xFFB6C1
0xFFA07A
0x20B2AA
0x87CEFA
0x778899
0xB0C4DE
0xFFFFE0
0x00FF00
0x32CD32
0xFAF0E6
0xFF00FF
0x800000
0x66CDAA
0x0000CD
0xBA55D3
0x9370D8
0x3CB371
0x7B68EE
0x00FA9A
0x48D1CC
0xC71585
0x191970
0xF5FFFA
0xFFE4E1
0xFFE4B5
0xFFDEAD
0x000080
0xFDF5E6
0x808000
0x6B8E23
0xFFA500
0xFF4500
0xDA70D6
0xEEE8AA
0x98FB98
0xAFEEEE
0xD87093
0xFFEFD5
0xFFDAB9
0xCD853F
0xFFC0CB
0xDDA0DD
0xB0E0E6
0x800080
0xFF0000
0xBC8F8F
0x4169E1
0x8B4513
0xFA8072
0xF4A460
0x2E8B57
0xFFF5EE
0xA0522D
0xC0C0C0
0x87CEEB
0x6A5ACD
0x708090
0xFFFAFA
0x00FF7F
0x4682B4
0xD2B48C
0x008080
0xD8BFD8
0xFF6347
0x40E0D0
0xEE82EE
0xF5DEB3
0xFFFFFF
0xF5F5F5
0xFFFF00
0x9ACD32

چینش کانال‌ها آرایش مکانی کانال‌ها را در یک استریم صوتی چندکاناله مشخص می‌کند. برای مشخص کردن چینش کانال، FFmpeg از سینتکس ویژه‌ای استفاده می‌نماید.

کانال‌های منفرد با یک شناسه همان‌طور که در جدول زیر آمده است مشخص می‌شوند:

جلوی چپ (front left)
جلوی راست (front right)
جلوی مرکز (front center)
فرکانس پایین / ساب‌ووفر (low frequency)
عقب چپ (back left)
عقب راست (back right)
جلوی متمایل به چپِ مرکز
جلوی متمایل به راستِ مرکز
عقب مرکز
سمت چپ (side left)
سمت راست (side right)
بالای مرکز
بالای جلو چپ
بالای جلو مرکز
بالای جلو راست
بالای عقب چپ
بالای عقب مرکز
بالای عقب راست
داون‌میکس چپ
داون‌میکس راست
عریض چپ
عریض راست
فراگیر مستقیم چپ
فراگیر مستقیم راست
فرکانس پایین ۲

ترکیب‌های استاندارد چینش کانال را می‌توان با شناسه‌های زیر مشخص کرد:

FC
FL+FR
2.1
FL+FR+LFE
3.0
FL+FR+FC
3.0(back)
FL+FR+BC
4.0
FL+FR+FC+BC
FL+FR+BL+BR
FL+FR+SL+SR
3.1
FL+FR+FC+LFE
5.0
FL+FR+FC+BL+BR
5.0(side)
FL+FR+FC+SL+SR
4.1
FL+FR+FC+LFE+BC
5.1
FL+FR+FC+LFE+BL+BR
5.1(side)
FL+FR+FC+LFE+SL+SR
6.0
FL+FR+FC+BC+SL+SR
6.0(front)
FL+FR+FLC+FRC+SL+SR
3.1.2
FL+FR+FC+LFE+TFL+TFR
FL+FR+FC+BL+BR+BC
6.1
FL+FR+FC+LFE+BC+SL+SR
6.1
FL+FR+FC+LFE+BL+BR+BC
6.1(front)
FL+FR+LFE+FLC+FRC+SL+SR
7.0
FL+FR+FC+BL+BR+SL+SR
7.0(front)
FL+FR+FC+FLC+FRC+SL+SR
7.1
FL+FR+FC+LFE+BL+BR+SL+SR
7.1(wide)
FL+FR+FC+LFE+BL+BR+FLC+FRC
7.1(wide-side)
FL+FR+FC+LFE+FLC+FRC+SL+SR
5.1.2
FL+FR+FC+LFE+BL+BR+TFL+TFR
FL+FR+FC+BL+BR+BC+SL+SR
FL+FR+BL+BR+TFL+TFR+TBL+TBR
5.1.4
FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR
7.1.2
FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR
7.1.4
FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR
7.2.3
FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBC+LFE2
9.1.4
FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR
9.1.6
FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR+TSL+TSR
FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
BIL+BIR
DL+DR
22.2
FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR

یک چینش کانال سفارشی می‌تواند به صورت توالی‌ای از عبارت‌ها که با '+' جدا شده‌اند مشخص شود. هر عبارت می‌تواند یکی از موارد زیر باشد:

•
نام یک کانال منفرد (مانند FL، FR، FC، LFE و غیره)، که هر کدام اختیاری می‌تواند شامل یک نام سفارشی پس از '@' باشد (مانند FL@Left، FR@Right، FC@Center، LFE@Low_Frequency و غیره)

یک چینش کانال استاندارد می‌تواند با موارد زیر مشخص شود:

  • نام یک کانال منفرد (مانند FL، FR، FC، LFE و غیره)
  • نام یک چینش کانال استاندارد (مانند mono، stereo، 4.0، quad، 5.0 و غیره)
  • تعداد کانال‌ها، به صورت ده‌دهی، به همراه 'c' در انتها، که چینش کانال پیش‌فرض را برای آن تعداد کانال ایجاد می‌کند (تابع "av_channel_layout_default" را ببینید). توجه داشته باشید که همه تعداد کانال‌ها چینش پیش‌فرض ندارند.
  • تعداد کانال‌ها، به صورت ده‌دهی، به همراه 'C' در انتها، که یک چینش کانال ناشناخته را با تعداد کانال مشخص‌شده ارائه می‌دهد. توجه داشته باشید که همه رشته‌های تعیین چینش کانال از چینش‌های کانال ناشناخته پشتیبانی نمی‌کنند.
  • یک ماسک چینش کانال، به صورت هگزادسیمال که با "0x" شروع می‌شود (ماکروهای "AV_CH_*" را در libavutil/channel_layout.h ببینید).

قبل از نسخه 53 کتابخانه libavutil نویسهٔ انتهایی "c" برای مشخص کردن تعداد کانال‌ها اختیاری بود، اما اکنون الزامی است، در حالی که ماسک چینش کانال می‌تواند به صورت یک عدد ده‌دهی نیز مشخص شود (تنها در صورتی که با "c" یا "C" دنبال نشده باشد).

همچنین تابع "av_channel_layout_from_string" تعریف‌شده در libavutil/channel_layout.h را ببینید.

هنگام ارزیابی یک عبارت حسابی، FFmpeg از یک ارزیاب فرمول داخلی استفاده می‌کند که از طریق رابط libavutil/eval.h پیاده‌سازی شده است.

یک عبارت می‌تواند شامل عملگرهای یکانی، دودویی، ثابت‌ها و توابع باشد.

دو عبارت expr1 و expr2 می‌توانند برای تشکیل عبارت دیگری به شکل "expr1;expr2" ترکیب شوند. expr1 و expr2 به نوبت ارزیابی می‌شوند، و عبارت جدید به مقدار expr2 ارزیابی می‌گردد.

عملگرهای دودویی زیر در دسترس هستند: "+"، "-"، "*"، "/"، "^".

عملگرهای یکانی زیر در دسترس هستند: "+"، "-".

برخی متغیرهای داخلی می‌توانند برای ذخیره و بارگذاری نتایج واسط استفاده شوند. آن‌ها با استفاده از توابع "ld" و "st" با یک آرگومان نمایه متغیر از 0 تا 9 برای تعیین متغیر داخلی مورد نظر قابل دسترسی هستند.

توابع زیر در دسترس هستند:

محاسبه قدر مطلق x.
محاسبه آرک‌کوسینوس x.
محاسبه آرک‌سینوس x.
محاسبه آرک‌تانژانت x.
محاسبه مقدار اصلی آرک‌تانژانت y/x.
بازگرداندن 1 اگر x بزرگتر یا مساوی min و کوچکتر یا مساوی max باشد، در غیر این صورت 0.
محاسبه عملیات بیتی AND یا OR روی x و y.

نتایج ارزیابی x و y قبل از اجرای عملیات بیتی به عدد صحیح تبدیل می‌شوند.

توجه داشته باشید که هم تبدیل به عدد صحیح و هم تبدیل مجدد به ممیز شناور می‌توانند دقت را کاهش دهند. مراقب نتایج غیرمنتظره برای اعداد بزرگ (معمولاً 2^53 و بزرگتر) باشید.

گرد کردن مقدار عبارت expr به سمت بالا به نزدیک‌ترین عدد صحیح. برای مثال "ceil(1.5)" برابر "2.0" است.
بازگرداندن مقدار x محدودشده میان min و max.
محاسبه کوسینوس x.
محاسبه کوسینوس هذلولوی (هایپربولیک) x.
بازگرداندن 1 اگر x و y معادل باشند، در غیر این صورت 0.
محاسبه تابع نمایی x (بر مبنای "e"، عدد اویلر).
گرد کردن مقدار عبارت expr به سمت پایین به نزدیک‌ترین عدد صحیح. برای مثال "floor(\-1.5)" برابر "\-2.0" است.
محاسبه تابع گاوس برای x، متناظر با "exp(\-x*x/2) / sqrt(2*PI)".
بازگرداندن بزرگترین مقسوم‌علیه مشترک (ب.م.م) x و y. اگر هر دو x و y برابر 0 باشند یا یکی یا هر دو کمتر از صفر باشند رفتار تعریف‌نشده است.
بازگرداندن 1 اگر x بزرگتر از y باشد، در غیر این صورت 0.
بازگرداندن 1 اگر x بزرگتر یا مساوی y باشد، در غیر این صورت 0.
این تابع مشابه تابع C با همین نام است؛ مقدار "sqrt(x*x + y*y)" یعنی طول وتر یک مثلث قائم‌الزاویه با اضلاع به طول x و y، یا فاصله نقطه (x, y) از مبدا مختصات را بازمی‌گرداند.
ارزیابی x، و اگر نتیجه غیرصفر باشد نتیجه ارزیابی y را بازمی‌گرداند، در غیر این صورت 0.
ارزیابی x، و اگر نتیجه غیرصفر باشد نتیجه ارزیابی y، در غیر این صورت نتیجه ارزیابی z را بازمی‌گرداند.
ارزیابی x، و اگر نتیجه صفر باشد نتیجه ارزیابی y را بازمی‌گرداند، در غیر این صورت 0.
ارزیابی x، و اگر نتیجه صفر باشد نتیجه ارزیابی y، در غیر این صورت نتیجه ارزیابی z را بازمی‌گرداند.
بازگرداندن 1.0 اگر x برابر با +/-INFINITY باشد، در غیر این صورت 0.0.
بازگرداندن 1.0 اگر x برابر با NAN باشد، در غیر این صورت 0.0.
بارگذاری مقدار متغیر داخلی با نمایه idx، که قبلاً با st(idx, expr) ذخیره شده است. تابع مقدار بارگذاری‌شده را بازمی‌گرداند.
بازگرداندن درون‌یابی خطی میان x و y به میزان z.
محاسبه لگاریتم طبیعی x.
بازگرداندن 1 اگر x کوچکتر از y باشد، در غیر این صورت 0.
بازگرداندن 1 اگر x کوچکتر یا مساوی y باشد، در غیر این صورت 0.
بازگرداندن بیشینه میان x و y.
بازگرداندن کمینه میان x و y.
محاسبه باقیمانده تقسیم x بر y.
بازگرداندن 1.0 اگر expr صفر باشد، در غیر این صورت 0.0.
محاسبه توان x به توان y، معادل "(x)^(y)".
چاپ مقدار عبارت t با سطح گزارش‌گیری (loglevel) برابر با l. اگر l مشخص نشود، از یک سطح گزارش‌گیری پیش‌فرض استفاده می‌شود. مقدار عبارت چاپ‌شده را بازمی‌گرداند.
بازگرداندن یک مقدار شبه‌تصادفی بین 0.0 و 1.0. مقدار idx نمایه متغیر داخلی مورد استفاده برای ذخیره seed/state است که قبلاً با st(idx) ذخیره شده است.

برای مقداردهی اولیه seed، باید مقدار seed را به صورت یک عدد صحیح بدون‌علامت ۶۴ بیتی در متغیر داخلی با نمایه idx ذخیره کنید.

برای مثال، برای ذخیره seed با مقدار 42 در متغیر داخلی با نمایه 0 و چاپ چند مقدار تصادفی:

st(0,42); print(random(0)); print(random(0)); print(random(0))
بازگرداندن یک مقدار شبه‌تصادفی در بازه بین min و max. مقدار idx نمایه متغیر داخلی است که برای ذخیره seed/state استفاده خواهد شد، و قبلاً می‌تواند با st(idx) ذخیره شده باشد.

برای مقداردهی اولیه seed، باید مقدار seed را به صورت یک عدد صحیح بدون‌علامت ۶۴ بیتی در متغیر داخلی با نمایه idx ذخیره کنید.

یافتن یک مقدار ورودی که تابع نمایش‌داده‌شده توسط expr با آرگومان ld(0) به ازای آن در بازه 0..max برابر 0 باشد.

عبارت در expr باید نشان‌دهنده یک تابع پیوسته باشد در غیر این صورت نتیجه تعریف‌نشده است.

مقدار ld(0) برای نشان دادن مقدار ورودی تابع استفاده می‌شود، به این معنی که عبارت داده‌شده چندین بار با مقادیر ورودی مختلف ارزیابی خواهد شد که عبارت می‌تواند از طریق ld(0) به آن‌ها دسترسی داشته باشد. هنگامی که عبارت به 0 ارزیابی شود، مقدار ورودی مربوطه بازگردانده خواهد شد.

گرد کردن مقدار عبارت expr به نزدیک‌ترین عدد صحیح. برای مثال "round(1.5)" برابر "2.0" است.
محاسبه علامت x.
محاسبه سینوس x.
محاسبه سینوس هذلولوی x.
محاسبه ریشه دوم (جذر) expr. معادل "(expr)^.5".
محاسبه عبارت "1/(1 + exp(4*x))".
ذخیره مقدار عبارت expr در یک متغیر داخلی. idx نمایه متغیری را مشخص می‌کند که مقدار در آن ذخیره شود، و مقداری از 0 تا 9 است. تابع مقدار ذخیره‌شده در متغیر داخلی را بازمی‌گرداند.

مقدار ذخیره‌شده می‌تواند با ld(var) بازیابی شود.

نکته: متغیرها در حال حاضر میان عبارات مختلف به اشتراک گذاشته نمی‌شوند.

محاسبه تانژانت x.
محاسبه تانژانت هذلولوی x.
ارزیابی یک سری تیلور در x، با توجه به عبارتی که مشتق ld(idx)-ام یک تابع را در 0 نشان می‌دهد.

هنگامی که سری همگرا نشود، نتیجه تعریف‌نشده است.

مقدار ld(idx) برای نشان دادن مرتبه مشتق در expr استفاده می‌شود، به این معنی که عبارت داده‌شده چندین بار با مقادیر ورودی مختلف ارزیابی خواهد شد که عبارت می‌تواند از طریق ld(idx) به آن‌ها دسترسی داشته باشد. اگر idx مشخص نشود، 0 فرض می‌شود.

نکته: هنگامی که مشتقات را در y به جای 0 دارید، "taylor(expr, x-y)" می‌تواند استفاده شود.

time(0)
بازگرداندن زمان فعلی (ساعت دیواری) بر حسب ثانیه.
گرد کردن مقدار عبارت expr به سمت صفر به نزدیک‌ترین عدد صحیح. برای مثال "trunc(\-1.5)" برابر "\-1.0" است.
ارزیابی عبارت expr تا زمانی که عبارت cond غیرصفر باشد، و بازگرداندن مقدار آخرین ارزیابی expr، یا NAN اگر cond همیشه نادرست بوده باشد.

ثابت‌های زیر در دسترس هستند:

مساحت دیسک واحد، تقریباً 3.14
exp(1) (عدد اویلر)، تقریباً 2.718
نسبت طلایی (1+sqrt(5))/2، تقریباً 1.618

با فرض اینکه یک عبارت در صورت داشتن مقدار غیرصفر "درست" (true) در نظر گرفته می‌شود، توجه داشته باشید که:

"*" مانند AND عمل می‌کند

"+" مانند OR عمل می‌کند

برای مثال ساختار:

if (A AND B) then C

معادل است با:

if(A*B, C)

در کد زبان C خود، می‌توانید فهرست توابع یکانی و دودویی را گسترش دهید و ثابت‌های شناخته‌شده را تعریف کنید، به طوری که برای عبارات شما در دسترس باشند.

ارزیاب همچنین پیشوندهای یکای دستگاه بین‌المللی (SI) را می‌شناسد. اگر 'i' بعد از پیشوند اضافه شود، از پیشوندهای دودویی (باینری) استفاده می‌شود که بر پایه توان‌های 1024 هستند به جای توان‌های 1000. پسوند 'B' مقدار را در ۸ ضرب می‌کند، و می‌تواند بعد از پیشوند یکا اضافه شود یا به تنهایی به کار رود. این امکان استفاده از مثلاً 'KB'، 'MiB'، 'G' و 'B' را به عنوان پسوند عدد فراهم می‌کند.

فهرست پیشوندهای بین‌المللی موجود در ادامه می‌آید، همراه با نشان دادن توان‌های متناظر 10 و 2.

10^-24 / 2^-80
10^-21 / 2^-70
10^-18 / 2^-60
10^-15 / 2^-50
10^-12 / 2^-40
10^-9 / 2^-30
10^-6 / 2^-20
10^-3 / 2^-10
10^-2
10^-1
10^2
10^3 / 2^10
10^3 / 2^10
10^6 / 2^20
10^9 / 2^30
10^12 / 2^40
10^15 / 2^50
10^18 / 2^60
10^21 / 2^70
10^24 / 2^80

ffmpeg(1)، ffplay(1)، ffprobe(1)، libavutil(3)

توسعه‌دهندگان FFmpeg.

برای جزئیات بیشتر درباره نویسندگان، به تاریخچه گیت پروژه (https://git.ffmpeg.org/ffmpeg) مراجعه کنید، به عنوان مثال با اجرای دستور git log در دایرکتوری کد منبع FFmpeg، یا مرور مخزن آنلاین در نشانی https://git.ffmpeg.org/ffmpeg.

نگه‌دارنده‌های اجزای خاص در فایل MAINTAINERS در درخت کد منبع فهرست شده‌اند.

FFmpeg