When using ExoPlayer as the playback client option, only direct play videos that have hardware-supported decoders. As I was making this PR, I noticed the older one #1135 and I relate to exactly the problem they encountered (and proposed fix).
Issues
AV1 playback can range from great to unplayable depending on the bitrate/encode settings of the video and device playing it back. Android Jellyfin users already have options to attempt directplay, by either using the web client/external players or alternative clients like Findroid. We do not have an option for playing back videos that need transcoding help. The trick of lowering the internet bandwidth doesn't work if the av1 encode is already pretty low bitrate (10-15) but due to things like film-grain synthesis and low(er) preset encoding, are still very resource intensive to decode, causing many many dropped frames.
I am not an android developer at all, nor believe this is the best option. I am hoping if it is (at least) not a passable option, it can still highlight a need for change. Ideally, a dialog/dropdown to allow the client to select the encoder on server-side but that was more complicated than to get this at least working as intended. Thank you for reading.
Changes
Issues AV1 playback can range from great to unplayable depending on the bitrate/encode settings of the video and device playing it back. Android Jellyfin users already have options to attempt directplay, by either using the web client/external players or alternative clients like Findroid. We do not have an option for playing back videos that need transcoding help. The trick of lowering the internet bandwidth doesn't work if the av1 encode is already pretty low bitrate (10-15) but due to things like film-grain synthesis and low(er) preset encoding, are still very resource intensive to decode, causing many many dropped frames.
I am not an android developer at all, nor believe this is the best option. I am hoping if it is (at least) not a passable option, it can still highlight a need for change. Ideally, a dialog/dropdown to allow the client to select the encoder on server-side but that was more complicated than to get this at least working as intended. Thank you for reading.