Açık kaynak
Sotto, LGPL-2.1 lisanslı kütüphaneler kullanır: iPhone ve iPad'de VLCKit, Android'de libVLC ve FFmpeg. Hangi sürüm, uygulamaya nasıl bağlı ve kaynağı nerede, aşağıda.
iPhone ve iPad
| Ne için | MPEG-TS ve diğer biçimleri oynatır. |
|---|---|
| Sürüm | MobileVLCKit 3.7.4 · VLCKit commit 54bba6d9 · libVLC 3.0.24, commit 6de05adc |
| İkili | VideoLAN'ın yayımladığı resmî derleme; kendimiz derlemiyoruz, yama da uygulamıyoruz. Dosya MobileVLCKit-3.0-20260922-1512.tar.xz (download.videolan.org, ~233 MB), SHA-256 c649c4c47bd065b3a5511746361b5a9066a34033f2df9cbc9454409c0f363b52 |
| Lisans | LGPL-2.1 veya sonrası |
| Bağlama | Ayrı, dinamik bir framework (MobileVLCKit.framework). Uygulama paketinde kendi dosyası olarak durur; uygulamanın koduyla birleştirilmez. |
| Kaynak | VLCKit 3.7.4 · VLC 3.0.24, commit 6de05adc (code.videolan.org) |
| Hakların | Kütüphaneyi incelemeni, değiştirmeni ya da uygulamadakinin yerine kendi derlemeni koymanı kısıtlayan bir koşulumuz yok. |
Android ve Android TV
| Ne için | Cihazın kendi çözücüsünün açamadığı ses biçimleri (ör. MP2). Yalnız ses çözer. |
|---|---|
| Sürüm | FFmpeg n6.0.1, commit c41ff724ede7da657762d61097e26fac296c53bf |
| Kütüphaneler | libavcodec, libavutil, libswresample |
| Çözücüler | ac3, alac, flac, mp2, mp3, opus, vorbis; başkası yok |
| Lisans | LGPL-2.1 veya sonrası. --enable-gpl ve --enable-nonfree olmadan derlendi. |
| Bağlama | FFmpeg, APK'nın içindeki ayrı bir paylaşımlı kütüphaneye, libffmpegJNI.so'ya statik olarak bağlı. Bu dosyada bize ait kod yok: yalnız FFmpeg ve Media3'ün Apache-2.0 lisanslı JNI sarmalayıcısı (ffmpeg_jni.cc). |
| Media3 | androidx/media 1.11.1, libraries/decoder_ffmpeg |
| Derleme | NDK r27d (27.3.13750724), API 23, armeabi-v7a ve arm64-v8a. FFmpeg'e yama uygulanmadı; Media3'ün derleme dosyasına yalnız NDK sürümü, ABI listesi ve 16 KB sayfa hizası (-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON) eklendi. |
| Kaynak | FFmpeg n6.0.1: git.ffmpeg.org · GitHub yansısı Media3 1.11.1: github.com/androidx/media |
| Hakların | FFmpeg'i değiştirip aşağıdaki ayarlarla libffmpegJNI.so'yu yeniden üretebilir ve uygulamadakinin yerine koyabilirsin. Bunu ya da kütüphaneyi incelemeni kısıtlayan bir koşulumuz yok. |
configure satırı
Her ABI için ayrı çalışır. $TOOLCHAIN, NDK'nın toolchains/llvm/prebuilt/<host>/bin dizini.
# 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 ve Android TV: ikinci motor
| Ne için | Android'in ana oynatıcısının (Media3) açamadığı ya da çözemediği yayınlar; Teknik'ten elle de seçilebilir. |
|---|---|
| Sürüm | org.videolan.android:libvlc-all 3.7.7 · libVLC 3.0.25 · vlc-android etiketi libvlc-3.7.7 (commit 7a7c8f14) · libvlcjni commit 0b8dc65e · VLC 3.0.x commit 84177b22 |
| İkili | VideoLAN'ın Maven Central'da yayımladığı resmî derleme; kendimiz derlemiyoruz, yama da uygulamıyoruz. AAR SHA-256 b48dab96e0e90e34cce3861963500c144a5aadb1b249d501d6a4b104d849e61b |
| Lisans | LGPL-2.1 veya sonrası |
| Bağlama | APK'nın içinde ayrı, dinamik kütüphaneler (libvlc.so, libvlcjni.so); uygulamanın koduyla birleştirilmez. Yalnız armeabi-v7a ve arm64-v8a. |
| Kaynak | vlc-android, libvlc-3.7.7 · libvlcjni, 0b8dc65e · VLC, 84177b22 (code.videolan.org) |
| Hakların | Kütüphaneyi incelemeni, değiştirmeni ya da uygulamadakinin yerine kendi derlemeni koymanı kısıtlayan bir koşulumuz yok. |
Kaynak kodu
iPhone ve iPad'deki VLCKit'in ve Android'deki libVLC'nin kaynağı VideoLAN'da, yukarıdaki bağlantılarda.
Android'deki FFmpeg derlememizin eksiksiz kaynağını istersen sana veririz: FFmpeg n6.0.1 kaynağı, Media3 1.11.1'in FFmpeg uzantısı ve derleme betiğimiz. help@sottoiptv.com adresine yaz. Bu teklif en az 3 yıl geçerlidir.
Lisans metni
GNU Lesser General Public License 2.1 (gnu.org)
Uygulamanın kullandığı bütün bileşenler ve lisans metinleri uygulamadaki “Hakkında ve lisanslar” ekranında. Ayrıca bkz. Kullanım koşulları, 7. bölüm.