FFmpeg 工具程式文件

目錄

1 描述

本文件描述了 libavutil 函式庫提供的一些通用功能和工具程式。

2 語法

本節記錄了 FFmpeg 函式庫和工具所採用的語法和格式。

2.1 引號和跳脫字元

除非另有明確指定,否則 FFmpeg 採用以下引號和跳脫字元機制。應用以下規則

  • '’ 和 ‘\’ 是特殊字元(分別用於引號和跳脫字元)。除了它們之外,根據採用跳脫字元和引號的特定語法,可能還有其他特殊字元。
  • 特殊字元會在其前面加上 ‘\’ 以進行跳脫。
  • 所有包含在 ‘''’ 之間的字元都會逐字包含在已剖析的字串中。引號字元 ‘'’ 本身無法被引號,因此您可能需要關閉引號並跳脫它。
  • 前導和尾隨的空白字元,除非經過跳脫或引號,否則會從已剖析的字串中移除。

請注意,當使用命令列或腳本時,您可能需要新增第二層跳脫字元,這取決於所採用 shell 語言的語法。

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 時間長度

表達時間長度有兩種接受的語法。

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

HH 表示小時數,MM 表示最多 2 位數的分鐘數,而 SS 表示最多 2 位數的秒數。結尾的 m 表示 SS 的小數值。

[-]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 小時、03 分鐘和 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 影片幀率

指定影片的幀率,以每秒產生的幀數表示。它必須是 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] 序列,可能後跟 @ 和表示 alpha 分量的字串。

alpha 分量可以是 "0x" 後跟十六進位數字或介於 0.0 和 1.0 之間的十進位數字組成的字串,它表示不透明度值(‘0x00’ 或 ‘0.0’ 表示完全透明,‘0xff’ 或 ‘1.0’ 完全不透明)。如果未指定 alpha 分量,則假定為 ‘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

低頻聲道

BL

後置左聲道

BR

後置右聲道

FLC

前置偏左中央聲道

FRC

前置偏右中央聲道

BC

後置中央聲道

SL

側邊左聲道

SR

側邊右聲道

TC

頂部中央聲道

TFL

頂部前置左聲道

TFC

頂部前置中央聲道

TFR

頂部前置右聲道

TBL

頂部後置左聲道

TBC

頂部後置中央聲道

TBR

頂部後置右聲道

DL

向下混音左聲道

DR

向下混音右聲道

WL

寬度左聲道

WR

寬度右聲道

SDL

環繞直接左聲道

SDR

環繞直接右聲道

LFE2

低頻聲道 2

標準聲道配置組合可以使用以下識別碼指定

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’ 等)
  • 聲道數量,以十進位表示,後跟 ’c’,產生該聲道數量的預設聲道配置(請參閱函式 av_channel_layout_default)。請注意,並非所有聲道計數都有預設配置。
  • 聲道數量,以十進位表示,後跟 ’C’,產生具有指定聲道數量的未知聲道配置。請注意,並非所有聲道配置規格字串都支援未知的聲道配置。
  • 聲道配置遮罩,以 "0x" 開頭的十六進位表示(請參閱 libavutil/channel_layout.h 中的 AV_CH_* 巨集)。

在 libavutil 版本 53 之前,指定聲道數量的尾隨字元 "c" 是可選的,但現在是必需的,而聲道配置遮罩也可以指定為十進位數字(僅當且僅當後面沒有 "c" 或 "C" 時)。

另請參閱 libavutil/channel_layout.h 中定義的函式 av_channel_layout_from_string

3 算式求值

在評估算術表達式時,FFmpeg 使用內部公式求值器,透過 libavutil/eval.h 介面實作。

表達式可能包含一元運算子、二元運算子、常數和函式。

兩個表達式 expr1expr2 可以組合形成另一個表達式 "expr1;expr2"。expr1expr2 依序評估,而新的表達式評估為 expr2 的值。

以下二元運算子可用:+-*/^

以下一元運算子可用:+-

可以使用一些內部變數來儲存和載入中間結果。可以使用 ldst 函式存取它們,索引引數從 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)

