1. Summary
The SnapID Mark app stamps video on your phone with software from the FFmpeg project, through the Flutter plugin ffmpeg_kit_flutter_new_min. This software is licensed under the GNU Lesser General Public License (LGPL). This page gives the names, versions, licences, where to get the source code and how to replace the library.
The build in use is the "min" build. It contains no GPL component (no x264, x265, xvidcore, vid.stab) and no non-free component. Video encoding uses the encoder of the operating system (MediaCodec on Android, VideoToolbox on iOS).
2. Components and licences
| Component | Version | Licence | Source code |
|---|---|---|---|
| FFmpeg (libavcodec, libavformat, libavfilter, libavutil, libswscale, libswresample, libavdevice) | n8.1.2 | LGPL 2.1 or later. The build enables --enable-version3, so LGPL 3.0 or later applies | git.ffmpeg.org/ffmpeg.git, tag n8.1.2, commit 38b88335f99e76ed89ff3c93f877fdefce736c13 |
| FFmpegKit (sk3llo fork), the FFmpeg wrapper for Android and iOS | Flutter package ffmpeg_kit_flutter_new_min 3.6.2, Android library com.antonkarpenko:ffmpeg-kit-min 2.2.2, iOS release 8.1.2-min | LGPL 3.0 | github.com/sk3llo/ffmpeg_kit_flutter, release 8.1.2-min (commit 437356ab7efb22ba0a70cbf23ca4bf7b3f693d38) |
Build configuration (read from the libraries inside the app): Android and iOS both use --enable-shared --disable-static --enable-version3 and --enable-zlib, with no --enable-gpl and no --enable-nonfree. Android adds --enable-jni --enable-mediacodec. iOS adds --enable-videotoolbox --enable-avfoundation.
3. Licence notice
This software uses code of FFmpeg licensed under the GNU Lesser General Public License (LGPL). FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg project. The FFmpegKit layer is licensed under LGPL 3.0. SnapID Mark does not own FFmpeg or FFmpegKit. The copyright holders are the authors of those two projects.
Full licence texts:
- GNU Lesser General Public License, version 3 (with the GNU General Public License, version 3 that LGPL 3.0 refers to)
- GNU Lesser General Public License, version 2.1
This notice, with links to the licences and the source code, is also inside the app, at Settings › Video › Open-source licences.
The licence lets you use, study, modify and redistribute the library under the conditions of the licence text. Your rights over these two libraries are not restricted by the SnapID Mark Terms of Service. This includes reverse engineering the library to debug a version of it that you modified.
4. Source code offer
SnapID Mark does not modify the FFmpeg source code and does not modify FFmpegKit. You can get the corresponding source code of the exact version in the app at the addresses in section 2:
- FFmpeg source: repository
https://git.ffmpeg.org/ffmpeg.git, tagn8.1.2, commit38b88335f99e76ed89ff3c93f877fdefce736c13(mirror: github.com/FFmpeg/FFmpeg, tag n8.1.2). - FFmpegKit source and packaging scripts: repository github.com/sk3llo/ffmpeg_kit_flutter, release
8.1.2-min. - Android package: repo1.maven.org/maven2/com/antonkarpenko/ffmpeg-kit-min/2.2.2/ (includes a
-sources.jarfile).
If those addresses stop working, or you want a copy of the corresponding source code with the build configuration of the version in the app, email cellhubsapp@gmail.com with the app version. We will send a copy or a download link and charge at most the cost of copying. This offer is valid for as long as we distribute that app version.
5. How to get and replace the library
The FFmpeg libraries are linked dynamically. They are not merged into the SnapID Mark program code:
- Android: the files
libavcodec.so,libavformat.so,libavfilter.so,libavutil.so,libswscale.so,libswresample.so,libavdevice.soandlibffmpegkit.soare in thelib/<architecture>/folder of the app package (APK). You can unpack the APK, replace these files with your own build from the source in section 4 that has the same interface (ABI), then repackage and re-sign it. - iOS: the libraries are dynamic frameworks (
libavcodec.frameworkand the others of the same kind) in theFrameworks/folder of the app.
To rebuild the libraries from source, follow the documentation and scripts of the FFmpegKit project listed in section 4, with the configuration in section 2. For further help, contact us at the email address in section 8.
6. SnapID Mark's own code
The source code and software that SnapID Mark develops itself is not part of FFmpeg or FFmpegKit, and the LGPL of those two libraries does not apply to it. The app calls the libraries through their public interface and does not copy their code into SnapID Mark's code.
7. Other open-source components
SnapID Mark also uses other open-source packages, including Flutter and Dart libraries. Their names, copyright notices and licences are listed in the app, at Settings › Video › Open-source licences.
Ads use the google_mobile_ads package (Apache 2.0, Google). The Google Mobile Ads SDK and User Messaging Platform SDK inside it are Google's proprietary software, not open source, and follow Google's terms.
8. Trademarks and contact
FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg project. SnapID Mark is not affiliated with, or endorsed by, the FFmpeg project or the author of FFmpegKit.
Questions about this page or requests for source code: cellhubsapp@gmail.com.