Open Source
Sotto nutzt Bibliotheken unter der LGPL-2.1: VLCKit auf iPhone und iPad, libVLC und FFmpeg auf Android. Unten steht, welche Version es ist, wie sie in die App eingebunden ist und wo der Quelltext liegt.
iPhone und iPad
| Wofür | Spielt MPEG-TS und andere Formate ab. |
|---|---|
| Version | MobileVLCKit 3.7.4 · VLCKit-Commit 54bba6d9 · libVLC 3.0.24, Commit 6de05adc |
| Binärdatei | Offizieller Build von VideoLAN; wir bauen ihn nicht selbst und patchen ihn nicht. Datei MobileVLCKit-3.0-20260922-1512.tar.xz (download.videolan.org, ~233 MB), SHA-256 c649c4c47bd065b3a5511746361b5a9066a34033f2df9cbc9454409c0f363b52 |
| Lizenz | LGPL-2.1 oder später |
| Einbindung | Eigenes, dynamisches Framework (MobileVLCKit.framework). Es liegt als eigene Datei im App-Paket und wird nicht mit dem Code der App zusammengeführt. |
| Quelltext | VLCKit 3.7.4 · VLC 3.0.24, Commit 6de05adc (code.videolan.org) |
| Ihre Rechte | Wir knüpfen keine Bedingung daran, dass Sie die Bibliothek prüfen, verändern oder die Kopie in der App durch einen eigenen Build ersetzen. |
Android und Android TV
| Wofür | Tonformate, die der Decoder des Geräts nicht abspielt (z. B. MP2). Nur Ton. |
|---|---|
| Version | FFmpeg n6.0.1, Commit c41ff724ede7da657762d61097e26fac296c53bf |
| Bibliotheken | libavcodec, libavutil, libswresample |
| Decoder | ac3, alac, flac, mp2, mp3, opus, vorbis; keine weiteren |
| Lizenz | LGPL-2.1 oder später. Ohne --enable-gpl und --enable-nonfree gebaut. |
| Einbindung | FFmpeg ist statisch in libffmpegJNI.so eingebunden, eine eigene Shared Library im APK. Diese Datei enthält keinen Code von uns: nur FFmpeg und den JNI-Wrapper von Media3 (ffmpeg_jni.cc, Apache-2.0). |
| Media3 | androidx/media 1.11.1, libraries/decoder_ffmpeg |
| Build | NDK r27d (27.3.13750724), API 23, armeabi-v7a und arm64-v8a. FFmpeg ist nicht gepatcht; in die Build-Datei von Media3 kommen nur die NDK-Version, die ABI-Liste und die 16-KB-Seitenausrichtung (-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON). |
| Quelltext | FFmpeg n6.0.1: git.ffmpeg.org · GitHub-Spiegel Media3 1.11.1: github.com/androidx/media |
| Ihre Rechte | Sie können FFmpeg verändern, libffmpegJNI.so mit den Einstellungen unten neu bauen und anstelle der Datei in der App verwenden. Wir knüpfen daran keine Bedingung, ebenso wenig an das Prüfen der Bibliothek. |
configure-Aufruf
Läuft einmal pro ABI. $TOOLCHAIN ist das Verzeichnis toolchains/llvm/prebuilt/<host>/bin des NDK.
# arm64-v8a
./configure --libdir="android-libs/arm64-v8a" --arch=aarch64 --cpu=armv8-a \
--cross-prefix="$TOOLCHAIN/aarch64-linux-android23-" \
--nm="$TOOLCHAIN/llvm-nm" --ar="$TOOLCHAIN/llvm-ar" \
--ranlib="$TOOLCHAIN/llvm-ranlib" --strip="$TOOLCHAIN/llvm-strip" \
--target-os=android --enable-static --disable-shared --disable-doc \
--disable-programs --disable-everything --disable-avdevice \
--disable-avformat --disable-swscale --disable-postproc \
--disable-avfilter --disable-symver --enable-swresample \
--extra-ldexeflags=-pie --disable-v4l2-m2m --disable-vulkan \
--enable-decoder=mp2 --enable-decoder=mp3 --enable-decoder=ac3 \
--enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis \
--enable-decoder=opus
# armeabi-v7a
./configure --libdir="android-libs/armeabi-v7a" --arch=arm --cpu=armv7-a \
--cross-prefix="$TOOLCHAIN/armv7a-linux-androideabi23-" \
--nm="$TOOLCHAIN/llvm-nm" --ar="$TOOLCHAIN/llvm-ar" \
--ranlib="$TOOLCHAIN/llvm-ranlib" --strip="$TOOLCHAIN/llvm-strip" \
--extra-cflags="-march=armv7-a -mfloat-abi=softfp" \
--extra-ldflags="-Wl,--fix-cortex-a8" \
--target-os=android --enable-static --disable-shared --disable-doc \
--disable-programs --disable-everything --disable-avdevice \
--disable-avformat --disable-swscale --disable-postproc \
--disable-avfilter --disable-symver --enable-swresample \
--extra-ldexeflags=-pie --disable-v4l2-m2m --disable-vulkan \
--enable-decoder=mp2 --enable-decoder=mp3 --enable-decoder=ac3 \
--enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis \
--enable-decoder=opus
Android und Android TV: zweite Engine
| Wofür | Streams, die der Hauptplayer von Android (Media3) nicht öffnen oder dekodieren kann; unter Technik auch von Hand wählbar. |
|---|---|
| Version | org.videolan.android:libvlc-all 3.7.7 · libVLC 3.0.25 · vlc-android-Tag libvlc-3.7.7 (Commit 7a7c8f14) · libvlcjni-Commit 0b8dc65e · VLC 3.0.x, Commit 84177b22 |
| Binärdatei | Offizieller Build von VideoLAN, veröffentlicht auf Maven Central; wir bauen ihn nicht selbst und patchen ihn nicht. AAR SHA-256 b48dab96e0e90e34cce3861963500c144a5aadb1b249d501d6a4b104d849e61b |
| Lizenz | LGPL-2.1 oder später |
| Einbindung | Eigene, dynamische Bibliotheken im APK (libvlc.so, libvlcjni.so); nicht mit dem Code der App zusammengeführt. Nur armeabi-v7a und arm64-v8a. |
| Quelltext | vlc-android, libvlc-3.7.7 · libvlcjni, 0b8dc65e · VLC, 84177b22 (code.videolan.org) |
| Ihre Rechte | Wir knüpfen keine Bedingung daran, dass Sie die Bibliothek prüfen, verändern oder die Kopie in der App durch einen eigenen Build ersetzen. |
Quelltext
Den Quelltext von VLCKit für iPhone und iPad und von libVLC für Android stellt VideoLAN bereit, unter den Links oben.
Den vollständigen Quelltext unseres FFmpeg-Builds für Android geben wir Ihnen auf Anfrage: den Quelltext von FFmpeg n6.0.1, die FFmpeg-Erweiterung von Media3 1.11.1 und unser Build-Skript. Schreiben Sie an help@sottoiptv.com. Dieses Angebot gilt mindestens drei Jahre.
Lizenztext
GNU Lesser General Public License 2.1 (gnu.org)
Alle Bausteine der App und ihre Lizenztexte stehen in der App unter „Über und Lizenzen“. Siehe auch Nutzungsbedingungen, Abschnitt 7.