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: "Einfarbige Balken hinzufügen, um ein Zielseitenverhältnis zu erreichen."
i18n_source_hash: b8e17dffc341
i18n_provenance: human
i18n_output_hash: 2c586be0fd20
---
# Seitenverhältnis auffüllen {#aspect-pad}
Fügen Sie einfarbige Letterbox- oder Pillarbox-Balken hinzu, um ein Video ohne Zuschneiden in ein Zielseitenverhältnis einzupassen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/aspect-pad`
Akzeptiert Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings`.
## Parameters {#parameters}
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|-----------|------|----------|---------|-------------|
| target | string | Nein | `"9:16"` | Zielseitenverhältnis: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| color | string | Nein | `"#000000"` | Hex-Farbe für die Auffüllbalken (z. B. `"#000000"` für Schwarz) |
## 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}
- Wenn das Video bereits dem Zielseitenverhältnis entspricht, wird die Datei unverändert zurückgegeben.
- Verwenden Sie `9:16` für vertikale/Hochformat-Social-Media-Formate (TikTok, Reels, Shorts).
- Für unscharfe Auffüllung anstelle einer einfarbigen Fläche verwenden Sie das Tool Blur Pad.
@@ -0,0 +1,48 @@
---
description: "Untertiteldateien aus Video-Audiospuren mit KI erzeugen."
i18n_source_hash: 35b1e78501ad
i18n_provenance: human
i18n_output_hash: 0ded5e0b7ef1
---
# Automatische Untertitel {#auto-subtitles}
Erzeugen Sie Untertiteldateien aus der Audiospur eines Videos mithilfe KI-gestützter Spracherkennung (faster-whisper). Unterstützt automatische Erkennung und 10 explizite Sprachen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/auto-subtitles`
Akzeptiert Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings`. Dies ist ein asynchroner Endpunkt - er gibt sofort `202 Accepted` zurück, und der Fortschritt wird über SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|-----------|------|----------|---------|-------------|
| language | string | Nein | `"auto"` | Sprache der Sprachaufnahme: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko`, `id`, `th`, `vi` |
| format | string | Nein | `"srt"` | Ausgabeformat der Untertitel: `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}
- Dies ist ein KI-Tool, das die Installation des **transcription**-Feature-Bundles erfordert. Wenn das Bundle nicht installiert ist, gibt die API `501 Feature Not Installed` mit Anweisungen zur Installation über die Admin-Oberfläche zurück.
- Die Sprachoption `auto` verwendet die integrierte Spracherkennung von whisper. Die explizite Angabe der Sprache verbessert Genauigkeit und Geschwindigkeit.
- SRT ist das am weitesten unterstützte Untertitelformat. VTT (WebVTT) ist der Standard für Web-Videoplayer.
- Fortschrittsaktualisierungen sind über SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Balken mit einer unscharfen Kopie des Videos füllen."
i18n_source_hash: 0c72aaefc6de
i18n_provenance: human
i18n_output_hash: ab60a31f1681
---
# Blur Pad {#blur-pad}
Passen Sie ein Video in ein Zielseitenverhältnis ein, indem Sie den Auffüllbereich mit einer unscharfen, skalierten Kopie des Videos statt mit einfarbigen Balken füllen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/blur-pad`
Akzeptiert Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings`.
## Parameters {#parameters}
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|-----------|------|----------|---------|-------------|
| target | string | Nein | `"16:9"` | Zielseitenverhältnis: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
| blur | number | Nein | `20` | Gaußsches Weichzeichnen-Sigma für den Hintergrund (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}
- Höhere Weichzeichnen-Werte erzeugen einen weicheren, abstrakteren Hintergrund. Niedrigere Werte lassen mehr Details sichtbar.
- Wenn das Video bereits dem Zielseitenverhältnis entspricht, wird die Datei unverändert zurückgegeben.
- Für einfarbige Auffüllung verwenden Sie stattdessen das Tool Aspect Pad.
@@ -0,0 +1,47 @@
---
description: "Untertitel dauerhaft in Videoframes einbrennen."
i18n_source_hash: 2d3111589db0
i18n_provenance: human
i18n_output_hash: bd82fdfa0130
---
# Burn Subtitles {#burn-subtitles}
Untertitel aus einer SRT-, VTT- oder ASS-Datei dauerhaft (fest kodiert) in jeden Frame eines Videos einbrennen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/burn-subtitles`
Nimmt Multipart-Formulardaten mit einer Videodatei und einer Untertiteldatei entgegen. Dies ist ein asynchroner Endpunkt: Er gibt sofort `202 Accepted` zurück, und der Fortschritt wird per SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fontSize | integer | No | `24` | Schriftgröße der Untertitel in Pixeln (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}
- Laden Sie zwei Dateien hoch: Die erste muss ein Video sein, die zweite eine Untertiteldatei (.srt, .vtt oder .ass).
- Eingebrannte Untertitel sind dauerhaft Teil des Videos und können vom Betrachter nicht ausgeschaltet werden. Für umschaltbare Untertitel verwenden Sie stattdessen das Tool Embed Subtitles.
- Fortschrittsaktualisierungen sind per SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Die Bildrate eines Videos ändern."
i18n_source_hash: 2bffbd04a1cb
i18n_provenance: human
i18n_output_hash: 88be64f5cda9
---
# Change FPS {#change-fps}
Die Bildrate eines Videos auf einen Zielwert zwischen 1 und 120 fps ändern.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/change-fps`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fps | number | No | `30` | Ziel-Bildrate (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}
- Das Senken der Bildrate lässt Frames weg und verringert die Dateigröße. Das Erhöhen dupliziert Frames, um die Lücke zu füllen, fügt aber keine echten Bewegungsdetails hinzu.
- Gängige Zielwerte: 24 (Kino), 30 (Web/Broadcast), 60 (flüssige Wiedergabe).
- Die Audiospur wird mit ihrer ursprünglichen Abtastrate beibehalten.
@@ -0,0 +1,47 @@
---
description: "Videodateigröße mit Qualitätssteuerung verringern."
i18n_source_hash: 9cc1f1acf74e
i18n_provenance: human
i18n_output_hash: c8799ddd34d5
---
# Compress Video {#compress-video}
Videodateigröße mit konfigurierbarer Kompressionsstärke und optionaler Auflösungsreduzierung verringern.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/compress-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen. Dies ist ein asynchroner Endpunkt: Er gibt sofort `202 Accepted` zurück, und der Fortschritt wird per SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| quality | string | No | `"balanced"` | Kompressionsstärke: `light`, `balanced`, `strong` |
| resolution | string | No | `"original"` | Ausgabeauflösung: `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}
- Die Voreinstellung `light` bewahrt eine nahezu originalgetreue Qualität. Die Voreinstellung `strong` verringert die Dateigröße aggressiv auf Kosten der visuellen Wiedergabetreue.
- Die Auflösungsreduzierung (z. B. von 4K auf 720p) verstärkt sich zusammen mit der Kompression für eine deutliche Größenreduzierung.
- Fortschrittsaktualisierungen sind per SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+47
View File
@@ -0,0 +1,47 @@
---
description: "Videos zwischen MP4, MOV, WebM, AVI und MKV konvertieren."
i18n_source_hash: 8f9e6418b1c6
i18n_provenance: human
i18n_output_hash: f2ccd8ab325a
---
# Convert Video {#convert-video}
Videos zwischen den Formaten MP4, MOV, WebM, AVI und MKV mit konfigurierbaren Qualitätsvoreinstellungen konvertieren.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/convert-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen. Dies ist ein asynchroner Endpunkt: Er gibt sofort `202 Accepted` zurück, und der Fortschritt wird per SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp4"` | Ausgabeformat: `mp4`, `mov`, `webm`, `avi`, `mkv` |
| quality | string | No | `"balanced"` | Qualitätsvoreinstellung: `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}
- Die Qualitätsvoreinstellung `high` erzeugt die beste visuelle Wiedergabetreue, aber größere Dateien. Die Voreinstellung `small` komprimiert aggressiv für minimale Dateigröße.
- WebM-Ausgabe verwendet VP9-Kodierung. MP4 und MOV verwenden H.264. AVI und MKV sind für Legacy- oder Archivierungs-Workflows verfügbar.
- Fortschrittsaktualisierungen sind per SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Einen Bereich aus einem Video ausschneiden."
i18n_source_hash: fab11f71a202
i18n_provenance: human
i18n_output_hash: 0f90623074bc
---
# Crop Video {#crop-video}
Einen rechteckigen Bereich aus einem Video ausschneiden, indem Größe und Position des Bereichs angegeben werden.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/crop-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| width | integer | Yes | - | Breite des Zuschneidebereichs in Pixeln (Minimum 16) |
| height | integer | Yes | - | Höhe des Zuschneidebereichs in Pixeln (Minimum 16) |
| x | integer | No | `0` | Horizontaler Versatz von der oberen linken Ecke |
| y | integer | No | `0` | Vertikaler Versatz von der oberen linken Ecke |
## 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}
- Der Zuschneidebereich muss innerhalb der Videoabmessungen liegen. Wenn `x + width` oder `y + height` die Quellgröße überschreitet, gibt die Anfrage einen 400-Fehler zurück.
- Die minimale Zuschneidegröße beträgt 16x16 Pixel.
- Abmessungen werden auf gerade Zahlen gerundet, wie es die meisten Videocodecs erfordern.
@@ -0,0 +1,49 @@
---
description: "Eine Untertitelspur in den Videocontainer muxen."
i18n_source_hash: be272730fff5
i18n_provenance: human
i18n_output_hash: bf8b16e90b55
---
# Embed Subtitles {#embed-subtitles}
Eine Untertiteldatei als weiche Untertitelspur in den Videocontainer muxen, die Betrachter ein- oder ausschalten können.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/embed-subtitles`
Nimmt Multipart-Formulardaten mit einer Videodatei und einer Untertiteldatei sowie einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| language | string | No | `"eng"` | ISO 639-2/B-Sprachcode (3 Kleinbuchstaben, z. B. `"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}
- Laden Sie zwei Dateien hoch: Die erste muss ein Video sein, die zweite eine Untertiteldatei (.srt, .vtt oder .ass).
- Eingebettete (weiche) Untertitel können vom Betrachter in seinem Media-Player umgeschaltet werden. Für dauerhaft sichtbare Untertitel verwenden Sie stattdessen das Tool Burn Subtitles.
- Der Sprachcode wird als Metadaten im Container gespeichert und hilft Media-Playern, die Untertitelspur zu kennzeichnen.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Die Audiospur aus einem Video herausziehen."
i18n_source_hash: f5b8330a5f89
i18n_provenance: human
i18n_output_hash: b28c019d8900
---
# Extract Audio {#extract-audio}
Die Audiospur aus einer Videodatei extrahieren und als MP3, WAV, M4A oder OGG speichern.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-audio`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp3"` | Ausgabe-Audioformat: `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}
- Wenn das Video keine Audiospur hat, gibt die Anfrage einen 400-Fehler zurück.
- MP3 ist verlustbehaftet, aber weithin kompatibel. WAV ist verlustfrei, aber groß. M4A (AAC) bietet ein gutes Gleichgewicht zwischen Qualität und Größe. OGG ist für Workflows mit offenen Codecs verfügbar.
- Wenn die Quellaudiospur bereits AAC ist und das Ausgabeformat M4A lautet, wird der Audiostream ohne Neukodierung kopiert.
@@ -0,0 +1,45 @@
---
description: "Die Untertitelspur als SRT-Datei aus einem Video herausziehen."
i18n_source_hash: 48db860f6676
i18n_provenance: human
i18n_output_hash: 36b98926e9e1
---
# Extract Subtitles {#extract-subtitles}
Die eingebettete Untertitelspur aus einem Videocontainer extrahieren und als SRT-Datei herunterladen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/extract-subtitles`
Nimmt Multipart-Formulardaten mit einer Videodatei entgegen. Dieses Tool hat keine konfigurierbaren Einstellungen.
## Parameters {#parameters}
Dieses Tool hat keine Parameter. Es extrahiert die erste im Videocontainer gefundene Untertitelspur.
## 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}
- Das Video muss eine eingebettete Untertitelspur enthalten. Wenn keine Untertitelspur gefunden wird, gibt die Anfrage einen 400-Fehler zurück.
- Wenn das Video mehrere Untertitelspuren hat, wird die erste extrahiert.
- Das Ausgabeformat ist SRT, unabhängig vom ursprünglichen Untertitelformat im Container.
+48
View File
@@ -0,0 +1,48 @@
---
description: "Ein animiertes GIF in ein MP4-, WebM- oder MOV-Video konvertieren."
i18n_source_hash: c3737b31146d
i18n_provenance: human
i18n_output_hash: fa3b89f36e19
---
# GIF to Video {#gif-to-video}
Ein animiertes GIF in eine kompakte MP4-, WebM- oder MOV-Videodatei konvertieren.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/gif-to-video`
Nimmt Multipart-Formulardaten mit einer GIF-Datei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp4"` | Ausgabeformat: `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}
- Die Konvertierung von GIF zu Video verringert die Dateigröße typischerweise um 80-90 %, während dieselbe visuelle Qualität erhalten bleibt.
- Es werden nur animierte GIF-Dateien akzeptiert. Für statische Bilder sollte das Bild-Tool Convert verwendet werden.
- MP4 und MOV verwenden H.264-Kodierung, WebM verwendet VP9.
@@ -0,0 +1,54 @@
---
description: "Eine Reihe von Bildern in ein Diashow-Video verwandeln."
i18n_source_hash: 2c6f183feb6d
i18n_provenance: human
i18n_output_hash: 63bf82273377
---
# Images to Video {#images-to-video}
Eine Reihe von Bildern in ein Diashow-Video mit konfigurierbarer Anzeigedauer pro Bild, Auflösung und Bildrate verwandeln.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/images-to-video`
Nimmt Multipart-Formulardaten mit zwei oder mehr Bilddateien und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| secondsPerImage | number | No | `2` | Anzeigedauer pro Bild in Sekunden (0.5-10) |
| resolution | string | No | `"720p"` | Ausgabeauflösung: `1080p`, `720p`, `square` |
| fps | integer | No | `30` | Ausgabe-Bildrate (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}
- Akzeptiert 2-60 Bilddateien pro Anfrage. Die Bilder erscheinen im Video in der Reihenfolge des Uploads.
- Bilder werden skaliert und aufgefüllt, um in die Zielauflösung zu passen, wobei das Seitenverhältnis erhalten bleibt.
- Die Auflösungsoption `square` erzeugt ein 1080x1080-Video, das für soziale Medien nützlich ist.
- Das Ausgabeformat ist immer MP4 (H.264).
+46
View File
@@ -0,0 +1,46 @@
---
description: "Mehrere Videoclips zu einer Datei zusammenfügen."
i18n_source_hash: 90463dfbb580
i18n_provenance: human
i18n_output_hash: 342f5ae0ad32
---
# Merge Videos {#merge-videos}
Mehrere Videoclips zu einer einzigen MP4-Datei zusammenfügen. Alle Eingaben werden auf die Auflösung des ersten Videos und 30 fps normalisiert.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/merge-videos`
Nimmt Multipart-Formulardaten mit zwei oder mehr Videodateien entgegen. Dies ist ein asynchroner Endpunkt: Er gibt sofort `202 Accepted` zurück, und der Fortschritt wird per SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
Dieses Tool hat keine Einstellungsparameter. Laden Sie 2-10 Videodateien als mehrere `file`-Teile hoch.
## 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}
- Die Clips werden in der Reihenfolge aneinandergereiht, in der sie hochgeladen werden.
- Alle Clips werden neu kodiert, um die Auflösung, Bildrate (30 fps) und den Codec (H.264) des ersten Clips anzupassen. Nicht übereinstimmende Eingaben werden automatisch normalisiert.
- Akzeptiert 2-10 Videodateien pro Anfrage.
- Fortschrittsaktualisierungen sind per SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+44
View File
@@ -0,0 +1,44 @@
---
description: "Die Audiospur aus einem Video entfernen."
i18n_source_hash: 9a0c60bbcaa3
i18n_provenance: human
i18n_output_hash: fecf07ecb196
---
# Mute Video {#mute-video}
Die Audiospur aus einem Video entfernen, sodass nur der visuelle Stream übrig bleibt.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/mute-video`
Nimmt Multipart-Formulardaten mit einer Videodatei entgegen. Dieses Tool hat keine konfigurierbaren Einstellungen.
## Parameters {#parameters}
Dieses Tool hat keine Parameter. Es entfernt die Audiospur aus dem hochgeladenen 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}
- Der Videostream wird ohne Neukodierung kopiert, sodass kein Qualitätsverlust auftritt.
- Wenn das Eingabevideo keine Audiospur hat, wird die Datei unverändert zurückgegeben.
+46
View File
@@ -0,0 +1,46 @@
---
description: "Die Audiospur eines Videos durch eine andere Datei ersetzen."
i18n_source_hash: fabc2a953103
i18n_provenance: human
i18n_output_hash: a166fd66890e
---
# Replace Audio {#replace-audio}
Die Audiospur eines Videos durch eine Audiodatei ersetzen. Laden Sie sowohl ein Video als auch eine Audiodatei hoch.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/replace-audio`
Nimmt Multipart-Formulardaten mit genau zwei Dateien entgegen: einer Videodatei, gefolgt von einer Audiodatei.
## Parameters {#parameters}
Dieses Tool hat keine Einstellungsparameter. Laden Sie eine Videodatei und eine Audiodatei als zwei `file`-Teile hoch.
## 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}
- Es müssen genau zwei Dateien hochgeladen werden: Die erste muss ein Video sein, die zweite eine Audiodatei.
- Wenn die Audiodatei länger als das Video ist, wird sie auf die Videodauer gekürzt. Ist sie kürzer, läuft das verbleibende Video ohne Ton.
- Der Videostream wird ohne Neukodierung kopiert, sodass kein Videoqualitätsverlust auftritt.
+61
View File
@@ -0,0 +1,61 @@
---
description: "Ein Video auf eine neue Auflösung oder voreingestellte Größe skalieren."
i18n_source_hash: bb1f67871fea
i18n_provenance: human
i18n_output_hash: 93d1f5cb2e90
---
# Resize Video {#resize-video}
Ein Video mit benutzerdefinierten Pixelabmessungen oder einer Standardvoreinstellung auf eine neue Auflösung skalieren.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/resize-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| width | integer | No | - | Zielbreite in Pixeln (16-7680) |
| height | integer | No | - | Zielhöhe in Pixeln (16-4320) |
| preset | string | No | `"custom"` | Auflösungsvoreinstellung: `custom`, `2160p`, `1440p`, `1080p`, `720p`, `480p`, `360p` |
Wenn `preset` `"custom"` ist, muss mindestens einer von `width` oder `height` angegeben werden. Die andere Dimension wird proportional skaliert.
## 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"}'
```
Auf benutzerdefinierte Abmessungen skalieren:
```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}
- Voreinstellungswerte werden auf Standardhöhen abgebildet (z. B. `720p` = 1280x720, `1080p` = 1920x1080). Die Breite skaliert proportional zum Seitenverhältnis der Quelle.
- Abmessungen werden auf gerade Zahlen gerundet, wie es die meisten Videocodecs erfordern.
- Die maximal unterstützte Auflösung beträgt 7680x4320 (8K UHD).
+44
View File
@@ -0,0 +1,44 @@
---
description: "Einen Videoclip rückwärts abspielen."
i18n_source_hash: 98226f4e092d
i18n_provenance: human
i18n_output_hash: b787a0c53f93
---
# Reverse Video {#reverse-video}
Einen Videoclip rückwärts abspielen. Die Audiospur wird ebenfalls umgekehrt.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/reverse-video`
Nimmt Multipart-Formulardaten mit einer Videodatei entgegen. Dieses Tool hat keine konfigurierbaren Einstellungen.
## Parameters {#parameters}
Dieses Tool hat keine Parameter. Es kehrt das gesamte Video um.
## 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}
- Begrenzt auf Clips mit einer Länge von bis zu 5 Minuten. Längere Videos werden mit einem 400-Fehler abgelehnt.
- Sowohl die Video- als auch die Audiospur werden umgekehrt. Um das Video ohne Ton umzukehren, stellen Sie es zuerst stumm.
+55
View File
@@ -0,0 +1,55 @@
---
description: "Ein Video drehen oder spiegeln."
i18n_source_hash: cf9620ca62c7
i18n_provenance: human
i18n_output_hash: e2166bb11365
---
# Rotate Video {#rotate-video}
Ein Video um 90, 180 oder 270 Grad drehen oder es horizontal oder vertikal spiegeln.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/rotate-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| transform | string | Yes | - | Anzuwendende Transformation: `cw90`, `ccw90`, `180`, `hflip`, `vflip` |
### Transform Values {#transform-values}
- **cw90** - Um 90 Grad im Uhrzeigersinn drehen
- **ccw90** - Um 90 Grad gegen den Uhrzeigersinn drehen
- **180** - Um 180 Grad drehen
- **hflip** - Horizontal spiegeln (Spiegelbild)
- **vflip** - Vertikal spiegeln
## 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}
- Drehungen um 90 oder 270 Grad vertauschen Breite und Höhe des Videos.
- Spiegeloperationen (hflip, vflip) ändern die Videoabmessungen nicht.
@@ -0,0 +1,46 @@
---
description: "Verwacklungen mit Zwei-Pass-Stabilisierung reduzieren."
i18n_source_hash: ec908e91a752
i18n_provenance: human
i18n_output_hash: f27b80786d66
---
# Stabilize Video {#stabilize-video}
Verwacklungen in Handheld-Aufnahmen mit der Zwei-Pass-vidstab-Stabilisierung von FFmpeg reduzieren.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/stabilize-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen. Dies ist ein asynchroner Endpunkt: Er gibt sofort `202 Accepted` zurück, und der Fortschritt wird per SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| smoothing | integer | No | `15` | Größe des Glättungsfensters in Frames (5-60). Höhere Werte erzeugen eine gleichmäßigere Bewegung |
## 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}
- Die Stabilisierung ist ein Zwei-Pass-Prozess: Der erste Durchlauf analysiert die Kamerabewegung, und der zweite Durchlauf wendet die Korrektur an. Dies dauert etwa doppelt so lange wie bei Single-Pass-Tools.
- Höhere Glättungswerte entfernen mehr Verwacklungen, können aber an den Rändern einen leichten Zoom-Zuschnitt einführen.
- Fortschrittsaktualisierungen sind per SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+50
View File
@@ -0,0 +1,50 @@
---
description: "Einen Clip aus einem Video durch Angabe von Start- und Endzeiten ausschneiden."
i18n_source_hash: c84481641979
i18n_provenance: human
i18n_output_hash: 13a9b877e396
---
# Trim Video {#trim-video}
Einen Clip aus einem Video durch Angabe von Start- und Endzeiten in Sekunden ausschneiden, mit einer Option für frame-genaue Schnitte.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/trim-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| startS | number | No | `0` | Startzeit in Sekunden (muss >= 0 sein) |
| endS | number | Yes | - | Endzeit in Sekunden (muss nach startS liegen) |
| precise | boolean | No | `false` | Für frame-genaue Schnitte neu kodieren statt Keyframe-Suche |
## 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}
- Wenn `precise` `false` ist (der Standard), verwendet das Tool die Keyframe-Suche, die schnell ist, aber möglicherweise einige Frames vor der angeforderten Zeit beginnt.
- Wenn `precise` auf `true` gesetzt wird, wird das Segment für exakte Frame-Grenzen neu kodiert, was jedoch länger dauert.
- Der Wert `endS` muss größer als `startS` sein.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Helligkeit, Kontrast, Sättigung und Gamma eines Videos anpassen."
i18n_source_hash: 40483b79d44b
i18n_provenance: human
i18n_output_hash: 4e97fb1510e0
---
# Video Color {#video-color}
Helligkeit, Kontrast, Sättigung und Gammakorrektur eines Videos anpassen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-color`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| brightness | number | No | `0` | Helligkeitsanpassung (-1 bis 1) |
| contrast | number | No | `1` | Kontrastmultiplikator (0-4) |
| saturation | number | No | `1` | Sättigungsmultiplikator (0-3). Auf 0 setzen für Graustufen |
| gamma | number | No | `1` | Gammakorrektur (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 Werte auf ihren Standardwerten (Helligkeit 0, Kontrast 1, Sättigung 1, Gamma 1) bewirken keine Änderung.
- Wenn die Sättigung auf `0` gesetzt wird, wird das Video in Graustufen umgewandelt.
- Gammawerte unter 1 hellen Schatten auf, während Werte über 1 sie abdunkeln.
@@ -0,0 +1,45 @@
---
description: "Video-Audiolautstärke auf den Broadcast-Standard normalisieren."
i18n_source_hash: 078f1e819c9a
i18n_provenance: human
i18n_output_hash: e019971d4c7a
---
# Normalize Audio {#normalize-audio}
Video-Audiolautstärke auf den EBU-R128-Broadcast-Lautheitsstandard normalisieren.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-loudnorm`
Nimmt Multipart-Formulardaten mit einer Videodatei entgegen. Dieses Tool hat keine konfigurierbaren Einstellungen.
## Parameters {#parameters}
Dieses Tool hat keine Parameter. Es wendet die EBU-R128-Lautheitsnormalisierung auf die Audiospur an.
## 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}
- Verwendet den `loudnorm`-Filter von FFmpeg, der auf -16 LUFS integrierte Lautheit mit -1.5 dBTP True Peak und 11 LU Lautheitsbereich abzielt (EBU-R128-Broadcast-Standard).
- Die Abtastrate des Quellaudios wird in der Ausgabe beibehalten.
- Wenn das Video keine Audiospur hat, gibt die Anfrage einen 400-Fehler zurück.
@@ -0,0 +1,54 @@
---
description: "Metadaten aus einem Video entfernen und melden, was gefunden wurde."
i18n_source_hash: 69621bfb98ca
i18n_provenance: human
i18n_output_hash: 1656eeff847e
---
# Clean Video Metadata {#clean-video-metadata}
Metadaten (Erstellungsdatum, GPS-Koordinaten, Kameramodell, Software-Tags usw.) aus einem Video entfernen und melden, was entfernt wurde.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-metadata`
Nimmt Multipart-Formulardaten mit einer Videodatei entgegen. Dieses Tool hat keine konfigurierbaren Einstellungen.
## Parameters {#parameters}
Dieses Tool hat keine Parameter. Es entfernt alle Metadaten aus dem 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}
- Zu den entfernten Metadaten gehören Erstellungszeitstempel, GPS-/Standortdaten, Kamera-/Geräteinformationen und Software-Tags.
- Die Video- und Audiostreams werden ohne Neukodierung kopiert, sodass kein Qualitätsverlust auftritt.
- Nützlich für den Datenschutz, bevor Videos öffentlich geteilt werden.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Ein Video beschleunigen oder verlangsamen."
i18n_source_hash: 98dfc75c0507
i18n_provenance: human
i18n_output_hash: 832795c6b5d1
---
# Video Speed {#video-speed}
Ein Video mit einer Option zur Beibehaltung der Audio-Tonhöhe beschleunigen oder verlangsamen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-speed`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| factor | number | No | `2` | Geschwindigkeitsmultiplikator (0.25-4). Werte über 1 beschleunigen, unter 1 verlangsamen |
| keepPitch | boolean | No | `true` | Audio-Tonhöhe bei Geschwindigkeitsänderung beibehalten |
## 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}
- Ein Faktor von `2` verdoppelt die Wiedergabegeschwindigkeit (halbiert die Dauer). Ein Faktor von `0.5` halbiert die Wiedergabegeschwindigkeit (verdoppelt die Dauer).
- Wenn `keepPitch` `true` ist, wird das Audio zeitgestreckt, sodass Stimmen natürlich klingen. Bei `false` verschiebt sich die Tonhöhe proportional zur Geschwindigkeit.
- Der gültige Bereich ist 0.25x bis 4x.
@@ -0,0 +1,62 @@
---
description: "Frames aus einem Video als ZIP mit Bildern extrahieren."
i18n_source_hash: b06f038dafb3
i18n_provenance: human
i18n_output_hash: fcb97abe8b99
---
# Video to Frames {#video-to-frames}
Einzelne Frames aus einem Video extrahieren und als ZIP-Archiv mit PNG- oder JPG-Bildern herunterladen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-frames`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| mode | string | No | `"all"` | Extraktionsmodus: `all`, `nth`, `timestamps` |
| n | integer | No | `10` | Jeden N-ten Frame extrahieren (2-1000). Wird nur verwendet, wenn der Modus `"nth"` ist |
| timestamps | string | No | `""` | Kommagetrennte Zeitstempel in Sekunden. Erforderlich, wenn der Modus `"timestamps"` ist |
| format | string | No | `"png"` | Bildformat für extrahierte Frames: `png`, `jpg` |
## Example Request {#example-request}
Jeden 30. Frame als JPG extrahieren:
```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 zu bestimmten Zeitstempeln extrahieren:
```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}
- Der Modus `all` extrahiert jeden Frame und kann bei langen Videos sehr große ZIP-Dateien erzeugen. Verwenden Sie den Modus `nth` oder `timestamps` für eine selektive Extraktion.
- PNG bewahrt die volle Qualität, erzeugt aber größere Dateien. JPG ist kleiner, aber verlustbehaftet.
- Die Antwort wird als ZIP-Archiv heruntergeladen, das fortlaufend nummerierte Bilddateien enthält.
+49
View File
@@ -0,0 +1,49 @@
---
description: "Einen Videoclip in ein animiertes GIF verwandeln."
i18n_source_hash: f729dde8cd55
i18n_provenance: human
i18n_output_hash: 8de2f0e20107
---
# Video to GIF {#video-to-gif}
Einen Videoclip in ein animiertes GIF mit konfigurierbarer Bildrate, Breite, Startzeit und Dauer verwandeln.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-gif`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen. Dies ist ein asynchroner Endpunkt: Er gibt sofort `202 Accepted` zurück, und der Fortschritt wird per SSE unter `GET /api/v1/jobs/{jobId}/progress` gestreamt.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fps | integer | No | `12` | Ausgabe-Bildrate (1-30) |
| width | integer | No | `480` | Ausgabebreite in Pixeln (64-1280). Die Höhe skaliert proportional |
| startS | number | No | `0` | Startzeit in Sekunden (muss >= 0 sein) |
| durationS | number | No | `5` | Dauer in Sekunden (über 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}
- Niedrigere Werte für `fps` und `width` erzeugen kleinere GIF-Dateien. Ein 480px breites GIF mit 12 fps ist meist ein guter Kompromiss.
- Die maximale Dauer beträgt 60 Sekunden. Längere Clips erzeugen sehr große Dateien.
- Fortschrittsaktualisierungen sind per SSE unter `GET /api/v1/jobs/{jobId}/progress` verfügbar, bis der Job abgeschlossen ist.
+51
View File
@@ -0,0 +1,51 @@
---
description: "Einen Videoclip in ein animiertes WebP-Bild konvertieren."
i18n_source_hash: 7b1a22459bd1
i18n_provenance: human
i18n_output_hash: 650faf06b8aa
---
# Video to WebP {#video-to-webp}
Einen Videoclip in ein animiertes WebP-Bild mit konfigurierbarer Bildrate, Breite und Qualität konvertieren.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/video-to-webp`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| fps | integer | No | `12` | Ausgabe-Bildrate (1-30) |
| width | integer | No | `480` | Ausgabebreite in Pixeln (16-1920). Die Höhe skaliert proportional |
| quality | integer | No | `75` | WebP-Kompressionsqualität (1-100) |
| loop | boolean | No | `true` | Die Animation in Schleife abspielen |
## 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}
- Animiertes WebP erzeugt kleinere Dateien als GIF mit besserer Farbunterstützung (24 Bit gegenüber 8-Bit-Palette).
- Niedrigere Werte für `quality` erzeugen kleinere Dateien auf Kosten der visuellen Wiedergabetreue.
- Setzen Sie `loop` auf `false` für Animationen, die einmal abgespielt werden und dann stoppen sollen.
@@ -0,0 +1,58 @@
---
description: "Ein Text-Wasserzeichen in Videoframes einbrennen."
i18n_source_hash: 937bb075b894
i18n_provenance: human
i18n_output_hash: 10ed166a9871
---
# Watermark Video {#watermark-video}
Ein Text-Wasserzeichen mit konfigurierbarer Position, Größe, Deckkraft und Farbe in jeden Frame eines Videos einbrennen.
## API Endpoint {#api-endpoint}
`POST /api/v1/tools/video/watermark-video`
Nimmt Multipart-Formulardaten mit einer Videodatei und einem JSON-Feld `settings` entgegen.
## Parameters {#parameters}
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| text | string | Yes | - | Wasserzeichentext (1-200 Zeichen) |
| position | string | No | `"br"` | Position auf dem Frame: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
| fontSize | integer | No | `36` | Schriftgröße in Pixeln (8-120) |
| opacity | number | No | `0.5` | Deckkraft des Wasserzeichens (0.05-1) |
| color | string | No | `"#ffffff"` | Hex-Farbe für den Text (z. B. `"#ffffff"`) |
### Position Values {#position-values}
- **tl** - Oben links, **tc** - Oben mittig, **tr** - Oben rechts
- **l** - Mitte links, **c** - Mitte, **r** - Mitte rechts
- **bl** - Unten links, **bc** - Unten mittig, **br** - Unten rechts
## 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}
- Das Wasserzeichen wird dauerhaft in die Videoframes gerendert und kann nach der Verarbeitung nicht mehr entfernt werden.
- Das Wasserzeichen verwendet eine in FFmpeg integrierte serifenlose Schrift.
- Für Bild-Wasserzeichen verwenden Sie stattdessen das Bild-Tool Watermark.