• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support General Questions How does Jellyfin-web determine what content a client is capable of playing?

     
    • 0 Vote(s) - 0 Average

    How does Jellyfin-web determine what content a client is capable of playing?

    kimbo
    Offline

    Junior Member

    Posts: 8
    Threads: 1
    Joined: 2023 Dec
    Reputation: 0
    #10
    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

    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
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    Messages In This Thread
    How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 03:52 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by tmsrxzar - 2024-01-19, 04:09 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 04:24 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by tmsrxzar - 2024-01-19, 04:30 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 05:18 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by tmsrxzar - 2024-01-19, 05:30 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 05:43 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by tmsrxzar - 2024-01-19, 05:48 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 06:40 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 09:44 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-19, 10:58 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by TheDreadPirate - 2024-01-19, 11:24 PM
    RE: How does Jellyfin-web determine what content a client is capable of playing? - by kimbo - 2024-01-20, 12:02 AM

    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode