Server Version#: 1.32.2.7100
Player Version#: (Web) 4.106.2
When i start a movie in Chrome with following versions:
1080p (h264)
4K (HEVC) DV Profile 8 with HDR fallback
it selects the 4K version but transcodes it even if the 1080p version would be direct playable or direct streamable dependig on the audio track.
If i start the same movie in Edge or Firefox it automatically selects the 1080p version. This would be the preferable version because not every setup can transcode 4K files.
This just happens for 4K versions with DV profile 8. All 4K files without dolby vision play fine without transcoding in Chrome.
If the 4K version has only DV profile 5 (without HDR fallback). The selection decision is the same in Chrome, but transcoding fails because the coldor space is not supported. In this case Firefox and Edge also automatically select the 1080p version. I understand that transcoding of Dolby Vision is not supported by Plex, but in this case it should fallback to a playable version if available. In this case i have to manually select the 1080p version or the movie does not start and users who don’t know that a playable version exist just see the error message and think the movie is not playable.
This happens since Chrome added the capability to direct play HEVC video. It seems like the version decision logic is missing a check if Dolby Vision is present in the file or not. If i read the console logs correcty the logic only checks if the video codec (in this case HEVC) is compatible with the browser.
Console log of Chrome:
[MDE] Augmented profile: {
"directPlay": {
"mp4": {
"mimeType": "video/mp4; codecs=\"avc1.42E01E\"",
"video": {
"codecs": {
"h264": {
"maxWidth": 4096,
"maxHeight": 2160
},
"hevc": {
"maxWidth": 4096,
"maxHeight": 2160,
"maxBitDepth": 10,
"codecID": [
"hev1"
]
}
},
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
},
"audio": {
"codecs": {
"aac": {}
}
}
},
"ogg": {
"mimeType": "video/ogg",
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
}
},
"mpegts": {
"protocol": "hls",
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
}
},
"flv": {
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
}
},
"mkv": {
"mimeType": "video/webm",
"video": {
"codecs": {
"vp8": {
"maxWidth": 4096,
"maxHeight": 2160
},
"vp9": {
"maxWidth": 4096,
"maxHeight": 2160
}
},
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
},
"audio": {
"codecs": {
"opus": {},
"vorbis": {}
}
}
}
},
"directStream": {
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60,
"maxBitDepth": 8,
"codecs": {
"h264": {
"maxWidth": 4096,
"maxHeight": 2160
},
"hevc": {
"maxWidth": 4096,
"maxHeight": 2160,
"maxBitDepth": 10
}
}
},
"audio": {
"codecs": {
"aac": {}
},
"maxBitrate": 192,
"maxChannels": 2
}
}
}
[MDE] Starting analysis of 4k (mp4, hevc, eac3, 150, main 10)
[MDE] Analyzing direct play
[MDE] Cannot direct play: noCodecInProfile:eac3
[MDE] Analyzing video direct stream
[MDE] Analyzing audio direct stream
[MDE] Analyzing subtitles
[MDE] Subtitle codec: srt
[MDE] Burn level: auto
[MDE] Analyzing playability
[MDE] Finished analysis of: 4k (mp4, hevc, eac3, 150, main 10) {
"canPlay": true,
"canDirectPlay": false,
"canDirectStreamVideo": true,
"canDirectStreamAudio": false,
"useSoftSubtitles": true,
"bitrate": 26097,
"videoResolution": 2560
}
[MDE] Starting analysis of 1080 (mkv, h264, eac3, 40, high)
[MDE] Analyzing direct play
[MDE] Cannot direct play: noCodecInProfile:h264
[MDE] Analyzing video direct stream
[MDE] Analyzing audio direct stream
[MDE] Analyzing playability
[MDE] Finished analysis of: 1080 (mkv, h264, eac3, 40, high) {
"canPlay": true,
"canDirectPlay": false,
"canDirectStreamVideo": true,
"canDirectStreamAudio": false,
"bitrate": 11923,
"videoResolution": 1080
}
[MDE] Selected 4k (mp4, hevc, eac3, 150, main 10) to play: {
"canPlay": true,
"canDirectPlay": false,
"canDirectStreamVideo": true,
"canDirectStreamAudio": false,
"useSoftSubtitles": true,
"bitrate": 26097,
"videoResolution": 2560
}
It seems like the the selection logic picks the 4K version, but when the player tries to play the file it crashes and falls back to transcoding. If it is DV profile 8 transcoding will work, but with DV profile 5 transcoding is not possible because of unsupported color space.
[Player] A critical HTML media error occurred: 4 (Nicht unterstützt); the player cannot recover
[Player] A critical Shaka error occurred: s3016 (Medien) – MediaError code: 4 – Chrome error details: CHUNK_DEMUXER_ERROR_APPEND_FAILED: MSE playback of DolbyVision is not supported because kPlatformEncryptedDolbyVision feature is disabled.; the player cannot recover
[Player] Direct Stream failed, but server can transcode. Attempting to fallback to video transcode...
For example the console logs in Edge for the version decision:
[MDE] Augmented profile: {
"directPlay": {
"mp4": {
"mimeType": "video/mp4; codecs=\"avc1.42E01E\"",
"video": {
"codecs": {
"h264": {
"maxWidth": 4096,
"maxHeight": 2160
}
},
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
},
"audio": {
"codecs": {
"aac": {}
}
}
},
"ogg": {
"mimeType": "video/ogg",
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
}
},
"mpegts": {
"protocol": "hls",
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
}
},
"flv": {
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
}
},
"mkv": {
"mimeType": "video/webm",
"video": {
"codecs": {
"vp8": {
"maxWidth": 4096,
"maxHeight": 2160
},
"vp9": {
"maxWidth": 4096,
"maxHeight": 2160
}
},
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60
},
"audio": {
"codecs": {
"opus": {},
"vorbis": {}
}
}
}
},
"directStream": {
"video": {
"maxWidth": 1920,
"maxHeight": 1280,
"maxFrameRate": 60,
"maxBitDepth": 8,
"codecs": {
"h264": {
"maxWidth": 4096,
"maxHeight": 2160
}
}
},
"audio": {
"codecs": {
"aac": {}
},
"maxBitrate": 192,
"maxChannels": 2
}
}
}
[MDE] Starting analysis of 4k (mp4, hevc, eac3, 150, main 10)
[MDE] Analyzing direct play
[MDE] Cannot direct play: noCodecInProfile:hevc
[MDE] Analyzing video direct stream
[MDE] Invalid profile property; width: 3840 > 1920
[MDE] Analyzing audio direct stream
[MDE] Analyzing subtitles
[MDE] Subtitle codec: srt
[MDE] Burn level: auto
[MDE] Analyzing playability
[MDE] Finished analysis of: 4k (mp4, hevc, eac3, 150, main 10) {
"canPlay": true,
"canDirectPlay": false,
"canDirectStreamVideo": false,
"canDirectStreamAudio": false,
"useSoftSubtitles": true,
"bitrate": 26097,
"videoResolution": 2560
}
[MDE] Starting analysis of 1080 (mkv, h264, eac3, 40, high)
[MDE] Analyzing direct play
[MDE] Cannot direct play: noCodecInProfile:h264
[MDE] Analyzing video direct stream
[MDE] Analyzing audio direct stream
[MDE] Analyzing playability
[MDE] Finished analysis of: 1080 (mkv, h264, eac3, 40, high) {
"canPlay": true,
"canDirectPlay": false,
"canDirectStreamVideo": true,
"canDirectStreamAudio": false,
"bitrate": 11923,
"videoResolution": 1080
}
[MDE] Selected 1080 (mkv, h264, eac3, 40, high) to play: {
"canPlay": true,
"canDirectPlay": false,
"canDirectStreamVideo": true,
"canDirectStreamAudio": false,
"bitrate": 11923,
"videoResolution": 1080
}