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, BMP, TIFF
| 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 |
invert | bool | Farben invertieren (1 oder true) | ?invert=1 |
rot | int | Rotation (90, 180, 270) | ?rot=90 |
flip | string | Spiegeln (h, v, hv) | ?flip=h |
GIF-Dateien werden unter Beibehaltung der Animation verarbeitet — wie bei ezgif.com.
Nutzt FFmpeg mit optimierter Palette für maximale Farbqualität.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
w | int | Breite in Pixel (1–10000) | ?w=320 |
h | int | Höhe in Pixel (1–10000) | ?h=240 |
fit | string | Resize-Modus (cover, contain, fill) | ?fit=contain |
rot | int | Rotation (90, 180, 270) | ?rot=90 |
flip | string | Spiegeln (h, v, hv) | ?flip=h |
gray | bool | Graustufen (1 oder true) | ?gray=1 |
invert | bool | Farben invertieren (1 oder true) | ?invert=1 |
blur | float | Weichzeichner-Stärke (0–100) | ?blur=3.0 |
sharp | float | Schärfen-Stärke (0–100) | ?sharp=2.0 |
speed | float | Animationsgeschwindigkeit (0.5–4.0) | ?speed=2.0 |
reverse | bool | Animation umkehren (1 oder true) | ?reverse=1 |
colors | int | Max. Palettenfarben (2–256) | ?colors=64 |
f | string | Konvertierung zu Einzelbild (png, jpg) | ?f=png |
SVG-Dateien werden bei Parametern zu Rasterbildern konvertiert. Ohne Parameter wird die SVG-Datei direkt ausgeliefert.
Nutzt rsvg-convert für hochwertige Rasterisierung. Anschließend stehen alle Bild-Effekte zur Verfügung.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
w | int | Breite in Pixel | ?w=500 |
h | int | Höhe in Pixel | ?h=300 |
dpi | int | Render-DPI | ?dpi=300 |
f | string | Ausgabeformat (png, jpg) | ?f=jpg |
fit | string | Resize-Modus (cover, contain, fill) | ?fit=cover |
blur | float | Weichzeichner nach Rasterisierung | ?blur=2.0 |
gray | bool | Graustufen nach Rasterisierung | ?gray=1 |
invert | bool | Farben invertieren nach Rasterisierung | ?invert=1 |
rot | int | Rotation (90, 180, 270) | ?rot=180 |
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/anim.gif?w=320
— Auf 320px verkleinern, Animation bleibt erhalten
media.trfx.de/anim.gif?speed=2.0
— Doppelte Animationsgeschwindigkeit
media.trfx.de/anim.gif?reverse=1&gray=1
— Rückwärts abspielen in Graustufen
media.trfx.de/anim.gif?w=200&h=200&fit=cover&colors=64
— 200×200 Cover-Crop mit reduzierter Palette
media.trfx.de/anim.gif?f=png
— Erstes Frame als PNG extrahieren
media.trfx.de/icon.svg?w=64
— Rasterisieren auf 64px Breite (PNG)
media.trfx.de/logo.svg?w=500&f=jpg
— Als 500px breites JPEG
media.trfx.de/diagram.svg?dpi=300
— Hochauflösende Rasterisierung (300 DPI)
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>