You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All wheels ship with FFmpeg licensed under the LGPLv2.1.
On the current macOS ARM64 wheel for opencv-python 5.0.0.93, the bundled FFmpeg appears to be configured with --enable-gpl, --enable-libx264 and --enable-libx265, and libavcodec links libx264/libx265 directly. That looks inconsistent with the LGPLv2.1 statement above, so I wanted to report it with binary-level detail and ask whether it is intentional.
I'm not making any legal claim here — just reporting what the artifact contains and asking whether the documentation or the macOS build configuration is the thing that should change.
Related existing issues
I searched open and closed issues first:
Clarification on H264 support of included ffmpeg #682 — "Clarification on H264 support of included ffmpeg" (closed) raised this same LGPL/H264 discrepancy from the behavioural side (H264 decoding working despite the LGPL statement). This report is the binary-level counterpart, on a current release.
OSX FFmpeg can no longer be built without GPL libs #142 — "OSX FFmpeg can no longer be built without GPL libs" (closed, 2018) predicted exactly this for macOS, noting Homebrew's ffmpeg could no longer be built without x264/x265.
This produced 99 bundled dylibs in cv2/.dylibs, and the resulting tree was byte-identical to a separately installed copy (only __pycache__ differed). Matching SHA-256 for the key binaries:
2. libx264/libx265 are genuinely linked, not merely co-located:
$ otool -L cv2/.dylibs/libavcodec.61.19.101.dylib | grep -E 'x264|x265' @loader_path/libx264.164.dylib (compatibility version 0.0.0, current version 0.0.0) @loader_path/libx265.215.dylib (compatibility version 215.0.0, current version 215.0.0)
The /opt/homebrew/Cellar/ffmpeg/7.1.1_3 prefix suggests the macOS wheel vendors a Homebrew-built FFmpeg, which would match the situation described in #142. That also seems to explain the unusually large bundled payload (e.g. libtesseract, libleptonica, libzmq, libSDL2).
Questions
Is bundling a GPL-configured FFmpeg in the macOS wheels intentional?
If so, should the README's "All wheels ship with FFmpeg licensed under the LGPLv2.1" be qualified per platform?
If not, should the macOS build configuration be changed to an LGPL-only FFmpeg (no --enable-gpl, no x264/x265)?
Do the Linux manylinux and Windows wheels differ here? I only audited macOS ARM64, so I can't say whether this is macOS-specific.
Happy to run further checks on the macOS wheels or test a candidate build if that would help. Thanks for maintaining these packages — the fact that LICENSE-3RD-PARTY.txt is shipped inside the wheel made this much easier to investigate.
Is bundling a GPL-configured FFmpeg in the macOS wheels intentional?
No, it's side effect of the brew packages.
If so, should the README's "All wheels ship with FFmpeg licensed under the LGPLv2.1" be qualified per platform?
We will try to fix it on our side.
If not, should the macOS build configuration be changed to an LGPL-only FFmpeg (no --enable-gpl, no x264/x265)?
Yes.
Do the Linux manylinux and Windows wheels differ here? I only audited macOS ARM64, so I can't say whether this is macOS-specific.
Yes. We build FFmpeg wrapper for Windows separatelly and it does not contail GPL code. Linux version should be built without GPL code too. I'll revise it during Mac OS fix.
Thanks for confirming and for looking into it! Glad the report was useful.
I’ll keep an eye on the macOS fix and would be happy to verify the updated
wheel once it’s available.
On Fri, Aug 14, 2026 at 11:26 Alexander Smorkalov ***@***.***> wrote:
*asmorkalov* left a comment (opencv/opencv-python#1260)
<#1260 (comment)>
1. Is bundling a GPL-configured FFmpeg in the macOS wheels intentional?
No, it's side effect of the brew packages.
2. If so, should the README's "All wheels ship with FFmpeg licensed
under the LGPLv2.1" be qualified per platform?
We will try to fix it on our side.
3. If not, should the macOS build configuration be changed to an
LGPL-only FFmpeg (no --enable-gpl, no x264/x265)?
Yes.
4. Do the Linux manylinux and Windows wheels differ here? I only
audited macOS ARM64, so I can't say whether this is macOS-specific.
Yes. We build FFmpeg wrapper for Windows separatelly and it does not
contail GPL code. Linux version should be built without GPL code too. I'll
revise it during Mac OS fix.
—
Reply to this email directly, view it on GitHub
<#1260?email_source=notifications&email_token=BTFYX5LOWWNJLUMKI35DNUD5J3LLVA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMRZGE3TCMJQGA22M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L#issuecomment-5291711005>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BTFYX5ORWU4KOUGSHZSEOI35J3LLVAVCNFSNUABEKJSXA33TNF2G64TZHM2TKNZYGE2TEMZ3JFZXG5LFHM2TCMZTGI3DEMBZHGQXMAQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
The recorded load chain includes cv2 → libavcodec → libx264/libx265; avfilter/avdevice also link bundled rubberband and vidstab. The wheel's LICENSE and LICENSE-3RD-PARTY texts match tag 93. We have not installed or imported this artifact.
Could you point us to:
A corrected official macOS ARM64 headless release, if available, with its filename/hash and relevant build or notice changes; or the existing fix-tracking issue/PR.
For the affected artifact, available build/source references and notices covering the FFmpeg configuration and these linked libraries. An existing source manifest or SBOM would be helpful, but a pointer to the relevant records is sufficient to investigate further.
This is an artifact-identification and notice-consistency question, not a legal allegation or a request for blanket commercial-use certification. If the historical build records are unavailable, that clarification would also help. Thank you.
Activity
asmorkalov commentedon Aug 14, 2026
No, it's side effect of the brew packages.
We will try to fix it on our side.
Yes.
Yes. We build FFmpeg wrapper for Windows separatelly and it does not contail GPL code. Linux version should be built without GPL code too. I'll revise it during Mac OS fix.
dzzz08 commentedon Aug 14, 2026
feat(cli): add --licenses flag and correct third-party notices (#698)
build(macos): compile OpenCV without FFmpeg to make the DMG GPL-free (#…
MineAGLX commentedon Oct 10, 2026
Thank you for the explanation above. Our retained static inspection records indicate that the headless macOS ARM64 sibling is affected too:
opencv_python_headless-5.0.0.93-cp37-abi3-macosx_13_0_arm64.whl030ca5e0837a2963ab36ef896baa9767eb8d2b83353fb28af5a521e40dd8756fThree bundled binary hashes match those reported in this issue:
The recorded load chain includes
cv2 → libavcodec → libx264/libx265; avfilter/avdevice also link bundled rubberband and vidstab. The wheel's LICENSE and LICENSE-3RD-PARTY texts match tag 93. We have not installed or imported this artifact.Could you point us to:
This is an artifact-identification and notice-consistency question, not a legal allegation or a request for blanket commercial-use certification. If the historical build records are unavailable, that clarification would also help. Thank you.