fix(video-format-detector): temporarily redirect .ts files to local player
- Disabled .ts from TS_STREAM_FORMATS to prevent HLS resegmentation issues - Added explicit handling to send .ts files to external local video players - Enhanced user messaging explaining the temporary workaround - Ensured seamless playback via existing external streaming API with range support - Minimized code changes for easy reversal once HLS streaming is fixed - Documented the temporary fix, user experience, and reverting steps
This commit is contained in:
parent
048ed1b4e6
commit
d048cb3b82
|
|
@ -0,0 +1,76 @@
|
||||||
|
# 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
|
||||||
|
```typescript
|
||||||
|
// 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
|
||||||
|
```typescript
|
||||||
|
// 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:
|
||||||
|
```typescript
|
||||||
|
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.
|
||||||
Loading…
Reference in New Issue