Docs: Add assessment report on bundling FFmpeg to DEVELOPMENT_PLAN.md

This commit is contained in:
Ramforth
2025-11-03 01:50:56 +01:00
parent 5f1363f335
commit 5ad7eb2ea1

View File

@@ -43,3 +43,19 @@ Develop a user-friendly, standalone Python tool to convert video files into form
Since one of the limitations of this project is the requirement of ffmpeg-full for encoding videos for Davinci Resolve use we should investigate the proposition of implementing the necessary ffmpeg-full into the project release file.
I do not know, currently if this is viable or even possible. But I think that a fully precompiled program with built in encoders and tools would be more attractive to most users.
We should also see if there are other tools that would be considered natural for this project.
**Assessment Report: Bundling FFmpeg and Other Tools**
**1. Bundling `ffmpeg-full`:**
* **Viability:** Technically viable and possible. PyInstaller (and similar tools) can include external binaries like `ffmpeg` in the final executable. The Python script would then call this bundled binary.
* **User Attractiveness:** Highly attractive. A self-contained executable eliminates the need for users to manually install `ffmpeg`, especially specific versions like `ffmpeg-full` with custom codecs, significantly improving user experience and simplifying setup.
* **Challenges:**
* **Cross-Platform Complexity:** Requires separate `ffmpeg` binaries for each target OS (Linux, Windows, macOS), increasing build complexity.
* **Licensing:** Must comply with `ffmpeg`'s LGPLv2.1/GPLv2 licensing terms (e.g., providing source code).
* **Maintenance:** Keeping bundled `ffmpeg` updated for security and features requires re-bundling.
* **Executable Size:** Bundling `ffmpeg` will increase the overall size of the application executable.
**2. Other Natural Tools for Consideration:**
* **`ffprobe`:** (Already implicitly used) Part of the `ffmpeg` suite, essential for media analysis (e.g., video duration). Would be bundled alongside `ffmpeg`.
* **`mediainfo`:** A powerful command-line tool for detailed media file information. Could be integrated for advanced diagnostics or user-facing metadata display.
* **`exiftool`:** For comprehensive metadata handling. Relevant if "Metadata Preservation" becomes a core feature.