3.5 KiB
3.5 KiB
FFmpeg Compliance Checklist
Purpose: quick, practical checklist to ensure your TalkEdit distribution complies with FFmpeg licensing and packaging requirements.
- 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.
- Linking vs external binary
- Prefer spawning an external
ffmpegbinary 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.
- Bundling binary in installers
- If bundling
ffmpegbinaries 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.
- 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.txtin 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
- Make GPL components opt-in
- Default distribution: ship LGPL-only binary or no binary and invoke system
ffmpegwhen available. - Offer an optional "codec pack" download or advanced installer that includes GPL encoders; make users explicitly accept terms before download.
- 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.
- 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.
- Build automation & compliance artifacts
- Add a CI step that builds or fetches the FFmpeg binary, captures
ffmpeg -buildconf, and writesBUILD_INFO.txtinto 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.
- 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.
- 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 -buildconfand uploadsBUILD_INFO.txtto release assets — tell me which CI you use and I'll draft it.