diff --git a/Packages/FlixyKit/Sources/FlixyProbe/main.swift b/Packages/FlixyKit/Sources/FlixyProbe/main.swift index d0fab80..96e89ef 100644 --- a/Packages/FlixyKit/Sources/FlixyProbe/main.swift +++ b/Packages/FlixyKit/Sources/FlixyProbe/main.swift @@ -184,6 +184,37 @@ if CommandLine.arguments.contains("--leiter") { ) print("Sitzungen: \(ohne.sessionIdentifier.prefix(8)) / \(mit.sessionIdentifier.prefix(8))\n") + // **Warum kommt so wenig zurück?** + // + // Die App schickt bei „automatisch" `maxVideoBitrate` und `videoQuality`, + // aber **kein** `videoResolution` — dort steht `nil`. Verdacht: Plex nimmt + // dann seine eigene Voreinstellung für die Qualitätsstufe, und die ist + // klein. Das wäre kein Servereinstellungs-Problem, sondern unser eigenes. + print("=== Woran hängt die gelieferte Größe? ===") + let proben: [(String, Int, String?)] = [ + ("wie die App heute (ohne Auflösung)", 8_000, nil), + ("mit videoResolution=1920x1080", 8_000, "1920x1080"), + ("20 Mbit, ohne Auflösung", 20_000, nil), + ("20 Mbit + 1920x1080", 20_000, "1920x1080"), + ] + for (name, bitrate, auflösung) in proben { + let probe = TranscodeRequest( + ratingKey: movie.ratingKey, + maximumBitrate: bitrate, + resolution: auflösung, + isLocal: connection.local + ) + guard let url = server.transcodeURL(for: probe) else { continue } + let antwort = await prüfePlaylist(url) + let zeile = antwort + .split(separator: "\n") + .first { $0.contains("Mbit/s") } + .map { $0.trimmingCharacters(in: .whitespaces) } ?? "keine Stufe" + print(" \(name): \(zeile)") + await server.stopTranscode(sessionIdentifier: probe.sessionIdentifier) + } + print() + for (name, anfrage) in [("ohne autoAdjustQuality", ohne), ("mit autoAdjustQuality=1", mit)] { print("=== \(name) ===") guard let url = server.transcodeURL(for: anfrage) else {