154 lines
3.7 KiB
Markdown
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
|