feat(docs-i18n): translate all documentation into 20 languages

All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
This commit is contained in:
SnapOtter
2026-07-11 13:52:47 +08:00
committed by GitHub
parent 00b651c9f8
commit 4963ab3bbd
3620 changed files with 306134 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
---
description: "Додавання суцільнокольорових смуг для відповідності цільовому співвідношенню сторін."
i18n_source_hash: b8e17dffc341
i18n_provenance: human
i18n_output_hash: 71994d39b099
---
# Aspect Pad {#aspect-pad}
Додавайте суцільнокольорові смуги (леттербокс або пілларбокс), щоб вписати відео в цільове співвідношення сторін без обрізання.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/aspect-pad`
Приймає багаточастинні (multipart) дані форми з відеофайлом та полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| target | string | No | `"9:16"` | Цільове співвідношення сторін: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| color | string | No | `"#000000"` | Шістнадцятковий колір для смуг заповнення (наприклад `"#000000"` для чорного) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/aspect-pad \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"target": "1:1", "color": "#ffffff"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 13200000
}
```
## Notes {#notes}
- Якщо відео вже відповідає цільовому співвідношенню сторін, файл повертається без змін.
- Використовуйте `9:16` для вертикальних/портретних форматів соціальних мереж (TikTok, Reels, Shorts).
- Для розмитого заповнення замість суцільного кольору використовуйте інструмент Blur Pad.
@@ -0,0 +1,48 @@
---
description: "Генерація файлів субтитрів з аудіодоріжок відео за допомогою ШІ."
i18n_source_hash: 35b1e78501ad
i18n_provenance: human
i18n_output_hash: ef1491af47fc
---
# Auto Subtitles {#auto-subtitles}
Генеруйте файли субтитрів з аудіодоріжки відео за допомогою розпізнавання мовлення на основі ШІ (faster-whisper). Підтримує автовизначення та 10 явних мов.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/auto-subtitles`
Приймає багаточастинні (multipart) дані форми з відеофайлом та полем JSON `settings`. Це асинхронна кінцева точка - вона одразу повертає `202 Accepted`, а перебіг транслюється через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| language | string | No | `"auto"` | Мова мовлення: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko`, `id`, `th`, `vi` |
| format | string | No | `"srt"` | Вихідний формат субтитрів: `srt`, `vtt` |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/auto-subtitles \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"language": "en", "format": "srt"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Це інструмент на основі ШІ, який потребує встановлення набору функцій **transcription**. Якщо набір не встановлено, API повертає `501 Feature Not Installed` з інструкціями щодо його встановлення через адмінінтерфейс.
- Мовний варіант `auto` використовує вбудоване визначення мови whisper. Явне вказання мови підвищує точність та швидкість.
- SRT є найбільш широко підтримуваним форматом субтитрів. VTT (WebVTT) є стандартом для вебплеєрів відео.
- Оновлення перебігу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Заповнення смуг розмитою копією відео."
i18n_source_hash: 0c72aaefc6de
i18n_provenance: human
i18n_output_hash: 90e2ef531bad
---
# Blur Pad {#blur-pad}
Впишіть відео в цільове співвідношення сторін, заповнюючи область заповнення розмитою масштабованою копією відео замість суцільнокольорових смуг.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/blur-pad`
Приймає багаточастинні (multipart) дані форми з відеофайлом та полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| target | string | No | `"16:9"` | Цільове співвідношення сторін: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| blur | number | No | `20` | Сигма гаусового розмиття для фону (2-50) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/blur-pad \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"target": "16:9", "blur": 30}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 14100000
}
```
## Notes {#notes}
- Вищі значення розмиття дають м'якший, абстрактніший фон. Нижчі значення зберігають більше видимих деталей.
- Якщо відео вже відповідає цільовому співвідношенню сторін, файл повертається без змін.
- Для суцільнокольорового заповнення використовуйте натомість інструмент Aspect Pad.
@@ -0,0 +1,47 @@
---
description: "Назавжди вбудовує субтитри в кадри відео."
i18n_source_hash: 2d3111589db0
i18n_provenance: human
i18n_output_hash: 4f03202f912e
---
# Burn Subtitles {#burn-subtitles}
Назавжди рендерить (жорстко вбудовує) субтитри з файлу SRT, VTT або ASS у кожен кадр відео.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/burn-subtitles`
Приймає дані форми multipart із відеофайлом і файлом субтитрів. Це асинхронний ендпоінт: він одразу повертає `202 Accepted`, а прогрес передається через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fontSize | integer | No | `24` | Розмір шрифту субтитрів у пікселях (8-72) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/burn-subtitles \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F "file=@subtitles.srt" \
-F 'settings={"fontSize": 28}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Завантажте два файли: перший має бути відео, другий має бути файлом субтитрів (.srt, .vtt або .ass).
- Вбудовані субтитри назавжди стають частиною відео, і глядач не може їх вимкнути. Для перемикних субтитрів використовуйте натомість інструмент Embed Subtitles.
- Оновлення прогресу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Змінює частоту кадрів відео."
i18n_source_hash: 2bffbd04a1cb
i18n_provenance: human
i18n_output_hash: d2642d1c519d
---
# Change FPS {#change-fps}
Змінює частоту кадрів відео на цільове значення в діапазоні від 1 до 120 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/change-fps`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fps | number | No | `30` | Цільова частота кадрів (1-120) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/change-fps \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"fps": 24}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 10200000
}
```
## Notes {#notes}
- Зниження частоти кадрів відкидає кадри й зменшує розмір файлу. Підвищення дублює кадри, щоб заповнити прогалину, але не додає реальної деталізації руху.
- Поширені цільові значення: 24 (кіно), 30 (веб/мовлення), 60 (плавне відтворення).
- Аудіодоріжка зберігається з її вихідною частотою дискретизації.
@@ -0,0 +1,47 @@
---
description: "Зменшує розмір відеофайлу з контролем якості."
i18n_source_hash: 9cc1f1acf74e
i18n_provenance: human
i18n_output_hash: a3c685346697
---
# Compress Video {#compress-video}
Зменшує розмір відеофайлу за допомогою налаштовуваної сили стиснення та необов'язкового зменшення роздільної здатності.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/compress-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`. Це асинхронний ендпоінт: він одразу повертає `202 Accepted`, а прогрес передається через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| quality | string | No | `"balanced"` | Сила стиснення: `light`, `balanced`, `strong` |
| resolution | string | No | `"original"` | Вихідна роздільна здатність: `original`, `1080p`, `720p`, `480p` |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/compress-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"quality": "strong", "resolution": "720p"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Пресет `light` зберігає якість, близьку до оригінальної. Пресет `strong` агресивно зменшує розмір файлу за рахунок візуальної точності.
- Зменшення роздільної здатності (наприклад, з 4K до 720p) поєднується зі стисненням для значного зменшення розміру.
- Оновлення прогресу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Конвертує відео між MP4, MOV, WebM, AVI та MKV."
i18n_source_hash: 8f9e6418b1c6
i18n_provenance: human
i18n_output_hash: 4ba1d103b4d3
---
# Convert Video {#convert-video}
Конвертує відео між форматами MP4, MOV, WebM, AVI та MKV із налаштовуваними пресетами якості.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/convert-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`. Це асинхронний ендпоінт: він одразу повертає `202 Accepted`, а прогрес передається через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp4"` | Вихідний формат: `mp4`, `mov`, `webm`, `avi`, `mkv` |
| quality | string | No | `"balanced"` | Пресет якості: `high`, `balanced`, `small` |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/convert-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"format": "webm", "quality": "balanced"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Пресет якості `high` дає найкращу візуальну точність, але більші файли. Пресет `small` агресивно стискає для мінімального розміру файлу.
- Вихід у WebM використовує кодування VP9. MP4 і MOV використовують H.264. AVI та MKV доступні для застарілих або архівних робочих процесів.
- Оновлення прогресу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Обрізає ділянку з відео."
i18n_source_hash: fab11f71a202
i18n_provenance: human
i18n_output_hash: bbc443a72186
---
# Crop Video {#crop-video}
Обрізає прямокутну ділянку з відео, задаючи розмір і положення ділянки.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/crop-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| width | integer | Yes | - | Ширина ділянки обрізання в пікселях (мінімум 16) |
| height | integer | Yes | - | Висота ділянки обрізання в пікселях (мінімум 16) |
| x | integer | No | `0` | Горизонтальне зміщення від верхнього лівого кута |
| y | integer | No | `0` | Вертикальне зміщення від верхнього лівого кута |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/crop-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"width": 640, "height": 480, "x": 100, "y": 50}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 5200000
}
```
## Notes {#notes}
- Ділянка обрізання має вміщатися в розміри відео. Якщо `x + width` або `y + height` перевищує розмір джерела, запит повертає помилку 400.
- Мінімальний розмір обрізання - 16x16 пікселів.
- Розміри округлюються до парних чисел, як цього вимагає більшість відеокодеків.
@@ -0,0 +1,49 @@
---
description: "Додає доріжку субтитрів у відеоконтейнер."
i18n_source_hash: be272730fff5
i18n_provenance: human
i18n_output_hash: e2900a849e17
---
# Embed Subtitles {#embed-subtitles}
Додає файл субтитрів у відеоконтейнер як програмну доріжку субтитрів, яку глядачі можуть вмикати чи вимикати.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/embed-subtitles`
Приймає дані форми multipart із відеофайлом і файлом субтитрів, а також полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| language | string | No | `"eng"` | Код мови за ISO 639-2/B (3 малі літери, наприклад `"eng"`, `"fra"`, `"deu"`) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/embed-subtitles \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F "file=@subtitles.srt" \
-F 'settings={"language": "fra"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 12520000
}
```
## Notes {#notes}
- Завантажте два файли: перший має бути відео, другий має бути файлом субтитрів (.srt, .vtt або .ass).
- Вбудовані (програмні) субтитри глядач може перемикати у своєму медіапрогравачі. Для постійно видимих субтитрів використовуйте натомість інструмент Burn Subtitles.
- Код мови зберігається як метадані в контейнері й допомагає медіапрогравачам маркувати доріжку субтитрів.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Витягує аудіодоріжку з відео."
i18n_source_hash: f5b8330a5f89
i18n_provenance: human
i18n_output_hash: 1ac630bdf2fd
---
# Extract Audio {#extract-audio}
Витягує аудіодоріжку з відеофайлу й зберігає її як MP3, WAV, M4A або OGG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-audio`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp3"` | Вихідний формат аудіо: `mp3`, `wav`, `m4a`, `ogg` |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/extract-audio \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"format": "mp3"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp3",
"originalSize": 12500000,
"processedSize": 3200000
}
```
## Notes {#notes}
- Якщо у відео немає аудіодоріжки, запит повертає помилку 400.
- MP3 із втратами, але широко сумісний. WAV без втрат, але великий. M4A (AAC) забезпечує гарний баланс якості та розміру. OGG доступний для робочих процесів із відкритими кодеками.
- Коли вихідне аудіо вже в AAC, а вихідний формат M4A, аудіопотік копіюється без перекодування.
@@ -0,0 +1,45 @@
---
description: "Витягує доріжку субтитрів із відео як файл SRT."
i18n_source_hash: 48db860f6676
i18n_provenance: human
i18n_output_hash: 1a56be3f8b20
---
# Extract Subtitles {#extract-subtitles}
Витягує вбудовану доріжку субтитрів із відеоконтейнера й завантажує її як файл SRT.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-subtitles`
Приймає дані форми multipart із відеофайлом. Цей інструмент не має налаштувань.
## Parameters {#parameters}
Цей інструмент не має параметрів. Він витягує першу знайдену доріжку субтитрів у відеоконтейнері.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/extract-subtitles \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.srt",
"originalSize": 12500000,
"processedSize": 4500
}
```
## Notes {#notes}
- Відео має містити вбудовану доріжку субтитрів. Якщо доріжку субтитрів не знайдено, запит повертає помилку 400.
- Якщо відео має кілька доріжок субтитрів, витягується перша.
- Вихідний формат - SRT, незалежно від оригінального формату субтитрів у контейнері.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Конвертує анімований GIF у відео MP4, WebM або MOV."
i18n_source_hash: c3737b31146d
i18n_provenance: human
i18n_output_hash: cb1eee881be8
---
# GIF to Video {#gif-to-video}
Конвертує анімований GIF у компактний відеофайл MP4, WebM або MOV.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/gif-to-video`
Приймає дані форми multipart із файлом GIF і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp4"` | Вихідний формат: `mp4`, `webm`, `mov` |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/gif-to-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@animation.gif" \
-F 'settings={"format": "mp4"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/animation.mp4",
"originalSize": 8500000,
"processedSize": 950000
}
```
## Notes {#notes}
- Конвертація GIF у відео зазвичай зменшує розмір файлу на 80-90%, зберігаючи ту саму візуальну якість.
- Приймаються лише анімовані файли GIF. Для статичних зображень слід використовувати інструмент Convert для зображень.
- MP4 і MOV використовують кодування H.264, WebM використовує VP9.
@@ -0,0 +1,54 @@
---
description: "Перетворює набір зображень на відео-слайдшоу."
i18n_source_hash: 2c6f183feb6d
i18n_provenance: human
i18n_output_hash: efae969c6890
---
# Images to Video {#images-to-video}
Перетворює набір зображень на відео-слайдшоу з налаштовуваною тривалістю на зображення, роздільною здатністю та частотою кадрів.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/images-to-video`
Приймає дані форми multipart із двома або більше файлами зображень і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| secondsPerImage | number | No | `2` | Тривалість показу кожного зображення в секундах (0.5-10) |
| resolution | string | No | `"720p"` | Вихідна роздільна здатність: `1080p`, `720p`, `square` |
| fps | integer | No | `30` | Вихідна частота кадрів (10-60) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/images-to-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@slide1.jpg" \
-F "file=@slide2.jpg" \
-F "file=@slide3.jpg" \
-F "file=@slide4.jpg" \
-F 'settings={"secondsPerImage": 3, "resolution": "1080p"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/slideshow.mp4",
"originalSize": 3500000,
"processedSize": 1200000
}
```
## Notes {#notes}
- Приймає 2-60 файлів зображень на запит. Зображення з'являються у відео в порядку завантаження.
- Зображення масштабуються й доповнюються полями, щоб вміститися в цільову роздільну здатність зі збереженням співвідношення сторін.
- Опція роздільної здатності `square` створює відео 1080x1080, зручне для соціальних мереж.
- Вихідний формат завжди MP4 (H.264).
+46
View File
@@ -0,0 +1,46 @@
---
description: "Об'єднує кілька відеокліпів в один файл."
i18n_source_hash: 90463dfbb580
i18n_provenance: human
i18n_output_hash: 9b1aee2b28e1
---
# Merge Videos {#merge-videos}
Об'єднує кілька відеокліпів в один файл MP4. Усі вхідні файли приводяться до роздільної здатності першого відео та 30 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/merge-videos`
Приймає дані форми multipart із двома або більше відеофайлами. Це асинхронний ендпоінт: він одразу повертає `202 Accepted`, а прогрес передається через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
Цей інструмент не має параметрів налаштувань. Завантажте 2-10 відеофайлів як кілька частин `file`.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/merge-videos \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@intro.mp4" \
-F "file=@main.mp4" \
-F "file=@outro.mp4"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Кліпи об'єднуються в порядку їхнього завантаження.
- Усі кліпи перекодовуються для відповідності роздільній здатності першого кліпа, частоті кадрів (30 fps) і кодеку (H.264). Невідповідні вхідні файли автоматично приводяться до єдиного вигляду.
- Приймає 2-10 відеофайлів на запит.
- Оновлення прогресу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+44
View File
@@ -0,0 +1,44 @@
---
description: "Видаляє аудіодоріжку з відео."
i18n_source_hash: 9a0c60bbcaa3
i18n_provenance: human
i18n_output_hash: 53b9bf84d469
---
# Mute Video {#mute-video}
Видаляє аудіодоріжку з відео, залишаючи лише візуальний потік.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/mute-video`
Приймає дані форми multipart із відеофайлом. Цей інструмент не має налаштувань.
## Parameters {#parameters}
Цей інструмент не має параметрів. Він видаляє аудіодоріжку із завантаженого відео.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/mute-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 8900000
}
```
## Notes {#notes}
- Відеопотік копіюється без перекодування, тому втрати якості немає.
- Якщо вхідне відео не має аудіодоріжки, файл повертається без змін.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Замінює аудіодоріжку відео іншим файлом."
i18n_source_hash: fabc2a953103
i18n_provenance: human
i18n_output_hash: e6e3c8690f9b
---
# Replace Audio {#replace-audio}
Замінює аудіодоріжку відео аудіофайлом. Завантажте і відео, і аудіофайл.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/replace-audio`
Приймає дані форми multipart рівно з двома файлами: відеофайлом, за яким іде аудіофайл.
## Parameters {#parameters}
Цей інструмент не має параметрів налаштувань. Завантажте відеофайл і аудіофайл як дві частини `file`.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/replace-audio \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F "file=@voiceover.mp3"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 13100000
}
```
## Notes {#notes}
- Треба завантажити рівно два файли: перший має бути відео, другий має бути аудіофайлом.
- Якщо аудіофайл довший за відео, він обрізається до тривалості відео. Якщо коротший, решта відео відтворюється в тиші.
- Відеопотік копіюється без перекодування, тому втрати якості відео немає.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Масштабує відео до нової роздільної здатності або пресетного розміру."
i18n_source_hash: bb1f67871fea
i18n_provenance: human
i18n_output_hash: d8c1f289668b
---
# Resize Video {#resize-video}
Масштабує відео до нової роздільної здатності, використовуючи власні піксельні розміри або стандартний пресет.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/resize-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| width | integer | No | - | Цільова ширина в пікселях (16-7680) |
| height | integer | No | - | Цільова висота в пікселях (16-4320) |
| preset | string | No | `"custom"` | Пресет роздільної здатності: `custom`, `2160p`, `1440p`, `1080p`, `720p`, `480p`, `360p` |
Коли `preset` дорівнює `"custom"`, має бути вказано принаймні одне з `width` або `height`. Інший вимір масштабується пропорційно.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/resize-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"preset": "720p"}'
```
Змінити розмір до власних вимірів:
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/resize-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"width": 1280, "height": 720}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 25000000,
"processedSize": 8500000
}
```
## Notes {#notes}
- Значення пресетів відповідають стандартним висотам (наприклад, `720p` = 1280x720, `1080p` = 1920x1080). Ширина масштабується пропорційно до співвідношення сторін джерела.
- Розміри округлюються до парних чисел, як цього вимагає більшість відеокодеків.
- Максимальна підтримувана роздільна здатність - 7680x4320 (8K UHD).
+44
View File
@@ -0,0 +1,44 @@
---
description: "Відтворює відеокліп у зворотному напрямку."
i18n_source_hash: 98226f4e092d
i18n_provenance: human
i18n_output_hash: fb06e79e27dd
---
# Reverse Video {#reverse-video}
Відтворює відеокліп у зворотному напрямку. Аудіодоріжка також реверсується.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/reverse-video`
Приймає дані форми multipart із відеофайлом. Цей інструмент не має налаштувань.
## Parameters {#parameters}
Цей інструмент не має параметрів. Він реверсує все відео.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/reverse-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 12600000
}
```
## Notes {#notes}
- Обмежено кліпами тривалістю до 5 хвилин. Довші відео відхиляються з помилкою 400.
- Реверсуються і відео-, і аудіодоріжки. Щоб реверсувати відео без аудіо, спершу заглушіть його.
+55
View File
@@ -0,0 +1,55 @@
---
description: "Обертає або віддзеркалює відео."
i18n_source_hash: cf9620ca62c7
i18n_provenance: human
i18n_output_hash: 986c5b07052b
---
# Rotate Video {#rotate-video}
Обертає відео на 90, 180 або 270 градусів чи віддзеркалює його горизонтально або вертикально.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/rotate-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| transform | string | Yes | - | Перетворення для застосування: `cw90`, `ccw90`, `180`, `hflip`, `vflip` |
### Transform Values {#transform-values}
- **cw90** - Обернути на 90 градусів за годинниковою стрілкою
- **ccw90** - Обернути на 90 градусів проти годинникової стрілки
- **180** - Обернути на 180 градусів
- **hflip** - Віддзеркалити горизонтально (дзеркало)
- **vflip** - Віддзеркалити вертикально
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/rotate-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"transform": "cw90"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 12400000
}
```
## Notes {#notes}
- Обертання на 90 або 270 градусів міняє місцями ширину й висоту відео.
- Операції віддзеркалення (hflip, vflip) не змінюють розміри відео.
@@ -0,0 +1,46 @@
---
description: "Зменшує тремтіння камери за допомогою двопрохідної стабілізації."
i18n_source_hash: ec908e91a752
i18n_provenance: human
i18n_output_hash: d10b375e1bda
---
# Stabilize Video {#stabilize-video}
Зменшує тремтіння камери в зйомці з рук за допомогою двопрохідної стабілізації vidstab у FFmpeg.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/stabilize-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`. Це асинхронний ендпоінт: він одразу повертає `202 Accepted`, а прогрес передається через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| smoothing | integer | No | `15` | Розмір вікна згладжування в кадрах (5-60). Вищі значення дають плавніший рух |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/stabilize-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"smoothing": 30}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Стабілізація - це двопрохідний процес: перший прохід аналізує рух камери, а другий застосовує корекцію. Це займає приблизно вдвічі більше часу, ніж однопрохідні інструменти.
- Вищі значення згладжування усувають більше тремтіння, але можуть спричинити невелике збільшення з обрізанням по краях.
- Оновлення прогресу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+50
View File
@@ -0,0 +1,50 @@
---
description: "Вирізає кліп із відео, задаючи час початку та кінця."
i18n_source_hash: c84481641979
i18n_provenance: human
i18n_output_hash: 330238137e74
---
# Trim Video {#trim-video}
Вирізає кліп із відео, задаючи час початку та кінця в секундах, з можливістю покадрово точного розрізання.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/trim-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| startS | number | No | `0` | Час початку в секундах (має бути >= 0) |
| endS | number | Yes | - | Час кінця в секундах (має бути після startS) |
| precise | boolean | No | `false` | Перекодувати для покадрово точного розрізання замість пошуку за ключовими кадрами |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/trim-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"startS": 5, "endS": 30, "precise": true}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 4200000
}
```
## Notes {#notes}
- Коли `precise` дорівнює `false` (за замовчуванням), інструмент використовує пошук за ключовими кадрами, який швидкий, але може починатися на кілька кадрів раніше запитаного часу.
- Встановлення `precise` у `true` перекодовує сегмент для точних меж кадрів, але триває довше.
- Значення `endS` має бути більшим за `startS`.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Регулює яскравість, контраст, насиченість і гаму відео."
i18n_source_hash: 40483b79d44b
i18n_provenance: human
i18n_output_hash: afe49a72f359
---
# Video Color {#video-color}
Регулює яскравість, контраст, насиченість і гамма-корекцію відео.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-color`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| brightness | number | No | `0` | Регулювання яскравості (-1 до 1) |
| contrast | number | No | `1` | Множник контрасту (0-4) |
| saturation | number | No | `1` | Множник насиченості (0-3). Встановіть 0 для відтінків сірого |
| gamma | number | No | `1` | Гамма-корекція (0.1-10) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-color \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"brightness": 0.1, "contrast": 1.2, "saturation": 1.5}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 12300000
}
```
## Notes {#notes}
- Усі значення за замовчуванням (яскравість 0, контраст 1, насиченість 1, гама 1) не дають жодних змін.
- Встановлення насиченості в `0` перетворює відео на відтінки сірого.
- Значення гами нижче 1 висвітлюють тіні, тоді як значення вище 1 їх затемнюють.
@@ -0,0 +1,45 @@
---
description: "Нормалізує гучність аудіо відео до стандарту мовлення."
i18n_source_hash: 078f1e819c9a
i18n_provenance: human
i18n_output_hash: 5fceeac77e8e
---
# Normalize Audio {#normalize-audio}
Нормалізує гучність аудіо відео до стандарту гучності мовлення EBU R128.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-loudnorm`
Приймає дані форми multipart із відеофайлом. Цей інструмент не має налаштувань.
## Parameters {#parameters}
Цей інструмент не має параметрів. Він застосовує нормалізацію гучності EBU R128 до аудіодоріжки.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-loudnorm \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 12500000
}
```
## Notes {#notes}
- Використовує фільтр FFmpeg `loudnorm` з цільовою інтегральною гучністю -16 LUFS, істинним піком -1.5 dBTP і діапазоном гучності 11 LU (стандарт мовлення EBU R128).
- Частота дискретизації вихідного аудіо зберігається у вихідному файлі.
- Якщо у відео немає аудіодоріжки, запит повертає помилку 400.
@@ -0,0 +1,54 @@
---
description: "Видаляє метадані з відео та повідомляє, що було знайдено."
i18n_source_hash: 69621bfb98ca
i18n_provenance: human
i18n_output_hash: c80552678ac9
---
# Clean Video Metadata {#clean-video-metadata}
Видаляє метадані (дата створення, GPS-координати, модель камери, теги програмного забезпечення тощо) з відео та повідомляє, що було видалено.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-metadata`
Приймає дані форми multipart із відеофайлом. Цей інструмент не має налаштувань.
## Parameters {#parameters}
Цей інструмент не має параметрів. Він видаляє всі метадані з відеоконтейнера.
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-metadata \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4"
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip_clean.mp4",
"originalSize": 12500000,
"processedSize": 12480000,
"metadata": {
"container": "mov,mp4,m4a,3gp,3g2,mj2",
"durationS": 42.5,
"bitrateKbps": 2350,
"streams": [
{ "type": "video", "codec": "h264", "width": 1920, "height": 1080 },
{ "type": "audio", "codec": "aac", "sampleRate": 48000 }
]
}
}
```
## Notes {#notes}
- Видалені метадані включають мітки часу створення, дані GPS/розташування, інформацію про камеру/пристрій і теги програмного забезпечення.
- Відео- та аудіопотоки копіюються без перекодування, тому втрати якості немає.
- Корисно для приватності перед публічним поширенням відео.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Прискорює або сповільнює відео."
i18n_source_hash: 98dfc75c0507
i18n_provenance: human
i18n_output_hash: 3f27161c0020
---
# Video Speed {#video-speed}
Прискорює або сповільнює відео з можливістю збереження висоти тону аудіо.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-speed`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| factor | number | No | `2` | Множник швидкості (0.25-4). Значення вище 1 прискорюють, нижче 1 сповільнюють |
| keepPitch | boolean | No | `true` | Зберігати висоту тону аудіо при зміні швидкості |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-speed \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"factor": 0.5, "keepPitch": true}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 24800000
}
```
## Notes {#notes}
- Множник `2` подвоює швидкість відтворення (удвічі скорочує тривалість). Множник `0.5` удвічі сповільнює відтворення (подвоює тривалість).
- Коли `keepPitch` дорівнює `true`, аудіо розтягується в часі так, що голоси звучать природно. Коли `false`, висота тону зміщується пропорційно швидкості.
- Допустимий діапазон - від 0.25x до 4x.
@@ -0,0 +1,62 @@
---
description: "Витягує кадри з відео як ZIP-архів зображень."
i18n_source_hash: b06f038dafb3
i18n_provenance: human
i18n_output_hash: 73b6293120c3
---
# Video to Frames {#video-to-frames}
Витягує окремі кадри з відео й завантажує їх як ZIP-архів зображень PNG або JPG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-frames`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"all"` | Режим витягування: `all`, `nth`, `timestamps` |
| n | integer | No | `10` | Витягувати кожен N-й кадр (2-1000). Використовується лише коли режим `"nth"` |
| timestamps | string | No | `""` | Мітки часу в секундах через кому. Обов'язково, коли режим `"timestamps"` |
| format | string | No | `"png"` | Формат зображення для витягнутих кадрів: `png`, `jpg` |
## Example Request {#example-request}
Витягнути кожен 30-й кадр як JPG:
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-to-frames \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"mode": "nth", "n": 30, "format": "jpg"}'
```
Витягнути кадри за конкретними мітками часу:
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-to-frames \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"mode": "timestamps", "timestamps": "1.5,5,12.3"}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip-frames.zip",
"originalSize": 12500000,
"processedSize": 45000000
}
```
## Notes {#notes}
- Режим `all` витягує кожен кадр і може створювати дуже великі ZIP-файли для довгих відео. Для вибіркового витягування використовуйте режим `nth` або `timestamps`.
- PNG зберігає повну якість, але створює більші файли. JPG менший, але з втратами.
- Відповідь завантажується як ZIP-архів, що містить послідовно пронумеровані файли зображень.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Перетворює відеокліп на анімований GIF."
i18n_source_hash: f729dde8cd55
i18n_provenance: human
i18n_output_hash: df97160560c7
---
# Video to GIF {#video-to-gif}
Перетворює відеокліп на анімований GIF із налаштовуваною частотою кадрів, шириною, часом початку та тривалістю.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-gif`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`. Це асинхронний ендпоінт: він одразу повертає `202 Accepted`, а прогрес передається через SSE за адресою `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fps | integer | No | `12` | Вихідна частота кадрів (1-30) |
| width | integer | No | `480` | Вихідна ширина в пікселях (64-1280). Висота масштабується пропорційно |
| startS | number | No | `0` | Час початку в секундах (має бути >= 0) |
| durationS | number | No | `5` | Тривалість у секундах (більше 0, максимум 60) |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-to-gif \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"fps": 15, "width": 320, "startS": 2, "durationS": 8}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
```
## Notes {#notes}
- Нижчі значення `fps` і `width` дають менші файли GIF. GIF шириною 480px при 12 fps зазвичай є гарним балансом.
- Максимальна тривалість - 60 секунд. Довші кліпи дають дуже великі файли.
- Оновлення прогресу доступні через SSE за адресою `GET /api/v1/jobs/{jobId}/progress` до завершення завдання.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Конвертує відеокліп в анімоване зображення WebP."
i18n_source_hash: 7b1a22459bd1
i18n_provenance: human
i18n_output_hash: 9ae05b03c6a3
---
# Video to WebP {#video-to-webp}
Конвертує відеокліп в анімоване зображення WebP із налаштовуваною частотою кадрів, шириною та якістю.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-webp`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fps | integer | No | `12` | Вихідна частота кадрів (1-30) |
| width | integer | No | `480` | Вихідна ширина в пікселях (16-1920). Висота масштабується пропорційно |
| quality | integer | No | `75` | Якість стиснення WebP (1-100) |
| loop | boolean | No | `true` | Зациклити анімацію |
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/video-to-webp \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"fps": 15, "width": 640, "quality": 80}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.webp",
"originalSize": 12500000,
"processedSize": 2800000
}
```
## Notes {#notes}
- Анімований WebP створює менші файли, ніж GIF, із кращою підтримкою кольорів (24-бітна проти 8-бітної палітри).
- Нижчі значення `quality` дають менші файли за рахунок візуальної точності.
- Встановіть `loop` у `false` для анімацій, які мають відтворитися один раз і зупинитися.
@@ -0,0 +1,58 @@
---
description: "Вбудовує текстовий водяний знак у кадри відео."
i18n_source_hash: 937bb075b894
i18n_provenance: human
i18n_output_hash: f08b6357a73a
---
# Watermark Video {#watermark-video}
Вбудовує текстовий водяний знак у кожен кадр відео з налаштовуваним положенням, розміром, непрозорістю та кольором.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/watermark-video`
Приймає дані форми multipart із відеофайлом і полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| text | string | Yes | - | Текст водяного знака (1-200 символів) |
| position | string | No | `"br"` | Положення на кадрі: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | No | `36` | Розмір шрифту в пікселях (8-120) |
| opacity | number | No | `0.5` | Непрозорість водяного знака (0.05-1) |
| color | string | No | `"#ffffff"` | Шістнадцятковий колір тексту (наприклад, `"#ffffff"`) |
### Position Values {#position-values}
- **tl** - Зверху ліворуч, **tc** - Зверху по центру, **tr** - Зверху праворуч
- **l** - По центру ліворуч, **c** - По центру, **r** - По центру праворуч
- **bl** - Знизу ліворуч, **bc** - Знизу по центру, **br** - Знизу праворуч
## Example Request {#example-request}
```bash
curl -X POST http://localhost:1349/api/v1/tools/video/watermark-video \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@clip.mp4" \
-F 'settings={"text": "PREVIEW", "position": "c", "fontSize": 48, "opacity": 0.3}'
```
## Example Response {#example-response}
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
"originalSize": 12500000,
"processedSize": 12400000
}
```
## Notes {#notes}
- Водяний знак назавжди вбудовується в кадри відео і не може бути видалений після обробки.
- Водяний знак використовує шрифт без засічок, вбудований у FFmpeg.
- Для водяних знаків із зображень використовуйте натомість інструмент Watermark для зображень.