BGPVR
Book a demoЗаявете демо

Open-source components

Last updated: 9 November 2026

Some BGPVR products contain open-source software. For each part whose licence asks us to publish or offer its source code, this page gives the exact version, how we build it and where to download the source. The source archives further down cover BGPVR Player for Android from 1.8.8 to 1.9.8. It has FFmpeg in two places: in its audio decoder and in libmpv, its video player. We add more parts and product versions as we publish their source.

Products and the open-source parts in them

BGPVR Player for Linux

Each release of BGPVR Player for Linux is published with the complete corresponding source of its LGPL libraries: bgpvr-player-linux-<version>-lgpl-sources.tar, next to the .deb and the AppImage on the GitHub releases page, with its SHA256 in that release's SHA256SUMS. For 1.9.6.3-9: bgpvr-player-linux-1.9.6.3-9-lgpl-sources.tar (62 MB, sha256 070f27d7e8dc572e5d6416a8b073e3ba80132675d2d1482415e9d761cfde2bf9).

It holds the exact upstream sources, our build scripts and configure lines, the source packages of the bundled Ubuntu libraries, and a README.txt with the steps to rebuild the libraries and to put your own build into /opt/bgpvr-player/lib (.deb) or into the AppImage. The app's licenses/NOTICE.txt lists every library, version and licence.

FFmpeg in BGPVR Player 1.8.8

The app's Media3 (ExoPlayer) engine uses FFmpeg to decode audio formats that the device cannot decode itself, for example AC-3, E-AC-3, DTS and Dolby TrueHD.

This decoder is one library, libffmpegJNI.so, built for three ABIs: arm64-v8a, armeabi-v7a and x86_64. It holds FFmpeg's libavcodec, libavutil and libswresample, linked statically, plus the JNI glue from androidx/media 1.7.1 (commit b732b2a0aa3c186edb75c5b3dadc810b849071e9). Nothing else is linked into it.

We build FFmpeg as LGPL only. Configure never gets --enable-gpl, --enable-nonfree or --enable-version3. For every ABI, FFmpeg's config.h reports FFMPEG_LICENSE "LGPL version 2.1 or later", CONFIG_GPL 0 and CONFIG_NONFREE 0.

Enabled decoders

Audio decoders only. --disable-everything turns every other component off.

aac, ac3, alac, amrnb, amrwb, dca, eac3, flac, mlp, mp3, opus, pcm_alaw, pcm_mulaw, truehd, vorbis. The mp3 decoder also decodes MPEG audio layers 1 and 2.

Configure flags per ABI

These are the configure arguments of each build, exactly as FFmpeg recorded them in config.h. $ANDROID_SDK stands for the Android SDK folder on our build machine.

arm64-v8a

--libdir=android-libs/arm64-v8a --arch=aarch64 --cpu=armv8-a --cross-prefix=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24- --nm=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm --ar=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar --ranlib=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib --strip=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/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=vorbis --enable-decoder=opus --enable-decoder=flac --enable-decoder=alac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-decoder=mp3 --enable-decoder=amrnb --enable-decoder=amrwb --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=eac3 --enable-decoder=dca --enable-decoder=mlp --enable-decoder=truehd

armeabi-v7a

--libdir=android-libs/armeabi-v7a --arch=arm --cpu=armv7-a --cross-prefix=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24- --extra-cflags='-march=armv7-a -mfloat-abi=softfp' --extra-ldflags='-Wl,--fix-cortex-a8' --nm=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm --ar=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar --ranlib=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib --strip=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/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=vorbis --enable-decoder=opus --enable-decoder=flac --enable-decoder=alac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-decoder=mp3 --enable-decoder=amrnb --enable-decoder=amrwb --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=eac3 --enable-decoder=dca --enable-decoder=mlp --enable-decoder=truehd

x86_64

--libdir=android-libs/x86_64 --arch=x86_64 --cpu=x86-64 --cross-prefix=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android24- --disable-asm --nm=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm --ar=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar --ranlib=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib --strip=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/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=vorbis --enable-decoder=opus --enable-decoder=flac --enable-decoder=alac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-decoder=mp3 --enable-decoder=amrnb --enable-decoder=amrwb --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=eac3 --enable-decoder=dca --enable-decoder=mlp --enable-decoder=truehd

Build it yourself

