2.4 KiB
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
alabamaEncoderfor 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 tocompleted/. - Platform Specificity: The script is designed for Linux systems, as
alabamaEncoderis not supported on Windows.
Requirements
The following command-line tools must be installed and available in your system's PATH:
ffmpegffprobemkvmergemkvpropeditsoxopusencmediainfoalabamaEncoder
Usage
-
Place your
.mkvfiles in the same directory as the script. -
Make the script executable by running
chmod +x tv_audio_encoder.py. -
Execute the script from your terminal:
./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:
./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