2024-01-31, 12:08 AM
I'm running into an issue where Jellyfin does not kick off a transcode job for AV1 files when streamed to certain clients like my Chromecast and jellyfin-web-player desktop applications. I have verified that hardware transcoding is enabled and working for the AV1 codec when streaming from a Firefox browser. But when I try to stream the same video file to a Chromecast or desktop jellyfin-media-player app, no transcode takes place. I know this because no transcode log appears in the log dashboard after terminating playback. I have svt-av1 installed in the container and av1 codec libraries present on the proxmox host.
Here's a log of the playback events when streaming from the Chromecast:
I'm not exactly sure why it would transcode when streaming to the browser but not elsewhere, as the Chromecast 4K and my desktop clients do not support AV1.
Server Setup:
Chromecast 4K Client:
Here's a log of the playback events when streaming from the Chromecast:
Code:
[2024-01-30 17:31:16.442 -06:00] [INF] User policy for "User". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-01-30 17:31:16.442 -06:00] [INF] StreamBuilder.BuildVideoItem( Profile="AndroidTV-libVLC", Path="\\<NAS_ADDRESS>:/media/movies/<AV1_VIDEO_FILE>.mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/86172980-0326-efd0-756e-9a9881689b6d/stream.mkv?MediaSourceId=861729800326efd0756e9a9881689b6d&Static=true&VideoCodec=av1&AudioCodec=opus&AudioStreamIndex=2&api_key=<token>&SubtitleMethod=Encode&Tag=35f597325fb159f353b0005fbb6bc2b6"
[2024-01-30 17:31:16.632 -06:00] [INF] User policy for "User". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-01-30 17:31:16.633 -06:00] [INF] StreamBuilder.BuildVideoItem( Profile="AndroidTV-ExoPlayer", Path="\\<NAS_ADDRESS>:/media/movies/<AV1_VIDEO_FILE>.mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=VideoProfileNotSupported ) "media:/videos/86172980-0326-efd0-756e-9a9881689b6d/master.m3u8?MediaSourceId=861729800326efd0756e9a9881689b6d&VideoCodec=hevc,h264&AudioCodec=aac,mp3,ac3,eac3&AudioStreamIndex=2&VideoBitrate=13868607&AudioBitrate=228309&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Encode&RequireAvc=false&Tag=35f597325fb159f353b0005fbb6bc2b6&SegmentContainer=ts&BreakOnNonKeyFrames=False&av1-level=8&av1-videobitdepth=10&av1-profile=main&aac-audiochannels=8&TranscodeReasons=VideoProfileNotSupported"
[2024-01-30 17:31:32.373 -06:00] [INF] Playback stopped reported by app "Android TV" "0.16.4" playing "<VIDEO>". Stopped at "6040" ms
I'm not exactly sure why it would transcode when streaming to the browser but not elsewhere, as the Chromecast 4K and my desktop clients do not support AV1.
Server Setup:
- Jellyfin 10.8.13 running in privileged proxmox LXC
- Intel RocketLake CPU with QSV transcoding enabled and working
- AV1 decoding enabled
Chromecast 4K Client:
- Jellyfin 0.16.4 on Android TV 12
- Player choice and streaming bitrate set to "Auto"