VideoTools/docs/README.md

154 lines
3.7 KiB
Markdown

# 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