2024-01-19, 09:44 PM
(This post was last modified: 2024-01-19, 11:24 PM by kimbo. Edited 1 time in total.)
Playbackinfo
Jellyfin web incorrectly informs the server that it does not support hevc when in fact it does
Actually, it would seem that instead of picking a container based on a codec its going straight for webm which does not have a codec which matches
This is very obviously an error in jellyfin-web's code
Code:
{
"DeviceProfile": {
"MaxStreamingBitrate": 120000000,
"MaxStaticBitrate": 100000000,
"MusicStreamingTranscodingBitrate": 384000,
"DirectPlayProfiles": [
{
"Container": "webm",
"Type": "Video",
"VideoCodec": "vp8,vp9,av1",
"AudioCodec": "vorbis,opus"
},
{
"Container": "mp4,m4v",
"Type": "Video",
"VideoCodec": "h264,hevc,vp9,av1",
"AudioCodec": "aac,mp3,ac3,eac3,opus,flac,vorbis"
},
{
"Container": "mov",
"Type": "Video",
"VideoCodec": "h264",
"AudioCodec": "aac,mp3,ac3,eac3,opus,flac,vorbis"
},
{
"Container": "opus",
"Type": "Audio"
},
{
"Container": "webm",
"AudioCodec": "opus",
"Type": "Audio"
},
{
"Container": "mp3",
"Type": "Audio"
},
{
"Container": "aac",
"Type": "Audio"
},
{
"Container": "m4a",
"AudioCodec": "aac",
"Type": "Audio"
},
{
"Container": "m4b",
"AudioCodec": "aac",
"Type": "Audio"
},
{
"Container": "flac",
"Type": "Audio"
},
{
"Container": "webma",
"Type": "Audio"
},
{
"Container": "webm",
"AudioCodec": "webma",
"Type": "Audio"
},
{
"Container": "wav",
"Type": "Audio"
},
{
"Container": "ogg",
"Type": "Audio"
}
],
"TranscodingProfiles": [
{
"Container": "ts",
"Type": "Audio",
"AudioCodec": "aac",
"Context": "Streaming",
"Protocol": "hls",
"MaxAudioChannels": "6",
"MinSegments": "1",
"BreakOnNonKeyFrames": true
},
{
"Container": "aac",
"Type": "Audio",
"AudioCodec": "aac",
"Context": "Streaming",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "mp3",
"Type": "Audio",
"AudioCodec": "mp3",
"Context": "Streaming",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "opus",
"Type": "Audio",
"AudioCodec": "opus",
"Context": "Streaming",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "wav",
"Type": "Audio",
"AudioCodec": "wav",
"Context": "Streaming",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "opus",
"Type": "Audio",
"AudioCodec": "opus",
"Context": "Static",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "mp3",
"Type": "Audio",
"AudioCodec": "mp3",
"Context": "Static",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "aac",
"Type": "Audio",
"AudioCodec": "aac",
"Context": "Static",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "wav",
"Type": "Audio",
"AudioCodec": "wav",
"Context": "Static",
"Protocol": "http",
"MaxAudioChannels": "6"
},
{
"Container": "ts",
"Type": "Video",
"AudioCodec": "aac,mp3",
"VideoCodec": "h264",
"Context": "Streaming",
"Protocol": "hls",
"MaxAudioChannels": "6",
"MinSegments": "1",
"BreakOnNonKeyFrames": true
}
],
"ContainerProfiles": [],
"CodecProfiles": [
{
"Type": "VideoAudio",
"Codec": "aac",
"Conditions": [
{
"Condition": "Equals",
"Property": "IsSecondaryAudio",
"Value": "false",
"IsRequired": false
}
]
},
{
"Type": "VideoAudio",
"Conditions": [
{
"Condition": "Equals",
"Property": "IsSecondaryAudio",
"Value": "false",
"IsRequired": false
}
]
},
{
"Type": "Video",
"Codec": "h264",
"Conditions": [
{
"Condition": "NotEquals",
"Property": "IsAnamorphic",
"Value": "true",
"IsRequired": false
},
{
"Condition": "EqualsAny",
"Property": "VideoProfile",
"Value": "high|main|baseline|constrained baseline|high 10",
"IsRequired": false
},
{
"Condition": "EqualsAny",
"Property": "VideoRangeType",
"Value": "SDR",
"IsRequired": false
},
{
"Condition": "LessThanEqual",
"Property": "VideoLevel",
"Value": "52",
"IsRequired": false
},
{
"Condition": "NotEquals",
"Property": "IsInterlaced",
"Value": "true",
"IsRequired": false
}
]
},
{
"Type": "Video",
"Codec": "hevc",
"Conditions": [
{
"Condition": "NotEquals",
"Property": "IsAnamorphic",
"Value": "true",
"IsRequired": false
},
{
"Condition": "EqualsAny",
"Property": "VideoProfile",
"Value": "main|main 10",
"IsRequired": false
},
{
"Condition": "EqualsAny",
"Property": "VideoRangeType",
"Value": "SDR",
"IsRequired": false
},
{
"Condition": "LessThanEqual",
"Property": "VideoLevel",
"Value": "183",
"IsRequired": false
},
{
"Condition": "NotEquals",
"Property": "IsInterlaced",
"Value": "true",
"IsRequired": false
}
]
},
{
"Type": "Video",
"Codec": "vp9",
"Conditions": [
{
"Condition": "EqualsAny",
"Property": "VideoRangeType",
"Value": "SDR|HDR10|HLG",
"IsRequired": false
}
]
},
{
"Type": "Video",
"Codec": "av1",
"Conditions": [
{
"Condition": "EqualsAny",
"Property": "VideoRangeType",
"Value": "SDR|HDR10|HLG",
"IsRequired": false
}
]
}
],
"SubtitleProfiles": [
{
"Format": "vtt",
"Method": "External"
},
{
"Format": "ass",
"Method": "External"
},
{
"Format": "ssa",
"Method": "External"
}
],
"ResponseProfiles": [
{
"Type": "Video",
"Container": "m4v",
"MimeType": "video/mp4"
}
]
}
}
Jellyfin web incorrectly informs the server that it does not support hevc when in fact it does
Actually, it would seem that instead of picking a container based on a codec its going straight for webm which does not have a codec which matches
This is very obviously an error in jellyfin-web's code