You need Linux x86_64, Android NDK 28.2.13676358 and CMake 3.22.1 from the Android SDK. The target is API level 24, the app's minimum.

  1. Download the archive below, unpack it and check it with sha256sum -c SHA256SUMS.
  2. Run media3_ffmpeg/rebuild/build.sh, or follow the step-by-step commands in README.txt, which work offline. You get one libffmpegJNI.so per ABI.

We ran the steps in README.txt on the published archive. The three libraries matched the ones in the app byte for byte, apart from the 20-byte build ID, which depends on the build folder.

Download the source code

libmpv in BGPVR Player 1.8.8

The app plays video with media_kit 1.2.6. Its native player is libmpv.so, shipped for arm64-v8a, armeabi-v7a and x86_64. It holds mpv and a second, separate FFmpeg build, linked statically.

We do not build this library. The package media_kit_libs_android_video 1.3.8, as pinned in the app's lock file, downloads the prebuilt libraries of release v1.1.7 of media-kit/libmpv-android-video-build (the "default" flavour) and checks their MD5 sums. The project's GitHub Actions workflow built that release from tag v1.1.7 (commit fe8c3ac1a91c09aa6fb1deccbc833f1bafa54768). The libmpv.so files in the app are byte for byte the ones in the release.

Versions

Build settings

FFmpeg is configured with --disable-gpl, --disable-nonfree and --enable-version3, so it is LGPL version 3 or later. The library itself reports libavcodec license: LGPL version 3 or later. mpv is built with -Dgpl=false, so it is LGPL 2.1 or later. Taken together, libmpv.so is distributed under the LGPL version 3 or later.

The build scripts and flags as published upstream, at tag v1.1.7:

The release was built with buildscripts/bundle_default.sh on GitHub's ubuntu-22.04 runner. README.txt in the archive below explains how to build from the archived sources. We have not rebuilt libmpv.so ourselves.

Download the source code

BGPVR Player 1.8.9.1 to 1.9.8

The same two libraries, as described in the list at the top. Each archive has a README.txt with the exact library files it covers (their SHA-256), the build steps and how to put your own build into the app.

FFmpeg audio and MPEG-2 decoder, BGPVR Player 1.8.9.1 to 1.9.8

libmpv with the deinterlace filters, BGPVR Player 1.9.3 to 1.9.8

Licences

The FFmpeg audio decoder (libffmpegJNI.so) is licensed under the GNU Lesser General Public License, version 2.1 or later. Read the LGPL 2.1 text.

The androidx/media decoder module is licensed under the Apache License 2.0. Read the Apache 2.0 text.

libmpv.so is distributed under the GNU Lesser General Public License, version 3 or later. Read the LGPL 3 text and the GPL 3 text it builds on. mpv and fribidi are LGPL 2.1 or later; their licence files are in their archives. The build scripts are under the MIT licence.

BGPVR Player for Linux: libmpv, FFmpeg, libplacebo and libdisplay-info are licensed under the GNU Lesser General Public License, version 2.1 or later (the LGPL 2.1 text). The same rights apply: the source of each release sits next to it on GitHub, and README.txt in that archive shows how to put your own build of these libraries into /opt/bgpvr-player/lib or into the AppImage.

The open-source licences screen in the app lists the other open-source packages in BGPVR Player.

Your right to change or replace the library

The LGPL lets you change FFmpeg and mpv and use your changed versions with BGPVR Player. The app loads libffmpegJNI.so by name and calls it only through the JNI functions in ffmpeg_jni.cc, so a library you build from this source can replace ours.

To replace it, put your library into the APK at lib/<abi>/libffmpegJNI.so, align the APK and sign it with your own key. README.txt gives the commands, also for the split APKs that Google Play installs. Android will not install a copy signed with another key over ours, so uninstall the app first.

The same works for libmpv. media_kit loads libmpv.so by name and calls it only through mpv's public C API (libmpv/client.h), so a library you build from its source can replace ours. Put it into the APK at lib/<abi>/libmpv.so the same way; the libmpv archive's README.txt gives the commands.

You may also reverse-engineer the app as far as you need to debug such changes. This right comes from the LGPL, and section 5 of our Terms of Service says so too.

Server images

Operators install the BGPVR suite as Docker images: the suite (ghcr.io/bgpvr/bgpvr), the AI service (ghcr.io/bgpvr/bgpvr-ai) and the node (ghcr.io/bgpvr/bgpvr-node). Next to our own software, which is not open source, they carry separate open-source programs. BGPVR starts them as their own processes, and each keeps its own licence. Every image lists them, with the exact versions it was built with, in /usr/share/doc/bgpvr/THIRD_PARTY.txt.

