Adaptive Bitratenleiter aus der Auflösung erstellen
Eine adaptive Streaming-Leiter stellt dem Player mehrere Fassungen desselben Videos bereit, damit er auf wechselnde Bandbreite und Bildschirmbedingungen reagieren kann.
Im Browser ausführen – kostenlos
Diese Funktion wandelt Quellbreite und Quellhöhe in eine deterministische Auswahl passender Darstellungen mit 1080p, 720p, 480p und 360p um. Seitenverhältnis und Ausrichtung bleiben erhalten, die Maße werden encoderfreundlich gerade, und die Standardbitraten richten sich nach der tatsächlichen Pixelzahl jeder Ausgabe. Das Ergebnis eignet sich unmittelbar als Ausgangspunkt für HLS- oder DASH-Codierungspläne.
Beginnen Sie mit den tatsächlichen Quellmaßen
Geben Sie die gespeicherte Pixelbreite und Pixelhöhe des Quellvideos ein, bevor eine Anzeigedrehung oder Skalierung im Player erfolgt. Der Rechner vergleicht die kürzere und längere Quellseite mit den üblichen Rahmen für Darstellungen in 1080p, 720p, 480p und 360p. Dabei werden keine Pixel erfunden: Eine Stufe erscheint nur, wenn die Quelle in beiden Richtungen groß genug für das jeweilige Standardprofil ist. Eine Quelle mit 1920 mal 1080 erhält daher alle vier Stufen, während eine Quelle mit 1280 mal 720 bei 720p beginnt. Hochkantmaterial folgt derselben Regel und behält seine Ausrichtung, sodass vertikale Ausgaben entstehen und keine Querformatbilder erzwungen werden. Beide Maße müssen positive ganze Zahlen innerhalb der angegebenen Grenze sein. Eine Quelle unterhalb des Querformatrahmens 640 mal 360 beziehungsweise des Hochformatrahmens 360 mal 640 kann die kleinste Stufe nicht ohne Vergrößerung liefern und wird abgewiesen. Prüfen Sie gedrehte Smartphone-Aufnahmen sorgfältig und verwenden Sie die wirksamen Anzeigemaße, falls Rotationsmetadaten die horizontale Seite verändern.
So werden Abmessungen und Bitraten berechnet
Bei jedem geeigneten Profil wird die kürzere Quellseite auf den Stufenwert skaliert und die längere Seite aus dem ursprünglichen Seitenverhältnis berechnet. Die berechnete Seite wird auf die nächstkleinere gerade Ganzzahl abgerundet, weil übliche H.264- und H.265-Abläufe Maße erwarten, die sauber mit Chrominanzblöcken funktionieren. Das genaue Seitenverhältnis verändert sich dadurch nur um einen winzigen Bruchteil, zugleich werden aber versteckte Beschnitt- oder Auffüllregeln im Encoder vermieden. Jedes Profil beginnt mit einem üblichen AVC-Zielwert: 5,000 kbps für 1080p, 2,800 kbps für 720p, 1,400 kbps für 480p und 800 kbps für 360p. Danach skaliert der Algorithmus den Zielwert anhand der Ausgabepixel im Verhältnis zum jeweiligen 16:9-Referenzbild und rundet auf die nächsten 50 kbps. Zusätzlich liefert er eine Höchstrate von 107 Prozent des Ziels sowie eine doppelt so große Pufferangabe. Diese Werte dienen der Planung und garantieren keine bestimmte Bildqualität.
Verwenden Sie die Leiter als Codierungsgrundlage
Ordnen Sie jede zurückgegebene Stufe einer Encoderausgabe zu und verpacken Sie die erzeugten Streams in derselben HLS-Master-Playlist oder DASH-Präsentation. Halten Sie Bildrate, Keyframe-Abstand, Farbbehandlung, Audioanordnung und Segmentgrenzen einheitlich, damit der Player sauber zwischen den Darstellungen wechseln kann. Die Bitraten sind bewusst vorhersehbar und eignen sich für Schätzungen, Vorlagen und erste Konfigurationen, doch die Komplexität des Inhalts bleibt entscheidend. Animationen, Filmkorn, Sport, Bildschirmaufnahmen und Rauschen bei wenig Licht können bei gleicher Auflösung sehr unterschiedliche Raten benötigen. Prüfen Sie repräsentative Szenen mit einer objektiven Qualitätsmetrik und Wiedergabetests und passen Sie einzelne Ziele an Codec, Bildrate und Qualitätsanspruch an. Die Ausgabe enthält nur Videoraten; planen Sie Audio separat und lassen Sie Übertragungsreserve oberhalb der Summe. Überwachen Sie im Produktivbetrieb Pufferereignisse, Startzeit, Stufenauswahl und Qualität, denn erst das tatsächliche Netzverhalten zeigt, ob die Leiter ausgewogen ist.
Anwendungsfälle
Einen HLS-Codierungsplan anlegen
Wandeln Sie Quellmaße in einheitliche Darstellungsgrößen und Video-Bitratenziele um, bevor Sie die Master-Playlist erzeugen.
Transcodierungsausgaben abschätzen
Ermitteln Sie, wie viele Standarddarstellungen eine Quelle unterstützt und welche ungefähre Bandbreite jede Ausgabe benötigt.
Hochkant- und Sonderformate vereinheitlichen
Bewahren Sie die Quellausrichtung und passen Sie bekannte Streamingprofile an die tatsächliche Pixelzahl von Nicht-16:9-Videos an.
Häufige Fragen
Was kostet die Berechnung?
Jede API-Anfrage kostet $0.002.
Vergrößert die Leiter kleine Quellen?
Nein. Stufen oberhalb einer normalisierten Quelldimension entfallen; eine Quelle unter dem 360p-Rahmen führt zu einem Fehler.
Gelten die Bitraten für Video oder die gesamte Streambandbreite?
Es sind Videozielbitraten. Addieren Sie die gewählte Audiobitrate und den Übertragungsaufschlag für die Gesamtbandbreite.
Wird Hochkantvideo unterstützt?
Ja. Die Hochkantausrichtung bleibt erhalten und jede Standardstufe wird mit geraden Maßen an das Quellformat angepasst.
Warum kann die Breite von Werten wie 1920 oder 1280 abweichen?
Diese Breiten setzen ein 16:9-Video voraus. Andere Seitenverhältnisse benötigen eine andere Breite, um das Bild ohne Beschnitt zu erhalten.
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/video2/streaming-bitrate-ladder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_width":1920,"source_height":1080}'const res = await fetch("https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_width": 1920,
"source_height": 1080
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/streaming-bitrate-ladder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_width": 1920,
"source_height": 1080
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_width":1920,"source_height":1080}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_width":1920,"source_height":1080}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"source_width": 1920,
"source_height": 1080
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.streaming_bitrate_ladder",
"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. |