Das Gerät war da, die VA-Anzeige dahinter nicht
ffmpeg endete mit 234. No VA display found for device
/dev/dri/renderD128. Device creation failed: -22.
Hier stand `File.Exists("/dev/dri/renderD128")`, und das war keine
Prüfung, sondern eine Vermutung. Auf dem NAS liegt das Gerät
durchgereicht da — eine VA-Anzeige steht nicht dahinter. ffmpeg bricht
dann schon an der globalen Option ab, vor dem ersten Bild, und für den
Zuschauer sieht das aus wie ein kaputter Server: HTTP 500 auf die
Abspielliste, „Die Wiedergabe wurde unterbrochen".
Jetzt wird ffmpeg einmal je Lauf wirklich gefragt: ein Bild aus dem
Nichts, nirgendwohin, mit Frist. Geht die Zeile vor dem ersten Bild nicht
durch, läuft es in Software weiter — langsamer, aber es läuft.
FLARO_HWACCEL=vaapi überspringt die Probe für den, der es ausdrücklich
verlangt.
Dazu, aus derselben Gegend: in der Hauptliste stehen nur Untertitelspuren,
die jetzt sofort abholbar sind. Sie werden beim ersten Bedarf aus der
Datei gezogen, und bei einem Dreistünder dauert das Minuten. Der Browser
verträgt das — er fragt die Spur einzeln an und wartet. AVPlayer bricht
daran die ganze Wiedergabe ab, nicht bloss den Untertitel. Das Füllen
läuft beim Anlegen der Sitzung schon an; beim nächsten Abspielen stehen
sie drin.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
34ade18ed6
commit
b88e58d5eb
@@ -137,6 +137,25 @@ public sealed class Untertitelvorrat(
|
||||
if (offen > 0) log.LogInformation("Untertitel: {Anzahl} Datei(en) werden im Hintergrund gelesen.", offen);
|
||||
}
|
||||
|
||||
/// <summary>Ob diese Spur jetzt sofort ausgeliefert werden kann.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <b>Ohne zu warten und ohne anzustossen.</b> Für die HLS-Hauptliste:
|
||||
/// was dort steht, muss ein Spieler in dem Augenblick abholen können, in
|
||||
/// dem er es liest. AVPlayer nimmt ein „gleich" nicht an — eine Spur,
|
||||
/// die beim Abruf noch nicht da ist, lässt ihn die ganze Wiedergabe
|
||||
/// abbrechen, nicht bloss den Untertitel.
|
||||
///
|
||||
/// <b>Eine leere Datei zählt nicht.</b> Sie ist das Ergebnis „diese Spur
|
||||
/// hat keinen Text"; sie anzubieten wäre ein Menüeintrag, der zu nichts
|
||||
/// führt.
|
||||
/// </remarks>
|
||||
public bool Liegtvor(Guid dateiId, DateTimeOffset geaendert, int spur)
|
||||
{
|
||||
var ziel = Pfad(dateiId, geaendert, spur);
|
||||
return File.Exists(ziel) && new FileInfo(ziel).Length > 0;
|
||||
}
|
||||
|
||||
/// <summary>Holt eine Spur — und wartet dabei höchstens <paramref name="geduld"/>.</summary>
|
||||
///
|
||||
/// <remarks>
|
||||
|
||||
Reference in New Issue
Block a user