# FFmpeg Compliance Checklist Purpose: quick, practical checklist to ensure your TalkEdit distribution complies with FFmpeg licensing and packaging requirements. 1) Choose the FFmpeg build strategy - Prefer an LGPL-only build (no GPL-only encoders) for minimal obligations. - If you require GPL encoders (x264/x265/fdk-aac), document the decision and prepare to comply with GPL obligations. 2) Linking vs external binary - Prefer spawning an external `ffmpeg` binary from Rust (invoke process) rather than statically linking FFmpeg into your app. - If you link or bundle as a library, treat it as a third-party component and follow license terms strictly. 3) Bundling binary in installers - If bundling `ffmpeg` binaries in installers, include the appropriate license files (COPYING.LGPL, COPYING.GPL) in the installer and app About/Legal. - Include a plain-language notice in the installer/readme that explains which codecs/encoders are present and any implications. 4) Source & build-info disclosure - For GPL components, you must provide access to the corresponding source or provide a written offer. Record the exact FFmpeg commit/configure flags used. - Add a `third_party/ffmpeg/BUILD_INFO.txt` in the repo (or in release artifacts) containing: - FFmpeg git commit or version - configure flags used - date and builder identity (automated CI username) - link to the exact source tarball or repo snapshot 5) Make GPL components opt-in - Default distribution: ship LGPL-only binary or no binary and invoke system `ffmpeg` when available. - Offer an optional "codec pack" download or advanced installer that includes GPL encoders; make users explicitly accept terms before download. 6) Patent/licensing notice for codecs - Add a short note in the README/installer explaining that certain codecs (H.264/AAC) may be patent-encumbered and that distributors may require separate licensing. 7) Platform-specific recommendations - Linux: Prefer calling system FFmpeg (packaged by distro) or instruct users to install via package manager. If bundling, consider AppImage guidance. - macOS: Prefer Homebrew/optional download; if bundling, include license files and sign/ notarize appropriately. - Windows: If shipping `ffmpeg.exe`, include license files and a link to the source/build info; include checksums for shipped binaries. 8) Build automation & compliance artifacts - Add a CI step that builds or fetches the FFmpeg binary, captures `ffmpeg -buildconf`, and writes `BUILD_INFO.txt` into the release artifacts. - Produce a LICENSES folder in each installer containing FFmpeg license text and any third-party license texts used by your chosen build. 9) User-visible legal UI - Add an About > Legal pane listing third-party components and linked license files. - If downloading binaries on first run, show an explicit notice with a link to license and source information and require an OK from the user. 10) Pre-release legal checklist - Verify whether chosen build enables GPL libraries; if yes, prepare source or written offer before publishing. - Ensure installer contains license files and links to source/build-info. - Add a short FAQ entry about codec patents and user options. Notes & Next Steps - This checklist is practical guidance, not legal advice. For final release compliance, consult legal counsel experienced in open-source licensing. - I can add a small CI script snippet that records `ffmpeg -buildconf` and uploads `BUILD_INFO.txt` to release assets — tell me which CI you use and I'll draft it.