⚠️ これは 非公式の翻訳サイトです。FFmpeg プロジェクトとは無関係です。正確な情報は 原文(https://ffmpeg.org/ffmpeg-utils.html) を参照してください。

FFmpeg ユーティリティ ドキュメント

1 概要

この文書では、libavutil ライブラリが提供する汎用的な機能とユーティリティについて説明します。

2 構文

この節では、FFmpeg のライブラリやツールが用いる構文と書式について説明します。

2.1 クォートとエスケープ

特に明記しない限り、FFmpeg は次のクォートおよびエスケープの仕組みを採用します。適用される規則は以下のとおりです。

  • ‘'’ と ‘\’ は特殊文字です(それぞれクォートとエスケープに使います)。これらに加えて、エスケープやクォートを用いる構文によっては別の特殊文字が存在することもあります。
  • 特殊文字は、その前に ‘\’ を付けることでエスケープします。
  • ‘''’ で囲まれた文字はすべて、解析後の文字列にそのまま含まれます。クォート文字 ‘'’ 自体はクォートできないため、いったんクォートを閉じてからエスケープする必要がある場合があります。
  • 先頭と末尾の空白は、エスケープまたはクォートされていない限り、解析後の文字列から取り除かれます。

コマンドラインやスクリプトで使う場合は、採用したシェル言語の構文に応じて、もう一段階のエスケープが必要になることがあります。

libavutil/avstring.h で定義されている関数 av_get_token を使うと、上記の規則に従ってクォートまたはエスケープされたトークンを解析できます。

FFmpeg のソースツリーにあるツール tools/ffescape を使うと、スクリプト内の文字列を自動的にクォートまたはエスケープできます。

2.1.1 例

  • 特殊文字 ' を含む文字列 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
    

2.2 日付

受け付ける構文は次のとおりです。

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

値が "now" の場合は現在時刻が使われます。

Z を末尾に付けない限り時刻はローカル時刻として扱われ、付けた場合は UTC として解釈されます。年月日の部分を指定しない場合は現在の年月日が使われます。

2.3 時間の長さ

時間の長さを表す構文は2通り受け付けられます。

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

HH は時間数を、MM は分を最大2桁で、SS は秒を最大2桁で表します。末尾の m は SS の小数部分を表します。

or

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

S は秒数を表し、小数部分 m は省略可能です。リテラルの接尾辞 ‘s’、‘ms’、‘us’(いずれも省略可)は、それぞれ値を秒・ミリ秒・マイクロ秒として解釈することを示します。

どちらの表記でも、省略可能な ‘-’ は負の時間を示します。

2.3.1 例

以下はいずれも有効な時間の長さの例です。

‘55’

55秒

‘0.2’

0.2秒

‘200ms’

200ミリ秒、つまり0.2秒

‘200000us’

200000マイクロ秒、つまり0.2秒

‘12:03:45’

12時間3分45秒

‘23.189’

23.189秒

2.4 映像サイズ

入力する映像のサイズを指定します。widthxheight の形式の文字列か、サイズの略称名で指定できます。

認識される略称は以下のとおりです。

‘ntsc’

720x480

‘pal’

720x576

‘qntsc’

352x240

‘qpal’

352x288

‘sntsc’

640x480

‘spal’

768x576

‘film’

352x240

‘ntsc-film’

352x240

‘sqcif’

128x96

‘qcif’

176x144

‘cif’

352x288

‘4cif’

704x576

‘16cif’

1408x1152

‘qqvga’

160x120

‘qvga’

320x240

‘vga’

640x480

‘svga’

800x600

‘xga’

1024x768

‘uxga’

1600x1200

‘qxga’

2048x1536

‘sxga’

1280x1024

‘qsxga’

2560x2048

‘hsxga’

5120x4096

‘wvga’

852x480

‘wxga’

1366x768

‘wsxga’

1600x1024

‘wuxga’

1920x1200

‘woxga’

2560x1600

‘wqsxga’

3200x2048

‘wquxga’

3840x2400

‘whsxga’

6400x4096

‘whuxga’

7680x4800

‘cga’

320x200

‘ega’

640x350

‘hd480’

852x480

‘hd720’

1280x720

‘hd1080’

1920x1080

‘2k’

2048x1080

‘2kflat’

1998x1080

‘2kscope’

2048x858

‘4k’

4096x2160

‘4kflat’

3996x2160

‘4kscope’

4096x1716

‘nhd’

640x360

‘hqvga’

240x160

‘wqvga’

400x240

‘fwqvga’

432x240

‘hvga’

480x320

‘qhd’

960x540

‘2kdci’

2048x1080

‘4kdci’

4096x2160

‘uhd2160’

3840x2160

‘uhd4320’

7680x4320

2.5 映像レート

映像のフレームレートを、1秒あたりに生成されるフレーム数として指定します。frame_rate_num/frame_rate_den 形式の文字列、整数、浮動小数点数、または有効な映像フレームレートの略称のいずれかで指定します。

認識される略称は以下のとおりです。

‘ntsc’

30000/1001

‘pal’

25/1

‘qntsc’

30000/1001

‘qpal’

25/1

‘sntsc’

30000/1001

‘spal’

25/1

‘film’

24/1

‘ntsc-film’

24000/1001

2.6 比

比は式として、または numerator:denominator の形式で表現できます。

無限大(1/0)や負の値を持つ比も有効とみなされる点に注意してください。これらの値を除外したい場合は、返された値を確認する必要があります。

未定義の値は "0:0" という文字列で表現できます。

2.7 色

以下で定義する色名(大文字小文字を区別しない一致)、または [0x|#]RRGGBB[AA] の並びで指定できます。後者には @ とアルファ成分を表す文字列を続けることもできます。

アルファ成分は、"0x" に続けて16進数で表した文字列、または 0.0 から 1.0 までの10進数で指定でき、不透明度を表します(‘0x00’ または ‘0.0’ は完全な透明、‘0xff’ または ‘1.0’ は完全な不透明を意味します)。アルファ成分を指定しない場合は ‘0xff’ とみなされます。

‘random’ という文字列を指定すると、ランダムな色になります。

認識される色名は以下のとおりです。

‘AliceBlue’

0xF0F8FF

‘AntiqueWhite’

0xFAEBD7

‘Aqua’

0x00FFFF

‘Aquamarine’

0x7FFFD4

‘Azure’

0xF0FFFF

‘Beige’

0xF5F5DC

‘Bisque’

0xFFE4C4

‘Black’

0x000000

‘BlanchedAlmond’

0xFFEBCD

‘Blue’

0x0000FF

‘BlueViolet’

0x8A2BE2

‘Brown’

0xA52A2A

‘BurlyWood’

0xDEB887

‘CadetBlue’

0x5F9EA0

‘Chartreuse’

0x7FFF00

‘Chocolate’

0xD2691E

‘Coral’

0xFF7F50

‘CornflowerBlue’

0x6495ED

‘Cornsilk’

0xFFF8DC

‘Crimson’

0xDC143C

‘Cyan’

0x00FFFF

‘DarkBlue’

0x00008B

‘DarkCyan’

0x008B8B

‘DarkGoldenRod’

0xB8860B

‘DarkGray’

0xA9A9A9

‘DarkGreen’

0x006400

‘DarkKhaki’

0xBDB76B

‘DarkMagenta’

0x8B008B

‘DarkOliveGreen’

0x556B2F

‘Darkorange’

0xFF8C00

‘DarkOrchid’

0x9932CC

‘DarkRed’

0x8B0000

‘DarkSalmon’

0xE9967A

‘DarkSeaGreen’

0x8FBC8F

‘DarkSlateBlue’

0x483D8B

‘DarkSlateGray’

0x2F4F4F

‘DarkTurquoise’

0x00CED1

‘DarkViolet’

0x9400D3

‘DeepPink’

0xFF1493

‘DeepSkyBlue’

0x00BFFF

‘DimGray’

0x696969

‘DodgerBlue’

0x1E90FF

‘FireBrick’

0xB22222

‘FloralWhite’

0xFFFAF0

‘ForestGreen’

0x228B22

‘Fuchsia’

0xFF00FF

‘Gainsboro’

0xDCDCDC

‘GhostWhite’

0xF8F8FF

‘Gold’

0xFFD700

‘GoldenRod’

0xDAA520

‘Gray’

0x808080

‘Green’

0x008000

‘GreenYellow’

0xADFF2F

‘HoneyDew’

0xF0FFF0

‘HotPink’

0xFF69B4

‘IndianRed’

0xCD5C5C

‘Indigo’

0x4B0082

‘Ivory’

0xFFFFF0

‘Khaki’

0xF0E68C

‘Lavender’

0xE6E6FA

‘LavenderBlush’

0xFFF0F5

‘LawnGreen’

0x7CFC00

‘LemonChiffon’

0xFFFACD

‘LightBlue’

0xADD8E6

‘LightCoral’

0xF08080

‘LightCyan’

0xE0FFFF

‘LightGoldenRodYellow’

0xFAFAD2

‘LightGreen’

0x90EE90

‘LightGrey’

0xD3D3D3

‘LightPink’

0xFFB6C1

‘LightSalmon’

0xFFA07A

‘LightSeaGreen’

0x20B2AA

‘LightSkyBlue’

0x87CEFA

‘LightSlateGray’

0x778899

‘LightSteelBlue’

0xB0C4DE

‘LightYellow’

0xFFFFE0

‘Lime’

0x00FF00

‘LimeGreen’

0x32CD32

‘Linen’

0xFAF0E6

‘Magenta’

0xFF00FF

‘Maroon’

0x800000

‘MediumAquaMarine’

0x66CDAA

‘MediumBlue’

0x0000CD

‘MediumOrchid’

0xBA55D3

‘MediumPurple’

0x9370D8

‘MediumSeaGreen’

0x3CB371

‘MediumSlateBlue’

0x7B68EE

‘MediumSpringGreen’

0x00FA9A

‘MediumTurquoise’

0x48D1CC

‘MediumVioletRed’

0xC71585

‘MidnightBlue’

0x191970

‘MintCream’

0xF5FFFA

‘MistyRose’

0xFFE4E1

‘Moccasin’

0xFFE4B5

‘NavajoWhite’

0xFFDEAD

‘Navy’

0x000080

‘OldLace’

0xFDF5E6

‘Olive’

0x808000

‘OliveDrab’

0x6B8E23

‘Orange’

0xFFA500

‘OrangeRed’

0xFF4500

‘Orchid’

0xDA70D6

‘PaleGoldenRod’

0xEEE8AA

‘PaleGreen’

0x98FB98

‘PaleTurquoise’

0xAFEEEE

‘PaleVioletRed’

0xD87093

‘PapayaWhip’

0xFFEFD5

‘PeachPuff’

0xFFDAB9

‘Peru’

0xCD853F

‘Pink’

0xFFC0CB

‘Plum’

0xDDA0DD

‘PowderBlue’

0xB0E0E6

‘Purple’

0x800080

‘Red’

0xFF0000

‘RosyBrown’

0xBC8F8F

‘RoyalBlue’

0x4169E1

‘SaddleBrown’

0x8B4513

‘Salmon’

0xFA8072

‘SandyBrown’

0xF4A460

‘SeaGreen’

0x2E8B57

‘SeaShell’

0xFFF5EE

‘Sienna’

0xA0522D

‘Silver’

0xC0C0C0

‘SkyBlue’

0x87CEEB

‘SlateBlue’

0x6A5ACD

‘SlateGray’

0x708090

‘Snow’

0xFFFAFA

‘SpringGreen’

0x00FF7F

‘SteelBlue’

0x4682B4

‘Tan’

0xD2B48C

‘Teal’

0x008080

‘Thistle’

0xD8BFD8

‘Tomato’

0xFF6347

‘Turquoise’

0x40E0D0

‘Violet’

0xEE82EE

‘Wheat’

0xF5DEB3

‘White’

0xFFFFFF

‘WhiteSmoke’

0xF5F5F5

‘Yellow’

0xFFFF00

‘YellowGreen’

0x9ACD32

2.8 チャンネルレイアウト

チャンネルレイアウトは、マルチチャンネル音声ストリームにおける各チャンネルの空間的な配置を指定します。チャンネルレイアウトを指定するために、FFmpeg は専用の構文を用います。

個々のチャンネルは、下の表に示すIDで識別されます。

‘FL’

前方左

‘FR’

前方右

‘FC’

前方中央

‘LFE’

低域(LFE)

‘BL’

後方左

‘BR’

後方右

‘FLC’

前方中央左

‘FRC’

前方中央右

‘BC’

後方中央

‘SL’

側方左

‘SR’

側方右

‘TC’

上方中央

‘TFL’

上方前方左

‘TFC’

上方前方中央

‘TFR’

上方前方右

‘TBL’

上方後方左

‘TBC’

上方後方中央

‘TBR’

上方後方右

‘DL’

ダウンミックス左

‘DR’

ダウンミックス右

‘WL’

ワイド左

‘WR’

ワイド右

‘SDL’

サラウンドダイレクト左

‘SDR’

サラウンドダイレクト右

‘LFE2’

低域2(LFE2)

標準的なチャンネルレイアウトの構成は、以下の識別子で指定できます。

‘mono’

FC

‘stereo’

FL+FR

‘2.1’

FL+FR+LFE

‘3.0’

FL+FR+FC

‘3.0(back)’

FL+FR+BC

‘4.0’

FL+FR+FC+BC

‘quad’

FL+FR+BL+BR

‘quad(side)’

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

‘hexagonal’

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

‘octagonal’

FL+FR+FC+BL+BR+BC+SL+SR

‘cube’

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

‘hexadecagonal’

FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR

‘binaural’

BIL+BIR

‘downmix’

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’ など)
  • 10進数のチャンネル数に ’c’ を続けたもの。そのチャンネル数に対する既定のチャンネルレイアウトになります(関数 av_channel_layout_default を参照)。ただし、すべてのチャンネル数に既定のレイアウトがあるわけではない点に注意してください。
  • 10進数のチャンネル数に ’C’ を続けたもの。指定したチャンネル数を持つ不明(unknown)なチャンネルレイアウトになります。ただし、すべてのチャンネルレイアウト指定文字列が不明なチャンネルレイアウトに対応しているわけではない点に注意してください。
  • 「0x」で始まる16進数のチャンネルレイアウトマスク(libavutil/channel_layout.h の AV_CH_* マクロを参照)。

libavutil バージョン53より前では、チャンネル数を指定するための末尾の文字 "c" は省略可能でしたが、現在は必須です。一方で、チャンネルレイアウトマスクは10進数で指定することもできます("c" や "C" が後に続かない場合に限ります)。

libavutil/channel_layout.h で定義されている関数 av_channel_layout_from_string も参照してください。

3 式の評価

算術式を評価する際、FFmpeg は libavutil/eval.h のインターフェイスを通じて実装された内部の数式評価器を使います。

式には、単項演算子・二項演算子・定数・関数を含めることができます。

2つの式 expr1 と expr2 を組み合わせて、別の式 "expr1;expr2" を作れます。expr1 と expr2 は順番に評価され、新しい式の評価結果は expr2 の値になります。

利用できる二項演算子は次のとおりです: +-*/^

利用できる単項演算子は次のとおりです: +-

途中結果の保存と読み込みには、いくつかの内部変数を使えます。これらには ld 関数と st 関数でアクセスでき、0から9までのインデックス引数でどの内部変数にアクセスするかを指定します。

利用できる関数は以下のとおりです。

abs(x)

x の絶対値を計算します。

acos(x)

x の逆余弦(アークコサイン)を計算します。

asin(x)

x の逆正弦(アークサイン)を計算します。

atan(x)

x の逆正接(アークタンジェント)を計算します。

atan2(y, x)

y/x の逆正接の主値を計算します。

between(x, min, max)

x が min 以上かつ max 以下であれば1を、そうでなければ0を返します。

bitand(x, y) bitor(x, y)

x と y のビットごとの論理積/論理和を計算します。

x と y の評価結果は、ビット演算を行う前に整数に変換されます。

整数への変換も、浮動小数点数への逆変換も精度を失う可能性がある点に注意してください。大きな数(通常は2^53以上)では予期しない結果になることがあります。

ceil(expr)

式 expr の値を、最も近い整数へ切り上げます。たとえば "ceil(1.5)" は "2.0" です。

clip(x, min, max)

x を min と max の範囲に収めた値を返します。

cos(x)

x の余弦(コサイン)を計算します。

cosh(x)

x の双曲線余弦(ハイパボリックコサイン)を計算します。

eq(x, y)

x と y が等しければ1を、そうでなければ0を返します。

exp(x)

x の指数関数(底はオイラー数 e)を計算します。

floor(expr)

式 expr の値を、最も近い整数へ切り下げます。たとえば "floor(-1.5)" は "-2.0" です。

gauss(x)

x のガウス関数を計算します。exp(-x*x/2) / sqrt(2*PI) に相当します。

gcd(x, y)

x と y の最大公約数を返します。x と y がともに0の場合、またはどちらか一方でも0未満の場合、動作は未定義です。

gt(x, y)

x が y より大きければ1を、そうでなければ0を返します。

gte(x, y)

x が y 以上であれば1を、そうでなければ0を返します。

hypot(x, y)

同名のC関数と同様の関数で、"sqrt(xx + yy)"、すなわち長さ x と y の辺を持つ直角三角形の斜辺の長さ、または点 (x, y) の原点からの距離を返します。

if(x, y)

x を評価し、結果が0でなければ y の評価結果を返し、そうでなければ0を返します。

if(x, y, z)

x を評価し、結果が0でなければ y の評価結果を、そうでなければ z の評価結果を返します。

ifnot(x, y)

x を評価し、結果が0であれば y の評価結果を返し、そうでなければ0を返します。

ifnot(x, y, z)

x を評価し、結果が0であれば y の評価結果を、そうでなければ z の評価結果を返します。

isinf(x)

x が +/-INFINITY であれば1.0を、そうでなければ0.0を返します。

isnan(x)

x が NAN であれば1.0を、そうでなければ0.0を返します。

ld(idx)

インデックス idx の内部変数の値を読み込みます。この値は事前に st(idx, expr) で保存されたものです。読み込んだ値を返します。

lerp(x, y, z)

x と y の間を z の割合で線形補間した値を返します。

log(x)

x の自然対数を計算します。

lt(x, y)

x が y より小さければ1を、そうでなければ0を返します。

lte(x, y)

x が y 以下であれば1を、そうでなければ0を返します。

max(x, y)

x と y のうち大きい方を返します。

min(x, y)

x と y のうち小さい方を返します。

mod(x, y)

x を y で割った余りを計算します。

not(expr)

expr が0であれば1.0を、そうでなければ0.0を返します。

pow(x, y)

x の y 乗を計算します。"(x)^(y)" と同等です。

print(t) print(t, l)

式 t の値をログレベル l で出力します。l を指定しない場合は既定のログレベルが使われます。出力した式の値を返します。

random(idx)

0.0 から 1.0 の間の擬似乱数を返します。idx は、シードや状態を保存しておく内部変数のインデックスで、事前に st(idx) で保存しておくことができます。

シードを初期化するには、シード値を64ビット符号なし整数としてインデックス idx の内部変数に保存する必要があります。

たとえば、値 42 のシードをインデックス 0 の内部変数に保存し、いくつか乱数値を出力するには次のようにします。

st(0,42); print(random(0)); print(random(0)); print(random(0))

randomi(idx, min, max)

min から max の区間の擬似乱数を返します。idx は、シードや状態を保存するために使う内部変数のインデックスで、事前に st(idx) で保存しておくことができます。

シードを初期化するには、シード値を64ビット符号なし整数としてインデックス idx の内部変数に保存する必要があります。

root(expr, max)

引数 ld(0) を持つ expr で表される関数が、区間 0..max のなかで0になるような入力値を求めます。

expr の式は連続関数を表していなければなりません。そうでない場合、結果は未定義です。

ld(0) は関数の入力値を表すために使われます。つまり、指定した式は、ld(0) を通じて参照できるさまざまな入力値で複数回評価されます。式の評価結果が0になったとき、対応する入力値が返されます。

round(expr)

式 expr の値を、最も近い整数へ丸めます。たとえば "round(1.5)" は "2.0" です。

sgn(x)

x の符号を計算します。

sin(x)

x の正弦(サイン)を計算します。

sinh(x)

x の双曲線正弦(ハイパボリックサイン)を計算します。

sqrt(expr)

expr の平方根を計算します。"(expr)^.5" と同等です。

squish(x)

1/(1 + exp(4*x)) を計算します。

st(idx, expr)

式 expr の値を内部変数に保存します。idx は値を保存する変数のインデックスを指定するもので、0から9までの値です。内部変数に保存した値を返します。

保存した値は ld(var) で取り出せます。

注意: 現在、変数は式どうしで共有されません。

tan(x)

x の正接(タンジェント)を計算します。

tanh(x)

x の双曲線正接(ハイパボリックタンジェント)を計算します。

taylor(expr, x) taylor(expr, x, idx)

0における関数の ld(idx) 階導関数を表す式を与えて、x におけるテイラー級数を評価します。

級数が収束しない場合、結果は未定義です。

ld(idx) は expr のなかで導関数の次数を表すために使われます。つまり、指定した式は、ld(idx) を通じて参照できるさまざまな入力値で複数回評価されます。idx を指定しない場合は0とみなされます。

なお、導関数が0ではなく y で与えられている場合は、taylor(expr, x-y) を使えます。

time(0)

現在の(実時間の)時刻を秒単位で返します。

trunc(expr)

式 expr の値を、0方向に最も近い整数へ丸めます。たとえば "trunc(-1.5)" は "-1.0" です。

while(cond, expr)

式 cond が0でない間、式 expr を評価し続け、最後の expr の評価結果を返します。cond が常に偽だった場合は NAN を返します。

利用できる定数は以下のとおりです。

PI

単位円板の面積。約3.14。

E

exp(1)(オイラー数)。約2.718。

PHI

黄金比 (1+sqrt(5))/2。約1.618。

式は値が0でなければ「真」とみなされるという前提のもとで、次の点に注意してください。

* は AND のように働きます

+ は OR のように働きます

たとえば、次の構文:

if (A AND B) then C

は次と同等です:

if(A*B, C)

自分のCコードでは、単項関数と二項関数の一覧を拡張したり、認識される定数を定義したりして、式のなかで使えるようにできます。

評価器は国際単位系の接頭辞も認識します。接頭辞の後に ’i’ を付けると、1000のべき乗ではなく1024のべき乗に基づく2進接頭辞が使われます。接尾辞 ’B’ は値を8倍するもので、単位接頭辞の後に付けても、単独で使ってもかまいません。これにより、たとえば ’KB’、’MiB’、’G’、’B’ を数値の接尾辞として使えます。

利用できる国際単位系の接頭辞の一覧を、対応する10および2のべき乗とともに示します。

y

10^-24 / 2^-80

z

10^-21 / 2^-70

a

10^-18 / 2^-60

f

10^-15 / 2^-50

p

10^-12 / 2^-40

n

10^-9 / 2^-30

u

10^-6 / 2^-20

m

10^-3 / 2^-10

c

10^-2

d

10^-1

h

10^2

k

10^3 / 2^10

K

10^3 / 2^10

M

10^6 / 2^20

G

10^9 / 2^30

T

10^12 / 2^40

P

10^15 / 2^50

E

10^18 / 2^60

Z

10^21 / 2^70

Y

10^24 / 2^80

4 関連項目

ffmpeg, ffplay, ffprobe, libavutil

5 作者

FFmpeg の開発者一同。

作者の詳細については、プロジェクトの Git 履歴(https://git.ffmpeg.org/ffmpeg)を参照してください。たとえば FFmpeg のソースディレクトリで git log コマンドを実行するか、オンラインリポジトリ https://git.ffmpeg.org/ffmpeg を閲覧してください。

各コンポーネントのメンテナーは、ソースコードツリー内の MAINTAINERS ファイルに記載されています。

ホスティングは telepoint.bg によって提供されています。