計算 xy 的位元 AND/OR 運算。

xy 評估的結果會在執行位元運算之前轉換為整數。

請注意,轉換為整數和轉換回浮點數都可能損失精確度。請注意大數(通常為 2^53 及更大)的非預期結果。

ceil(expr)

將表達式 expr 的值向上捨入到最接近的整數。例如,"ceil(1.5)" 為 "2.0"。

clip(x, min, max)

傳回 x 的值,限制在 minmax 之間。

cos(x)

計算 x 的餘弦值。

cosh(x)

計算 x 的雙曲餘弦值。

eq(x, y)

如果 xy 相等,則傳回 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)

傳回 xy 的最大公因數。如果 xy 都是 0,或任一或兩者都小於零,則行為未定義。

gt(x, y)

如果 x 大於 y,則傳回 1,否則傳回 0。

gte(x, y)

如果 x 大於或等於 y,則傳回 1,否則傳回 0。

hypot(x, y)

此函式與同名的 C 函式類似;它傳回 "sqrt(x*x + y*y)",即邊長為 xy 的直角三角形的斜邊長度,或是點 (x, y) 與原點的距離。

if(x, y)

評估 x,如果結果為非零,則傳回 y 評估的結果,否則傳回 0。

if(x, y, z)

評估 x,如果結果為非零,則傳回 y 的評估結果,否則傳回 z 的評估結果。

ifnot(x, y)

評估 x,如果結果為零,則傳回 y 評估的結果,否則傳回 0。

ifnot(x, y, z)

評估 x,如果結果為零,則傳回 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)

傳回 xy 之間依 z 量線性內插的值。

log(x)

計算 x 的自然對數。

lt(x, y)

如果 x 小於 y,則傳回 1,否則傳回 0。

lte(x, y)

如果 x 小於或等於 y,則傳回 1,否則傳回 0。

max(x, y)

傳回 xy 之間的最大值。

min(x, y)

傳回 xy 之間的最小值。

mod(x, y)

計算 x 除以 y 的餘數。

not(expr)

如果 expr 為零,則傳回 1.0,否則傳回 0.0。

pow(x, y)

計算 xy 次方,相當於 "(x)^(y)"。

print(t)
print(t, l)

使用日誌層級 l 列印表達式 t 的值。如果未指定 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)

傳回介於 minmax 之間的間隔中的虛擬隨機值。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)

x 處評估泰勒級數,給定表示函式在 0 處的第 ld(idx) 階導數的表達式。

當級數不收斂時,結果未定義。

ld(idx) 用於表示 expr 中的導數階數,這表示給定的表達式將使用多個輸入值進行多次評估,表達式可以透過 ld(idx) 存取這些輸入值。如果未指定 idx,則假定為 0。

請注意,當您具有 y 而非 0 處的導數時,可以使用 taylor(expr, x-y)

time(0)

傳回目前的(實際時間)時間,以秒為單位。

trunc(expr)

將表達式 expr 的值朝零捨入到最接近的整數。例如,"trunc(-1.5)" 為 "-1.0"。

while(cond, expr)

當表達式 cond 為非零時,評估表達式 expr,並傳回最後一次 expr 評估的值,如果 cond 始終為 false,則傳回 NAN。

以下常數可用

PI

單位圓盤的面積,約為 3.14

E

exp(1)(尤拉數),約為 2.718

PHI

黃金比例 (1+sqrt(5))/2,約為 1.618

假設表達式在具有非零值時被視為「true」,請注意

* 的作用類似 AND

+ 的作用類似 OR

例如,建構式

if (A AND B) then C

相當於

if(A*B, C)

在您的 C 程式碼中,您可以擴充一元和二元函式的清單,並定義已識別的常數,以便它們可用於您的表達式。

求值器也識別國際單位制前綴。如果在前綴後附加 ’i’,則會使用二進制前綴,它們基於 1024 的冪,而不是 1000 的冪。’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 中。

本文件於 January 21, 2025 使用 makeinfo 產生。

託管由 telepoint.bg 提供