Add support for Tizen via transcoding
This commit is contained in:
@@ -91,15 +91,15 @@ public class MediaSourceFactory : IMediaSourceFactory
|
||||
Protocol = MediaProtocol.Http,
|
||||
// Use "hls" to trigger hls.js player in web client
|
||||
Container = "hls",
|
||||
SupportsDirectStream = true,
|
||||
SupportsDirectStream = false,
|
||||
SupportsDirectPlay = true,
|
||||
SupportsTranscoding = false,
|
||||
SupportsTranscoding = true,
|
||||
IsRemote = true,
|
||||
Type = MediaSourceType.Default,
|
||||
RunTimeTicks = chapter.Duration > 0 ? TimeSpan.FromMilliseconds(chapter.Duration).Ticks : null,
|
||||
VideoType = VideoType.VideoFile,
|
||||
IsInfiniteStream = isLiveStream,
|
||||
// Don't use RequiresOpening - it forces Jellyfin to transcode which breaks token auth
|
||||
// RequiresOpening = false: proxy handles auth directly, no need for Jellyfin to open the stream
|
||||
RequiresOpening = false,
|
||||
RequiresClosing = false,
|
||||
// Disable probing - we provide stream info directly
|
||||
|
||||
@@ -656,21 +656,6 @@ public class StreamProxyService : IStreamProxyService
|
||||
// Rewrite the manifest to replace Akamai URLs with proxy URLs
|
||||
var rewrittenContent = RewriteManifestUrls(manifestContent, authenticatedUrl, baseProxyUrl);
|
||||
|
||||
// For live streams, inject #EXT-X-START to tell the player to start near the live edge
|
||||
// Without this, players may start at the beginning of the sliding window and stutter
|
||||
// as old segments get rotated out by the CDN
|
||||
if (_streamMappings.TryGetValue(itemId, out var streamInfoForManifest) && streamInfoForManifest.IsLiveStream)
|
||||
{
|
||||
if (!rewrittenContent.Contains("#EXT-X-START", StringComparison.Ordinal))
|
||||
{
|
||||
rewrittenContent = rewrittenContent.Replace(
|
||||
"#EXTM3U",
|
||||
"#EXTM3U\n#EXT-X-START:TIME-OFFSET=-6,PRECISE=NO",
|
||||
StringComparison.Ordinal);
|
||||
_logger.LogDebug("Injected #EXT-X-START tag for live stream {ItemId}", itemId);
|
||||
}
|
||||
}
|
||||
|
||||
_logger.LogDebug("Rewritten manifest for item {ItemId} ({Length} bytes):\n{Content}", itemId, rewrittenContent.Length, rewrittenContent);
|
||||
return rewrittenContent;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user