Rewinding during remote streaming often causes buffering to restart. This is because Plex on Android uses ExoPlayer, which doesn’t cache rewind data. MPV handles caching more efficiently, preventing unnecessary buffering and ensuring smoother playback.
Our version of ExoPlayer is closer to MPV than the standard ExoPlayer, we use FFmpeg as a demuxer in the client which standard ExoPlayer does not use. By leveraging ExoPlayer in this way, we work on a lot more devices as the Google team handles all of the quirks of the different hardware decoders that exist on all the different devices. In comparison MPV’s support is limited to the native API’s, which isn’t available everywhere and doesn’t handle all the quirks.
We buffer content for rewinding, however we don’t use an infinite buffer so larger files won’t be able to hold much data for rewinding, this would be similar to MPV.
We have full support for ASS subtitles (via libass) with ExoPlayer. I’m curious what other styling options you would like? This is also something that isn’t in base ExoPlayer.
We have full codec support on Android via ExoPlayer and our software decoders via FFmpeg, if we used MPV we would have the same codec support.
Dolby Vision and HDR playback is handled by the device itself, not via ExoPlayer or MPV. Only standard HDR would be improved with MPV, if playing on an SDR device that doesn’t support HDR as it has better HDR → SDR conversion.
I won’t say it won’t ever happen, but it’s unlikely that we will switch to MPV as it would be a downgrade for us.
Thanks for the detailed response! I initially thought the rewind issue was due to ExoPlayer because I tested it on my device. In the Plex video player, it buffers when rewinding remotely, but it works fine locally. I didn’t face this issue with MPV or VLC, so I assumed it was caused by ExoPlayer.
Please allow cache for rewind on remote.
Regarding subtitles, I’ve noticed that Plex sometimes transcodes ASS subtitles. After some research, I found that ExoPlayer doesn’t support all ASS styling.
Thanks again for the clarification! As for Dolby Vision, I noticed it works better on iOS, and I assumed it was because of MPV. Clearly, I’ve made a lot of assumptions
But there is no buffer currently for rewind. I understand the large file issue, but having to wait a few seconds for every rewind is painful, if not annoying at worst. I really hope Plex fixes this in the new client. I just tested it on remote, home Wi-Fi, and remote+MPV, and on remote, it takes a few seconds to rewind each time.
remote+mpv
remote+native
local+native
As you can see, on remote streaming, the rewind issue significantly worsens the experience. This issue needs to be addressed.
It takes half a second on local, but on remote, Plex takes a minimum of 3 seconds. Here’s another example: the rewind issue is inconsistent; sometimes it takes even longer. In this video, it takes 8 seconds to rewind 10 seconds.