Dynamischer Media Server — Bilder, Audio & Video on-the-fly verarbeiten
Dateien werden über die URL abgerufen. Mit Query-Parametern können Medien dynamisch verarbeitet werden.
https://media.trfx.de/{dateiname}?{parameter}
Ohne Parameter wird die Originaldatei direkt ausgeliefert.
Unterstützte Formate: PNG, JPG/JPEG, GIF, BMP, TIFF
Animierte GIFs verlieren bei der Verarbeitung ihre Animation (nur erstes Frame).
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
w | int | Breite in Pixel (1–10000) | ?w=500 |
h | int | Höhe in Pixel (1–10000) | ?h=300 |
q | int | JPEG-Qualität 1–100 (Standard: 85) | ?q=90 |
fit | string | Resize-Modus (cover, contain, fill) | ?fit=cover |
f | string | Ausgabeformat (png, jpg, gif, bmp, tiff) | ?f=png |
blur | float | Weichzeichner-Stärke (0–100) | ?blur=5.0 |
sharp | float | Schärfen-Stärke (0–100) | ?sharp=3.0 |
gray | bool | Graustufen (1 oder true) | ?gray=1 |
rot | int | Rotation (90, 180, 270) | ?rot=90 |
flip | string | Spiegeln (h, v, hv) | ?flip=h |
Unterstützte Formate: MP3, OGG, FLAC, WAV, AAC, M4A, WMA
Erfordert FFmpeg auf dem Server. Verarbeitung erfolgt on-the-fly.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
vol | float | Lautstärke-Multiplikator (0.0–10.0) | ?vol=2.0 |
speed | float | Geschwindigkeit (0.5–4.0) | ?speed=1.5 |
trim | string | Zuschnitt in Sekunden (start,ende) | ?trim=5,30 |
fade | float | Fade-in/out Dauer in Sekunden | ?fade=2 |
af | string | Ausgabeformat (mp3, ogg, wav, flac, aac) | ?af=mp3 |
Unterstützte Formate: MP4, WebM, MKV, MOV, AVI, WMV
Erfordert FFmpeg auf dem Server. Verarbeitung erfolgt on-the-fly.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
w | int | Breite in Pixel | ?w=1280 |
h | int | Höhe in Pixel | ?h=720 |
vol | float | Lautstärke-Multiplikator (0.0–10.0) | ?vol=0.5 |
speed | float | Geschwindigkeit (0.5–4.0) | ?speed=2.0 |
trim | string | Zuschnitt in Sekunden (start,ende) | ?trim=0,10 |
mute | bool | Audio entfernen (1 oder true) | ?mute=1 |
fps | int | Framerate ändern | ?fps=30 |
frame | float | Einzelbild bei Sekunde extrahieren → gibt JPEG zurück | ?frame=5.0 |
vf | string | Ausgabeformat (mp4, webm, mkv, gif) | ?vf=gif |
media.trfx.de/bild.png?w=800
— Breite auf 800px skalieren
media.trfx.de/foto.jpg?w=400&h=400&fit=cover
— 400×400 Quadrat, zugeschnitten
media.trfx.de/bild.png?gray=1&blur=3
— Graustufen mit Weichzeichner
media.trfx.de/foto.jpg?rot=90&f=png
— 90° drehen, als PNG ausgeben
media.trfx.de/banner.png?w=1200&q=95&sharp=2
— 1200px breit, hohe Qualität, geschärft
media.trfx.de/song.mp3?vol=2.0
— Lautstärke verdoppeln
media.trfx.de/podcast.mp3?speed=1.5&trim=60,300
— 1.5× Geschwindigkeit, Minute 1 bis 5
media.trfx.de/track.wav?af=mp3&fade=3
— Zu MP3 konvertieren mit 3s Fade
media.trfx.de/clip.mp4?w=1280&h=720
— Auf 720p skalieren
media.trfx.de/video.mp4?frame=5.0
— Einzelbild bei Sekunde 5 als JPEG
media.trfx.de/clip.mp4?trim=0,10&mute=1&vf=gif
— Erste 10 Sek. als stummes GIF
media.trfx.de/video.mov?speed=2.0&vf=mp4
— Doppelte Geschwindigkeit, als MP4
Alle anderen Dateitypen werden direkt ohne Verarbeitung ausgeliefert — mit korrektem Content-Type:
Dateien können über die Upload-API hochgeladen werden (z.B. via ShareX). Authentifizierung erfolgt über einen geheimen Header.
POST /upload
Header: X-Upload-Secret: <secret>
Body: multipart/form-data, Feld: "file"
Erfolgreiche Antwort:
{
"success": true,
"url": "https://media.trfx.de/a1b2c3d4e5f6.png",
"filename": "a1b2c3d4e5f6.png",
"original_name": "screenshot.png",
"size": 123456,
"delete_url": "https://media.trfx.de/delete/a1b2c3d4e5f6.png"
}
DELETE /delete/{dateiname}
Header: X-Upload-Secret: <secret>