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: a8cbbb13186e
---
# Aspect Pad {#aspect-pad}
Добавьте полосы сплошного цвета сверху/снизу (letterbox) или по бокам (pillarbox), чтобы вписать видео в целевое соотношение сторон без обрезки.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/aspect-pad`
Принимает данные multipart form с видеофайлом и JSON-полем `settings`.
## Parameters {#parameters}
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|-----------|------|----------|---------|-------------|
| target | string | Нет | `"9:16"` | Целевое соотношение сторон: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| color | string | Нет | `"#000000"` | Hex-цвет для полос заполнения (например, `"#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: 2c0dc2a5108a
---
# Auto Subtitles {#auto-subtitles}
Сгенерируйте файлы субтитров из аудиодорожки видео с помощью распознавания речи на базе ИИ (faster-whisper). Поддерживает автоопределение и 10 явных языков.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/auto-subtitles`
Принимает данные multipart form с видеофайлом и JSON-полем `settings`. Это асинхронный endpoint - он немедленно возвращает `202 Accepted`, а прогресс передаётся через SSE по адресу `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|-----------|------|----------|---------|-------------|
| language | string | Нет | `"auto"` | Язык речи: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko`, `id`, `th`, `vi` |
| format | string | Нет | `"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: defcad088e22
---
# Blur Pad {#blur-pad}
Впишите видео в целевое соотношение сторон, заполнив область отступов размытой, масштабированной копией видео вместо полос сплошного цвета.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/blur-pad`
Принимает данные multipart form с видеофайлом и JSON-полем `settings`.
## Parameters {#parameters}
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|-----------|------|----------|---------|-------------|
| target | string | Нет | `"16:9"` | Целевое соотношение сторон: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| blur | number | Нет | `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: 63ddf5163da3
---
# Burn Subtitles {#burn-subtitles}
Постоянное встраивание (жёсткое кодирование) субтитров из файла SRT, VTT или ASS в каждый кадр видео.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/burn-subtitles`
Принимает multipart form data с файлом видео и файлом субтитров. Это асинхронная конечная точка: она сразу возвращает `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: 29f652943b37
---
# Change FPS {#change-fps}
Изменение частоты кадров видео до целевого значения от 1 до 120 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/change-fps`
Принимает multipart form data с файлом видео и полем 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: 5be560415f7c
---
# Compress Video {#compress-video}
Уменьшение размера файла видео с помощью настраиваемой степени сжатия и необязательного понижения разрешения.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/compress-video`
Принимает multipart form data с файлом видео и полем 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: 86d7e1ad1de3
---
# Convert Video {#convert-video}
Конвертация видео между форматами MP4, MOV, WebM, AVI и MKV с настраиваемыми пресетами качества.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/convert-video`
Принимает multipart form data с файлом видео и полем 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: 95162960a525
---
# Crop Video {#crop-video}
Обрезка прямоугольной области из видео путём указания размера и положения области.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/crop-video`
Принимает multipart form data с файлом видео и полем 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: 056a7cba8860
---
# Embed Subtitles {#embed-subtitles}
Мультиплексирование файла субтитров в контейнер видео как программной дорожки субтитров, которую зрители могут включать или отключать.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/embed-subtitles`
Принимает multipart form data с файлом видео и файлом субтитров, а также полем 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: b9bece49726e
---
# Extract Audio {#extract-audio}
Извлечение аудиодорожки из файла видео и сохранение её в формате MP3, WAV, M4A или OGG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-audio`
Принимает multipart form data с файлом видео и полем 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: 4f7617552b55
---
# Extract Subtitles {#extract-subtitles}
Извлечение встроенной дорожки субтитров из контейнера видео и её загрузка в виде файла SRT.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-subtitles`
Принимает multipart form data с файлом видео. У этого инструмента нет настраиваемых параметров.
## 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: 916754d7da5d
---
# GIF to Video {#gif-to-video}
Конвертация анимированного GIF в компактный видеофайл MP4, WebM или MOV.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/gif-to-video`
Принимает multipart form data с файлом 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: eefbf09d4229
---
# Images to Video {#images-to-video}
Превращение набора изображений в видео-слайдшоу с настраиваемой длительностью показа каждого изображения, разрешением и частотой кадров.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/images-to-video`
Принимает multipart form data с двумя или более файлами изображений и полем 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: caf3ff1f8c76
---
# Merge Videos {#merge-videos}
Объединение нескольких видеоклипов в один файл MP4. Все входные файлы приводятся к разрешению первого видео и 30 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/merge-videos`
Принимает multipart form data с двумя или более файлами видео. Это асинхронная конечная точка: она сразу возвращает `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: 620de02e49ae
---
# Mute Video {#mute-video}
Удаление аудиодорожки из видео, при котором остаётся только видеопоток.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/mute-video`
Принимает multipart form data с файлом видео. У этого инструмента нет настраиваемых параметров.
## 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: d68201e31a7b
---
# Replace Audio {#replace-audio}
Замена аудиодорожки видео аудиофайлом. Загрузите и видео, и аудиофайл.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/replace-audio`
Принимает multipart form data ровно с двумя файлами: файл видео, за которым следует аудиофайл.
## 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: ae7f1c66ccc0
---
# Resize Video {#resize-video}
Масштабирование видео до нового разрешения с использованием произвольных размеров в пикселях или стандартного пресета.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/resize-video`
Принимает multipart form data с файлом видео и полем 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: 3979c9700874
---
# Reverse Video {#reverse-video}
Воспроизведение видеоклипа задом наперёд. Аудиодорожка также воспроизводится в обратном порядке.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/reverse-video`
Принимает multipart form data с файлом видео. У этого инструмента нет настраиваемых параметров.
## 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: ebfcb5fe45b5
---
# Rotate Video {#rotate-video}
Поворот видео на 90, 180 или 270 градусов либо его отражение по горизонтали или вертикали.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/rotate-video`
Принимает multipart form data с файлом видео и полем 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: 8c05acb9c49e
---
# Stabilize Video {#stabilize-video}
Уменьшение дрожания камеры в съёмке с рук с помощью двухпроходной стабилизации vidstab из FFmpeg.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/stabilize-video`
Принимает multipart form data с файлом видео и полем 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: 44884e79dadb
---
# Trim Video {#trim-video}
Вырезание фрагмента из видео путём указания времени начала и конца в секундах, с опцией покадрово точной обрезки.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/trim-video`
Принимает multipart form data с файлом видео и полем 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: a7ee213a943b
---
# Video Color {#video-color}
Настройка яркости, контрастности, насыщенности и гамма-коррекции видео.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-color`
Принимает multipart form data с файлом видео и полем 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: 791c95bb5835
---
# Normalize Audio {#normalize-audio}
Нормализация громкости аудио видео до вещательного стандарта громкости EBU R128.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-loudnorm`
Принимает multipart form data с файлом видео. У этого инструмента нет настраиваемых параметров.
## 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}
- Использует фильтр `loudnorm` из FFmpeg с целевой интегральной громкостью -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: 66bc92e93424
---
# Clean Video Metadata {#clean-video-metadata}
Удаление метаданных (даты создания, координат GPS, модели камеры, тегов программного обеспечения и т. д.) из видео и отчёт о том, что было удалено.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-metadata`
Принимает multipart form data с файлом видео. У этого инструмента нет настраиваемых параметров.
## 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: cf86fea532ee
---
# Video Speed {#video-speed}
Ускорение или замедление видео с опцией сохранения высоты тона аудио.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-speed`
Принимает multipart form data с файлом видео и полем 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: b71ae2107695
---
# Video to Frames {#video-to-frames}
Извлечение отдельных кадров из видео и их загрузка в виде ZIP-архива изображений PNG или JPG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-frames`
Принимает multipart form data с файлом видео и полем JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"all"` | Режим извлечения: `all`, `nth`, `timestamps` |
| n | integer | No | `10` | Извлекать каждый N-й кадр (2-1000). Используется только когда mode равен `"nth"` |
| timestamps | string | No | `""` | Отметки времени в секундах через запятую. Обязательно, когда mode равен `"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: d5b259714d2d
---
# Video to GIF {#video-to-gif}
Превращение видеоклипа в анимированный GIF с настраиваемой частотой кадров, шириной, временем начала и длительностью.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-gif`
Принимает multipart form data с файлом видео и полем 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: 4af9f1d3f2f4
---
# Video to WebP {#video-to-webp}
Конвертация видеоклипа в анимированное изображение WebP с настраиваемой частотой кадров, шириной и качеством.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-webp`
Принимает multipart form data с файлом видео и полем 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: 12b129e357eb
---
# Watermark Video {#watermark-video}
Встраивание текстового водяного знака в каждый кадр видео с настраиваемым положением, размером, непрозрачностью и цветом.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/watermark-video`
Принимает multipart form data с файлом видео и полем 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"` | Цвет текста в формате hex (например, `"#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 из раздела изображений.