3.0 KiB
3.0 KiB
Development Plan: Video Converter
This document outlines the development plan for the Video Converter project, aiming to create a standalone Python tool for converting video files into DaVinci Resolve compatible formats.
Overall Goal
Develop a user-friendly, standalone Python tool to convert video files into formats compatible with Davinci Resolve (Free edition on Linux) to improve editing workflows for content creators.
Completed Features
- Core Conversion Logic: Implemented video conversion using
ffmpegwithdnxhdcodec andpcm_s16leaudio, outputting to.movcontainer. - Quality Profile Picker: Added
--qualityargument (low, medium, high, archive) to controldnxhdprofiles. - Filename Fail-safe: Implemented logic to append
_1,_2, etc., to output filenames if a file with the same name already exists. yt-dlpIntegration: Added--urlargument to download videos from YouTube (and other supported sites) usingyt-dlpbefore conversion.- PyInstaller Bundling: Successfully bundled the application into a standalone executable for Linux.
- Robust Download Path Handling: Ensured
yt-dlpdownloads directly to the user-specified output directory (or current working directory if not specified), resolvingos.path.exists()issues within the PyInstaller environment. - Basic Error Handling & Logging: Suppressed verbose
yt-dlpoutput and redirectedffmpegoutput toffmpeg_output.logfor detailed error inspection.
Current Priorities (Next Steps)
- Implement GUI: Develop a graphical user interface for easier interaction, including file selection, quality profile choice, and URL input. (High Priority)
- Implement Browser Cookies for YouTube Authorization: Revisit and implement
--cookies-from-browserfunctionality foryt-dlpto handle age-restricted or private YouTube videos. (Deferred, now higher priority) - Refine Error Handling/Logging: Implement more user-friendly error messages, potentially displaying the last few lines of the log file directly in the console upon failure, and providing clear instructions to check the full log.
Future Considerations
- Batch Processing: Allow conversion of multiple files or URLs in a single run.
- Configuration File: Implement a configuration file (e.g., YAML, JSON) for persistent settings.
- Progress Bar: Integrate a progress bar for both download and conversion processes.
- Cross-Platform Compatibility: Explore bundling for Windows and macOS. (Lowest priority)
- Advanced
ffmpegOptions: Expose moreffmpegoptions (e.g., bitrate, resolution scaling) for advanced users. - Metadata Preservation: Option to preserve or transfer metadata from the original file.
Known Issues / Limitations
- DaVinci Resolve Free on Linux has limitations with certain audio codecs (e.g., AAC) and 4K output/encoding (requires Studio version).
ffmpeg-fullAUR package is required fordnxhdsupport on Arch-based systems.