The suite and AI images are built on Debian 13 (trixie), the node image on Debian 11 (bullseye). The source packages of the GPL programs above are ffmpeg, dvblast and libdvbcsa; dpkg-query -W in the image gives the exact version of each, as of every other Debian package in it. Get a source package with apt-get source <package>=<version>, or from sources.debian.org and snapshot.debian.org.

Written offer for the server images: for at least three years after we last distribute a version of these images, we will give anyone who asks the complete corresponding source code of the GPL and LGPL programs in it, including the Debian source packages and the OSCam source above. A download is free. On a physical medium we charge no more than our cost of copying and posting it. Write to support@bgpvr.com and name the image and its version.

Written offer

For at least three years after we last distribute BGPVR Player 1.8.8, we will give anyone who asks the complete source code of the two FFmpeg-based libraries in it, the audio decoder and libmpv: the same files as in the archives above. A download is free. On a physical medium we charge no more than our cost of copying and posting it. Write to support@bgpvr.com and name the product and version. The same offer covers BGPVR Player for Android 1.8.9 to 1.9.8 and the archives above for those versions.

Компоненти с отворен код

Последна актуализация: 9 ноември 2026 г.

Някои продукти на BGPVR съдържат софтуер с отворен код. За всяка част, чийто лиценз изисква да публикуваме или предложим изходния ѝ код, тук посочваме точната версия, как я изграждаме и откъде да изтеглите кода. Архивите с изходен код по-долу са за BGPVR Player за Android от 1.8.8 до 1.9.8. В приложението FFmpeg има на две места: в аудио декодера и в libmpv, видео плейъра на приложението. Добавяме още части и версии на продукти, когато публикуваме изходния им код.

Продукти и частите с отворен код в тях

BGPVR Player за Linux

Всяка версия на BGPVR Player за Linux се публикува с пълния съответстващ изходен код на LGPL библиотеките в нея: bgpvr-player-linux-<версия>-lgpl-sources.tar, до .deb и AppImage на страницата с версиите в GitHub, а SHA256 сумата му е в SHA256SUMS на същата версия. За 1.9.6.3-9: bgpvr-player-linux-1.9.6.3-9-lgpl-sources.tar (62 MB, sha256 070f27d7e8dc572e5d6416a8b073e3ba80132675d2d1482415e9d761cfde2bf9).

В него са точните изходни кодове от авторите, нашите скриптове и настройки за компилиране, изходните пакети на включените библиотеки от Ubuntu и README.txt със стъпките да компилирате библиотеките отново и да поставите своя версия в /opt/bgpvr-player/lib (.deb) или в AppImage. Файлът licenses/NOTICE.txt в приложението изброява всяка библиотека, версия и лиценз.

FFmpeg в BGPVR Player 1.8.8

Плейърът Media3 (ExoPlayer) в приложението използва FFmpeg, за да декодира аудио формати, които устройството не може да декодира само, например AC-3, E-AC-3, DTS и Dolby TrueHD.

Този декодер е една библиотека, libffmpegJNI.so, изградена за три ABI: arm64-v8a, armeabi-v7a и x86_64. В нея са libavcodec, libavutil и libswresample на FFmpeg, свързани статично, и JNI слоят от androidx/media 1.7.1 (commit b732b2a0aa3c186edb75c5b3dadc810b849071e9). Нищо друго не е свързано в нея.

Изграждаме FFmpeg само под LGPL. Configure никога не получава --enable-gpl, --enable-nonfree или --enable-version3. За всеки ABI файлът config.h на FFmpeg показва FFMPEG_LICENSE "LGPL version 2.1 or later", CONFIG_GPL 0 и CONFIG_NONFREE 0.

Включени декодери

Само аудио декодери. --disable-everything изключва всички останали компоненти.

aac, ac3, alac, amrnb, amrwb, dca, eac3, flac, mlp, mp3, opus, pcm_alaw, pcm_mulaw, truehd, vorbis. Декодерът mp3 декодира и MPEG аудио слой 1 и 2.

Флагове на configure за всеки ABI

Това са аргументите на configure за всяка компилация, точно както FFmpeg ги е записал в config.h. $ANDROID_SDK означава папката на Android SDK на нашата машина за компилиране.

arm64-v8a

