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:
- Remove the explicit .ts handling in
detectVideoFormat() - Add 'ts' back to the
TS_STREAM_FORMATSarray - Remove the temporary comments and warning messages
- 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.