mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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:
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Lägg till enfärgade fält för att passa ett målformat."
|
||||
i18n_source_hash: b8e17dffc341
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: ef782639c63a
|
||||
---
|
||||
|
||||
# Aspect Pad {#aspect-pad}
|
||||
|
||||
Lägg till enfärgade letterbox- eller pillarbox-fält för att få en video att passa in i ett målbildförhållande utan att beskära.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/aspect-pad`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| target | string | Nej | `"9:16"` | Målbildförhållande: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
|
||||
| color | string | Nej | `"#000000"` | Hex-färg för utfyllnadsfälten (t.ex. `"#000000"` för svart) |
|
||||
|
||||
## 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}
|
||||
|
||||
- Om videon redan matchar målbildförhållandet returneras filen oförändrad.
|
||||
- Använd `9:16` för vertikala/porträttformat för sociala medier (TikTok, Reels, Shorts).
|
||||
- För suddig utfyllnad istället för enfärgad, använd verktyget Blur Pad.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Generera undertextfiler från videons ljudspår med AI."
|
||||
i18n_source_hash: 35b1e78501ad
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e073c48141c0
|
||||
---
|
||||
|
||||
# Auto Subtitles {#auto-subtitles}
|
||||
|
||||
Generera undertextfiler från en videos ljudspår med AI-driven taligenkänning (faster-whisper). Stöder automatisk igenkänning och 10 uttryckliga språk.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/auto-subtitles`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| language | string | Nej | `"auto"` | Talat språk: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko`, `id`, `th`, `vi` |
|
||||
| format | string | Nej | `"srt"` | Utdataformat för undertext: `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}
|
||||
|
||||
- Detta är ett AI-verktyg som kräver att funktionspaketet **transcription** är installerat. Om paketet inte är installerat returnerar API:et `501 Feature Not Installed` med instruktioner om hur du installerar det via administratörsgränssnittet.
|
||||
- Språkalternativet `auto` använder whispers inbyggda språkigenkänning. Att ange språket uttryckligen förbättrar träffsäkerheten och hastigheten.
|
||||
- SRT är det bredast stödda undertextformatet. VTT (WebVTT) är standarden för webbvideospelare.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Fyll fälten med en suddig kopia av videon."
|
||||
i18n_source_hash: 0c72aaefc6de
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5e6753613e73
|
||||
---
|
||||
|
||||
# Blur Pad {#blur-pad}
|
||||
|
||||
Få en video att passa in i ett målbildförhållande genom att fylla utfyllnadsområdet med en suddig, skalad kopia av videon istället för enfärgade fält.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/blur-pad`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| target | string | Nej | `"16:9"` | Målbildförhållande: `16:9`, `9:16`, `1:1`, `4:3`, `3:4` |
|
||||
| blur | number | Nej | `20` | Gaussisk oskärpa-sigma för bakgrunden (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ögre oskärpevärden ger en mjukare, mer abstrakt bakgrund. Lägre värden behåller mer synliga detaljer.
|
||||
- Om videon redan matchar målbildförhållandet returneras filen oförändrad.
|
||||
- För enfärgad utfyllnad, använd verktyget Aspect Pad istället.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Rendrera undertexter permanent på videobildrutor."
|
||||
i18n_source_hash: 2d3111589db0
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: abeaacc1d1fc
|
||||
---
|
||||
|
||||
# Bränn in undertexter {#burn-subtitles}
|
||||
|
||||
Rendrera (hårdkoda) permanent undertexter från en SRT-, VTT- eller ASS-fil på varje bildruta i en video.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/burn-subtitles`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och en undertextfil. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| fontSize | integer | Nej | `24` | Teckenstorlek för undertext i pixlar (8-72) |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Ladda upp två filer: den första måste vara en video, den andra måste vara en undertextfil (.srt, .vtt eller .ass).
|
||||
- Inbrända undertexter är permanent en del av videon och kan inte stängas av av tittaren. För undertexter som kan slås av och på, använd verktyget Bädda in undertexter i stället.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Ändra bildhastigheten för en video."
|
||||
i18n_source_hash: 2bffbd04a1cb
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: bc8c2f68fdfb
|
||||
---
|
||||
|
||||
# Ändra FPS {#change-fps}
|
||||
|
||||
Ändra bildhastigheten för en video till ett målvärde mellan 1 och 120 fps.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/change-fps`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| fps | number | Nej | `30` | Målbildhastighet (1-120) |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 10200000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Att sänka bildhastigheten släpper bildrutor och minskar filstorleken. Att öka den duplicerar bildrutor för att fylla luckan men tillför ingen verklig rörelsedetalj.
|
||||
- Vanliga målvärden: 24 (bio), 30 (webb/broadcast), 60 (jämn uppspelning).
|
||||
- Ljudspåret bevaras med sin ursprungliga samplingsfrekvens.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Krymp videofilstorleken med kvalitetskontroll."
|
||||
i18n_source_hash: 9cc1f1acf74e
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c8050cf2ea62
|
||||
---
|
||||
|
||||
# Komprimera video {#compress-video}
|
||||
|
||||
Krymp videofilstorleken med konfigurerbar komprimeringsstyrka och valfri nedskalning av upplösning.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/compress-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| quality | string | Nej | `"balanced"` | Komprimeringsstyrka: `light`, `balanced`, `strong` |
|
||||
| resolution | string | Nej | `"original"` | Utdataupplösning: `original`, `1080p`, `720p`, `480p` |
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Förinställningen `light` bevarar nära originalkvalitet. Förinställningen `strong` minskar filstorleken aggressivt på bekostnad av visuell trohet.
|
||||
- Nedskalning av upplösning (t.ex. från 4K till 720p) kombineras med komprimering för betydande storleksminskning.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Konvertera videor mellan MP4, MOV, WebM, AVI och MKV."
|
||||
i18n_source_hash: 8f9e6418b1c6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b7978a51a1ab
|
||||
---
|
||||
|
||||
# Konvertera video {#convert-video}
|
||||
|
||||
Konvertera videor mellan formaten MP4, MOV, WebM, AVI och MKV med konfigurerbara kvalitetsförinställningar.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/convert-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Nej | `"mp4"` | Utdataformat: `mp4`, `mov`, `webm`, `avi`, `mkv` |
|
||||
| quality | string | Nej | `"balanced"` | Kvalitetsförinställning: `high`, `balanced`, `small` |
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Kvalitetsförinställningen `high` ger bäst visuell trohet men större filer. Förinställningen `small` komprimerar aggressivt för minsta möjliga filstorlek.
|
||||
- WebM-utdata använder VP9-kodning. MP4 och MOV använder H.264. AVI och MKV finns tillgängliga för äldre eller arkivbaserade arbetsflöden.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: "Beskär en region ur en video."
|
||||
i18n_source_hash: fab11f71a202
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: d51cf160a512
|
||||
---
|
||||
|
||||
# Beskär video {#crop-video}
|
||||
|
||||
Beskär en rektangulär region ur en video genom att ange regionens storlek och position.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/crop-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| width | integer | Ja | - | Bredd på beskärningsregionen i pixlar (minimum 16) |
|
||||
| height | integer | Ja | - | Höjd på beskärningsregionen i pixlar (minimum 16) |
|
||||
| x | integer | Nej | `0` | Horisontell förskjutning från övre vänstra hörnet |
|
||||
| y | integer | Nej | `0` | Vertikal förskjutning från övre vänstra hörnet |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 5200000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Beskärningsregionen måste rymmas inom videons dimensioner. Om `x + width` eller `y + height` överskrider källstorleken returnerar begäran ett 400-fel.
|
||||
- Minsta beskärningsstorlek är 16x16 pixlar.
|
||||
- Dimensioner avrundas till jämna tal enligt kraven hos de flesta videocodecs.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Muxa ett undertextspår in i videocontainern."
|
||||
i18n_source_hash: be272730fff5
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b8292b149752
|
||||
---
|
||||
|
||||
# Bädda in undertexter {#embed-subtitles}
|
||||
|
||||
Muxa en undertextfil in i videocontainern som ett mjukt undertextspår som tittarna kan slå av och på.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/embed-subtitles`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och en undertextfil, plus ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| language | string | Nej | `"eng"` | Språkkod enligt ISO 639-2/B (3 gemena bokstäver, t.ex. `"eng"`, `"fra"`, `"deu"`) |
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 12520000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Ladda upp två filer: den första måste vara en video, den andra måste vara en undertextfil (.srt, .vtt eller .ass).
|
||||
- Inbäddade (mjuka) undertexter kan slås av och på av tittaren i deras mediaspelare. För permanent synliga undertexter, använd verktyget Bränn in undertexter i stället.
|
||||
- Språkkoden lagras som metadata i containern och hjälper mediaspelare att märka undertextspåret.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Dra ut ljudspåret ur en video."
|
||||
i18n_source_hash: f5b8330a5f89
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: cb41c39b0224
|
||||
---
|
||||
|
||||
# Extrahera ljud {#extract-audio}
|
||||
|
||||
Extrahera ljudspåret från en videofil och spara det som MP3, WAV, M4A eller OGG.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/extract-audio`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Nej | `"mp3"` | Utdataljudformat: `mp3`, `wav`, `m4a`, `ogg` |
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp3",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 3200000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Om videon inte har något ljudspår returnerar begäran ett 400-fel.
|
||||
- MP3 är förstörande men brett kompatibelt. WAV är förlustfritt men stort. M4A (AAC) erbjuder en bra balans mellan kvalitet och storlek. OGG finns tillgängligt för arbetsflöden med öppna codecs.
|
||||
- När källjudet redan är AAC och utdataformatet är M4A kopieras ljudströmmen utan omkodning.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Dra ut undertextspåret ur en video som en SRT-fil."
|
||||
i18n_source_hash: 48db860f6676
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e59d5b391e74
|
||||
---
|
||||
|
||||
# Extrahera undertexter {#extract-subtitles}
|
||||
|
||||
Extrahera det inbäddade undertextspåret från en videocontainer och ladda ner det som en SRT-fil.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/extract-subtitles`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil. Detta verktyg har inga konfigurerbara inställningar.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga parametrar. Det extraherar det första undertextspåret som hittas i videocontainern.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.srt",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 4500
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Videon måste innehålla ett inbäddat undertextspår. Om inget undertextspår hittas returnerar begäran ett 400-fel.
|
||||
- Om videon har flera undertextspår extraheras det första.
|
||||
- Utdataformatet är SRT oavsett det ursprungliga undertextformatet i containern.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Konvertera en animerad GIF till en MP4-, WebM- eller MOV-video."
|
||||
i18n_source_hash: c3737b31146d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: af290662a4c7
|
||||
---
|
||||
|
||||
# GIF till video {#gif-to-video}
|
||||
|
||||
Konvertera en animerad GIF till en kompakt MP4-, WebM- eller MOV-videofil.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/gif-to-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en GIF-fil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Nej | `"mp4"` | Utdataformat: `mp4`, `webm`, `mov` |
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/animation.mp4",
|
||||
"originalSize": 8500000,
|
||||
"processedSize": 950000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Att konvertera GIF till video minskar vanligtvis filstorleken med 80-90 % samtidigt som samma visuella kvalitet bibehålls.
|
||||
- Endast animerade GIF-filer accepteras. Statiska bilder bör använda bildverktyget Konvertera.
|
||||
- MP4 och MOV använder H.264-kodning, WebM använder VP9.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Gör en uppsättning bilder till en bildspelsvideo."
|
||||
i18n_source_hash: 2c6f183feb6d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b3230a3196e4
|
||||
---
|
||||
|
||||
# Bilder till video {#images-to-video}
|
||||
|
||||
Gör en uppsättning bilder till en bildspelsvideo med konfigurerbar visningstid per bild, upplösning och bildhastighet.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/images-to-video`
|
||||
|
||||
Tar emot multipart-formulärdata med två eller fler bildfiler och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| secondsPerImage | number | Nej | `2` | Visningstid per bild i sekunder (0.5-10) |
|
||||
| resolution | string | Nej | `"720p"` | Utdataupplösning: `1080p`, `720p`, `square` |
|
||||
| fps | integer | Nej | `30` | Utdatabildhastighet (10-60) |
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/slideshow.mp4",
|
||||
"originalSize": 3500000,
|
||||
"processedSize": 1200000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Tar emot 2-60 bildfiler per begäran. Bilderna visas i videon i uppladdningsordning.
|
||||
- Bilder storleksändras och fylls ut för att passa målupplösningen samtidigt som bildförhållandet bevaras.
|
||||
- Upplösningsalternativet `square` ger en video på 1080x1080, användbart för sociala medier.
|
||||
- Utdataformatet är alltid MP4 (H.264).
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Foga samman flera videoklipp till en fil."
|
||||
i18n_source_hash: 90463dfbb580
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 9b8587705ebe
|
||||
---
|
||||
|
||||
# Slå samman videor {#merge-videos}
|
||||
|
||||
Foga samman flera videoklipp till en enda MP4-fil. Alla indata normaliseras till den första videons upplösning och 30 fps.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/merge-videos`
|
||||
|
||||
Tar emot multipart-formulärdata med två eller fler videofiler. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga inställningsparametrar. Ladda upp 2-10 videofiler som flera `file`-delar.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Klipp sammanfogas i den ordning de laddas upp.
|
||||
- Alla klipp omkodas för att matcha det första klippets upplösning, bildhastighet (30 fps) och codec (H.264). Indata som inte matchar normaliseras automatiskt.
|
||||
- Tar emot 2-10 videofiler per begäran.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: "Ta bort ljudspåret från en video."
|
||||
i18n_source_hash: 9a0c60bbcaa3
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c673ebcec580
|
||||
---
|
||||
|
||||
# Tysta video {#mute-video}
|
||||
|
||||
Ta bort ljudspåret från en video och lämna endast den visuella strömmen.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/mute-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil. Detta verktyg har inga konfigurerbara inställningar.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga parametrar. Det tar bort ljudspåret från den uppladdade videon.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 8900000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Videoströmmen kopieras utan omkodning, så det finns ingen kvalitetsförlust.
|
||||
- Om indatavideon inte har något ljudspår returneras filen oförändrad.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Byt ut ljudspåret i en video mot en annan fil."
|
||||
i18n_source_hash: fabc2a953103
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b866c4eaac24
|
||||
---
|
||||
|
||||
# Ersätt ljud {#replace-audio}
|
||||
|
||||
Byt ut ljudspåret i en video mot en ljudfil. Ladda upp både en video och en ljudfil.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/replace-audio`
|
||||
|
||||
Tar emot multipart-formulärdata med exakt två filer: en videofil följd av en ljudfil.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga inställningsparametrar. Ladda upp en videofil och en ljudfil som två `file`-delar.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 13100000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Exakt två filer måste laddas upp: den första måste vara en video, den andra måste vara en ljudfil.
|
||||
- Om ljudfilen är längre än videon trimmas den för att matcha videons längd. Om den är kortare spelas den återstående videon upp i tystnad.
|
||||
- Videoströmmen kopieras utan omkodning, så det finns ingen förlust av videokvalitet.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Skala en video till en ny upplösning eller förinställd storlek."
|
||||
i18n_source_hash: bb1f67871fea
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7d997faec991
|
||||
---
|
||||
|
||||
# Ändra storlek på video {#resize-video}
|
||||
|
||||
Skala en video till en ny upplösning med anpassade pixeldimensioner eller en standardförinställning.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/resize-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| width | integer | Nej | - | Målbredd i pixlar (16-7680) |
|
||||
| height | integer | Nej | - | Målhöjd i pixlar (16-4320) |
|
||||
| preset | string | Nej | `"custom"` | Upplösningsförinställning: `custom`, `2160p`, `1440p`, `1080p`, `720p`, `480p`, `360p` |
|
||||
|
||||
När `preset` är `"custom"` måste minst en av `width` eller `height` anges. Den andra dimensionen skalas proportionellt.
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
Ändra storlek till anpassade dimensioner:
|
||||
|
||||
```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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 25000000,
|
||||
"processedSize": 8500000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Förinställningsvärden mappar till standardhöjder (t.ex. `720p` = 1280x720, `1080p` = 1920x1080). Bredden skalas proportionellt från källans bildförhållande.
|
||||
- Dimensioner avrundas till jämna tal enligt kraven hos de flesta videocodecs.
|
||||
- Maximalt stödd upplösning är 7680x4320 (8K UHD).
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: "Spela upp ett videoklipp baklänges."
|
||||
i18n_source_hash: 98226f4e092d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 367036902c1f
|
||||
---
|
||||
|
||||
# Vänd video {#reverse-video}
|
||||
|
||||
Spela upp ett videoklipp baklänges. Ljudspåret vänds också.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/reverse-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil. Detta verktyg har inga konfigurerbara inställningar.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga parametrar. Det vänder hela videon.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 12600000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Begränsat till klipp på upp till 5 minuters längd. Längre videor avvisas med ett 400-fel.
|
||||
- Både video- och ljudspår vänds. För att vända video utan ljud, tysta den först.
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
description: "Rotera eller vänd en video."
|
||||
i18n_source_hash: cf9620ca62c7
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: ecc00615c658
|
||||
---
|
||||
|
||||
# Rotera video {#rotate-video}
|
||||
|
||||
Rotera en video med 90, 180 eller 270 grader, eller vänd den horisontellt eller vertikalt.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/rotate-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| transform | string | Ja | - | Transformation att tillämpa: `cw90`, `ccw90`, `180`, `hflip`, `vflip` |
|
||||
|
||||
### Transformvärden {#transform-values}
|
||||
|
||||
- **cw90** - Rotera 90 grader medurs
|
||||
- **ccw90** - Rotera 90 grader moturs
|
||||
- **180** - Rotera 180 grader
|
||||
- **hflip** - Vänd horisontellt (spegla)
|
||||
- **vflip** - Vänd vertikalt
|
||||
|
||||
## Exempelbegäran {#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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 12400000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Rotationer med 90 eller 270 grader byter plats på videons bredd och höjd.
|
||||
- Vändoperationer (hflip, vflip) ändrar inte videons dimensioner.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Minska kameraskakningar med tvåpassstabilisering."
|
||||
i18n_source_hash: ec908e91a752
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 1af0454b1d97
|
||||
---
|
||||
|
||||
# Stabilisera video {#stabilize-video}
|
||||
|
||||
Minska kameraskakningar i handhållet material med FFmpegs tvåpass-vidstab-stabilisering.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/stabilize-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| smoothing | integer | Nej | `15` | Storlek på utjämningsfönstret i bildrutor (5-60). Högre värden ger jämnare rörelse |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Stabilisering är en tvåpassprocess: det första passet analyserar kamerarörelsen och det andra passet tillämpar korrigeringen. Detta tar ungefär dubbelt så lång tid som enpassverktyg.
|
||||
- Högre utjämningsvärden tar bort mer skakning men kan introducera en lätt zoom-beskärning vid kanterna.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: "Klipp ut ett klipp ur en video genom att ange start- och sluttider."
|
||||
i18n_source_hash: c84481641979
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 973e0e6bfe50
|
||||
---
|
||||
|
||||
# Trimma video {#trim-video}
|
||||
|
||||
Klipp ut ett klipp ur en video genom att ange start- och sluttider i sekunder, med ett alternativ för bildruteexakta klipp.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/trim-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| startS | number | Nej | `0` | Starttid i sekunder (måste vara >= 0) |
|
||||
| endS | number | Ja | - | Sluttid i sekunder (måste vara efter startS) |
|
||||
| precise | boolean | Nej | `false` | Omkoda för bildruteexakta klipp i stället för nyckelbildsökning |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 4200000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- När `precise` är `false` (standardvärdet) använder verktyget nyckelbildsökning, vilket är snabbt men kan börja några bildrutor före den begärda tiden.
|
||||
- Att sätta `precise` till `true` omkodar segmentet för exakta bildrutegränser, men tar längre tid.
|
||||
- Värdet `endS` måste vara större än `startS`.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: "Justera ljusstyrka, kontrast, mättnad och gamma för en video."
|
||||
i18n_source_hash: 40483b79d44b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 8dc388c08e2d
|
||||
---
|
||||
|
||||
# Videofärg {#video-color}
|
||||
|
||||
Justera ljusstyrka, kontrast, mättnad och gammakorrigering på en video.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-color`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| brightness | number | Nej | `0` | Ljusstyrkejustering (-1 till 1) |
|
||||
| contrast | number | Nej | `1` | Kontrastmultiplikator (0-4) |
|
||||
| saturation | number | Nej | `1` | Mättnadsmultiplikator (0-3). Sätt till 0 för gråskala |
|
||||
| gamma | number | Nej | `1` | Gammakorrigering (0.1-10) |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 12300000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Alla värden vid sina standardvärden (ljusstyrka 0, kontrast 1, mättnad 1, gamma 1) ger ingen förändring.
|
||||
- Att sätta mättnad till `0` konverterar videon till gråskala.
|
||||
- Gammavärden under 1 ljusar upp skuggor, medan värden över 1 mörkar dem.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Normalisera videons ljudvolym till broadcast-standard."
|
||||
i18n_source_hash: 078f1e819c9a
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e9c221d506ca
|
||||
---
|
||||
|
||||
# Normalisera ljud {#normalize-audio}
|
||||
|
||||
Normalisera videons ljudvolym till broadcast-standarden EBU R128 för ljudstyrka.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-loudnorm`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil. Detta verktyg har inga konfigurerbara inställningar.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga parametrar. Det tillämpar ljudstyrkenormalisering enligt EBU R128 på ljudspåret.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 12500000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Använder FFmpegs filter `loudnorm` som riktar in sig på -16 LUFS integrerad ljudstyrka med -1.5 dBTP true peak och 11 LU ljudstyrkeområde (broadcast-standarden EBU R128).
|
||||
- Källjudets samplingsfrekvens bevaras i utdata.
|
||||
- Om videon inte har något ljudspår returnerar begäran ett 400-fel.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Ta bort metadata från en video och rapportera vad som hittades."
|
||||
i18n_source_hash: 69621bfb98ca
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 3810cb71b19c
|
||||
---
|
||||
|
||||
# Rensa videometadata {#clean-video-metadata}
|
||||
|
||||
Ta bort metadata (skapelsedatum, GPS-koordinater, kameramodell, programvarutaggar osv.) från en video och rapportera vad som togs bort.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-metadata`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil. Detta verktyg har inga konfigurerbara inställningar.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
Detta verktyg har inga parametrar. Det tar bort all metadata från videocontainern.
|
||||
|
||||
## Exempelbegäran {#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"
|
||||
```
|
||||
|
||||
## Exempelsvar {#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 }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Borttagen metadata inkluderar skapelsetidsstämplar, GPS-/platsdata, kamera-/enhetsinformation och programvarutaggar.
|
||||
- Video- och ljudströmmarna kopieras utan omkodning, så det finns ingen kvalitetsförlust.
|
||||
- Användbart för integritet innan videor delas offentligt.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Snabba upp eller sakta ner en video."
|
||||
i18n_source_hash: 98dfc75c0507
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a23308e3c43e
|
||||
---
|
||||
|
||||
# Videohastighet {#video-speed}
|
||||
|
||||
Snabba upp eller sakta ner en video med ett alternativ för att bevara ljudets tonhöjd.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-speed`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| factor | number | Nej | `2` | Hastighetsmultiplikator (0.25-4). Värden över 1 snabbar upp, under 1 saktar ner |
|
||||
| keepPitch | boolean | Nej | `true` | Bevara ljudets tonhöjd vid hastighetsändring |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 24800000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- En faktor på `2` fördubblar uppspelningshastigheten (halverar längden). En faktor på `0.5` halverar uppspelningshastigheten (fördubblar längden).
|
||||
- När `keepPitch` är `true` tidssträcks ljudet så att röster låter naturliga. När `false` förskjuts tonhöjden proportionellt med hastigheten.
|
||||
- Det giltiga intervallet är 0.25x till 4x.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Extrahera bildrutor från en video som en ZIP med bilder."
|
||||
i18n_source_hash: b06f038dafb3
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c9993f561039
|
||||
---
|
||||
|
||||
# Video till bildrutor {#video-to-frames}
|
||||
|
||||
Extrahera enskilda bildrutor från en video och ladda ner dem som ett ZIP-arkiv med PNG- eller JPG-bilder.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-to-frames`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Nej | `"all"` | Extraheringsläge: `all`, `nth`, `timestamps` |
|
||||
| n | integer | Nej | `10` | Extrahera var N:e bildruta (2-1000). Används endast när mode är `"nth"` |
|
||||
| timestamps | string | Nej | `""` | Kommaseparerade tidsstämplar i sekunder. Obligatorisk när mode är `"timestamps"` |
|
||||
| format | string | Nej | `"png"` | Bildformat för extraherade bildrutor: `png`, `jpg` |
|
||||
|
||||
## Exempelbegäran {#example-request}
|
||||
|
||||
Extrahera var 30:e bildruta som 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"}'
|
||||
```
|
||||
|
||||
Extrahera bildrutor vid specifika tidsstämplar:
|
||||
|
||||
```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"}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#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
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Läget `all` extraherar varje bildruta och kan producera mycket stora ZIP-filer för långa videor. Använd läget `nth` eller `timestamps` för selektiv extrahering.
|
||||
- PNG bevarar full kvalitet men producerar större filer. JPG är mindre men förstörande.
|
||||
- Svaret laddas ner som ett ZIP-arkiv som innehåller sekventiellt numrerade bildfiler.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Gör ett videoklipp till en animerad GIF."
|
||||
i18n_source_hash: f729dde8cd55
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 1a1bf6da84ca
|
||||
---
|
||||
|
||||
# Video till GIF {#video-to-gif}
|
||||
|
||||
Gör ett videoklipp till en animerad GIF med konfigurerbar bildhastighet, bredd, starttid och längd.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-to-gif`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`. Detta är en asynkron slutpunkt - den returnerar `202 Accepted` omedelbart och förloppet strömmas via SSE på `GET /api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| fps | integer | Nej | `12` | Utdatabildhastighet (1-30) |
|
||||
| width | integer | Nej | `480` | Utdatabredd i pixlar (64-1280). Höjden skalas proportionellt |
|
||||
| startS | number | Nej | `0` | Starttid i sekunder (måste vara >= 0) |
|
||||
| durationS | number | Nej | `5` | Längd i sekunder (över 0, max 60) |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Lägre värden på `fps` och `width` producerar mindre GIF-filer. En 480px bred GIF vid 12 fps är oftast en bra balans.
|
||||
- Maximal längd är 60 sekunder. Längre klipp producerar mycket stora filer.
|
||||
- Förloppsuppdateringar finns tillgängliga via SSE på `GET /api/v1/jobs/{jobId}/progress` tills jobbet är klart.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: "Konvertera ett videoklipp till en animerad WebP-bild."
|
||||
i18n_source_hash: 7b1a22459bd1
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f8fdfe79ddeb
|
||||
---
|
||||
|
||||
# Video till WebP {#video-to-webp}
|
||||
|
||||
Konvertera ett videoklipp till en animerad WebP-bild med konfigurerbar bildhastighet, bredd och kvalitet.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/video-to-webp`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| fps | integer | Nej | `12` | Utdatabildhastighet (1-30) |
|
||||
| width | integer | Nej | `480` | Utdatabredd i pixlar (16-1920). Höjden skalas proportionellt |
|
||||
| quality | integer | Nej | `75` | WebP-komprimeringskvalitet (1-100) |
|
||||
| loop | boolean | Nej | `true` | Loopa animationen |
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.webp",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 2800000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Animerad WebP producerar mindre filer än GIF med bättre färgstöd (24-bitars mot 8-bitars palett).
|
||||
- Lägre värden på `quality` producerar mindre filer på bekostnad av visuell trohet.
|
||||
- Sätt `loop` till `false` för animationer som ska spelas upp en gång och sedan stanna.
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: "Bränn in en textvattenstämpel på videobildrutor."
|
||||
i18n_source_hash: 937bb075b894
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: fc5dfe90b136
|
||||
---
|
||||
|
||||
# Vattenmärk video {#watermark-video}
|
||||
|
||||
Bränn in en textvattenstämpel på varje bildruta i en video med konfigurerbar position, storlek, opacitet och färg.
|
||||
|
||||
## API-slutpunkt {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/video/watermark-video`
|
||||
|
||||
Tar emot multipart-formulärdata med en videofil och ett JSON-fält `settings`.
|
||||
|
||||
## Parametrar {#parameters}
|
||||
|
||||
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Ja | - | Vattenstämpeltext (1-200 tecken) |
|
||||
| position | string | Nej | `"br"` | Position på bildrutan: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
|
||||
| fontSize | integer | Nej | `36` | Teckenstorlek i pixlar (8-120) |
|
||||
| opacity | number | Nej | `0.5` | Vattenstämpelns opacitet (0.05-1) |
|
||||
| color | string | Nej | `"#ffffff"` | Hex-färg för texten (t.ex. `"#ffffff"`) |
|
||||
|
||||
### Positionsvärden {#position-values}
|
||||
|
||||
- **tl** - Uppe till vänster, **tc** - Uppe i mitten, **tr** - Uppe till höger
|
||||
- **l** - Mitten till vänster, **c** - Mitten, **r** - Mitten till höger
|
||||
- **bl** - Nere till vänster, **bc** - Nere i mitten, **br** - Nere till höger
|
||||
|
||||
## Exempelbegäran {#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}'
|
||||
```
|
||||
|
||||
## Exempelsvar {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/clip.mp4",
|
||||
"originalSize": 12500000,
|
||||
"processedSize": 12400000
|
||||
}
|
||||
```
|
||||
|
||||
## Anteckningar {#notes}
|
||||
|
||||
- Vattenstämpeln rendreras permanent in i videobildrutorna och kan inte tas bort efter bearbetning.
|
||||
- Vattenstämpeln använder ett sans-serif-typsnitt inbyggt i FFmpeg.
|
||||
- För bildvattenstämplar, använd bildverktyget Vattenmärke i stället.
|
||||
Reference in New Issue
Block a user