--libdir=android-libs/arm64-v8a --arch=aarch64 --cpu=armv8-a --cross-prefix=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24- --nm=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm --ar=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar --ranlib=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib --strip=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/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=vorbis --enable-decoder=opus --enable-decoder=flac --enable-decoder=alac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-decoder=mp3 --enable-decoder=amrnb --enable-decoder=amrwb --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=eac3 --enable-decoder=dca --enable-decoder=mlp --enable-decoder=truehd

armeabi-v7a

--libdir=android-libs/armeabi-v7a --arch=arm --cpu=armv7-a --cross-prefix=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24- --extra-cflags='-march=armv7-a -mfloat-abi=softfp' --extra-ldflags='-Wl,--fix-cortex-a8' --nm=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm --ar=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar --ranlib=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib --strip=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/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=vorbis --enable-decoder=opus --enable-decoder=flac --enable-decoder=alac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-decoder=mp3 --enable-decoder=amrnb --enable-decoder=amrwb --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=eac3 --enable-decoder=dca --enable-decoder=mlp --enable-decoder=truehd

x86_64

--libdir=android-libs/x86_64 --arch=x86_64 --cpu=x86-64 --cross-prefix=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android24- --disable-asm --nm=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm --ar=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar --ranlib=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib --strip=$ANDROID_SDK/ndk/28.2.13676358/toolchains/llvm/prebuilt/linux-x86_64/bin/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=vorbis --enable-decoder=opus --enable-decoder=flac --enable-decoder=alac --enable-decoder=pcm_mulaw --enable-decoder=pcm_alaw --enable-decoder=mp3 --enable-decoder=amrnb --enable-decoder=amrwb --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=eac3 --enable-decoder=dca --enable-decoder=mlp --enable-decoder=truehd

Изградете библиотеката сами

Нужни са Linux x86_64, Android NDK 28.2.13676358 и CMake 3.22.1 от Android SDK. Целевото API ниво е 24, минималното за приложението.

  1. Изтеглете архива по-долу, разархивирайте го и го проверете с sha256sum -c SHA256SUMS.
  2. Стартирайте media3_ffmpeg/rebuild/build.sh или следвайте командите стъпка по стъпка в README.txt, които работят без интернет. Получавате по един libffmpegJNI.so за всеки ABI.

Изпълнихме стъпките от README.txt върху публикувания архив. Трите библиотеки съвпаднаха байт по байт с тези в приложението, с изключение на 20-байтовия build ID, който зависи от папката на компилацията.

Изтеглете изходния код

libmpv в BGPVR Player 1.8.8

Приложението възпроизвежда видео с media_kit 1.2.6. Неговият плейър е libmpv.so, включен за arm64-v8a, armeabi-v7a и x86_64. В него са mpv и втора, отделна компилация на FFmpeg, свързани статично.

Тази библиотека не я изграждаме ние. Пакетът media_kit_libs_android_video 1.3.8, фиксиран в lock файла на приложението, изтегля готовите библиотеки от издание v1.1.7 на media-kit/libmpv-android-video-build (вариант „default“) и проверява MD5 сумите им. Работният процес в GitHub Actions на проекта е изградил това издание от tag v1.1.7 (commit fe8c3ac1a91c09aa6fb1deccbc833f1bafa54768). Файловете libmpv.so в приложението съвпадат байт по байт с тези от изданието.

Версии

Настройки на компилацията

FFmpeg се конфигурира с --disable-gpl, --disable-nonfree и --enable-version3, затова е под LGPL версия 3 или по-нова. Самата библиотека показва libavcodec license: LGPL version 3 or later. mpv се изгражда с -Dgpl=false, затова е под LGPL 2.1 или по-нова. Като цяло libmpv.so се разпространява под LGPL версия 3 или по-нова.

Скриптовете и флаговете, както са публикувани от авторите, при tag v1.1.7:

Изданието е изградено с buildscripts/bundle_default.sh в средата ubuntu-22.04 на GitHub. README.txt в архива по-долу обяснява как да изградите библиотеката от архивирания код (на английски). Ние не сме изграждали libmpv.so сами.

Изтеглете изходния код

BGPVR Player от 1.8.9.1 до 1.9.8

Същите две библиотеки, описани в списъка в началото. Всеки архив съдържа README.txt с точните файлове на библиотеките, за които се отнася (със SHA-256), стъпките за компилиране и как да поставите своя компилация в приложението (на английски).

FFmpeg, аудио и MPEG-2 декодер, BGPVR Player от 1.8.9.1 до 1.9.8

libmpv с филтрите за премахване на презредовост, BGPVR Player от 1.9.3 до 1.9.8

