media.trfx.de
Dynamischer Media Server — Bilder, Audio & Video on-the-fly verarbeiten
Nutzung
Dateien werden über die URL abgerufen. Mit Query-Parametern können Medien dynamisch verarbeitet werden.
media.trfx.de/{dateiname}?{parameter}Ohne Parameter wird die Originaldatei direkt ausgeliefert.
Bildverarbeitung
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 |
Resize-Modi (fit)
- —cover — Bild wird zugeschnitten, um die Zielgröße exakt zu füllen
- —contain — Bild wird vollständig in die Zielgröße eingepasst
- —fill — Bild wird auf die exakte Zielgröße gestreckt
- —Standard — Proportionale Skalierung, fehlende Dimension wird automatisch berechnet
Animierte GIF-Verarbeitung
GIF-Dateien werden unter Beibehaltung der Animation verarbeitet — wie bei ezgif.com.
| 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-Verarbeitung
SVG-Dateien werden bei Parametern zu Rasterbildern konvertiert. Ohne Parameter wird die SVG-Datei direkt ausgeliefert.
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 |
PDF-Verarbeitung
PDF-Seiten werden bei Parametern zu Rasterbildern konvertiert. Ohne Parameter wird die PDF-Datei direkt ausgeliefert.
Anschließend stehen alle Bild-Effekte zur Verfügung.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
page | int | Seitenzahl (Standard: 1) | ?page=2 |
dpi | int | Render-DPI (1–1200) | ?dpi=300 |
f | string | Ausgabeformat (png, jpg) | ?f=jpg |
info | bool | Seitenanzahl als JSON statt Bild | ?info=1 |
w | int | Breite in Pixel | ?w=800 |
h | int | Höhe in Pixel | ?h=1000 |
fit | string | Resize-Modus (cover, contain, fill) | ?fit=contain |
gray | bool | Graustufen nach Rasterisierung | ?gray=1 |
rot | int | Rotation (90, 180, 270) | ?rot=90 |
ZIP-Verarbeitung
Ruft man eine .zip-Datei ohne Parameter im Browser auf, erscheint automatisch ein Inhaltsverzeichnis mit Dateiliste, Download-Button und Strg+S-Unterstützung. Skripte/Tools (curl, wget, etc.) erhalten stattdessen weiterhin direkt die rohe ZIP-Datei.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
list | bool | Inhalt als JSON auflisten | ?list=1 |
file | string | Pfad einer Datei im Archiv zum Extrahieren | ?file=bilder/foto.png |
dl | bool | Rohe ZIP-Datei erzwingen (umgeht die HTML-Ansicht) | ?dl=1 |
Audioverarbeitung
Unterstützte Formate: MP3, OGG, FLAC, WAV, AAC, M4A, WMA
| 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 |
Videoverarbeitung
Unterstützte Formate: MP4, WebM, MKV, MOV, AVI, WMV
| 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 |
Beispiele
Bilder
media.trfx.de/bild.png?w=800 — Breite auf 800px skalierenmedia.trfx.de/foto.jpg?w=400&h=400&fit=cover — 400×400 Quadrat, zugeschnittenmedia.trfx.de/bild.png?gray=1&blur=3 — Graustufen mit Weichzeichnermedia.trfx.de/foto.jpg?rot=90&f=png — 90° drehen, als PNG ausgebenmedia.trfx.de/banner.png?w=1200&q=95&sharp=2 — 1200px breit, hohe Qualität, geschärftAnimierte GIFs
media.trfx.de/anim.gif?w=320 — Auf 320px verkleinern, Animation bleibt erhaltenmedia.trfx.de/anim.gif?speed=2.0 — Doppelte Animationsgeschwindigkeitmedia.trfx.de/anim.gif?reverse=1&gray=1 — Rückwärts abspielen in Graustufenmedia.trfx.de/anim.gif?w=200&h=200&fit=cover&colors=64 — 200×200 Cover-Crop mit reduzierter Palettemedia.trfx.de/anim.gif?f=png — Erstes Frame als PNG extrahierenSVG
media.trfx.de/icon.svg?w=64 — Rasterisieren auf 64px Breite (PNG)media.trfx.de/logo.svg?w=500&f=jpg — Als 500px breites JPEGmedia.trfx.de/diagram.svg?dpi=300 — Hochauflösende Rasterisierung (300 DPI)media.trfx.de/dokument.pdf?page=1&w=800 — Erste Seite als 800px breites PNGmedia.trfx.de/dokument.pdf?page=3&dpi=300&f=jpg — Seite 3 in hoher Auflösung als JPEGmedia.trfx.de/dokument.pdf?info=1 — Seitenanzahl als JSON abfragenZIP
media.trfx.de/archiv.zip?list=1 — Inhalt des Archivs als JSON auflistenmedia.trfx.de/archiv.zip?file=bilder/foto.png — Einzelne Datei aus dem Archiv ausliefernAudio
media.trfx.de/song.mp3?vol=2.0 — Lautstärke verdoppelnmedia.trfx.de/podcast.mp3?speed=1.5&trim=60,300 — 1.5× Geschwindigkeit, Minute 1 bis 5media.trfx.de/track.wav?af=mp3&fade=3 — Zu MP3 konvertieren mit 3s FadeVideo
media.trfx.de/clip.mp4?w=1280&h=720 — Auf 720p skalierenmedia.trfx.de/video.mp4?frame=5.0 — Einzelbild bei Sekunde 5 als JPEGmedia.trfx.de/clip.mp4?trim=0,10&mute=1&vf=gif — Erste 10 Sek. als stummes GIFmedia.trfx.de/video.mov?speed=2.0&vf=mp4 — Doppelte Geschwindigkeit, als MP4Weitere Dateitypen
Alle anderen Dateitypen werden direkt ohne Verarbeitung ausgeliefert — mit korrektem Content-Type:
- —Dokumente — TXT, JSON, XML, CSV
- —Sonstige — alle weiteren Dateitypen
PDF wird ebenfalls unverändert ausgeliefert, solange keine der oben genannten Parameter gesetzt sind — für ZIP siehe oben.
Upload API
Dateien können über die Upload-API hochgeladen werden (z.B. via ShareX). Authentifizierung erfolgt über einen geheimen Header, oder — für einzelne Nutzer — über ein persönliches API-Token.
Berechtigte Nutzer können Dateien auch direkt im Browser hochladen: media.trfx.de/upload — Anmeldung erfolgt über TRFX SSO. Ein persönliches API-Token für Skripte/Tools lässt sich im Dashboard verwalten.
Datei hochladen
POST /upload
Header: X-Upload-Secret: <secret> (oder Authorization: Bearer <token>)
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"
}Datei löschen
DELETE /delete/{dateiname}
Header: X-Upload-Secret: <secret> (oder Authorization: Bearer <token>)