diff --git a/Jellyfin.Api/Helpers/StreamingHelpers.cs b/Jellyfin.Api/Helpers/StreamingHelpers.cs index eb6497ef1a..f1803ee40d 100644 --- a/Jellyfin.Api/Helpers/StreamingHelpers.cs +++ b/Jellyfin.Api/Helpers/StreamingHelpers.cs @@ -387,8 +387,8 @@ public static class StreamingHelpers // Check if this is a progressive download (no segments) vs HLS streaming var streamingRequest = state.BaseRequest as StreamingRequestDto; - // Progressive download: no segment container means it's a full file download (not HLS) - if (streamingRequest?.SegmentContainer is null) + // Progressive download: full file download with no HLS segmentation + if (streamingRequest?.SegmentContainer is null && state.TranscodingType == TranscodingJobType.Progressive) { // Progressive download - use disk-based transcode path var diskTranscodePath = Path.Combine(folder, "downloads"); diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index c676a9ef56..b6a00856bc 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -7504,9 +7504,9 @@ namespace MediaBrowser.Controller.MediaEncoding var inputModifier = GetInputModifier(state, encodingOptions, null); // Add timestamp normalization for progressive downloads - // Always normalize timestamps when not copying them - fixes seeking in mpv/iina/infuse + // Fixes seeking issues in strict players like mpv, iina, and infuse var timestampArgs = string.Empty; - if (!state.BaseRequest.CopyTimestamps) + if (state.TranscodingType == TranscodingJobType.Progressive && !state.BaseRequest.CopyTimestamps) { timestampArgs = " -avoid_negative_ts make_zero -start_at_zero"; }