# 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 ``` ## 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