conversion_project/INTERACTIVE_AUDIO.md
2026-01-08 18:52:06 -05:00

3.4 KiB

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:

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