[Issue]: Jellyfin Transcoding Video when only Audio Unsupported #3585

Closed
opened 2025-12-21 22:25:50 +01:00 by backuprepo · 15 comments
Owner

Originally created by @Nerdy314159265 on GitHub (Feb 5, 2022).

Please describe your bug

I'm finding that Jellyfin is transcoding video content while listing the reason for transcoding as Audio Codec Not Supported.

If it's only the audio codec that is causing issues it should probably be only encoding it and not the video as well.

I'm attaching a section of my logs where this is occurring and one interesting thing I've noticed is that despite using the Jellyfin app on Roku the Device profile information seems rather sparse and missing some things that I believe the Roku supports codec-wise.

Jellyfin Version

10.7.7

if other:

No response

Environment

- OS: TrueNAS
- Virtualization: Docker/Kubernetes
- Clients: Roku
- FFmpeg Version: 4.3.2-Jellyfin
- Playback Method: Transcode
- Hardware Acceleration: none
- Plugins: none

Jellyfin logs

[2022-02-05 14:32:23.833 -06:00] [INF] [112] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: DeviceProfile { Name: null, Id: null, Identification: null, FriendlyName: null, Manufacturer: null, ManufacturerUrl: null, ModelName: null, ModelDescription: null, ModelNumber: null, ModelUrl: null, SerialNumber: null, EnableAlbumArtInDidl: False, EnableSingleAlbumArtLimit: False, EnableSingleSubtitleLimit: False, SupportedMediaTypes: "Audio,Photo,Video", UserId: null, AlbumArtPn: null, MaxAlbumArtWidth: 0, MaxAlbumArtHeight: 0, MaxIconWidth: null, MaxIconHeight: null, MaxStreamingBitrate: 120000000, MaxStaticBitrate: 100000000, MusicStreamingTranscodingBitrate: 192000, MaxStaticMusicBitrate: null, SonyAggregationFlags: null, ProtocolInfo: null, TimelineOffsetSeconds: 0, RequiresPlainVideoItems: False, RequiresPlainFolders: False, EnableMSMediaReceiverRegistrar: False, IgnoreTranscodeByteRangeRequests: False, XmlRootAttributes: [], DirectPlayProfiles: [DirectPlayProfile { Container: "mp4,m4v,mov", AudioCodec: "mp3,pcm,lpcm,wav,ac3,alac,aac,eac3", VideoCodec: "h264,h265,hevc,mpeg2video", Type: Video }, DirectPlayProfile { Container: "mkv,webm", AudioCodec: "mp3,pcm,lpcm,wav,ac3,flac,alac,aac,opus,vorbis,eac3", VideoCodec: "h264,vp8,h265,hevc,vp9,mpeg2video", Type: Video }, DirectPlayProfile { Container: "mp3,pcm,lpcm,wav,ac3,wma,flac,alac,aac,wmapro,eac3", AudioCodec: null, VideoCodec: null, Type: Audio }], TranscodingProfiles: [TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: " 6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: " 6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "ts", Type: Video, VideoCodec: "h264,mpeg2video", AudioCodec: "aac,ac3", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: " 6", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "mp4", Type: Video, VideoCodec: "h264", AudioCodec: "aac,opus,flac,vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: null, MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }], ContainerProfiles: [], CodecProfiles: [CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: "aac", Container: null }, CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: LessThanEqual, Property: AudioChannels, Value: " 6", IsRequired: False }], ApplyConditions: [], Codec: "mp3,pcm,lpcm,wav,ac3,flac,alac,aac,opus,vorbis,eac3", Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "high|main|baseline|constrained baseline", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "51", IsRequired: False }], ApplyConditions: [], Codec: "h264", Container: null }], ResponseProfiles: [], SubtitleProfiles: [SubtitleProfile { Format: "vtt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "srt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ttml", Method: External, DidlMode: null, Language: null, Container: null }] }
[2022-02-05 14:32:23.835 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "JohnDoe". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2022-02-05 14:32:23.835 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "\\ip\path\film-2160p.mkv", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2022-02-05 14:32:23.835 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "\\ip\path\film-2160p.mkv" with codec "hevc"
[2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "\\ip\path\film-2160p.mkv", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "\\ip\path\film-2160p.mkv" with codec "hevc"
[2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "\\ip\path\film-2160p.mkv", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "\\ip\path\film-2160p.mkv" with codec "hevc"
[2022-02-05 14:32:24.406 -06:00] [INF] [121] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-i file:\"/path/film-2160p.mkv\" -map 0:6 -an -vn -c:s copy \"/config/data/subtitles/f/id.srt\""
[2022-02-05 14:32:24.959 -06:00] [INF] [119] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2022-02-05 14:32:25.001 -06:00] [INF] [119] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -f matroska,webm -i file:"/path/film-2160p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -pix_fmt yuv420p -preset veryfast -crf 23 -maxrate 96366202 -bufsize 192732404 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none  -force_key_frames:0 "expr:gte(t,0+n_forced*3)" -vf "scale=trunc(min(max(iw\,ih*dar)\,min(3840\,2160*dar))/2)*2:trunc(min(max(iw/dar\,ih)\,min(3840/dar\,2160))/2)*2" -start_at_zero -vsync -1 -codec:a:0 aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/transcodes/id%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/id.m3u8"
[2022-02-05 14:32:40.357 -06:00] [WRN] [112] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://ip:8096/videos/id/hls1/main/0.ts?DeviceId=device&MediaSourceId=source&VideoCodec=h264,mpeg2video&AudioCodec=aac,ac3&AudioStreamIndex=1&VideoBitrate=139360000&AudioBitrate=640000&PlaySessionId=session&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=tag&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&h264-profile=high,main,baseline,constrainedbaseline&h264-level=51&aac-audiochannels=6&ac3-audiochannels=6&TranscodeReasons=AudioCodecNotSupported" to "ip" in 0:00:15.4167041 with Status Code 200

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @Nerdy314159265 on GitHub (Feb 5, 2022). ### Please describe your bug I'm finding that Jellyfin is transcoding video content while listing the reason for transcoding as Audio Codec Not Supported. If it's only the audio codec that is causing issues it should probably be only encoding it and not the video as well. I'm attaching a section of my logs where this is occurring and one interesting thing I've noticed is that despite using the Jellyfin app on Roku the Device profile information seems rather sparse and missing some things that I believe the Roku supports codec-wise. ### Jellyfin Version 10.7.7 ### if other: _No response_ ### Environment ```markdown - OS: TrueNAS - Virtualization: Docker/Kubernetes - Clients: Roku - FFmpeg Version: 4.3.2-Jellyfin - Playback Method: Transcode - Hardware Acceleration: none - Plugins: none ``` ### Jellyfin logs ```shell [2022-02-05 14:32:23.833 -06:00] [INF] [112] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: DeviceProfile { Name: null, Id: null, Identification: null, FriendlyName: null, Manufacturer: null, ManufacturerUrl: null, ModelName: null, ModelDescription: null, ModelNumber: null, ModelUrl: null, SerialNumber: null, EnableAlbumArtInDidl: False, EnableSingleAlbumArtLimit: False, EnableSingleSubtitleLimit: False, SupportedMediaTypes: "Audio,Photo,Video", UserId: null, AlbumArtPn: null, MaxAlbumArtWidth: 0, MaxAlbumArtHeight: 0, MaxIconWidth: null, MaxIconHeight: null, MaxStreamingBitrate: 120000000, MaxStaticBitrate: 100000000, MusicStreamingTranscodingBitrate: 192000, MaxStaticMusicBitrate: null, SonyAggregationFlags: null, ProtocolInfo: null, TimelineOffsetSeconds: 0, RequiresPlainVideoItems: False, RequiresPlainFolders: False, EnableMSMediaReceiverRegistrar: False, IgnoreTranscodeByteRangeRequests: False, XmlRootAttributes: [], DirectPlayProfiles: [DirectPlayProfile { Container: "mp4,m4v,mov", AudioCodec: "mp3,pcm,lpcm,wav,ac3,alac,aac,eac3", VideoCodec: "h264,h265,hevc,mpeg2video", Type: Video }, DirectPlayProfile { Container: "mkv,webm", AudioCodec: "mp3,pcm,lpcm,wav,ac3,flac,alac,aac,opus,vorbis,eac3", VideoCodec: "h264,vp8,h265,hevc,vp9,mpeg2video", Type: Video }, DirectPlayProfile { Container: "mp3,pcm,lpcm,wav,ac3,wma,flac,alac,aac,wmapro,eac3", AudioCodec: null, VideoCodec: null, Type: Audio }], TranscodingProfiles: [TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: " 6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "2", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: " 6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "ts", Type: Video, VideoCodec: "h264,mpeg2video", AudioCodec: "aac,ac3", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: " 6", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "mp4", Type: Video, VideoCodec: "h264", AudioCodec: "aac,opus,flac,vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: null, MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }], ContainerProfiles: [], CodecProfiles: [CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: "aac", Container: null }, CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: LessThanEqual, Property: AudioChannels, Value: " 6", IsRequired: False }], ApplyConditions: [], Codec: "mp3,pcm,lpcm,wav,ac3,flac,alac,aac,opus,vorbis,eac3", Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "high|main|baseline|constrained baseline", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "51", IsRequired: False }], ApplyConditions: [], Codec: "h264", Container: null }], ResponseProfiles: [], SubtitleProfiles: [SubtitleProfile { Format: "vtt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "srt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ttml", Method: External, DidlMode: null, Language: null, Container: null }] } [2022-02-05 14:32:23.835 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "JohnDoe". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2022-02-05 14:32:23.835 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "\\ip\path\film-2160p.mkv", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2022-02-05 14:32:23.835 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "\\ip\path\film-2160p.mkv" with codec "hevc" [2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "\\ip\path\film-2160p.mkv", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "\\ip\path\film-2160p.mkv" with codec "hevc" [2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "\\ip\path\film-2160p.mkv", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2022-02-05 14:32:23.877 -06:00] [INF] [112] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "\\ip\path\film-2160p.mkv" with codec "hevc" [2022-02-05 14:32:24.406 -06:00] [INF] [121] MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-i file:\"/path/film-2160p.mkv\" -map 0:6 -an -vn -c:s copy \"/config/data/subtitles/f/id.srt\"" [2022-02-05 14:32:24.959 -06:00] [INF] [119] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request [2022-02-05 14:32:25.001 -06:00] [INF] [119] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -f matroska,webm -i file:"/path/film-2160p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -pix_fmt yuv420p -preset veryfast -crf 23 -maxrate 96366202 -bufsize 192732404 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -force_key_frames:0 "expr:gte(t,0+n_forced*3)" -vf "scale=trunc(min(max(iw\,ih*dar)\,min(3840\,2160*dar))/2)*2:trunc(min(max(iw/dar\,ih)\,min(3840/dar\,2160))/2)*2" -start_at_zero -vsync -1 -codec:a:0 aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/transcodes/id%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/id.m3u8" [2022-02-05 14:32:40.357 -06:00] [WRN] [112] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://ip:8096/videos/id/hls1/main/0.ts?DeviceId=device&MediaSourceId=source&VideoCodec=h264,mpeg2video&AudioCodec=aac,ac3&AudioStreamIndex=1&VideoBitrate=139360000&AudioBitrate=640000&PlaySessionId=session&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=tag&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&h264-profile=high,main,baseline,constrainedbaseline&h264-level=51&aac-audiochannels=6&ac3-audiochannels=6&TranscodeReasons=AudioCodecNotSupported" to "ip" in 0:00:15.4167041 with Status Code 200 ``` ### FFmpeg logs _No response_ ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here _No response_ ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
backuprepo 2025-12-21 22:25:50 +01:00
Author
Owner

@srd424 commented on GitHub (Apr 29, 2022):

As I mentioned on #7439, I still see this (as of yesterday's nightly) with 'downmix to stereo' option on, so it seems recent changes in this area have not totally fixed these problems?

@srd424 commented on GitHub (Apr 29, 2022): As I [mentioned]( https://github.com/jellyfin/jellyfin/issues/7439#issuecomment-1113368216) on #7439, I still see this (as of yesterday's nightly) with 'downmix to stereo' option on, so it seems recent changes in this area have not totally fixed these problems?
Author
Owner

@jivanpal commented on GitHub (Jul 21, 2022):

Bug still present in 10.8.1, but apparently fixed by #8078, so should be fixed in 10.8.2 once it is released.

@jivanpal commented on GitHub (Jul 21, 2022): Bug still present in 10.8.1, but apparently fixed by #8078, so should be fixed in 10.8.2 once it is released.
Author
Owner

@kiler129 commented on GitHub (Dec 19, 2022):

This is still present in 10.8.8, so 10.8.2 doesn't seem to fix this:

telegram-cloud-photo-size-1-4972333683994372835-x

What's also interesting is it transcodes to H.264, even thou HW encoding to HVEC is enabled and supported by my nV GPU.

@kiler129 commented on GitHub (Dec 19, 2022): This is still present in 10.8.8, so 10.8.2 doesn't seem to fix this: ![telegram-cloud-photo-size-1-4972333683994372835-x](https://user-images.githubusercontent.com/1227834/208373738-530f0834-a4f0-4539-97bb-1dd1910245f9.jpg) What's also interesting is it transcodes to H.264, even thou HW encoding to HVEC is enabled and supported by my nV GPU.
Author
Owner

@ankitydv193 commented on GitHub (Mar 28, 2023):

I faced the same problem on 10.8.8 when playing on Jellyfin Android TV app. I have enabled encoding in HEVC. When "Allow video playback that requires transcoding" is selected, the HDR data is lost and the video is encoded in h264 and color space changes from bt2020nc/bt2020/smpte2084 to bt709. I had just selected the option to downmix to stereo as my speaker is stereo and not 5.1. The file doesn't play in exoplayer. It plays on libvlc but in SDR. When I play it through external player like NOVA, it plays correctly in Dolby vision.

log snippet
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_nvenc))
Stream #0:1 -> #0:1 (eac3 (native) -> aac (libfdk_aac))

Full log: https://pastebin.com/C3kvPBeH

@ankitydv193 commented on GitHub (Mar 28, 2023): I faced the same problem on 10.8.8 when playing on Jellyfin Android TV app. I have enabled encoding in HEVC. When "Allow video playback that requires transcoding" is selected, the HDR data is lost and the video is encoded in h264 and color space changes from bt2020nc/bt2020/smpte2084 to bt709. I had just selected the option to downmix to stereo as my speaker is stereo and not 5.1. The file doesn't play in exoplayer. It plays on libvlc but in SDR. When I play it through external player like NOVA, it plays correctly in Dolby vision. **log snippet** Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_nvenc)) Stream #0:1 -> #0:1 (eac3 (native) -> aac (libfdk_aac)) Full log: https://pastebin.com/C3kvPBeH
Author
Owner

@jellyfin-bot commented on GitHub (Sep 7, 2023):

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@jellyfin-bot commented on GitHub (Sep 7, 2023): This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://docs.jellyfin.org/general/getting-help.html).
Author
Owner

@zachfi commented on GitHub (Sep 9, 2023):

I see this in my environment also. Also running on Kubernetes. I also noticed that the UnsupportedAudio seems to be incorrect, since viewing the file information seems to confirm that the audio is a common format and should be well supported.

I have issues with direct play generally and transcoding seems to be considerably more reliable when running on Kubernetes. I've asked several folks in the communtiy channels and they all seem to think that the files in question should play without transcode, so I wonder if there is something more fundamental going on here. Transcoding would use ffmpeg to open and read the files, which would be potentially different than the method that the .NET code uses to open the file.

@zachfi commented on GitHub (Sep 9, 2023): I see this in my environment also. Also running on Kubernetes. I also noticed that the UnsupportedAudio seems to be incorrect, since viewing the file information seems to confirm that the audio is a common format and should be well supported. I have issues with direct play generally and transcoding seems to be considerably more reliable when running on Kubernetes. I've asked several folks in the communtiy channels and they all seem to think that the files in question should play without transcode, so I wonder if there is something more fundamental going on here. Transcoding would use `ffmpeg` to open and read the files, which would be potentially different than the method that the .NET code uses to open the file.
Author
Owner

@dmitrylyzo commented on GitHub (Nov 9, 2023):

@iojeda AV1 remuxing requires fMP4 to be enabled on the client (Settings / Playback).
UPD: Only in the next release.

@dmitrylyzo commented on GitHub (Nov 9, 2023): @iojeda AV1 remuxing requires fMP4 to be enabled on the client (Settings / Playback). UPD: Only in the next release.
Author
Owner

@jellyfin-bot commented on GitHub (Mar 10, 2024):

This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs.

If you have any questions you can use one of several ways to contact us.

@jellyfin-bot commented on GitHub (Mar 10, 2024): This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs. If you have any questions you can use one of several ways to [contact us](https://jellyfin.org/contact).
Author
Owner

@dferrg commented on GitHub (Mar 24, 2024):

Still happening in 10.8.13.

@dferrg commented on GitHub (Mar 24, 2024): Still happening in 10.8.13.
Author
Owner

@felix920506 commented on GitHub (Mar 24, 2024):

Please stop commenting about happening on 10.8.x
Please test master branch before commenting.

@felix920506 commented on GitHub (Mar 24, 2024): Please stop commenting about happening on 10.8.x Please test master branch before commenting.
Author
Owner

@felix920506 commented on GitHub (Mar 24, 2024):

Closing as devs say already fixed on master.

@felix920506 commented on GitHub (Mar 24, 2024): Closing as devs say already fixed on master.
Author
Owner

@Croydon commented on GitHub (Oct 22, 2025):

I just run into this issue with Jellyfin Server 10.11.0 and Jellyfin Roku 3.0.10 on a Roku Streaming Stick 4K (3820x).

Video: AV1 SDR in MKV container
Audio: Surround 5.1 - DTS-HD MA

Jellyfin says that the reason for transcoding is only the audio codec, but then it goes on and transcodes to H264 + MP3.

This Roku Stick / Client can successfully play AV1 SDR in MKV with Flac-24bit, so it is really just the audio codec.

Did I misconfigure something or is this (still) a bug?

@Croydon commented on GitHub (Oct 22, 2025): I just run into this issue with Jellyfin Server 10.11.0 and Jellyfin Roku 3.0.10 on a Roku Streaming Stick 4K (3820x). Video: AV1 SDR in MKV container Audio: Surround 5.1 - DTS-HD MA Jellyfin says that the reason for transcoding is only the audio codec, but then it goes on and transcodes to H264 + MP3. This Roku Stick / Client can successfully play AV1 SDR in MKV with Flac-24bit, so it is really just the audio codec. Did I misconfigure something or is this (still) a bug?
Author
Owner

@nyanmisaka commented on GitHub (Oct 22, 2025):

I just run into this issue with Jellyfin Server 10.11.0 and Jellyfin Roku 3.0.10 on a Roku Streaming Stick 4K (3820x).

Video: AV1 SDR in MKV container Audio: Surround 5.1 - DTS-HD MA

Jellyfin says that the reason for transcoding is only the audio codec, but then it goes on and transcodes to H264 + MP3.

This Roku Stick / Client can successfully play AV1 SDR in MKV with Flac-24bit, so it is really just the audio codec.

Did I misconfigure something or is this (still) a bug?

This issue was resolved in the Web client years ago.

Your issue is https://github.com/jellyfin/jellyfin-roku/issues/433, and the Roku client doesn't support AV1 in HLS. Roku needs to update its OS to add support, and then the Roku client needs to be updated accordingly.

@nyanmisaka commented on GitHub (Oct 22, 2025): > I just run into this issue with Jellyfin Server 10.11.0 and Jellyfin Roku 3.0.10 on a Roku Streaming Stick 4K (3820x). > > Video: AV1 SDR in MKV container Audio: Surround 5.1 - DTS-HD MA > > Jellyfin says that the reason for transcoding is only the audio codec, but then it goes on and transcodes to H264 + MP3. > > This Roku Stick / Client can successfully play AV1 SDR in MKV with Flac-24bit, so it is really just the audio codec. > > Did I misconfigure something or is this (still) a bug? This issue was resolved in the **Web client** years ago. Your issue is https://github.com/jellyfin/jellyfin-roku/issues/433, and the **Roku client** doesn't support AV1 in HLS. Roku needs to update its OS to add support, and then the Roku client needs to be updated accordingly.
Author
Owner

@Croydon commented on GitHub (Oct 22, 2025):

I just run into this issue with Jellyfin Server 10.11.0 and Jellyfin Roku 3.0.10 on a Roku Streaming Stick 4K (3820x).
Video: AV1 SDR in MKV container Audio: Surround 5.1 - DTS-HD MA
Jellyfin says that the reason for transcoding is only the audio codec, but then it goes on and transcodes to H264 + MP3.
This Roku Stick / Client can successfully play AV1 SDR in MKV with Flac-24bit, so it is really just the audio codec.
Did I misconfigure something or is this (still) a bug?

This issue was resolved in the Web client years ago.

Your issue is jellyfin/jellyfin-roku#433, and the Roku client doesn't support AV1 in HLS. Roku needs to update its OS to add support, and then the Roku client needs to be updated accordingly.

Thanks, I just found that issue too and took the time to read through it.
But again, the very same device / client / server combo plays AV1 SDR in MKV with Flac-24bit fine. AFAIK this is using HLS too?

But I should probably switch over to the other issue, thanks!

@Croydon commented on GitHub (Oct 22, 2025): > > I just run into this issue with Jellyfin Server 10.11.0 and Jellyfin Roku 3.0.10 on a Roku Streaming Stick 4K (3820x). > > Video: AV1 SDR in MKV container Audio: Surround 5.1 - DTS-HD MA > > Jellyfin says that the reason for transcoding is only the audio codec, but then it goes on and transcodes to H264 + MP3. > > This Roku Stick / Client can successfully play AV1 SDR in MKV with Flac-24bit, so it is really just the audio codec. > > Did I misconfigure something or is this (still) a bug? > > This issue was resolved in the **Web client** years ago. > > Your issue is [jellyfin/jellyfin-roku#433](https://github.com/jellyfin/jellyfin-roku/issues/433), and the **Roku client** doesn't support AV1 in HLS. Roku needs to update its OS to add support, and then the Roku client needs to be updated accordingly. Thanks, I just found that issue too and took the time to read through it. But again, the very same device / client / server combo plays AV1 SDR in MKV with Flac-24bit fine. AFAIK this is using HLS too? But I should probably switch over to the other issue, thanks!
Author
Owner

@nyanmisaka commented on GitHub (Oct 22, 2025):

Thanks, I just found that issue too and took the time to read through it. But again, the very same device / client / server combo plays AV1 SDR in MKV with Flac-24bit fine. AFAIK this is using HLS too?

But I should probably switch over to the other issue, thanks!

That's direct play, because the video and audio formats are all supported by the device.

If the audio format isn't supported, transcoding occurs, in which case the HLS protocol is used. In this case, Roku is only capable of H264, HEVC, and VP9, ​​which is why you see transcoding of the video.

@nyanmisaka commented on GitHub (Oct 22, 2025): > Thanks, I just found that issue too and took the time to read through it. But again, the very same device / client / server combo plays AV1 SDR in MKV with Flac-24bit fine. AFAIK this is using HLS too? > > But I should probably switch over to the other issue, thanks! That's direct play, because the video and audio formats are all supported by the device. If the audio format isn't supported, transcoding occurs, in which case the HLS protocol is used. In this case, Roku is only capable of H264, HEVC, and VP9, ​​which is why you see transcoding of the video.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#3585
No description provided.