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: "Voeg balken in een effen kleur toe om aan een doelbeeldverhouding te voldoen."
i18n_source_hash: b8e17dffc341
i18n_provenance: human
i18n_output_hash: 6e0a6b8f1c47
---
# Aspect Pad {#aspect-pad}
Voeg letterbox- of pillarbox-balken in een effen kleur toe om een video in een doelbeeldverhouding te passen zonder bij te snijden.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/aspect-pad`
Accepteert multipart-formuliergegevens met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| target | string | Nee | `"9:16"` | Doelbeeldverhouding: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| color | string | Nee | `"#000000"` | Hex-kleur voor de opvulbalken (bijv. `"#000000"` voor zwart) |
## 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}
- Als de video al overeenkomt met de doelbeeldverhouding, wordt het bestand ongewijzigd teruggegeven.
- Gebruik `9:16` voor verticale/portret-socialmedia-indelingen (TikTok, Reels, Shorts).
- Gebruik voor vervaagde opvulling in plaats van een effen kleur het hulpmiddel Blur Pad.
@@ -0,0 +1,48 @@
---
description: "Genereer ondertitelbestanden uit de audiotracks van video's met AI."
i18n_source_hash: 35b1e78501ad
i18n_provenance: human
i18n_output_hash: 24377bd16df5
---
# Auto Subtitles {#auto-subtitles}
Genereer ondertitelbestanden uit de audiotrack van een video met AI-gedreven spraakherkenning (faster-whisper). Ondersteunt automatische detectie en 10 expliciete talen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/auto-subtitles`
Accepteert multipart-formuliergegevens met een videobestand en een JSON-veld `settings`. Dit is een asynchroon endpoint - het geeft `202 Accepted` direct terug en de voortgang wordt gestreamd via SSE op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| language | string | Nee | `"auto"` | Spraaktaal: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko`, `id`, `th`, `vi` |
| format | string | Nee | `"srt"` | Uitvoerformaat voor ondertitels: `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}
- Dit is een AI-hulpmiddel dat vereist dat de **transcription**-functiebundel is geïnstalleerd. Als de bundel niet is geïnstalleerd, geeft de API `501 Feature Not Installed` terug met instructies om deze via de admin-UI te installeren.
- De taaloptie `auto` gebruikt de ingebouwde taaldetectie van whisper. Het expliciet opgeven van de taal verbetert de nauwkeurigheid en snelheid.
- SRT is het meest breed ondersteunde ondertitelformaat. VTT (WebVTT) is de standaard voor webvideospelers.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Vul balken met een vervaagde kopie van de video."
i18n_source_hash: 0c72aaefc6de
i18n_provenance: human
i18n_output_hash: c8a237fa270a
---
# Blur Pad {#blur-pad}
Pas een video in een doelbeeldverhouding door het opvulgebied te vullen met een vervaagde, geschaalde kopie van de video in plaats van balken in een effen kleur.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/blur-pad`
Accepteert multipart-formuliergegevens met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| target | string | Nee | `"16:9"` | Doelbeeldverhouding: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| blur | number | Nee | `20` | Gaussische vervaging-sigma voor de achtergrond (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}
- Hogere vervagingswaarden produceren een zachtere, abstractere achtergrond. Lagere waarden houden meer detail zichtbaar.
- Als de video al overeenkomt met de doelbeeldverhouding, wordt het bestand ongewijzigd teruggegeven.
- Gebruik voor opvulling in een effen kleur in plaats daarvan het hulpmiddel Aspect Pad.
@@ -0,0 +1,47 @@
---
description: "Ondertitels permanent in videoframes renderen."
i18n_source_hash: 2d3111589db0
i18n_provenance: human
i18n_output_hash: 1333c762ddc9
---
# Burn Subtitles {#burn-subtitles}
Render (hardcode) ondertitels uit een SRT-, VTT- of ASS-bestand permanent in elk frame van een video.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/burn-subtitles`
Accepteert multipart form data met een videobestand en een ondertitelbestand. Dit is een async endpoint: het retourneert direct `202 Accepted` en de voortgang wordt via SSE gestreamd op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| fontSize | integer | Nee | `24` | Lettergrootte van de ondertitels in pixels (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}
- Upload twee bestanden: het eerste moet een video zijn, het tweede moet een ondertitelbestand zijn (.srt, .vtt of .ass).
- Ingebrande ondertitels zijn permanent onderdeel van de video en kunnen door de kijker niet worden uitgezet. Gebruik voor in- en uitschakelbare ondertitels in plaats daarvan de tool Embed Subtitles.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+48
View File
@@ -0,0 +1,48 @@
---
description: "De framerate van een video wijzigen."
i18n_source_hash: 2bffbd04a1cb
i18n_provenance: human
i18n_output_hash: 2f397c66c881
---
# Change FPS {#change-fps}
Wijzig de framerate van een video naar een doelwaarde tussen 1 en 120 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/change-fps`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| fps | number | Nee | `30` | Doelframerate (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}
- Een lagere framerate laat frames vallen en verkleint de bestandsgrootte. Een hogere framerate dupliceert frames om het gat op te vullen, maar voegt geen echte bewegingsdetails toe.
- Gebruikelijke doelwaarden: 24 (cinema), 30 (web/broadcast), 60 (vloeiende weergave).
- Het audiospoor blijft op de oorspronkelijke samplerate behouden.
@@ -0,0 +1,47 @@
---
description: "Videobestandsgrootte verkleinen met kwaliteitscontrole."
i18n_source_hash: 9cc1f1acf74e
i18n_provenance: human
i18n_output_hash: bd96bd211a97
---
# Compress Video {#compress-video}
Verklein de videobestandsgrootte met een instelbare compressiesterkte en optioneel het verlagen van de resolutie.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/compress-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`. Dit is een async endpoint: het retourneert direct `202 Accepted` en de voortgang wordt via SSE gestreamd op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| quality | string | Nee | `"balanced"` | Compressiesterkte: `light`, `balanced`, `strong` |
| resolution | string | Nee | `"original"` | Uitvoerresolutie: `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}
- De preset `light` behoudt een kwaliteit die bijna gelijk is aan het origineel. De preset `strong` verkleint de bestandsgrootte agressief ten koste van de visuele getrouwheid.
- Het verlagen van de resolutie (bijvoorbeeld van 4K naar 720p) versterkt in combinatie met compressie de vermindering van de bestandsgrootte aanzienlijk.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Video's converteren tussen MP4, MOV, WebM, AVI en MKV."
i18n_source_hash: 8f9e6418b1c6
i18n_provenance: human
i18n_output_hash: 1bdfad1a66e0
---
# Convert Video {#convert-video}
Converteer video's tussen de formaten MP4, MOV, WebM, AVI en MKV met instelbare kwaliteitspresets.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/convert-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`. Dit is een async endpoint: het retourneert direct `202 Accepted` en de voortgang wordt via SSE gestreamd op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| format | string | Nee | `"mp4"` | Uitvoerformaat: `mp4`, `mov`, `webm`, `avi`, `mkv` |
| quality | string | Nee | `"balanced"` | Kwaliteitspreset: `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}
- De kwaliteitspreset `high` levert de beste visuele getrouwheid op, maar grotere bestanden. De preset `small` comprimeert agressief voor een minimale bestandsgrootte.
- WebM-uitvoer gebruikt VP9-encoding. MP4 en MOV gebruiken H.264. AVI en MKV zijn beschikbaar voor legacy- of archiveringsworkflows.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Een gebied uit een video bijsnijden."
i18n_source_hash: fab11f71a202
i18n_provenance: human
i18n_output_hash: 5724d681ae43
---
# Crop Video {#crop-video}
Snijd een rechthoekig gebied uit een video bij door de grootte en positie van het gebied op te geven.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/crop-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| width | integer | Ja | - | Breedte van het bijsnijdgebied in pixels (minimaal 16) |
| height | integer | Ja | - | Hoogte van het bijsnijdgebied in pixels (minimaal 16) |
| x | integer | Nee | `0` | Horizontale verschuiving vanaf de linkerbovenhoek |
| y | integer | Nee | `0` | Verticale verschuiving vanaf de linkerbovenhoek |
## 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}
- Het bijsnijdgebied moet binnen de videoafmetingen passen. Als `x + width` of `y + height` de brongrootte overschrijdt, geeft het verzoek een 400-fout terug.
- De minimale bijsnijdgrootte is 16x16 pixels.
- Afmetingen worden afgerond op even getallen, zoals de meeste videocodecs vereisen.
@@ -0,0 +1,49 @@
---
description: "Een ondertitelspoor in de videocontainer muxen."
i18n_source_hash: be272730fff5
i18n_provenance: human
i18n_output_hash: 2f03a1cf7a13
---
# Embed Subtitles {#embed-subtitles}
Mux een ondertitelbestand in de videocontainer als een soft ondertitelspoor dat kijkers kunnen in- of uitschakelen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/embed-subtitles`
Accepteert multipart form data met een videobestand en een ondertitelbestand, plus een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| language | string | Nee | `"eng"` | ISO 639-2/B-taalcode (3 kleine letters, bijv. `"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}
- Upload twee bestanden: het eerste moet een video zijn, het tweede moet een ondertitelbestand zijn (.srt, .vtt of .ass).
- Ingebedde (soft) ondertitels kunnen door de kijker in hun mediaspeler worden in- en uitgeschakeld. Gebruik voor permanent zichtbare ondertitels in plaats daarvan de tool Burn Subtitles.
- De taalcode wordt als metadata in de container opgeslagen en helpt mediaspelers het ondertitelspoor te labelen.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Het audiospoor uit een video halen."
i18n_source_hash: f5b8330a5f89
i18n_provenance: human
i18n_output_hash: 775808761b2a
---
# Extract Audio {#extract-audio}
Haal het audiospoor uit een videobestand en sla het op als MP3, WAV, M4A of OGG.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-audio`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| format | string | Nee | `"mp3"` | Uitvoeraudioformaat: `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}
- Als de video geen audiospoor heeft, geeft het verzoek een 400-fout terug.
- MP3 is lossy maar breed compatibel. WAV is lossless maar groot. M4A (AAC) biedt een goede balans tussen kwaliteit en grootte. OGG is beschikbaar voor workflows met open codecs.
- Wanneer de bronaudio al AAC is en het uitvoerformaat M4A is, wordt het audiospoor gekopieerd zonder opnieuw te encoderen.
@@ -0,0 +1,45 @@
---
description: "Het ondertitelspoor uit een video halen als een SRT-bestand."
i18n_source_hash: 48db860f6676
i18n_provenance: human
i18n_output_hash: d34409f39e07
---
# Extract Subtitles {#extract-subtitles}
Haal het ingebedde ondertitelspoor uit een videocontainer en download het als een SRT-bestand.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-subtitles`
Accepteert multipart form data met een videobestand. Deze tool heeft geen instelbare opties.
## Parameters {#parameters}
Deze tool heeft geen parameters. Het haalt het eerste ondertitelspoor eruit dat in de videocontainer wordt gevonden.
## 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}
- De video moet een ingebed ondertitelspoor bevatten. Als er geen ondertitelspoor wordt gevonden, geeft het verzoek een 400-fout terug.
- Als de video meerdere ondertitelsporen heeft, wordt het eerste eruit gehaald.
- Het uitvoerformaat is SRT, ongeacht het oorspronkelijke ondertitelformaat in de container.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Een geanimeerde GIF omzetten naar een MP4-, WebM- of MOV-video."
i18n_source_hash: c3737b31146d
i18n_provenance: human
i18n_output_hash: 43b82d873cef
---
# GIF to Video {#gif-to-video}
Zet een geanimeerde GIF om naar een compact MP4-, WebM- of MOV-videobestand.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/gif-to-video`
Accepteert multipart form data met een GIF-bestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| format | string | Nee | `"mp4"` | Uitvoerformaat: `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}
- Het omzetten van GIF naar video verkleint de bestandsgrootte doorgaans met 80-90% terwijl dezelfde visuele kwaliteit behouden blijft.
- Alleen geanimeerde GIF-bestanden worden geaccepteerd. Voor statische afbeeldingen gebruik je de image Convert-tool.
- MP4 en MOV gebruiken H.264-encoding, WebM gebruikt VP9.
@@ -0,0 +1,54 @@
---
description: "Een set afbeeldingen omzetten naar een diavoorstellingsvideo."
i18n_source_hash: 2c6f183feb6d
i18n_provenance: human
i18n_output_hash: 3ac7b86f548d
---
# Images to Video {#images-to-video}
Zet een set afbeeldingen om naar een diavoorstellingsvideo met een instelbare duur per afbeelding, resolutie en framerate.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/images-to-video`
Accepteert multipart form data met twee of meer afbeeldingsbestanden en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| secondsPerImage | number | Nee | `2` | Weergaveduur per afbeelding in seconden (0.5-10) |
| resolution | string | Nee | `"720p"` | Uitvoerresolutie: `1080p`, `720p`, `square` |
| fps | integer | Nee | `30` | Uitvoerframerate (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}
- Accepteert 2-60 afbeeldingsbestanden per verzoek. Afbeeldingen verschijnen in de video in de volgorde waarin ze zijn geüpload.
- Afbeeldingen worden geschaald en opgevuld om binnen de doelresolutie te passen, met behoud van de beeldverhouding.
- De resolutie-optie `square` produceert een video van 1080x1080, handig voor sociale media.
- Het uitvoerformaat is altijd MP4 (H.264).
+46
View File
@@ -0,0 +1,46 @@
---
description: "Meerdere videoclips samenvoegen tot één bestand."
i18n_source_hash: 90463dfbb580
i18n_provenance: human
i18n_output_hash: 7224a9a029ee
---
# Merge Videos {#merge-videos}
Voeg meerdere videoclips samen tot één MP4-bestand. Alle invoer wordt genormaliseerd naar de resolutie van de eerste video en 30 fps.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/merge-videos`
Accepteert multipart form data met twee of meer videobestanden. Dit is een async endpoint: het retourneert direct `202 Accepted` en de voortgang wordt via SSE gestreamd op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
Deze tool heeft geen instellingsparameters. Upload 2-10 videobestanden als meerdere `file`-delen.
## 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}
- Clips worden aaneengeschakeld in de volgorde waarin ze zijn geüpload.
- Alle clips worden opnieuw geëncodeerd om overeen te komen met de resolutie, framerate (30 fps) en codec (H.264) van de eerste clip. Niet-overeenkomende invoer wordt automatisch genormaliseerd.
- Accepteert 2-10 videobestanden per verzoek.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+44
View File
@@ -0,0 +1,44 @@
---
description: "Het audiospoor uit een video verwijderen."
i18n_source_hash: 9a0c60bbcaa3
i18n_provenance: human
i18n_output_hash: a6993cd53f60
---
# Mute Video {#mute-video}
Verwijder het audiospoor uit een video, zodat alleen het beeldspoor overblijft.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/mute-video`
Accepteert multipart form data met een videobestand. Deze tool heeft geen instelbare opties.
## Parameters {#parameters}
Deze tool heeft geen parameters. Het verwijdert het audiospoor uit de geüploade video.
## 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}
- Het beeldspoor wordt gekopieerd zonder opnieuw te encoderen, dus er is geen kwaliteitsverlies.
- Als de invoervideo geen audiospoor heeft, wordt het bestand ongewijzigd teruggegeven.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Het audiospoor van een video vervangen door een ander bestand."
i18n_source_hash: fabc2a953103
i18n_provenance: human
i18n_output_hash: 98aa1f0e4c2f
---
# Replace Audio {#replace-audio}
Vervang het audiospoor van een video door een audiobestand. Upload zowel een video als een audiobestand.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/replace-audio`
Accepteert multipart form data met precies twee bestanden: een videobestand gevolgd door een audiobestand.
## Parameters {#parameters}
Deze tool heeft geen instellingsparameters. Upload een videobestand en een audiobestand als twee `file`-delen.
## 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}
- Er moeten precies twee bestanden worden geüpload: het eerste moet een video zijn, het tweede moet een audiobestand zijn.
- Als het audiobestand langer is dan de video, wordt het ingekort tot de duur van de video. Is het korter, dan speelt de rest van de video in stilte af.
- Het beeldspoor wordt gekopieerd zonder opnieuw te encoderen, dus er is geen verlies van videokwaliteit.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Een video schalen naar een nieuwe resolutie of presetgrootte."
i18n_source_hash: bb1f67871fea
i18n_provenance: human
i18n_output_hash: cb1d84eb18a5
---
# Resize Video {#resize-video}
Schaal een video naar een nieuwe resolutie met aangepaste pixelafmetingen of een standaardpreset.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/resize-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| width | integer | Nee | - | Doelbreedte in pixels (16-7680) |
| height | integer | Nee | - | Doelhoogte in pixels (16-4320) |
| preset | string | Nee | `"custom"` | Resolutiepreset: `custom`, `2160p`, `1440p`, `1080p`, `720p`, `480p`, `360p` |
Wanneer `preset` `"custom"` is, moet ten minste een van `width` of `height` worden opgegeven. De andere dimensie schaalt proportioneel mee.
## 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"}'
```
Schalen naar aangepaste afmetingen:
```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}
- Presetwaarden komen overeen met standaardhoogtes (bijv. `720p` = 1280x720, `1080p` = 1920x1080). De breedte schaalt proportioneel mee vanuit de beeldverhouding van de bron.
- Afmetingen worden afgerond op even getallen, zoals de meeste videocodecs vereisen.
- De maximaal ondersteunde resolutie is 7680x4320 (8K UHD).
+44
View File
@@ -0,0 +1,44 @@
---
description: "Een videoclip achterstevoren afspelen."
i18n_source_hash: 98226f4e092d
i18n_provenance: human
i18n_output_hash: 8ea84a42a438
---
# Reverse Video {#reverse-video}
Speel een videoclip achterstevoren af. Ook het audiospoor wordt omgekeerd.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/reverse-video`
Accepteert multipart form data met een videobestand. Deze tool heeft geen instelbare opties.
## Parameters {#parameters}
Deze tool heeft geen parameters. Het keert de hele video om.
## 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}
- Beperkt tot clips van maximaal 5 minuten. Langere video's worden afgewezen met een 400-fout.
- Zowel het beeld- als het audiospoor worden omgekeerd. Om video zonder audio om te keren, moet je hem eerst dempen.
+55
View File
@@ -0,0 +1,55 @@
---
description: "Een video roteren of spiegelen."
i18n_source_hash: cf9620ca62c7
i18n_provenance: human
i18n_output_hash: 2c414d60c25c
---
# Rotate Video {#rotate-video}
Roteer een video 90, 180 of 270 graden, of spiegel hem horizontaal of verticaal.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/rotate-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| transform | string | Ja | - | Toe te passen transformatie: `cw90`, `ccw90`, `180`, `hflip`, `vflip` |
### Transform Values {#transform-values}
- **cw90** - 90 graden met de klok mee roteren
- **ccw90** - 90 graden tegen de klok in roteren
- **180** - 180 graden roteren
- **hflip** - Horizontaal spiegelen (mirror)
- **vflip** - Verticaal spiegelen
## 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}
- Rotaties van 90 of 270 graden verwisselen de breedte en hoogte van de video.
- Spiegelbewerkingen (hflip, vflip) veranderen de videoafmetingen niet.
@@ -0,0 +1,46 @@
---
description: "Camerabeweging verminderen met tweevoudige stabilisatie."
i18n_source_hash: ec908e91a752
i18n_provenance: human
i18n_output_hash: 590cdb319b3c
---
# Stabilize Video {#stabilize-video}
Verminder camerabeweging in handheld-opnames met de tweevoudige vidstab-stabilisatie van FFmpeg.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/stabilize-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`. Dit is een async endpoint: het retourneert direct `202 Accepted` en de voortgang wordt via SSE gestreamd op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| smoothing | integer | Nee | `15` | Grootte van het smoothing-venster in frames (5-60). Hogere waarden leveren vloeiendere beweging op |
## 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}
- Stabilisatie is een tweevoudig proces: de eerste pass analyseert de camerabeweging en de tweede pass past de correctie toe. Dit duurt ongeveer twee keer zo lang als tools met één pass.
- Hogere smoothing-waarden verwijderen meer trillingen, maar kunnen een lichte zoombijsnijding aan de randen veroorzaken.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+50
View File
@@ -0,0 +1,50 @@
---
description: "Een clip uit een video knippen door start- en eindtijden op te geven."
i18n_source_hash: c84481641979
i18n_provenance: human
i18n_output_hash: 1d00aaeaddde
---
# Trim Video {#trim-video}
Knip een clip uit een video door de start- en eindtijd in seconden op te geven, met een optie voor frame-nauwkeurige knippen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/trim-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| startS | number | Nee | `0` | Starttijd in seconden (moet >= 0 zijn) |
| endS | number | Ja | - | Eindtijd in seconden (moet na startS liggen) |
| precise | boolean | Nee | `false` | Opnieuw encoderen voor frame-nauwkeurige knippen in plaats van keyframe-seek |
## 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}
- Wanneer `precise` `false` is (de standaard), gebruikt de tool keyframe-seeking, wat snel is maar een paar frames vóór het gevraagde tijdstip kan beginnen.
- `precise` instellen op `true` encodeert het segment opnieuw voor exacte framegrenzen, maar duurt langer.
- De waarde `endS` moet groter zijn dan `startS`.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Helderheid, contrast, verzadiging en gamma van een video aanpassen."
i18n_source_hash: 40483b79d44b
i18n_provenance: human
i18n_output_hash: 85019e556fa6
---
# Video Color {#video-color}
Pas de helderheid, het contrast, de verzadiging en de gammacorrectie van een video aan.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-color`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| brightness | number | Nee | `0` | Helderheidsaanpassing (-1 tot 1) |
| contrast | number | Nee | `1` | Contrastvermenigvuldiger (0-4) |
| saturation | number | Nee | `1` | Verzadigingsvermenigvuldiger (0-3). Zet op 0 voor grijstinten |
| gamma | number | Nee | `1` | Gammacorrectie (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}
- Alle waarden op hun standaardinstelling (brightness 0, contrast 1, saturation 1, gamma 1) geven geen wijziging.
- Het instellen van saturation op `0` zet de video om naar grijstinten.
- Gammawaarden onder 1 maken schaduwen lichter, terwijl waarden boven 1 ze donkerder maken.
@@ -0,0 +1,45 @@
---
description: "Het audiovolume van video normaliseren naar de broadcast-standaard."
i18n_source_hash: 078f1e819c9a
i18n_provenance: human
i18n_output_hash: 3d5f398c155a
---
# Normalize Audio {#normalize-audio}
Normaliseer het audiovolume van video naar de EBU R128 broadcast-luidheidsstandaard.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-loudnorm`
Accepteert multipart form data met een videobestand. Deze tool heeft geen instelbare opties.
## Parameters {#parameters}
Deze tool heeft geen parameters. Het past EBU R128-luidheidsnormalisatie toe op het audiospoor.
## 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}
- Gebruikt het `loudnorm`-filter van FFmpeg gericht op -16 LUFS geïntegreerde luidheid met -1.5 dBTP true peak en 11 LU loudness range (EBU R128 broadcast-standaard).
- De samplerate van de bronaudio blijft in de uitvoer behouden.
- Als de video geen audiospoor heeft, geeft het verzoek een 400-fout terug.
@@ -0,0 +1,54 @@
---
description: "Metadata uit een video verwijderen en rapporteren wat er is gevonden."
i18n_source_hash: 69621bfb98ca
i18n_provenance: human
i18n_output_hash: adb80ec9234b
---
# Clean Video Metadata {#clean-video-metadata}
Verwijder metadata (aanmaakdatum, GPS-coördinaten, cameramodel, softwaretags, enz.) uit een video en rapporteer wat er is verwijderd.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-metadata`
Accepteert multipart form data met een videobestand. Deze tool heeft geen instelbare opties.
## Parameters {#parameters}
Deze tool heeft geen parameters. Het verwijdert alle metadata uit de videocontainer.
## 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}
- Verwijderde metadata omvat aanmaaktijdstempels, GPS-/locatiegegevens, camera-/apparaatinfo en softwaretags.
- Het beeld- en audiospoor worden gekopieerd zonder opnieuw te encoderen, dus er is geen kwaliteitsverlies.
- Handig voor privacy voordat je video's openbaar deelt.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Een video versnellen of vertragen."
i18n_source_hash: 98dfc75c0507
i18n_provenance: human
i18n_output_hash: 22019df131c1
---
# Video Speed {#video-speed}
Versnel of vertraag een video met een optie om de toonhoogte van de audio te behouden.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-speed`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| factor | number | Nee | `2` | Snelheidsvermenigvuldiger (0.25-4). Waarden boven 1 versnellen, onder 1 vertragen |
| keepPitch | boolean | Nee | `true` | Toonhoogte van de audio behouden bij het wijzigen van de snelheid |
## 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}
- Een factor van `2` verdubbelt de afspeelsnelheid (halveert de duur). Een factor van `0.5` halveert de afspeelsnelheid (verdubbelt de duur).
- Wanneer `keepPitch` `true` is, wordt de audio in tijd gerekt zodat stemmen natuurlijk klinken. Bij `false` verschuift de toonhoogte proportioneel met de snelheid.
- Het geldige bereik is 0.25x tot 4x.
@@ -0,0 +1,62 @@
---
description: "Frames uit een video halen als een ZIP met afbeeldingen."
i18n_source_hash: b06f038dafb3
i18n_provenance: human
i18n_output_hash: 39fce0ef9ffc
---
# Video to Frames {#video-to-frames}
Haal individuele frames uit een video en download ze als een ZIP-archief met PNG- of JPG-afbeeldingen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-frames`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| mode | string | Nee | `"all"` | Extractiemodus: `all`, `nth`, `timestamps` |
| n | integer | Nee | `10` | Elk Nde frame extraheren (2-1000). Alleen gebruikt wanneer mode `"nth"` is |
| timestamps | string | Nee | `""` | Door komma's gescheiden tijdstempels in seconden. Vereist wanneer mode `"timestamps"` is |
| format | string | Nee | `"png"` | Afbeeldingsformaat voor geëxtraheerde frames: `png`, `jpg` |
## Example Request {#example-request}
Elk 30ste frame extraheren als 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"}'
```
Frames op specifieke tijdstempels extraheren:
```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}
- De modus `all` extraheert elk frame en kan voor lange video's zeer grote ZIP-bestanden opleveren. Gebruik de modus `nth` of `timestamps` voor selectieve extractie.
- PNG behoudt de volledige kwaliteit maar produceert grotere bestanden. JPG is kleiner maar lossy.
- De respons downloadt als een ZIP-archief met opeenvolgend genummerde afbeeldingsbestanden.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Een videoclip omzetten naar een geanimeerde GIF."
i18n_source_hash: f729dde8cd55
i18n_provenance: human
i18n_output_hash: 4591c3e30255
---
# Video to GIF {#video-to-gif}
Zet een videoclip om naar een geanimeerde GIF met een instelbare framerate, breedte, starttijd en duur.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-gif`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`. Dit is een async endpoint: het retourneert direct `202 Accepted` en de voortgang wordt via SSE gestreamd op `GET /api/v1/jobs/{jobId}/progress`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| fps | integer | Nee | `12` | Uitvoerframerate (1-30) |
| width | integer | Nee | `480` | Uitvoerbreedte in pixels (64-1280). De hoogte schaalt proportioneel mee |
| startS | number | Nee | `0` | Starttijd in seconden (moet >= 0 zijn) |
| durationS | number | Nee | `5` | Duur in seconden (boven 0, max 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}
- Lagere waarden voor `fps` en `width` produceren kleinere GIF-bestanden. Een GIF van 480px breed op 12 fps is meestal een goede balans.
- De maximale duur is 60 seconden. Langere clips produceren zeer grote bestanden.
- Voortgangsupdates zijn beschikbaar via SSE op `GET /api/v1/jobs/{jobId}/progress` totdat de taak is voltooid.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Een videoclip omzetten naar een geanimeerde WebP-afbeelding."
i18n_source_hash: 7b1a22459bd1
i18n_provenance: human
i18n_output_hash: 26192e63e067
---
# Video to WebP {#video-to-webp}
Zet een videoclip om naar een geanimeerde WebP-afbeelding met een instelbare framerate, breedte en kwaliteit.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-webp`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| fps | integer | Nee | `12` | Uitvoerframerate (1-30) |
| width | integer | Nee | `480` | Uitvoerbreedte in pixels (16-1920). De hoogte schaalt proportioneel mee |
| quality | integer | Nee | `75` | WebP-compressiekwaliteit (1-100) |
| loop | boolean | Nee | `true` | De animatie laten herhalen |
## 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}
- Geanimeerde WebP produceert kleinere bestanden dan GIF met betere kleurondersteuning (24-bit versus 8-bit palet).
- Lagere waarden voor `quality` produceren kleinere bestanden ten koste van de visuele getrouwheid.
- Zet `loop` op `false` voor animaties die één keer moeten afspelen en dan stoppen.
@@ -0,0 +1,58 @@
---
description: "Een tekstwatermerk in videoframes inbranden."
i18n_source_hash: 937bb075b894
i18n_provenance: human
i18n_output_hash: c48312eff520
---
# Watermark Video {#watermark-video}
Brand een tekstwatermerk in elk frame van een video, met een instelbare positie, grootte, dekking en kleur.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/watermark-video`
Accepteert multipart form data met een videobestand en een JSON-veld `settings`.
## Parameters {#parameters}
| Parameter | Type | Vereist | Standaard | Beschrijving |
|-----------|------|----------|---------|-------------|
| text | string | Ja | - | Watermerktekst (1-200 tekens) |
| position | string | Nee | `"br"` | Positie op het frame: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | Nee | `36` | Lettergrootte in pixels (8-120) |
| opacity | number | Nee | `0.5` | Dekking van het watermerk (0.05-1) |
| color | string | Nee | `"#ffffff"` | Hexkleur voor de tekst (bijv. `"#ffffff"`) |
### Position Values {#position-values}
- **tl** - Linksboven, **tc** - Midden boven, **tr** - Rechtsboven
- **l** - Midden links, **c** - Midden, **r** - Midden rechts
- **bl** - Linksonder, **bc** - Midden onder, **br** - Rechtsonder
## 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}
- Het watermerk wordt permanent in de videoframes gerenderd en kan na de verwerking niet meer worden verwijderd.
- Het watermerk gebruikt een schreefloos lettertype dat in FFmpeg is ingebouwd.
- Voor beeldwatermerken gebruik je in plaats daarvan de image Watermark-tool.