Untertitel ins Video einbrennen
KIT brennt eine Untertiteldatei fest in das Bild eines Videos ein, sodass der Text auf jedem Gerät und jeder Plattform sichtbar bleibt, unabhängig davon, ob der Player eigene Untertitel unterstützt. Gedacht für Social Media, Messen und Bildschirme ohne eigene Untertitel-Funktion, die den Ton ohnehin nicht wiedergeben.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Warum eingebrannte Untertitel manchmal nötig sind
Eine separate Untertiteldatei setzt voraus, dass Plattform und Player sie überhaupt anzeigen – auf vielen Social-Media-Feeds, Messeständen oder Info-Bildschirmen ist das nicht der Fall. Eingebrannte Untertitel werden Teil des Bildes selbst und sind deshalb überall sichtbar, ganz ohne Einstellung durch den Zuschauer. Der Nachteil: Der Text lässt sich danach nicht mehr ausblenden oder in eine andere Sprache tauschen, ohne das Video neu zu rendern.
So läuft die Verarbeitung ab
Sie laden das Video und die Untertiteldatei hoch – wahlweise eine vorhandene SRT-Datei oder eine, die KIT zuvor aus dem Ton erstellt hat. Schrift, Größe und Position lassen sich an das Format des Videos anpassen, etwa für ein hochkant gefilmtes Reel oder ein klassisches Querformat. Das Ergebnis ist eine einzige fertige Videodatei, direkt zum Hochladen bereit, ohne weitere Bearbeitung in einem separaten Schnittprogramm.
Preis und aktueller Stand
Das Einbrennen kostet $0.077 pro Anfrage plus $0.0045 pro Minute Videolänge, also rund $0.12 für zehn Minuten und knapp $0.35 für eine volle Stunde – bezahlt je Vorgang über PayPal, ohne Abonnement. Die Funktion ist aktuell in Vorbereitung und noch nicht buchbar; sie startet in Kürze über diese Seite als Hauptkanal, mit der API für Redaktionen, die viele Videos automatisiert bearbeiten.
Anwendungsfälle
Reel ohne Ton verständlich machen
Ein Café in Köln postet ein kurzes Rezeptvideo auf Instagram. Die eingebrannten Untertitel sorgen dafür, dass der Text auch bei stummgeschaltetem Autoplay lesbar bleibt, ohne dass Zuschauer eine Einstellung ändern müssen.
Video am Messestand
Weber Metallbau GmbH zeigt auf einer Fachmesse in Stuttgart ein Produktvideo auf einem Bildschirm ohne Ton. Die eingebrannten Untertitel erklären die Vorteile des Produkts, auch wenn der Standlärm jede Ansage übertönt.
Schulungsvideo für unterschiedliche Geräte
Eine Personalabteilung verteilt ein Onboarding-Video an neue Mitarbeitende, die es auf ganz unterschiedlichen Geräten und Playern ansehen. Eingebrannte Untertitel stellen sicher, dass der Text überall gleich erscheint.
Häufige Fragen
Worin unterscheidet sich das von einer separaten Untertiteldatei?
Eine separate Datei lässt sich ein- und ausblenden und in andere Sprachen tauschen; eingebrannte Untertitel sind fester Bestandteil des Bildes und deshalb auf jedem Gerät sichtbar, aber nicht mehr veränderbar.
Kann ich Schriftart und Position wählen?
Ja, Größe und Position lassen sich an das Videoformat anpassen, etwa für ein hochkant gefilmtes Video oder ein klassisches Querformat.
Ist die Funktion schon nutzbar?
Noch nicht, sie ist in Vorbereitung. Der Start erfolgt in Kürze über diese Seite; für eine Nachricht bei Freischaltung schreiben Sie an [email protected].
Was kostet das Einbrennen der Untertitel?
$0.077 pro Anfrage plus $0.0045 pro Minute Videolänge, also rund $0.12 für ein zehnminütiges Video.
Brauche ich schon eine fertige Untertiteldatei?
Nein, Sie können eine vorhandene SRT-Datei hochladen oder KIT den Text zuerst aus dem Ton erstellen lassen.
Wie groß darf das Video sein?
Bis zu 500 MB und bis zu 60 Minuten Laufzeit pro Datei.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/video/burn-subtitles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/video/burn-subtitles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/burn-subtitles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/burn-subtitles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/burn-subtitles", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"audio": "https://ejemplo.com/audio.mp3"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.burn_subtitles",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |