Open source in Neverlag

Aggiornato: 26 settembre 2026

Neverlag riproduce video con lo stack mpv: mpv, FFmpeg, libplacebo e le librerie per i sottotitoli che li accompagnano. La maggior parte è rilasciata sotto la GNU Lesser General Public License (LGPL) 2.1 o successiva. Questa pagina è l’avviso richiesto dalla LGPL: quali componenti si trovano nell’app, in quali versioni esatte, dove sta il loro codice sorgente, cosa abbiamo modificato, come compiliamo, come puoi sostituire la libreria — e la nostra offerta scritta di fornire il codice sorgente.

Neverlag stesso — l’app, la sua interfaccia e tutto ciò che sta fuori dal framework multimediale — non è open source. Le librerie elencate qui lo sono e restano sotto le proprie licenze. I testi delle licenze si trovano nell’app in Impostazioni → Informazioni su Neverlag → Note legali → Licenze open source, senza modifiche rispetto ai pacchetti sorgente.

Componenti

Versioni come fissate nella compilazione (Vendor/build-scripts/versions.env nel repository Neverlag). Ogni link al sorgente punta esattamente a quella versione; il checksum è lo SHA-256 dell’archivio della release da cui compiliamo, oppure il commit del tag.

Componente Versione Licenza Piattaforme Ruolo in Neverlag Codice sorgente
mpv (libmpv) 0.41.0 LGPL-2.1-or-later tutte Nucleo di riproduzione: demuxing, decodifica, temporizzazione, sottotitoli, API di rendering. Compilato con le modifiche Neverlag (patch sotto). mpv (libmpv) 0.41.0 SHA-256 ee21092a5ee427353392360929dc64645c54479aefdb5babc5cfbb5fad626209
FFmpeg 8.0.3 LGPL-2.1-or-later tutte Contenitori, protocolli, decodificatori (libavformat, libavcodec, libavfilter, libswscale, libswresample, libavutil). Configurazione strettamente LGPL, senza parti GPL o non libere. FFmpeg 8.0.3 SHA-256 6136812ea6d4e68bdba27e33c2a94382711cdf4f8602ffef056ff792bd6f9818
libplacebo 7.360.1 LGPL-2.1-or-later tutte Elaborazione video su GPU per mpv (gestione del colore, ridimensionamento, tone mapping). Clone Git con sottomoduli; OpenGL su Mac, iPhone e iPad, percorso CPU su Apple TV. libplacebo 7.360.1 Commit cee9b076f2c63104ccfd497fa79c39a867293ec4
glad parte di libplacebo 2.0.8 MIT Mac, iPhone / iPad Caricatore di funzioni OpenGL, generato durante la compilazione di libplacebo. glad 2.0.8 Commit 73db193f853e2ee079bf3ca8a64aa2eaf6459043
fast_float parte di libplacebo 8.2.2 MIT tutte Parser numerico header-only, usato da libplacebo. fast_float 8.2.2 Commit 97b54ca9e75f5303507699d27c6b4f4efe4641a1
libass 0.17.3 ISC tutte Rendering dei sottotitoli (ASS/SSA, sottotitoli testuali). libass 0.17.3 SHA-256 eae425da50f0015c21f7b3a9c7262a910f0218af469e22e2931462fed3c50959
FreeType 2.13.3 FTL tutte Rasterizzazione dei caratteri per i sottotitoli. FreeType 2.13.3 SHA-256 0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289
FriBidi 1.0.16 LGPL-2.1-or-later tutte Testo bidirezionale (arabo, ebraico) nei sottotitoli. FriBidi 1.0.16 SHA-256 1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c
HarfBuzz 10.1.0 MIT tutte Shaping del testo per i sottotitoli. HarfBuzz 10.1.0 SHA-256 6ce3520f2d089a33cef0fc48321334b8e0b72141f6a763719aaaecd2779ecb82
GRDB.swift 7.11.1 MIT tutte Accesso SQLite per il catalogo locale e la guida TV (pacchetto Swift, non parte del framework multimediale). GRDB.swift 7.11.1

Come sono collegate le librerie — e come sostituirle

Le librerie (mpv, FFmpeg, libplacebo, FriBidi e le altre della tabella) sono compilate in un unico framework multimediale, fornito come file separato nel bundle dell’app (cartella Frameworks) e caricato all’avvio dell’app. L’app vi accede tramite l’API pubblica libmpv (client.h, render.h, stream_cb.h e il render_cb.h aggiunto dal nostro patch) e tramite gli header FFmpeg elencati più sotto.

Poiché il framework è un file separato, caricato dinamicamente, puoi sostituirlo con una tua compilazione — un’altra versione di mpv, la tua configurazione di FFmpeg, un libplacebo con patch — purché l’interfaccia resti la stessa (LGPL 2.1 §6 b). Compilalo dai sorgenti e dalle opzioni di questa pagina, firmalo con il tuo certificato e mettilo al posto del framework fornito (Libmpv.framework — su Mac è presente due volte: nell’app, che usa libavformat per le registrazioni, e nel servizio di riproduzione PlaybackService.xpc, che esegue mpv; sostituisci entrambi). Su Mac è tutto; su iPhone, iPad e Apple TV la piattaforma richiede inoltre che l’intero bundle dell’app venga firmato di nuovo con il tuo certificato da sviluppatore — una regola della piattaforma Apple, non di questa licenza.

Neverlag non contiene il player mpv, solo libmpv: nessuna riga di comando, nessuno scripting Lua o JavaScript, nessuna parte GPL. FFmpeg è configurato strettamente LGPL (--disable-gpl --disable-nonfree --disable-version3), mpv con -Dgpl=false.

Cosa ha modificato Neverlag

FFmpeg, libplacebo, libass, FreeType, FriBidi e HarfBuzz vengono compilati dagli archivi di release non modificati. mpv lo compiliamo con le seguenti modifiche, pubblicate come un unico patch rispetto all’archivio della release:

  1. meson.build: compilare osdep/utils-mac.c sulle piattaforme Apple anche senza Cocoa, perché le uscite CoreAudio e AudioUnit usano le sue funzioni per le stringhe. Tutte le piattaforme.
  2. meson.build: permettere al percorso di decodifica hardware VideoToolbox-GL di compilarsi contro OpenGL semplice invece di richiedere i back-end GL Cocoa o iOS. Solo Mac.
  3. Un nuovo back-end di rendering libmpv «cb» (include/mpv/render_cb.h, video/out/libmpv_cb.c, opzione -Dlibmpv-cb): passa il fotogramma decodificato all’app senza copiarlo, invece di renderizzarlo. Attivo su Apple TV e su iPhone / iPad.

neverlag-mpv-changes.patch — Download: neverlag-mpv-changes.patch (mpv 0.41.0, diff unificato, si applica con patch -p1). Le modifiche sono sotto LGPL 2.1 o successiva, come i file che toccano.

Come compiliamo

Tutte le librerie vengono compilate con il clang di Apple fornito da Xcode per arm64 (Mac anche x86_64), target di distribuzione macOS 14.0, iOS 17.0, tvOS 17.0. Il TLS passa dal sistema (SecureTransport); non è collegato alcun OpenSSL, GnuTLS o Mbed TLS. Le opzioni qui sotto sono quelle degli script di compilazione; le righe contrassegnate con una piattaforma valgono solo per quella.

FFmpeg

./configure --enable-static --disable-shared --enable-pic --pkg-config-flags=--static
  --disable-autodetect --disable-gpl --disable-nonfree --disable-version3
  --enable-videotoolbox --enable-audiotoolbox
  --disable-doc --disable-programs --disable-avdevice
  --enable-protocol=file,http,https,tcp,tls,crypto,hls
  --enable-demuxer=mpegts,hls,mov,matroska,mpegps,flv
  --enable-decoder=h264,hevc,mpeg2video,mpeg4,vp9,av1
  --enable-decoder=aac,ac3,eac3,mp2,mp3,opus,flac
  --enable-zlib --enable-securetransport
# iPhone / iPad
  --enable-cross-compile --target-os=darwin --arch=arm64 --sysroot=<iPhoneOS SDK>
# Apple TV
  --enable-cross-compile --target-os=darwin --arch=arm64 --sysroot=<AppleTVOS SDK>
# Mac
  (x86_64 slice: --enable-cross-compile --target-os=darwin --arch=x86_64)

Nessuna parte GPL o non libera (niente libx264, libx265, libfdk-aac). La compilazione si interrompe se config.h non contiene CONFIG_GPL 0.

mpv (libmpv)

meson setup --default-library static --buildtype release
  -Dlibmpv=true -Dcplayer=false -Dgpl=false -Dtests=false
  -Dcocoa=disabled -Dswift-build=disabled -Dmacos-cocoa-cb=disabled
  -Dmacos-media-player=disabled -Dmacos-touchbar=disabled -Davfoundation=disabled
  -Dlua=disabled -Djavascript=disabled -Duchardet=disabled -Dzimg=disabled -Djpeg=disabled
  -Dlibarchive=disabled -Dlibbluray=disabled -Drubberband=disabled -Dvapoursynth=disabled
  -Dmanpage-build=disabled -Dhtml-build=disabled
# Mac
  -Dplain-gl=enabled -Dvideotoolbox-gl=enabled
# iPhone / iPad
  -Dlibmpv-cb=enabled -Dplain-gl=enabled -Dios-gl=enabled
  -Dvideotoolbox-gl=disabled -Dvideotoolbox-pl=disabled
  -Daudiounit=enabled -Dcoreaudio=disabled
# Apple TV
  -Dlibmpv-cb=enabled -Dgl=disabled -Dplain-gl=disabled -Dios-gl=disabled
  -Dvideotoolbox-gl=disabled -Dvideotoolbox-pl=disabled
  -Daudiounit=enabled -Dcoreaudio=disabled

Albero dei sorgenti = archivio della release + neverlag-mpv-changes.patch (vedi sopra). -Dgpl=false seleziona la compilazione LGPL di mpv.

libplacebo

meson setup --default-library static --buildtype release
  -Dvulkan=disabled -Dd3d11=disabled -Dshaderc=disabled -Dglslang=disabled
  -Dlcms=disabled -Dlibdovi=disabled -Ddemos=false -Dtests=false
# Mac
  -Dopengl=enabled
# iPhone / iPad
  -Dopengl=enabled
# Apple TV
  -Dopengl=disabled

La compilazione non trova xxHash (pkg-config è limitato al prefisso di compilazione); libplacebo ricorre al suo SipHash integrato (pubblico dominio).

libass

./configure --disable-shared --enable-static --disable-fontconfig

FreeType

meson setup --default-library static --buildtype release
  -Dharfbuzz=disabled -Dbrotli=disabled -Dbzip2=disabled -Dpng=disabled -Dzlib=system -Dtests=disabled

FriBidi

meson setup --default-library static --buildtype release -Ddocs=false -Dtests=false -Dbin=false

HarfBuzz

meson setup --default-library static --buildtype release
  -Dfreetype=enabled -Dglib=disabled -Dgobject=disabled -Dcairo=disabled -Dicu=disabled
  -Dtests=disabled -Ddocs=disabled -Dintrospection=disabled -Dutilities=disabled
# Mac
  -Dcoretext=enabled
# iPhone / iPad
  -Dcoretext=enabled
# Apple TV
  -Dcoretext=disabled

Libmpv.framework (packaging)

libtool -static -o libmpv-full.a libmpv.a libplacebo.a libass.a libharfbuzz.a libfribidi.a libfreetype.a
  libavformat.a libavcodec.a libavfilter.a libswscale.a libswresample.a libavutil.a
clang -dynamiclib -Wl,-all_load libmpv-full.a -install_name @rpath/Libmpv.framework/Libmpv
  -compatibility_version 1 -current_version 1 -Wl,-dead_strip
  -Wl,-exported_symbols_list Libmpv.exports   # _mpv_* _av* _sws_* _swr_* _swscale_* _swresample_*
  -lz -liconv -lc++ -framework VideoToolbox -framework AudioToolbox -framework CoreAudio
  -framework CoreMedia -framework CoreVideo -framework CoreText -framework CoreGraphics
  -framework Security -framework IOSurface -framework CoreFoundation
# Mac
  -arch arm64 -arch x86_64 -mmacosx-version-min=<macOS target> -framework OpenGL
  install_name @rpath/Libmpv.framework/Versions/A/Libmpv (versioned bundle)
# iPhone / iPad
  -target arm64-apple-ios<iOS target> -framework OpenGLES -framework AVFoundation -framework UIKit
# Apple TV
  -target arm64-apple-tvos<tvOS target> -framework AVFoundation -framework UIKit

Vendor/build-scripts/make-framework.sh: gli archivi statici vengono collegati, per piattaforma, in una libreria dinamica (dylib Mach-O, install name @rpath/Libmpv.framework/…), impacchettata con header, module map (moduli Libmpv e Libmpv.CFFmpeg) e Info.plist come Libmpv.framework e assemblata in Libmpv.xcframework. Xcode la incorpora nel bundle dell’app (Frameworks/) e la firma. Viene esportata solo l’API C pubblica.

Offerta scritta (codice sorgente)

Per almeno tre anni dal giorno in cui hai ricevuto la tua copia di Neverlag, axiena AG fornisce a qualsiasi terzo che ne faccia richiesta il codice sorgente completo, leggibile da macchina, delle librerie sotto licenza LGPL esattamente nelle versioni contenute nell’app — comprese tutte le modifiche Neverlag (il patch sopra) e gli script e la configurazione con cui vengono compilate — a un costo non superiore a quello sostenuto per questa consegna. Questa offerta è fatta ai sensi degli articoli 4 e 6 c della GNU Lesser General Public License 2.1.

Scrivi a support@neverlag.app o info@axiena.ch indicando versione dell’app e piattaforma (Impostazioni → Informazioni su Neverlag). Riceverai i link per scaricare gli archivi; se preferisci un supporto fisico, te lo inviamo al prezzo di costo.

axiena AG
Einsiedlerstrasse 535
8810 Horgen, Svizzera
support@neverlag.app · info@axiena.ch

Altro materiale di terzi

libass (ISC), FreeType (FreeType License), HarfBuzz (MIT), glad (MIT), fast_float (MIT) e GRDB.swift (MIT) richiedono che le loro note di licenza e di copyright vengano riprodotte; si trovano nell’app in Licenze open source.

I canali demo riproducono estratti e trailer dei Blender Open Movies, © Blender Foundation, con licenza Creative Commons Attribution (CC BY 2.5 e 3.0), ricodificati e in parte abbreviati per la modalità demo.

← Torna alla pagina iniziale