nextav/docs/active/media-streaming-root/TEMP_TS_FIX.md

2.8 KiB

Temporary .ts File Fix

Overview

This document describes a temporary fix implemented to handle problematic .ts file resegmentation by redirecting .ts files to external local video players instead of attempting HLS streaming.

Problem

The .ts resegmentation implementation for HLS streaming was causing playback issues. Instead of complex troubleshooting, a simple temporary solution was needed to make .ts files playable immediately.

Solution

Modified src/lib/video-format-detector.ts to treat .ts files like other non-mp4 files that require external local video players.

Changes Made

1. Updated TS_STREAM_FORMATS Array

// BEFORE
const TS_STREAM_FORMATS = [
  'ts',   // MPEG Transport Stream - optimal for HLS streaming
  'm2ts', // Blu-ray Transport Stream  
  'mts'   // AVCHD Transport Stream
];

// AFTER (temporary)
const TS_STREAM_FORMATS = [
  // 'ts',   // TEMPORARILY DISABLED - send to local player instead
  'm2ts', // Blu-ray Transport Stream
  'mts'   // AVCHD Transport Stream
];

2. Added Explicit .ts File Handling

// TEMPORARY FIX: Send .ts files to local player due to resegmentation issues
if (extension === 'ts') {
  console.log('[FormatDetector] .ts file detected, sending to local player (temporary fix)');
  return createLocalPlayerFormat(video, extension);
}

3. Enhanced User Messaging

Added specific warning message for .ts files:

const warningMessage = isTsFile 
  ? 'MPEG Transport Stream (.ts) files require a local video player for optimal playback. This is a temporary solution while we fix the streaming implementation.'
  : 'This format requires a local video player';

User Experience

  • When users click on a .ts file, they will see the Local Player Launcher
  • Clear messaging explains this is a temporary solution
  • Users can copy the stream URL to VLC, IINA, PotPlayer, or other local players
  • Files play perfectly through the external streaming API (/api/external-stream/[id])

Technical Benefits

  • Immediate fix - .ts files are now playable
  • Uses existing, well-tested external streaming API
  • Proper HTTP range support for seeking
  • No transcoding required
  • Minimal code changes
  • Easy to revert when HLS implementation is fixed

Reverting This Fix

When the .ts resegmentation implementation is fixed:

  1. Remove the explicit .ts handling in detectVideoFormat()
  2. Add 'ts' back to the TS_STREAM_FORMATS array
  3. Remove the temporary comments and warning messages
  4. Test HLS streaming with .ts files

Files Modified

  • /src/lib/video-format-detector.ts - Main format detection logic

API Endpoint Used

  • /api/external-stream/[id] - Optimized for external players with range request support

This temporary fix provides immediate .ts file playability while maintaining the overall architecture for a permanent HLS-based solution later.