Kratzplatz, Markenerkennung, Tonabdruck — erfundene Wörter für Fachbegriffe
„Scratch disk" wörtlich zu übersetzen ist derselbe Fehler wie „Wachhund"
für Watchdog und „Keks" für Cookie. Und „Marke" ist kein Fachbegriff für
das, was gemeint ist: Jellyfin nennt diese Abschnitte Media Segments, und
das ist auch das Wort, in dem sich darüber reden lässt.
Kratzplatz* → Transcode* (was es ist, steht in FLARO_TRANSCODE)
Marke, Marken → Segment, Segmente
Markenerkennung → Segmenterkennung
Markenart/-suche → Segmentart/-suche
Tonabdruck → Fingerprint (Chromaprint nennt es so)
Tonabgleich → Fingerprintabgleich
Schlüsselbild → Keyframe
Bildabtaster → Frameabtaster
Gewöhnliches Deutsch bleibt gewöhnliches Deutsch: Wartung, Freigabe,
Meldung, Abspann, Vorspann. Das war nie das Problem.
**Was sich nicht ändert, und zwar mit Absicht.** Die drei
Einstellungsschlüssel `wartung.kratzplatz.paket.*` bleiben, wie sie sind —
sie stehen in der Datenbank, und ein neuer Name hiesse, dass die Werte
des Nutzers stillschweigend auf die Vorgabe zurückfallen. Dasselbe für
die Endpunktpfade `/marken`: sie sind nicht sichtbar, und ein Umbenennen
wäre Diff ohne Gewinn.
**Die Migration ist von Hand geschrieben.** `dotnet ef` hat ein Gerüst
erzeugt, das beide Tabellen löscht und neu anlegt — es sieht eine
verschwundene und eine neue Tabelle, nicht eine umbenannte. Damit wäre
jedes erkannte Segment und jeder Vermerk „hier wurde schon gesucht" weg
gewesen. `RenameTable` und `RenameIndex` tun dasselbe, ohne eine Zeile
anzufassen; nachgemessen an einer echten SQLite-Datei: Zeilen vorher 1
und 1, nachher 1 und 1, Inhalt unverändert.
Nachgezogen: in `bilder.ts` und `main.ts` heisst „marke" ein Häkchen und
das Logo — die blieben unberührt. Und „Segment" ist sächlich, was eine
Blindersetzung nicht weiss: „eine Segment" stand danach an vierzehn
Stellen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
32f592b83e
commit
ed13d5fa43
@@ -70,10 +70,10 @@ public static class HlsArgumente
|
||||
/// </remarks>
|
||||
public const int SegmentSekunden = 6;
|
||||
|
||||
/// <summary>Wie viele Bilder zwischen zwei Schlüsselbildern liegen.</summary>
|
||||
/// <summary>Wie viele Bilder zwischen zwei Keyframesn liegen.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <b>Ein Segment muss mit einem Schlüsselbild anfangen.</b> Ohne feste
|
||||
/// <b>Ein Segment muss mit einem Keyframe anfangen.</b> Ohne feste
|
||||
/// Abstände schneidet ffmpeg dort, wo zufällig eines liegt — und die
|
||||
/// Segmente werden unterschiedlich lang, was jeden Sprung ungenau macht.
|
||||
/// </remarks>
|
||||
@@ -109,17 +109,17 @@ public static class HlsArgumente
|
||||
// **Beim Kopieren wird ungenau gesprungen, und das mit Absicht.**
|
||||
//
|
||||
// Genau gesprungen schneidet ffmpeg den Ton auf die Sekunde, das
|
||||
// kopierte Bild aber nicht — es kann erst beim Schlüsselbild davor
|
||||
// kopierte Bild aber nicht — es kann erst beim Keyframe davor
|
||||
// anfangen. Dazwischen liegt Bild ohne Ton, und jeder Spieler darf
|
||||
// diese Lücke deuten, wie er will; hls.js schiebt den Ton nach
|
||||
// vorn. Gemessen an einer Datei mit Schlüsselbildern alle fünf
|
||||
// vorn. Gemessen an einer Datei mit Keyframesn alle fünf
|
||||
// Sekunden: bei einem Sprung auf 17 begann der Ton erst bei 1,96,
|
||||
// bei 15,014 sogar erst bei 4,98.
|
||||
//
|
||||
// `-noaccurate_seek` lässt auch den Ton beim Schlüsselbild
|
||||
// `-noaccurate_seek` lässt auch den Ton beim Keyframe
|
||||
// anfangen. Dieselben Sprünge, gemessen: 0,004 und 0,015 — und
|
||||
// zwar bei *jedem* Wert, nicht nur bei gut getroffenen. Das ist
|
||||
// der Unterschied zum Runden auf das Schlüsselbild: das muss auf
|
||||
// der Unterschied zum Runden auf das Keyframe: das muss auf
|
||||
// die Millisekunde stimmen, sonst wird es schlimmer als vorher.
|
||||
//
|
||||
// Beim Umkodieren nicht: dort wird das Bild neu gerechnet und
|
||||
@@ -222,7 +222,7 @@ public static class HlsArgumente
|
||||
/// <remarks>
|
||||
/// <b>Sechs Nachkommastellen, nicht drei.</b> Auf drei gerundet kann ein
|
||||
/// Sprungpunkt um eine Millisekunde zu klein werden, und eine Millisekunde
|
||||
/// entscheidet, ob ffmpeg das gemeinte Schlüsselbild erwischt oder das
|
||||
/// entscheidet, ob ffmpeg das gemeinte Keyframe erwischt oder das
|
||||
/// davor. Gemessen: bei 15,015 begann der Ton nach 0,004 s, bei 15,014
|
||||
/// nach 4,98 s.
|
||||
/// </remarks>
|
||||
@@ -286,7 +286,7 @@ public static class HlsArgumente
|
||||
"-level", "4.1",
|
||||
"-pix_fmt", "yuv420p",
|
||||
|
||||
// Feste Schlüsselbildabstände, damit jedes Segment gleich lang wird.
|
||||
// Feste Keyframeabstände, damit jedes Segment gleich lang wird.
|
||||
"-g", schluesselabstand,
|
||||
"-keyint_min", schluesselabstand,
|
||||
"-sc_threshold", "0",
|
||||
|
||||
Reference in New Issue
Block a user