110 lines
3.4 KiB
Markdown
110 lines
3.4 KiB
Markdown
# Interactive Audio Stream Selection
|
|
|
|
## Overview
|
|
The conversion tool now supports **interactive audio stream selection**, allowing you to manually choose which audio tracks to keep during encoding rather than relying on automatic filtering.
|
|
|
|
## Usage
|
|
|
|
### Enable Interactive Mode
|
|
Use both `--filter-audio` and `--interactive` flags together:
|
|
|
|
```bash
|
|
python main.py "C:\path\to\videos" --filter-audio --interactive
|
|
```
|
|
|
|
### What Happens
|
|
When encoding each file with multiple audio streams:
|
|
|
|
1. **Audio Stream Display**
|
|
- The tool displays all available audio streams with details:
|
|
```
|
|
🎵 AUDIO STREAM SELECTION
|
|
================================================================================
|
|
|
|
Stream #0: 2ch | Lang: eng | Bitrate: 128kbps
|
|
|
|
Stream #1: 6ch | Lang: eng | Bitrate: 448kbps
|
|
|
|
Stream #2: 2ch | Lang: spa | Bitrate: 128kbps
|
|
|
|
Stream #3: 2ch | Lang: comment | Bitrate: 64kbps
|
|
```
|
|
|
|
2. **User Prompt**
|
|
- You're asked to select which streams to keep:
|
|
```
|
|
────────────────────────────────────────────────────────────────────────────
|
|
Enter stream numbers to keep (comma-separated, e.g.: 1,2 or just 2)
|
|
Leave blank to keep all streams
|
|
────────────────────────────────────────────────────────────────────────────
|
|
➜ Keep streams: 1,3
|
|
```
|
|
|
|
3. **Encoding
|
|
**
|
|
- Only selected streams are included in the encoded output
|
|
- Other streams are removed
|
|
- Selection is logged for reference
|
|
|
|
## Input Format
|
|
|
|
- **Multiple streams**: `0,1,3` or `0, 1, 3` (spaces optional)
|
|
- **Single stream**: `1` or `2`
|
|
- **Keep all**: Press Enter without typing anything
|
|
|
|
## Example Scenarios
|
|
|
|
### Scenario 1: Keep Main Audio Only
|
|
```
|
|
Streams:
|
|
Stream #0: 2ch (English, 128kbps)
|
|
Stream #1: 6ch (English Surround, 448kbps) ← Best quality
|
|
Stream #2: 2ch (Spanish, 128kbps)
|
|
|
|
Input: 1
|
|
|
|
Result: Only Stream #1 (6ch English Surround) is encoded
|
|
```
|
|
|
|
### Scenario 2: Keep Multiple Languages
|
|
```
|
|
Streams:
|
|
Stream #0: 2ch (English, 128kbps)
|
|
Stream #1: 6ch (English Surround, 448kbps)
|
|
Stream #2: 2ch (Spanish, 128kbps)
|
|
Stream #3: 2ch (Commentary, 64kbps)
|
|
|
|
Input: 1,2,3
|
|
|
|
Result: Streams #1, #2, and #3 are encoded (English Surround, Spanish, Commentary)
|
|
```
|
|
|
|
## Comparison with Automatic Filtering
|
|
|
|
### Automatic Mode (--filter-audio only)
|
|
- Keeps: Best English audio + all Commentary tracks
|
|
- No user interaction
|
|
- Faster batch processing
|
|
|
|
### Interactive Mode (--filter-audio --interactive)
|
|
- Shows all streams and asks user to choose
|
|
- Per-file control
|
|
- Better for selective archiving/organization
|
|
- Useful when automatic filtering doesn't match your preferences
|
|
|
|
## Logging
|
|
|
|
All user selections are logged to the conversion log for reference:
|
|
```
|
|
User selected 2 audio stream(s): [1, 3]
|
|
Removed 1 audio stream(s): [2]
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Interactive mode requires `--filter-audio` to be enabled
|
|
- If you use `--interactive` without `--filter-audio`, filtering is automatically enabled
|
|
- Invalid input (non-existent stream numbers) falls back to keeping all streams
|
|
- Empty input keeps all audio streams unchanged
|
|
- The prompt appears for each file being encoded, allowing different selections per file
|