● libmpv
Der Decoder: libmpv, eigener Build
Neverlag dekodiert mit libmpv, der Bibliotheksform des Players mpv. Der mpv-Player selbst ist nicht enthalten: keine Kommandozeile, kein Lua, kein JavaScript, keine GPL-Teile.
Der Build ist unser eigener. mpv 0.41.0 und FFmpeg 8.0.3 kommen aus den unveränderten Release-Archiven, dazu libplacebo 7.360.1, libass 0.17.3, FreeType 2.13.3, FriBidi 1.0.16 und HarfBuzz 10.1.0 – gebaut mit Apples clang für arm64 (Mac zusätzlich x86_64), je Plattform zu einem Framework gelinkt und als Libmpv.xcframework in die App eingebettet.
FFmpeg ist in strikter LGPL-Konfiguration gebaut – ohne GPL- und ohne Non-free-Teile. Kein x264, kein x265, kein fdk-aac, kein OpenSSL – verschlüsselte Verbindungen laufen über das System von Apple. Der Build bricht ab, wenn GPL-Code hineinkäme.
FFmpeg, libplacebo, libass, FreeType, FriBidi und HarfBuzz sind unverändert – kein Patch, nur Konfiguration. Der Codec-Satz ist der native von FFmpeg, ohne externe Codec-Bibliotheken.
Hardware-Dekodierung über VideoToolbox, Software-Dekodierung als Rückfall, wo Apples Hardware ein Format nicht annimmt – etwa bei Halbbild-Material. Ton über Apples Audio-Stack, Untertitel über libass, GPU-Verarbeitung über libplacebo auf Mac, iPhone und iPad; auf dem Apple TV bringt Neverlag jedes Bild selbst auf den Bildschirm.
Das Medien-Framework (Libmpv.framework) liegt als eigene, dynamisch geladene Datei im App-Bundle. Die App nutzt nur die öffentliche libmpv-Schnittstelle. Du darfst das Framework durch einen eigenen Build mit gleicher Schnittstelle ersetzen (LGPL 2.1 § 6 b); auf dem Mac ersetzt du jede Kopie davon im Bundle. Auf iPhone, iPad und Apple TV verlangt Apple zusätzlich, dass das ganze App-Bundle mit eigenem Entwicklerzertifikat neu signiert wird – das gibt die Plattform vor, nicht die Lizenz. Quellen, Patch und Build-Skripte dafür erhältst du über das schriftliche Angebot. Die Stream-Engine selbst steckt nicht im Framework, sondern in der App – ein Austausch des Frameworks lässt sie unberührt.
Was wir an mpv geändert haben
Wir haben mpv nicht einfach übernommen. Für Apple-Plattformen haben wir das Build-System umgebaut, damit libmpv auf Mac, iPhone, iPad und Apple TV ohne die Desktop-Abhängigkeiten des mpv-Players läuft. Und wir haben die Render-Schnittstelle von libmpv um einen Weg erweitert, über den dekodierte Bilder direkt in Neverlags eigene Darstellung gehen – ohne Umweg über die Ausgabewege von mpv. Das ist die Grundlage für Neverlag auf dem Apple TV: Dort bringt die App jedes Bild selbst auf den Bildschirm. FFmpeg und alle übrigen Bibliotheken sind unverändert. Die Änderungen stehen unter LGPL 2.1 oder neuer; den Patch liefern wir über das schriftliche Angebot auf der Open-Source-Seite.
Open Source: Komponenten, Lizenzen, Prüfsummen und Quellangebot