Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback during Fast Forward and Rewind #6794

Closed
alfonsoramosa opened this issue Dec 20, 2019 · 2 comments
Closed

Feedback during Fast Forward and Rewind #6794

alfonsoramosa opened this issue Dec 20, 2019 · 2 comments
Assignees
Labels

Comments

@alfonsoramosa
Copy link

Hi,

we want to improve the experience when doing Fast Forward or Rewind, and if possible when seeking.

Our current implementation, is keeping the playback while the user is keeping the remote control buttons pressed for Fast Forward or Rewind and then seeking to that position when the user releases the button.

We would like to provide feedback when doing Fast Forward or Rewind, like playing video x32 or x64, so the user knows when the playback will continue after releasing the button or display thumbnails to provide that feedback.
Currently we don't have any custom source of thumbnails, and don't know if that is doable for live (we need this feature for live and on demand)
Maybe possible to use a profile with key frames for that?

Any suggestion will be welcome, if there is a recommended way to do that using Exoplayer or any other way.

Our media streams are currently SS and DASH and the lowest bitrate is 500000.
Our application is working on Android Tv devices.

Thanks!!

@alfonsoramosa
Copy link
Author

Hi all,

I will really appreciate any kind of feedback or clue on how to handle Fast Forward and Rewind and provide some feedback to the user on the content current position while doing it

@andrewlewis
Copy link
Collaborator

Maybe possible to use a profile with key frames for that?

If "profile with key frames" refers to a special keyframe-only 'track' provided by the container or streaming standard, I think we don't support this out of the box (see also #474).

we want to improve the experience when doing Fast Forward or Rewind, and if possible when seeking.

If your streams have frequent keyframes you may be able to get a better user experience with some changes at the app level as follows:

  • When the user starts seeking, issue a sequence of seeks to create the impression of fast-forwarding or rewinding, using seek parameters to specify a sync point (e.g., SeekParameters.PREVIOUS_SYNC to avoid showing a preview frame later than the actual exact seek position) to make the seek operations complete more quickly.
  • As an additional refinement to make this smoother you can suppress calls to seek while a seek is pending in the player, by setting a flag in your app just before you call seek, not calling seek while the flag is set, and clearing the flag in onRenderedFirstFrame, plus also onSeekProcessed if the seek position is equal to the seek position that was requested (this case doesn't result in a new first frame rendered notification; and you can get the seek position that was last requested by querying the player position in onSeekProcessed).
  • I found it was also worth setting playWhenReady to false while you are issuing these seek operations to avoid restarting playback at each position, then restoring it when returning to normal playback.
  • To get this working really well there are probably other refinements especially to caching and/or load control (to avoid loading then throwing away data). I haven't looked into doing that in detail so will leave it for you to investigate if you go down this route.

For completeness, an alternative approach that is probably much more efficient is to show thumbnail previews where you're serving those thumbnails separately from the media stream (this is not really ExoPlayer-related though).

@google google locked and limited conversation to collaborators Mar 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants