73 lines
3.0 KiB
Markdown
73 lines
3.0 KiB
Markdown
# TV Audio Encoder
|
|
|
|
## Overview
|
|
|
|
`tv_audio_encoder.py` is a comprehensive batch-processing script for MKV files, specifically designed for encoding TV show episodes. It automates the entire pipeline, including VMAF-targeted video encoding with AV1 (via `alabamaEncoder`) and sophisticated audio conversion to Opus. To ensure transparency and aid in debugging, the script also preserves detailed, per-file logs of the entire conversion process.
|
|
|
|
## Features
|
|
|
|
* **Advanced Video Encoding:** Uses `alabamaEncoder` for a simplified yet powerful VMAF-targeted AV1 encoding workflow, aiming for consistent quality.
|
|
* **Stable Workflow:** Creates a lossless UTVideo intermediate file from the source video, providing a stable and reliable input for the main encoding process.
|
|
* **Detailed Logging:** Creates a separate, detailed log file for each processed MKV in the `conv_logs/` directory, capturing the full terminal output for easy review.
|
|
* **Sophisticated Audio Processing:** Converts common audio formats to normalized Opus files. It provides an option to downmix surround sound to stereo or preserve the original channel layout.
|
|
* **File Organization:** Keeps your workspace tidy by automatically moving original files to `original/` and completed encodes to `completed/`.
|
|
* **Platform Specificity:** The script is designed for Linux systems, as `alabamaEncoder` is not supported on Windows.
|
|
|
|
## Requirements
|
|
|
|
The following command-line tools must be installed and available in your system's PATH:
|
|
|
|
* `ffmpeg`
|
|
* `ffprobe`
|
|
* `mkvmerge`
|
|
* `mkvpropedit`
|
|
* `sox`
|
|
* `opusenc`
|
|
* `mediainfo`
|
|
* `alabamaEncoder`
|
|
|
|
## Usage
|
|
|
|
1. Place your `.mkv` files in the same directory as the script.
|
|
2. Make the script executable by running `chmod +x tv_audio_encoder.py`.
|
|
3. Execute the script from your terminal:
|
|
|
|
```bash
|
|
./tv_audio_encoder.py
|
|
```
|
|
|
|
### Optional Arguments
|
|
|
|
* `--no-downmix`: By default, the script downmixes surround sound audio (e.g., 5.1, 7.1) to stereo. Use this flag to preserve the original audio channel layout.
|
|
|
|
Example:
|
|
|
|
```bash
|
|
./tv_audio_encoder.py --no-downmix
|
|
```
|
|
|
|
* `--autocrop`: Automatically detect and crop black bars from video using cropdetect. The crop is applied only to the UTVideo intermediate file, ensuring no image data is lost even with variable crops.
|
|
|
|
Example:
|
|
|
|
```bash
|
|
./tv_audio_encoder.py --autocrop
|
|
```
|
|
|
|
You can combine with `--no-downmix`:
|
|
|
|
```bash
|
|
./tv_audio_encoder.py --autocrop --no-downmix
|
|
```
|
|
|
|
## Output
|
|
|
|
* Processed files are moved to the `completed/` directory.
|
|
* Original files are moved to the `original/` directory.
|
|
* Per-file logs are saved in the `conv_logs/` directory.
|
|
|
|
## Notes
|
|
|
|
* This script is intended for use on **Linux** only.
|
|
* The entire process, especially the AV1 encoding, can be very time-consuming and CPU-intensive. Be prepared for long processing times, especially on large files or less powerful machines.
|
|
* Consider testing with a single file first to fine-tune your desired settings before batch processing a large library of videos. |