From 76cfb8c9037d836feb37634b8b9d3e0c23c05d87 Mon Sep 17 00:00:00 2001 From: Cody Robibero Date: Fri, 22 Apr 2022 16:40:53 -0600 Subject: [PATCH] Merge pull request #7643 from jellyfin/h264-level (cherry picked from commit 12f9132975a4415ab7df3be9dcc2b56d68082d5f) Signed-off-by: crobibero --- MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 162a821f5d..006fd88610 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -1062,10 +1062,12 @@ namespace MediaBrowser.Controller.MediaEncoding } else if (string.Equals(state.ActualOutputVideoCodec, "h264", StringComparison.OrdinalIgnoreCase)) { - // Clients may direct play higher than level 41, but there's no reason to transcode higher. - if (requestLevel >= 41) + // Transcode to level 5.1 and lower for maximum compatibility. + // h264 4k 30fps requires at least level 5.1 otherwise it will break on safari fmp4. + // https://en.wikipedia.org/wiki/Advanced_Video_Coding#Levels + if (requestLevel >= 51) { - return "41"; + return "51"; } } }