# docs/README.md # Video Tools CLI (v0.1.0) A simple command-line utility for video conversion and merging using FFmpeg. Designed for personal use and sharing with friends. Works on both Linux and Windows (via Git Bash or WSL). --- ## Overview This tool provides two main commands: | Command | Description | |----------|-------------| | `convert-single` | Converts a single video file to MP4 using modern compression. | | `convert-multiple` | Combines multiple video files into one high-quality MP4. | All output files are saved in your `~/Videos` directory by default. --- ## Requirements ### Linux Install FFmpeg with your package manager: ```bash sudo pacman -S ffmpeg # For Arch or Garuda sudo apt install ffmpeg # For Debian or Ubuntu ``` ### Windows 1. Install FFmpeg from https://ffmpeg.org/download.html 2. Use **Git Bash** or **WSL** to run the script. --- ## Installation 1. Clone or copy the repository: ```bash git clone https://git.leaktechnologies.dev/Leak_Technologies/VideoTools.git cd VideoTools ``` 2. Make the script executable: ```bash chmod +x video-tools.sh ``` 3. (Optional) Add it to PATH: ```bash sudo ln -s ~/VideoTools/video-tools.sh /usr/local/bin/video-tools ``` You can now run it globally: ```bash video-tools convert-single "input.avi" "output.mp4" ``` --- ## Default Settings | Setting | Value | Description | |----------|--------|-------------| | Output directory | `~/Videos` | All results are stored here | | Video codec | `libx264` | High-quality H.264 encoding | | Audio codec | `aac` | High-quality AAC stereo audio | | Quality (CRF) | 18 | Visually lossless quality | | Preset | `slow` | Balances speed and compression | | Audio bitrate | 192k | High-quality stereo output | These defaults prioritize quality while still reducing file sizes compared to older formats such as AVI or MPG. For more details, see [`docs/Conversion_Settings.md`](./Conversion_Settings.md). --- ## Example Conversions ### Convert a single AVI file ```bash video-tools convert-single \ "/run/media/stu/Linux/MyData/Videos/Example Collection/Example Movie Part1.avi" \ "Example Movie.mp4" ``` **Output** ``` /home/stu/Videos/Example Movie.mp4 ``` --- ### Combine multiple AVI parts into one MP4 ```bash video-tools convert-multiple \ "/run/media/stu/Linux/MyData/Videos/Example Collection/Example Movie Part1.avi" \ "/run/media/stu/Linux/MyData/Videos/Example Collection/Example Movie Part2.avi" \ "/run/media/stu/Linux/MyData/Videos/Example Collection/Example Movie Part3.avi" \ "Example Movie Combined.mp4" ``` **Output** ``` /home/stu/Videos/Example Movie Combined.mp4 ``` --- ## Troubleshooting | Issue | Cause | Solution | |--------|--------|----------| | `command not found` | Script not in PATH | Use full path or add symlink to `/usr/local/bin` | | `ffmpeg not found` | FFmpeg not installed | Install FFmpeg using your package manager | | `Permission denied` | Script not executable | Run `chmod +x video-tools.sh` | | Merge fails | Input files have mismatched codecs | Convert each input to MP4 first, then merge | --- ## Roadmap | Feature | Status | |----------|--------| | `convert-single` | ✅ Done | | `convert-multiple` | ✅ Done | | `upscale-video` | 🔜 Planned | | `batch conversion` | 🔜 Planned | | `automatic format detection` | 🔜 Planned | --- ## Documentation Index | File | Description | |------|--------------| | [`docs/CLI_Functions.md`](./CLI_Functions.md) | Command usage reference | | [`docs/Conversion_Settings.md`](./Conversion_Settings.md) | Technical breakdown of FFmpeg defaults | | [`docs/Upscale.md`](./Upscale.md) | Planned module for loss-minimized video upscaling | --- ## License Free for personal use. You may modify or share this tool with anyone. --- End of File