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: "Dodaj jednolite kolorowe pasy, aby dopasować do docelowych proporcji obrazu."
i18n_source_hash: b8e17dffc341
i18n_provenance: human
i18n_output_hash: 7410d0220c2a
---
# Aspect Pad {#aspect-pad}
Dodaj jednolite kolorowe pasy typu letterbox lub pillarbox, aby dopasować film do docelowych proporcji obrazu bez przycinania.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/aspect-pad`
Przyjmuje dane formularza multipart z plikiem wideo oraz polem JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| target | string | No | `"9:16"` | Docelowe proporcje obrazu: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| color | string | No | `"#000000"` | Kolor szesnastkowy pasów wypełnienia (np. `"#000000"` dla czerni) |
## 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}
- Jeśli film już odpowiada docelowym proporcjom obrazu, plik jest zwracany bez zmian.
- Użyj `9:16` dla pionowych/portretowych formatów mediów społecznościowych (TikTok, Reels, Shorts).
- Aby uzyskać rozmyte wypełnienie zamiast jednolitego koloru, użyj narzędzia Blur Pad.
@@ -0,0 +1,48 @@
---
description: "Generuj pliki napisów ze ścieżek dźwiękowych filmów za pomocą AI."
i18n_source_hash: 35b1e78501ad
i18n_provenance: human
i18n_output_hash: 0f22e0c5dfe6
---
# Auto Subtitles {#auto-subtitles}
Generuj pliki napisów ze ścieżki dźwiękowej filmu za pomocą rozpoznawania mowy opartego na AI (faster-whisper). Obsługuje automatyczne wykrywanie oraz 10 jawnie wskazanych języków.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/auto-subtitles`
Przyjmuje dane formularza multipart z plikiem wideo oraz polem JSON `settings`. To punkt końcowy asynchroniczny - zwraca natychmiast `202 Accepted`, a postęp jest strumieniowany przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| language | string | No | `"auto"` | Język mowy: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko`, `id`, `th`, `vi` |
| format | string | No | `"srt"` | Format wyjściowy napisów: `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}
- To narzędzie AI, które wymaga zainstalowania pakietu funkcji **transcription**. Jeśli pakiet nie jest zainstalowany, API zwraca `501 Feature Not Installed` z instrukcjami instalacji przez interfejs administratora.
- Opcja języka `auto` używa wbudowanego wykrywania języka whisper. Jawne wskazanie języka poprawia dokładność i szybkość.
- SRT jest najszerzej obsługiwanym formatem napisów. VTT (WebVTT) to standard dla internetowych odtwarzaczy wideo.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` do momentu zakończenia zadania.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Wypełnij pasy rozmytą kopią filmu."
i18n_source_hash: 0c72aaefc6de
i18n_provenance: human
i18n_output_hash: 19580016b336
---
# Blur Pad {#blur-pad}
Dopasuj film do docelowych proporcji obrazu, wypełniając obszar wypełnienia rozmytą, przeskalowaną kopią filmu zamiast jednolitych kolorowych pasów.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/blur-pad`
Przyjmuje dane formularza multipart z plikiem wideo oraz polem JSON `settings`.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| target | string | No | `"16:9"` | Docelowe proporcje obrazu: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| blur | number | No | `20` | Sigma rozmycia gaussowskiego dla tła (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}
- Wyższe wartości rozmycia dają bardziej miękkie, bardziej abstrakcyjne tło. Niższe wartości zachowują więcej widocznych szczegółów.
- Jeśli film już odpowiada docelowym proporcjom obrazu, plik jest zwracany bez zmian.
- Aby uzyskać jednolite kolorowe wypełnienie, użyj zamiast tego narzędzia Aspect Pad.
@@ -0,0 +1,47 @@
---
description: "Trwałe wtapianie napisów w klatki wideo."
i18n_source_hash: 2d3111589db0
i18n_provenance: human
i18n_output_hash: 404b9078bb8e
---
# Burn Subtitles {#burn-subtitles}
Trwale renderuje (wtapia na stałe) napisy z pliku SRT, VTT lub ASS na każdą klatkę wideo.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/burn-subtitles`
Przyjmuje dane formularza multipart z plikiem wideo i plikiem napisów. To jest endpoint asynchroniczny - zwraca `202 Accepted` natychmiast, a postęp jest przesyłany strumieniowo przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| fontSize | integer | Nie | `24` | Rozmiar czcionki napisów w pikselach (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}
- Prześlij dwa pliki: pierwszy musi być wideo, drugi musi być plikiem napisów (.srt, .vtt lub .ass).
- Wtopione napisy stają się trwałą częścią wideo i nie mogą zostać wyłączone przez widza. Aby uzyskać przełączalne napisy, użyj zamiast tego narzędzia Embed Subtitles.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` aż do zakończenia zadania.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Zmiana liczby klatek na sekundę wideo."
i18n_source_hash: 2bffbd04a1cb
i18n_provenance: human
i18n_output_hash: 0f43c195ee85
---
# Change FPS {#change-fps}
Zmienia liczbę klatek na sekundę wideo na wartość docelową z zakresu od 1 do 120 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/change-fps`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| fps | number | Nie | `30` | Docelowa liczba klatek na sekundę (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}
- Obniżenie liczby klatek pomija klatki i zmniejsza rozmiar pliku. Zwiększenie jej powiela klatki, aby wypełnić lukę, ale nie dodaje rzeczywistych szczegółów ruchu.
- Typowe wartości docelowe: 24 (kino), 30 (web/transmisja), 60 (płynne odtwarzanie).
- Ścieżka audio jest zachowywana z jej oryginalną częstotliwością próbkowania.
@@ -0,0 +1,47 @@
---
description: "Zmniejszenie rozmiaru pliku wideo z kontrolą jakości."
i18n_source_hash: 9cc1f1acf74e
i18n_provenance: human
i18n_output_hash: 1feb0f9888e6
---
# Compress Video {#compress-video}
Zmniejsza rozmiar pliku wideo przy użyciu konfigurowalnej siły kompresji i opcjonalnego zmniejszenia rozdzielczości.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/compress-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`. To jest endpoint asynchroniczny - zwraca `202 Accepted` natychmiast, a postęp jest przesyłany strumieniowo przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| quality | string | Nie | `"balanced"` | Siła kompresji: `light`, `balanced`, `strong` |
| resolution | string | Nie | `"original"` | Rozdzielczość wyjściowa: `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}
- Ustawienie wstępne `light` zachowuje jakość zbliżoną do oryginalnej. Ustawienie wstępne `strong` agresywnie zmniejsza rozmiar pliku kosztem wierności wizualnej.
- Zmniejszenie rozdzielczości (np. z 4K do 720p) łączy się z kompresją, dając znaczną redukcję rozmiaru.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` aż do zakończenia zadania.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Konwersja wideo między MP4, MOV, WebM, AVI i MKV."
i18n_source_hash: 8f9e6418b1c6
i18n_provenance: human
i18n_output_hash: d056be982b98
---
# Convert Video {#convert-video}
Konwertuje wideo między formatami MP4, MOV, WebM, AVI i MKV z konfigurowalnymi ustawieniami wstępnymi jakości.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/convert-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`. To jest endpoint asynchroniczny - zwraca `202 Accepted` natychmiast, a postęp jest przesyłany strumieniowo przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| format | string | Nie | `"mp4"` | Format wyjściowy: `mp4`, `mov`, `webm`, `avi`, `mkv` |
| quality | string | Nie | `"balanced"` | Ustawienie wstępne jakości: `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}
- Ustawienie wstępne jakości `high` zapewnia najlepszą wierność wizualną, ale większe pliki. Ustawienie wstępne `small` agresywnie kompresuje, aby uzyskać minimalny rozmiar pliku.
- Wyjście WebM używa kodowania VP9. MP4 i MOV używają H.264. AVI i MKV są dostępne dla starszych lub archiwalnych przepływów pracy.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` aż do zakończenia zadania.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Wykadrowanie obszaru z wideo."
i18n_source_hash: fab11f71a202
i18n_provenance: human
i18n_output_hash: 3a1fe88a7485
---
# Crop Video {#crop-video}
Kadruje prostokątny obszar z wideo, określając rozmiar i położenie tego obszaru.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/crop-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| width | integer | Tak | - | Szerokość obszaru kadrowania w pikselach (minimum 16) |
| height | integer | Tak | - | Wysokość obszaru kadrowania w pikselach (minimum 16) |
| x | integer | Nie | `0` | Przesunięcie poziome od lewego górnego rogu |
| y | integer | Nie | `0` | Przesunięcie pionowe od lewego górnego rogu |
## 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}
- Obszar kadrowania musi mieścić się w wymiarach wideo. Jeśli `x + width` lub `y + height` przekracza rozmiar źródła, żądanie zwraca błąd 400.
- Minimalny rozmiar kadrowania to 16x16 pikseli.
- Wymiary są zaokrąglane do liczb parzystych, zgodnie z wymaganiami większości kodeków wideo.
@@ -0,0 +1,49 @@
---
description: "Dołączenie ścieżki napisów do kontenera wideo."
i18n_source_hash: be272730fff5
i18n_provenance: human
i18n_output_hash: 0e82ac2fb34e
---
# Embed Subtitles {#embed-subtitles}
Dołącza plik napisów do kontenera wideo jako miękką ścieżkę napisów, którą widzowie mogą włączać i wyłączać.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/embed-subtitles`
Przyjmuje dane formularza multipart z plikiem wideo i plikiem napisów oraz polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| language | string | Nie | `"eng"` | Kod języka ISO 639-2/B (3 małe litery, np. `"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}
- Prześlij dwa pliki: pierwszy musi być wideo, drugi musi być plikiem napisów (.srt, .vtt lub .ass).
- Osadzone (miękkie) napisy mogą być przełączane przez widza w jego odtwarzaczu multimediów. Aby uzyskać trwale widoczne napisy, użyj zamiast tego narzędzia Burn Subtitles.
- Kod języka jest przechowywany jako metadane w kontenerze i pomaga odtwarzaczom multimediów oznaczyć ścieżkę napisów.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Wyodrębnienie ścieżki audio z wideo."
i18n_source_hash: f5b8330a5f89
i18n_provenance: human
i18n_output_hash: b10868e50d7c
---
# Extract Audio {#extract-audio}
Wyodrębnia ścieżkę audio z pliku wideo i zapisuje ją jako MP3, WAV, M4A lub OGG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-audio`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| format | string | Nie | `"mp3"` | Wyjściowy format audio: `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}
- Jeśli wideo nie ma ścieżki audio, żądanie zwraca błąd 400.
- MP3 jest stratny, ale szeroko kompatybilny. WAV jest bezstratny, ale duży. M4A (AAC) oferuje dobrą równowagę między jakością a rozmiarem. OGG jest dostępny dla przepływów pracy z otwartymi kodekami.
- Gdy źródłowe audio jest już w AAC, a format wyjściowy to M4A, strumień audio jest kopiowany bez ponownego kodowania.
@@ -0,0 +1,45 @@
---
description: "Wyodrębnienie ścieżki napisów z wideo jako pliku SRT."
i18n_source_hash: 48db860f6676
i18n_provenance: human
i18n_output_hash: ac147ac94c4d
---
# Extract Subtitles {#extract-subtitles}
Wyodrębnia osadzoną ścieżkę napisów z kontenera wideo i pobiera ją jako plik SRT.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-subtitles`
Przyjmuje dane formularza multipart z plikiem wideo. To narzędzie nie ma konfigurowalnych ustawień.
## Parameters {#parameters}
To narzędzie nie ma parametrów. Wyodrębnia pierwszą ścieżkę napisów znalezioną w kontenerze wideo.
## 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}
- Wideo musi zawierać osadzoną ścieżkę napisów. Jeśli nie znaleziono ścieżki napisów, żądanie zwraca błąd 400.
- Jeśli wideo ma wiele ścieżek napisów, wyodrębniana jest pierwsza z nich.
- Format wyjściowy to SRT, niezależnie od oryginalnego formatu napisów w kontenerze.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Konwersja animowanego GIF na wideo MP4, WebM lub MOV."
i18n_source_hash: c3737b31146d
i18n_provenance: human
i18n_output_hash: d2dc6f99ecc0
---
# GIF to Video {#gif-to-video}
Konwertuje animowany GIF na kompaktowy plik wideo MP4, WebM lub MOV.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/gif-to-video`
Przyjmuje dane formularza multipart z plikiem GIF i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| format | string | Nie | `"mp4"` | Format wyjściowy: `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}
- Konwersja GIF na wideo zazwyczaj zmniejsza rozmiar pliku o 80-90%, zachowując tę samą jakość wizualną.
- Przyjmowane są tylko animowane pliki GIF. Obrazy statyczne powinny korzystać z narzędzia Convert dla obrazów.
- MP4 i MOV używają kodowania H.264, WebM używa VP9.
@@ -0,0 +1,54 @@
---
description: "Utworzenie wideo pokazu slajdów z zestawu obrazów."
i18n_source_hash: 2c6f183feb6d
i18n_provenance: human
i18n_output_hash: ced4164f687d
---
# Images to Video {#images-to-video}
Tworzy wideo pokazu slajdów z zestawu obrazów z konfigurowalnym czasem wyświetlania każdego obrazu, rozdzielczością i liczbą klatek na sekundę.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/images-to-video`
Przyjmuje dane formularza multipart z dwoma lub większą liczbą plików obrazów i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| secondsPerImage | number | Nie | `2` | Czas wyświetlania na obraz w sekundach (0.5-10) |
| resolution | string | Nie | `"720p"` | Rozdzielczość wyjściowa: `1080p`, `720p`, `square` |
| fps | integer | Nie | `30` | Wyjściowa liczba klatek na sekundę (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}
- Przyjmuje 2-60 plików obrazów na żądanie. Obrazy pojawiają się w wideo w kolejności przesyłania.
- Obrazy są skalowane i uzupełniane, aby dopasować się do docelowej rozdzielczości przy zachowaniu proporcji.
- Opcja rozdzielczości `square` tworzy wideo 1080x1080, przydatne w mediach społecznościowych.
- Formatem wyjściowym jest zawsze MP4 (H.264).
+46
View File
@@ -0,0 +1,46 @@
---
description: "Połączenie wielu klipów wideo w jeden plik."
i18n_source_hash: 90463dfbb580
i18n_provenance: human
i18n_output_hash: 13d1dfdb695f
---
# Merge Videos {#merge-videos}
Łączy wiele klipów wideo w jeden plik MP4. Wszystkie wejścia są normalizowane do rozdzielczości pierwszego wideo i 30 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/merge-videos`
Przyjmuje dane formularza multipart z dwoma lub większą liczbą plików wideo. To jest endpoint asynchroniczny - zwraca `202 Accepted` natychmiast, a postęp jest przesyłany strumieniowo przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
To narzędzie nie ma parametrów ustawień. Prześlij 2-10 plików wideo jako wiele części `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}
- Klipy są łączone w kolejności, w jakiej są przesyłane.
- Wszystkie klipy są ponownie kodowane, aby dopasować się do rozdzielczości, liczby klatek na sekundę (30 fps) i kodeka (H.264) pierwszego klipu. Niedopasowane wejścia są automatycznie normalizowane.
- Przyjmuje 2-10 plików wideo na żądanie.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` aż do zakończenia zadania.
+44
View File
@@ -0,0 +1,44 @@
---
description: "Usunięcie ścieżki audio z wideo."
i18n_source_hash: 9a0c60bbcaa3
i18n_provenance: human
i18n_output_hash: 952891218501
---
# Mute Video {#mute-video}
Usuwa ścieżkę audio z wideo, pozostawiając tylko strumień wizualny.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/mute-video`
Przyjmuje dane formularza multipart z plikiem wideo. To narzędzie nie ma konfigurowalnych ustawień.
## Parameters {#parameters}
To narzędzie nie ma parametrów. Usuwa ścieżkę audio z przesłanego wideo.
## 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}
- Strumień wideo jest kopiowany bez ponownego kodowania, więc nie ma utraty jakości.
- Jeśli wejściowe wideo nie ma ścieżki audio, plik jest zwracany bez zmian.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Zamiana ścieżki audio wideo na inny plik."
i18n_source_hash: fabc2a953103
i18n_provenance: human
i18n_output_hash: cd1d2b22b7b0
---
# Replace Audio {#replace-audio}
Zamienia ścieżkę audio wideo na plik audio. Prześlij zarówno plik wideo, jak i plik audio.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/replace-audio`
Przyjmuje dane formularza multipart z dokładnie dwoma plikami: plikiem wideo, po którym następuje plik audio.
## Parameters {#parameters}
To narzędzie nie ma parametrów ustawień. Prześlij plik wideo i plik audio jako dwie części `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}
- Muszą zostać przesłane dokładnie dwa pliki: pierwszy musi być wideo, drugi musi być plikiem audio.
- Jeśli plik audio jest dłuższy niż wideo, jest przycinany do czasu trwania wideo. Jeśli krótszy, pozostała część wideo odtwarzana jest w ciszy.
- Strumień wideo jest kopiowany bez ponownego kodowania, więc nie ma utraty jakości wideo.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Skalowanie wideo do nowej rozdzielczości lub predefiniowanego rozmiaru."
i18n_source_hash: bb1f67871fea
i18n_provenance: human
i18n_output_hash: c1b9109b0f82
---
# Resize Video {#resize-video}
Skaluje wideo do nowej rozdzielczości przy użyciu niestandardowych wymiarów w pikselach lub standardowego ustawienia wstępnego.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/resize-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| width | integer | Nie | - | Docelowa szerokość w pikselach (16-7680) |
| height | integer | Nie | - | Docelowa wysokość w pikselach (16-4320) |
| preset | string | Nie | `"custom"` | Ustawienie wstępne rozdzielczości: `custom`, `2160p`, `1440p`, `1080p`, `720p`, `480p`, `360p` |
Gdy `preset` ma wartość `"custom"`, należy podać co najmniej jeden z parametrów `width` lub `height`. Drugi wymiar skaluje się proporcjonalnie.
## 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"}'
```
Zmiana rozmiaru do niestandardowych wymiarów:
```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}
- Wartości ustawień wstępnych odpowiadają standardowym wysokościom (np. `720p` = 1280x720, `1080p` = 1920x1080). Szerokość skaluje się proporcjonalnie na podstawie proporcji źródła.
- Wymiary są zaokrąglane do liczb parzystych, zgodnie z wymaganiami większości kodeków wideo.
- Maksymalna obsługiwana rozdzielczość to 7680x4320 (8K UHD).
+44
View File
@@ -0,0 +1,44 @@
---
description: "Odtwarzanie klipu wideo od tyłu."
i18n_source_hash: 98226f4e092d
i18n_provenance: human
i18n_output_hash: fe9a5e8c26e7
---
# Reverse Video {#reverse-video}
Odtwarza klip wideo od tyłu. Ścieżka audio również jest odwracana.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/reverse-video`
Przyjmuje dane formularza multipart z plikiem wideo. To narzędzie nie ma konfigurowalnych ustawień.
## Parameters {#parameters}
To narzędzie nie ma parametrów. Odwraca całe wideo.
## 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}
- Ograniczone do klipów o długości do 5 minut. Dłuższe filmy są odrzucane z błędem 400.
- Odwracane są zarówno ścieżki wideo, jak i audio. Aby odwrócić wideo bez audio, najpierw je wycisz.
+55
View File
@@ -0,0 +1,55 @@
---
description: "Obrót lub odbicie wideo."
i18n_source_hash: cf9620ca62c7
i18n_provenance: human
i18n_output_hash: 95bb05115cd2
---
# Rotate Video {#rotate-video}
Obraca wideo o 90, 180 lub 270 stopni lub odbija je poziomo albo pionowo.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/rotate-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| transform | string | Tak | - | Transformacja do zastosowania: `cw90`, `ccw90`, `180`, `hflip`, `vflip` |
### Transform Values {#transform-values}
- **cw90** - Obrót o 90 stopni zgodnie z ruchem wskazówek zegara
- **ccw90** - Obrót o 90 stopni przeciwnie do ruchu wskazówek zegara
- **180** - Obrót o 180 stopni
- **hflip** - Odbicie poziome (lustrzane)
- **vflip** - Odbicie pionowe
## 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}
- Obroty o 90 lub 270 stopni zamieniają miejscami szerokość i wysokość wideo.
- Operacje odbicia (hflip, vflip) nie zmieniają wymiarów wideo.
@@ -0,0 +1,46 @@
---
description: "Redukcja drgań kamery za pomocą dwuprzebiegowej stabilizacji."
i18n_source_hash: ec908e91a752
i18n_provenance: human
i18n_output_hash: 348feb9cfae4
---
# Stabilize Video {#stabilize-video}
Redukuje drgania kamery w nagraniach z ręki przy użyciu dwuprzebiegowej stabilizacji vidstab FFmpeg.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/stabilize-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`. To jest endpoint asynchroniczny - zwraca `202 Accepted` natychmiast, a postęp jest przesyłany strumieniowo przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| smoothing | integer | Nie | `15` | Rozmiar okna wygładzania w klatkach (5-60). Wyższe wartości dają płynniejszy ruch |
## 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}
- Stabilizacja to proces dwuprzebiegowy: pierwszy przebieg analizuje ruch kamery, a drugi przebieg stosuje korekcję. Trwa to około dwa razy dłużej niż w przypadku narzędzi jednoprzebiegowych.
- Wyższe wartości wygładzania usuwają więcej drgań, ale mogą wprowadzić lekkie przycięcie powiększenia przy krawędziach.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` aż do zakończenia zadania.
+50
View File
@@ -0,0 +1,50 @@
---
description: "Wycięcie klipu z wideo poprzez podanie czasu początku i końca."
i18n_source_hash: c84481641979
i18n_provenance: human
i18n_output_hash: 0e157bb50c48
---
# Trim Video {#trim-video}
Wycina klip z wideo poprzez podanie czasu początku i końca w sekundach, z opcją cięć z dokładnością do klatki.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/trim-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| startS | number | Nie | `0` | Czas początku w sekundach (musi być >= 0) |
| endS | number | Tak | - | Czas końca w sekundach (musi być po startS) |
| precise | boolean | Nie | `false` | Ponowne kodowanie dla cięć z dokładnością do klatki zamiast wyszukiwania klatki kluczowej |
## 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}
- Gdy `precise` ma wartość `false` (domyślnie), narzędzie używa wyszukiwania klatek kluczowych, które jest szybkie, ale może rozpocząć się kilka klatek przed żądanym czasem.
- Ustawienie `precise` na `true` powoduje ponowne kodowanie segmentu dla dokładnych granic klatek, ale trwa dłużej.
- Wartość `endS` musi być większa niż `startS`.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Dostosowanie jasności, kontrastu, nasycenia i gammy wideo."
i18n_source_hash: 40483b79d44b
i18n_provenance: human
i18n_output_hash: bd325aa9972a
---
# Video Color {#video-color}
Dostosowuje jasność, kontrast, nasycenie i korekcję gammy wideo.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-color`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| brightness | number | Nie | `0` | Dostosowanie jasności (-1 do 1) |
| contrast | number | Nie | `1` | Mnożnik kontrastu (0-4) |
| saturation | number | Nie | `1` | Mnożnik nasycenia (0-3). Ustaw na 0 dla skali szarości |
| gamma | number | Nie | `1` | Korekcja gammy (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}
- Wszystkie wartości domyślne (jasność 0, kontrast 1, nasycenie 1, gamma 1) nie powodują żadnych zmian.
- Ustawienie nasycenia na `0` konwertuje wideo do skali szarości.
- Wartości gammy poniżej 1 rozjaśniają cienie, natomiast wartości powyżej 1 je przyciemniają.
@@ -0,0 +1,45 @@
---
description: "Normalizacja głośności audio wideo do standardu transmisyjnego."
i18n_source_hash: 078f1e819c9a
i18n_provenance: human
i18n_output_hash: 71fe7bfb8be2
---
# Normalize Audio {#normalize-audio}
Normalizuje głośność audio wideo do standardu głośności transmisyjnej EBU R128.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-loudnorm`
Przyjmuje dane formularza multipart z plikiem wideo. To narzędzie nie ma konfigurowalnych ustawień.
## Parameters {#parameters}
To narzędzie nie ma parametrów. Stosuje normalizację głośności EBU R128 do ścieżki audio.
## 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}
- Używa filtra `loudnorm` FFmpeg celującego w zintegrowaną głośność -16 LUFS z prawdziwym szczytem -1.5 dBTP i zakresem głośności 11 LU (standard transmisyjny EBU R128).
- Częstotliwość próbkowania źródłowego audio jest zachowywana na wyjściu.
- Jeśli wideo nie ma ścieżki audio, żądanie zwraca błąd 400.
@@ -0,0 +1,54 @@
---
description: "Usunięcie metadanych z wideo i raport, co zostało znalezione."
i18n_source_hash: 69621bfb98ca
i18n_provenance: human
i18n_output_hash: 03fe2ffe1858
---
# Clean Video Metadata {#clean-video-metadata}
Usuwa metadane (datę utworzenia, współrzędne GPS, model kamery, znaczniki oprogramowania itp.) z wideo i raportuje, co zostało usunięte.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-metadata`
Przyjmuje dane formularza multipart z plikiem wideo. To narzędzie nie ma konfigurowalnych ustawień.
## Parameters {#parameters}
To narzędzie nie ma parametrów. Usuwa wszystkie metadane z kontenera wideo.
## 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}
- Usuwane metadane obejmują znaczniki czasu utworzenia, dane GPS/lokalizacji, informacje o kamerze/urządzeniu oraz znaczniki oprogramowania.
- Strumienie wideo i audio są kopiowane bez ponownego kodowania, więc nie ma utraty jakości.
- Przydatne do ochrony prywatności przed publicznym udostępnianiem filmów.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Przyspieszenie lub zwolnienie wideo."
i18n_source_hash: 98dfc75c0507
i18n_provenance: human
i18n_output_hash: 2aae17ee218e
---
# Video Speed {#video-speed}
Przyspiesza lub zwalnia wideo z opcją zachowania wysokości dźwięku audio.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-speed`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| factor | number | Nie | `2` | Mnożnik prędkości (0.25-4). Wartości powyżej 1 przyspieszają, poniżej 1 zwalniają |
| keepPitch | boolean | Nie | `true` | Zachowanie wysokości dźwięku audio przy zmianie prędkości |
## 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}
- Współczynnik `2` podwaja prędkość odtwarzania (o połowę skraca czas trwania). Współczynnik `0.5` o połowę zmniejsza prędkość odtwarzania (podwaja czas trwania).
- Gdy `keepPitch` ma wartość `true`, audio jest rozciągane w czasie, aby głosy brzmiały naturalnie. Gdy `false`, wysokość dźwięku zmienia się proporcjonalnie do prędkości.
- Prawidłowy zakres to od 0.25x do 4x.
@@ -0,0 +1,62 @@
---
description: "Wyodrębnienie klatek z wideo jako archiwum ZIP obrazów."
i18n_source_hash: b06f038dafb3
i18n_provenance: human
i18n_output_hash: 54b7da47b8a4
---
# Video to Frames {#video-to-frames}
Wyodrębnia pojedyncze klatki z wideo i pobiera je jako archiwum ZIP obrazów PNG lub JPG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-frames`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| mode | string | Nie | `"all"` | Tryb wyodrębniania: `all`, `nth`, `timestamps` |
| n | integer | Nie | `10` | Wyodrębnianie co N-tej klatki (2-1000). Używane tylko, gdy tryb to `"nth"` |
| timestamps | string | Nie | `""` | Znaczniki czasu oddzielone przecinkami w sekundach. Wymagane, gdy tryb to `"timestamps"` |
| format | string | Nie | `"png"` | Format obrazu dla wyodrębnionych klatek: `png`, `jpg` |
## Example Request {#example-request}
Wyodrębnij co 30. klatkę jako 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"}'
```
Wyodrębnij klatki w określonych znacznikach czasu:
```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}
- Tryb `all` wyodrębnia każdą klatkę i może tworzyć bardzo duże pliki ZIP dla długich filmów. Użyj trybu `nth` lub `timestamps` do selektywnego wyodrębniania.
- PNG zachowuje pełną jakość, ale tworzy większe pliki. JPG jest mniejszy, ale stratny.
- Odpowiedź pobiera się jako archiwum ZIP zawierające kolejno numerowane pliki obrazów.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Zamiana klipu wideo na animowany GIF."
i18n_source_hash: f729dde8cd55
i18n_provenance: human
i18n_output_hash: 8aa3d44e47bf
---
# Video to GIF {#video-to-gif}
Zamienia klip wideo na animowany GIF z konfigurowalną liczbą klatek na sekundę, szerokością, czasem początku i czasem trwania.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-gif`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`. To jest endpoint asynchroniczny - zwraca `202 Accepted` natychmiast, a postęp jest przesyłany strumieniowo przez SSE pod `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| fps | integer | Nie | `12` | Wyjściowa liczba klatek na sekundę (1-30) |
| width | integer | Nie | `480` | Szerokość wyjściowa w pikselach (64-1280). Wysokość skaluje się proporcjonalnie |
| startS | number | Nie | `0` | Czas początku w sekundach (musi być >= 0) |
| durationS | number | Nie | `5` | Czas trwania w sekundach (powyżej 0, maks. 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}
- Niższe wartości `fps` i `width` tworzą mniejsze pliki GIF. GIF o szerokości 480px przy 12 fps to zazwyczaj dobra równowaga.
- Maksymalny czas trwania to 60 sekund. Dłuższe klipy tworzą bardzo duże pliki.
- Aktualizacje postępu są dostępne przez SSE pod `GET /api/v1/jobs/{jobId}/progress` aż do zakończenia zadania.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Konwersja klipu wideo na animowany obraz WebP."
i18n_source_hash: 7b1a22459bd1
i18n_provenance: human
i18n_output_hash: a2a9bf0ed9d4
---
# Video to WebP {#video-to-webp}
Konwertuje klip wideo na animowany obraz WebP z konfigurowalną liczbą klatek na sekundę, szerokością i jakością.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-webp`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| fps | integer | Nie | `12` | Wyjściowa liczba klatek na sekundę (1-30) |
| width | integer | Nie | `480` | Szerokość wyjściowa w pikselach (16-1920). Wysokość skaluje się proporcjonalnie |
| quality | integer | Nie | `75` | Jakość kompresji WebP (1-100) |
| loop | boolean | Nie | `true` | Zapętlenie animacji |
## 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}
- Animowany WebP tworzy mniejsze pliki niż GIF z lepszą obsługą kolorów (paleta 24-bitowa vs 8-bitowa).
- Niższe wartości `quality` tworzą mniejsze pliki kosztem wierności wizualnej.
- Ustaw `loop` na `false` dla animacji, które powinny odtworzyć się raz i zatrzymać.
@@ -0,0 +1,58 @@
---
description: "Wtapianie tekstowego znaku wodnego na klatki wideo."
i18n_source_hash: 937bb075b894
i18n_provenance: human
i18n_output_hash: 7bf27232d5ed
---
# Watermark Video {#watermark-video}
Wtapia tekstowy znak wodny na każdą klatkę wideo z konfigurowalnym położeniem, rozmiarem, przezroczystością i kolorem.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/watermark-video`
Przyjmuje dane formularza multipart z plikiem wideo i polem JSON `settings`.
## Parameters {#parameters}
| Parametr | Typ | Wymagany | Domyślnie | Opis |
|-----------|------|----------|---------|-------------|
| text | string | Tak | - | Tekst znaku wodnego (1-200 znaków) |
| position | string | Nie | `"br"` | Położenie na klatce: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | Nie | `36` | Rozmiar czcionki w pikselach (8-120) |
| opacity | number | Nie | `0.5` | Przezroczystość znaku wodnego (0.05-1) |
| color | string | Nie | `"#ffffff"` | Kolor tekstu w formacie hex (np. `"#ffffff"`) |
### Position Values {#position-values}
- **tl** - Lewy górny, **tc** - Górny środek, **tr** - Prawy górny
- **l** - Środkowy lewy, **c** - Środek, **r** - Środkowy prawy
- **bl** - Lewy dolny, **bc** - Dolny środek, **br** - Prawy dolny
## 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}
- Znak wodny jest trwale renderowany w klatki wideo i nie można go usunąć po przetworzeniu.
- Znak wodny używa czcionki bezszeryfowej wbudowanej w FFmpeg.
- W przypadku znaków wodnych opartych na obrazie użyj zamiast tego narzędzia Watermark dla obrazów.