diff options
| author | nyanmisaka <nst799610810@gmail.com> | 2024-03-30 04:27:27 +0800 |
|---|---|---|
| committer | nyanmisaka <nst799610810@gmail.com> | 2024-03-30 06:09:58 +0800 |
| commit | 95b81ff54a9894d40fc54a30ce6edc0f899d59aa (patch) | |
| tree | 0ee407c338dd555de4367e515553098cce4c2f0f | |
| parent | 6076462ff58f7901d1744516cbe30fe448b3e017 (diff) | |
Only streamCopy videos containing rotation data in fMP4
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
| -rw-r--r-- | Jellyfin.Api/Helpers/DynamicHlsHelper.cs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Jellyfin.Api/Helpers/DynamicHlsHelper.cs b/Jellyfin.Api/Helpers/DynamicHlsHelper.cs index f8d89119a..e5e4356f8 100644 --- a/Jellyfin.Api/Helpers/DynamicHlsHelper.cs +++ b/Jellyfin.Api/Helpers/DynamicHlsHelper.cs @@ -190,6 +190,17 @@ public class DynamicHlsHelper AddSubtitles(state, subtitleStreams, builder, _httpContextAccessor.HttpContext.User); } + // Video rotation metadata is only supported in fMP4 remuxing + if (state.VideoStream is not null + && state.VideoRequest is not null + && (state.VideoStream?.Rotation ?? 0) != 0 + && EncodingHelper.IsCopyCodec(state.OutputVideoCodec) + && !string.IsNullOrWhiteSpace(state.Request.SegmentContainer) + && !string.Equals(state.Request.SegmentContainer, "mp4", StringComparison.OrdinalIgnoreCase)) + { + playlistUrl += "&AllowVideoStreamCopy=false"; + } + var basicPlaylist = AppendPlaylist(builder, state, playlistUrl, totalBitrate, subtitleGroup); if (state.VideoStream is not null && state.VideoRequest is not null) |