Лицензи

Аудио декодерът с FFmpeg (libffmpegJNI.so) се разпространява под GNU Lesser General Public License, версия 2.1 или по-нова. Прочетете текста на LGPL 2.1 (на английски).

Декодерният модул на androidx/media се разпространява под Apache License 2.0. Прочетете текста на Apache 2.0 (на английски).

libmpv.so се разпространява под GNU Lesser General Public License, версия 3 или по-нова. Прочетете текста на LGPL 3 и текста на GPL 3, върху който се основава (на английски). mpv и fribidi са под LGPL 2.1 или по-нова; лицензните им файлове са в архивите им. Скриптовете за компилиране са под лиценза MIT.

BGPVR Player за Linux: libmpv, FFmpeg, libplacebo и libdisplay-info се разпространяват под GNU Lesser General Public License, версия 2.1 или по-нова (текстът на LGPL 2.1). Важат същите права: изходният код на всяка версия е до нея в GitHub, а README.txt в архива показва как да сложите своя компилация на тези библиотеки в /opt/bgpvr-player/lib или в AppImage.

Екранът с лицензи с отворен код в приложението изброява останалите пакети с отворен код в BGPVR Player.

Правото ви да промените или замените библиотеката

LGPL ви позволява да променяте FFmpeg и mpv и да използвате променените версии с BGPVR Player. Приложението зарежда libffmpegJNI.so по име и я извиква само чрез JNI функциите в ffmpeg_jni.cc, затова библиотека, изградена от този код, може да замени нашата.

За да я замените, поставете своята библиотека в APK файла като lib/<abi>/libffmpegJNI.so, подравнете APK файла и го подпишете със собствен ключ. Командите са в README.txt, включително за разделените APK файлове (split APK), които инсталира Google Play. Android не инсталира копие с друг подпис върху нашето, затова първо деинсталирайте приложението.

Същото важи и за libmpv. media_kit зарежда libmpv.so по име и я извиква само чрез публичния C API на mpv (libmpv/client.h), затова библиотека, изградена от нейния код, може да замени нашата. Поставете я в APK файла като lib/<abi>/libmpv.so по същия начин; командите са в README.txt на архива за libmpv.

Можете също да прилагате обратно инженерство върху приложението, доколкото е нужно, за да отстранявате грешки в такива промени. Това право идва от LGPL и раздел 5 от нашите Общи условия го потвърждава.

Сървърни образи

Операторите инсталират BGPVR като Docker образи: сървъра (ghcr.io/bgpvr/bgpvr), AI услугата (ghcr.io/bgpvr/bgpvr-ai) и възела (ghcr.io/bgpvr/bgpvr-node). Освен нашия софтуер, който не е с отворен код, те съдържат отделни програми с отворен код. BGPVR ги стартира като самостоятелни процеси и всяка запазва своя лиценз. Всеки образ ги изброява, с точните версии, с които е изграден, в /usr/share/doc/bgpvr/THIRD_PARTY.txt.

Образите на сървъра и на AI услугата са изградени върху Debian 13 (trixie), а образът на възела – върху Debian 11 (bullseye). Пакетите с изходен код на горните GPL програми са ffmpeg, dvblast и libdvbcsa; dpkg-query -W в образа показва точната версия на всеки от тях, както и на всеки друг пакет на Debian в него. Изтеглете пакет с изходен код с apt-get source <пакет>=<версия> или от sources.debian.org и snapshot.debian.org.

Писмено предложение за сървърните образи: поне три години след последното разпространение на дадена версия на тези образи ще предоставим на всеки, който поиска, пълния съответстващ изходен код на GPL и LGPL програмите в нея, включително пакетите с изходен код на Debian и изходния код на OSCam по-горе. Изтеглянето е безплатно. На физически носител взимаме не повече от разходите си за копиране и пощенско изпращане. Пишете на support@bgpvr.com и посочете образа и версията му.

Писмено предложение

Поне три години след последното разпространение на BGPVR Player 1.8.8 ще предоставим на всеки, който поиска, пълния изходен код на двете библиотеки с FFmpeg в него, аудио декодера и libmpv: същите файлове като в архивите по-горе. Изтеглянето е безплатно. На физически носител взимаме не повече от разходите си за копиране и пощенско изпращане. Пишете на support@bgpvr.com и посочете продукта и версията. Същото предложение важи за BGPVR Player за Android от 1.8.9 до 1.9.8 и архивите по-горе за тези версии.