Jellyfin and Plex both failing to transcode

To better understand that request Yatse sends, I tried to make it a bit more human-readable. Some things that jump out are: “VideoCodec”:“ac3,dts,aac,eac3” within DirectPlayProfiles and “Protocol”:“hls” within TranscodingProfiles.

[368] 
{
	“deviceProfile”:
	{
		“CodecProfiles”:
		[
			{
				“Conditions”:
				[
					{
						“Condition”:“Equals”,
						“IsRequired”:“false”,
						“Property”:“IsSecondaryAudio”,
						“Value”:“false”
					}
				],
				“Type”:“VideoAudio”
			}
		],
		“DirectPlayProfiles”:
		[
			{
				“Container”:"",
				“Type”:“Video”,
				“VideoCodec”:“ac3,dts,aac,eac3”
			},
			{
				“Container”:"",
				“Type”:“Audio”
			},
			{
				“Container”:"",
				“Type”:“Photo”
			}
		],
		“MaxStaticBitrate”:100000000,
		“MaxStreamingBitrate”:120000000,
		“MusicStreamingTranscodingBitrate”:192000,
		“ResponseProfiles”:
		[
			{
				“Container”:“m4v”,
				“MimeType”:“video/mp4”,
				“Type”:“Video”
			},
			{
				“Container”:“mov”,
				“MimeType”:“video/webm”,
				“Type”:“Video”
			}
		],
		“SubtitleProfiles”:
		[
			{
				“Format”:“vtt”,
				“Method”:“Embed”
			},
			{
				“Format”:“srt”,
				“Method”:“Embed”
			},
			{
				“Format”:“ass”,
				“Method”:“Embed”
			},
			{
				“Format”:“ssa”,
				“Method”:“Embed”
			},
			{
				“Format”:“smi”,
				“Method”:“Embed”
			},
			{
				“Format”:“subrip”,
				“Method”:“Embed”
			},
			{
				“Format”:“sub”,
				“Method”:“Embed”
			},
			{
				“Format”:“dvdsub”,
				“Method”:“Embed”
			},
			{
				“Format”:“pgs”,
				“Method”:“Embed”
			},
			{
				“Format”:“pgssub”,
				“Method”:“Embed”
			},
			{
				“Format”:“srt”,
				“Method”:“External”
			},
			{
				“Format”:“sub”,
				“Method”:“External”
			}
		],
		“TranscodingProfiles”:
		[
			{
				“AudioCodec”:“ac3,dts,aac,eac3”,
				“Container”:“mkv”,
				“Context”:“Streaming”,
				“CopyTimestamps”:true,
				“MaxAudioChannels”:“6”,
				“Protocol”:“hls”,
				“Type”:“Video”,
				“VideoCodec”:“h264”
			},
			{
				“AudioCodec”:“mp3”,
				“Container”:“mp3”,
				“Context”:“Static”,
				“MaxAudioChannels”:“6”,
				“Protocol”:“http”,
				“Type”:“Audio”
			},
			{
				“AudioCodec”:“mp3”,
				“Container”:“mp3”,
				“Context”:“Streaming”,
				“MaxAudioChannels”:“6”,
				“Protocol”:“http”,
				“Type”:“Audio”
			}
		]
	}
}

Where’s the spec on what these are supposed to look like? I found the following “examples” on the jellyfin codebase. Is it possible that you’re not supposed to send Protocol hls?

Here’s one that specifically has an mkv listed in the TranscodeProfile, though it doesn’t talk about hls at all. I also tried searching the code for hls and perhaps it’s a “TranscodingSubProtocol”.

My justification for picking on hls is that I don’t think ffmpeg (as an example implementation) supports hls and mkv together. FFmpeg Formats Documentation.