Open-Source Corresponding Source
OnSpecQC incorporates components licensed under the GNU Lesser General Public License (LGPL). In accordance with the applicable LGPL versions, OnSpecQC Software, LLC makes the complete corresponding source for those components — including build configuration, configure scripts, and toolchain specifications sufficient to reproduce the distributed binaries — available at no charge.
Download: onspecqc-oss-source-1.16.2-beta.zip
This written offer is valid for at least three (3) years from the date of the OnSpecQC build you received. For questions or to request a copy by email, contact support@onspecqc.com.
Full license texts and the complete third-party component inventory appear in the application under Help → About → Third-Party Software Attributions & Licenses.
What is in the archive
Each release ships a downloadable archive (onspecqc-oss-source-<version>.zip) containing upstream source tarballs, build scripts, and checksums (SHA256SUMS) for every LGPL component listed below. Components under permissive licenses (MIT, BSD, Apache, ISC, PSF, and similar) are not included; they carry no corresponding-source obligation under those licenses.
| Folder | Contents |
|---|---|
ffmpeg/ | FFmpeg upstream source, build script, version pins, verbatim configure invocation, and build-system patches |
mpv/ | mpv upstream source and libmpv build metadata (LGPL build) |
lgpl-sublibs/ | Source for each LGPL library linked into the in-house FFmpeg build |
fpdf2/ | fpdf2 source at the version shipped with the product |
pyav-opencv/ | Build references for the LGPL FFmpeg libraries bundled inside the PyAV and opencv-python wheels |
README.txt | Plain-language index for the archive |
SHA256SUMS | SHA-256 checksums for every file in the archive |
1. In-house FFmpeg build
OnSpecQC ships FFmpeg and FFprobe binaries (branded as OnSpecQC Worker and OnSpecQC Worker-probe) built in-house from upstream FFmpeg source. The build is configured as LGPL-only: --enable-gpl and --enable-nonfree are not set, --enable-version3 is not set, and --disable-network is set so network protocol code paths are not compiled in.
| Field | Value |
|---|---|
| Upstream | FFmpeg |
| Version | n7.1.1 |
| License (shipped binary) | LGPL-2.1-or-later |
| Build script | Included in the archive as ffmpeg/invoke_ffmpeg_build.ps1 |
| Configure record | Included as ffmpeg/build-manifest.json |
Configure invocation (Windows x64)
The following flags were used to produce the x64 binaries recorded in build-manifest.json:
--target-os=mingw32 --arch=x86_64 --cc=/ucrt64/bin/gcc --cxx=/ucrt64/bin/g++
--pkg-config=/ucrt64/bin/pkg-config
--enable-shared --disable-static --enable-ffmpeg --enable-ffprobe --disable-ffplay
--disable-doc --disable-debug --disable-gpl --disable-nonfree --disable-network
--enable-zlib --enable-asm --enable-x86asm --enable-optimizations
--enable-runtime-cpudetect --extra-cflags='-O3 -march=x86-64-v2 -mtune=generic -ftree-vectorize'
--enable-libzimg --enable-libdav1d --enable-libvpx --enable-libopus --enable-libvorbis
--enable-libtheora --enable-libspeex --enable-libopenjpeg --enable-libwebp --enable-libsoxr
--enable-libmysofa --enable-libass --enable-libbluray --enable-libfreetype --enable-libharfbuzz
--enable-fontconfig --enable-libxml2 --enable-lcms2 --enable-libaom --enable-librav1e
--enable-libsvtav1 --enable-libopenh264 --enable-libkvazaar --enable-libmp3lame
--enable-libtwolame --enable-libvmaf
The Windows ARM64 (win-arm64) bundle uses the same configuration except for toolchain and CPU flags: --arch=aarch64 --enable-neon with -march=armv8-a instead of --enable-x86asm and -march=x86-64-v2. The ARM64 configure line is recorded in build-manifest.json when that architecture is shipped.
Post-build verification confirms that GPL-only and nonfree symbols, encoders, and filters are absent from the distributed binaries.
2. mpv (libmpv) and python-mpv
OnSpecQC uses libmpv for preview playback and the python-mpv binding (LGPL-2.1-or-later option) to integrate it with the application.
| Field | Value |
|---|---|
| Upstream (mpv) | mpv-player/mpv |
| Version | v0.39.0 |
| License (shipped binary) | LGPL-2.1-or-later |
| Build type | LGPL-only (lgpl_mode: true in libmpv-2.dll.buildinfo.json) |
| Build harness | shinchiro/mpv-winbuild-cmake |
The archive includes the mpv source tarball and build metadata. libmpv links FFmpeg dynamically; the FFmpeg source covered in section 1 applies to the FFmpeg libraries mpv uses.
python-mpv source is available upstream at github.com/jaseg/python-mpv. In the shipped application it is packaged as importable Python modules that can be replaced without relinking the application.
3. LGPL libraries linked into FFmpeg
The in-house FFmpeg build links external libraries via --enable-lib*. Of those, the following are licensed under LGPL and have corresponding source included in the lgpl-sublibs/ folder at the exact versions linked into the shipped x64 build:
| Library | Version | License | Upstream |
|---|---|---|---|
| libkvazaar | 2.3.2 | LGPL-2.1-or-later | ultravideo/kvazaar |
| libmp3lame (LAME) | 3.100 | LGPL-2.0-or-later | lame.sourceforge.io |
| libtwolame | 0.4.0 | LGPL-2.1-or-later | twolame.org |
| libsoxr | 0.1.3 | LGPL-2.1-or-later | soxr on SourceForge |
| libplacebo | 7.360.1 | LGPL-2.1-or-later | Videolan libplacebo |
| libbluray | 1.4.1 | LGPL-2.1-or-later | Videolan libbluray |
Other libraries linked into FFmpeg (for example libdav1d, libvpx, libopus, libaom, libopenh264, libvmaf) are under BSD, MIT, ISC, or similar permissive licenses and are not separately published in this archive. Their use is documented in the in-app third-party notices.
These LGPL libraries are linked from the MSYS2 UCRT64 toolchain at build time, not vendored inside the FFmpeg source tree, so each requires its own source tarball at the linked version.
4. PyAV and opencv-python (bundled FFmpeg)
OnSpecQC includes the PyAV (av) and opencv-python Python packages. Each wheel bundles its own FFmpeg shared libraries under LGPL-2.1-or-later (dynamic link), separate from the in-house FFmpeg build in section 1.
| Package | Shipped version | Package license | Bundled FFmpeg |
|---|---|---|---|
PyAV (av) | 17.0.1 | BSD-3-Clause (bindings) | FFmpeg 8.0.1, LGPL-2.1-or-later |
| opencv-python | 4.13.0 | Apache-2.0 (OpenCV) | LGPL-2.1-or-later (FFmpeg libs in wheel) |
The archive pyav-opencv/ folder contains pointers to:
| Reference | Location |
|---|---|
| PyAV source and build recipe | PyAV-Org/PyAV (tag matching the shipped av version) |
| opencv-python FFmpeg build | opencv/opencv-python (release matching the shipped version) |
| Upstream FFmpeg (PyAV bundle) | FFmpeg/FFmpeg tag n8.0.1 |
To verify the FFmpeg version bundled in your installed copy:
python -c "import av; print(av.__version__, av.ffmpeg_version_info)"
python -c "import cv2; print(cv2.__version__)"
5. fpdf2
fpdf2 (LGPL-3.0-or-later) generates PDF reports. The archive includes the fpdf2 source at the shipped version (2.8.7), available from py-pdf/fpdf2.
OnSpecQC is packaged so that fpdf2 ships as separate, importable Python modules in the application directory. You may replace those modules with a modified, interface-compatible build of fpdf2 without relinking the application.
6. Components not included in this archive
The following are intentionally excluded because they are not subject to an LGPL corresponding-source obligation in this distribution, or because source is provided elsewhere:
| Component | Reason |
|---|---|
| PySide6 / Qt | Dynamic link; Qt source is published by The Qt Company for the shipped Qt version |
| MIT, BSD, Apache, ISC, PSF, and similar components | Permissive licenses — no LGPL source offer required |
| PyInstaller | Build-time tool only; not redistributed in the application |
| MediaInfo | BSD-2-Clause |
| Blackmagic DeckLink SDK | Proprietary; governed by Blackmagic Design license terms |
Rebuilding the in-house FFmpeg binaries
To reproduce the OnSpecQC Worker FFmpeg/FFprobe binaries from the archive:
- Extract
ffmpeg/ffmpeg-n7.1.1.tar.gz. - Apply the patches in
ffmpeg/patches/if present. - Run
ffmpeg/invoke_ffmpeg_build.ps1on a Windows host with MSYS2 UCRT64 (x64) or CLANGARM64 (ARM64), using the version pins inffmpeg/pins.env. - Configure with the flags recorded in
ffmpeg/build-manifest.json.
The build script enforces three license constraints on every architecture: --disable-gpl, --disable-nonfree, and --disable-network.
Reverse engineering
Nothing in the OnSpecQC End User License Agreement restricts your right to reverse-engineer, decompile, or modify any LGPL-licensed component distributed with this product for the purpose of debugging modifications to that component, as permitted by the applicable version of the GNU Lesser General Public License.
