VideoTools/docs/README.md

138 lines
3.2 KiB
Markdown

# Video Tools CLI
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://github.com/YourName/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.
---
## 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 |
---
## License
Free for personal use.
You can modify or share this tool with anyone.