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

Fast play will cause the HD video frozen #2777

Closed
robin2046 opened this issue May 5, 2017 · 10 comments
Closed

Fast play will cause the HD video frozen #2777

robin2046 opened this issue May 5, 2017 · 10 comments
Assignees

Comments

@robin2046
Copy link

Issue description

When testing the new feature of set playback speed, it works well with small video clips, lets say, 240p or 480p, with speed from 1/8 to 8x. However, when trying this feature with HD video, e.g. video clip captured by camera app, when speed is <1.0f it worked fine but if setting speed >= 2.0f, video will freeze after playing several frames (1-2s). And this cannot be recovered no matter how long I waited.

Reproduction steps

Just use the new simple Exoplayer to play a HD video clip captured by camera app, set the speed > 2.0f.

Link to test content

Use camera app to record some HD video clip

Version of ExoPlayer being used

r2.4.0

Device(s) and version(s) of Android being used

Google Pixel Phone, Android Nougat 7.1

@robin2046
Copy link
Author

if possible, when the power of the device cannot support fast playing of HD video, can Exoplayer try to seek for the iFrame only?

@ojw28
Copy link
Contributor

ojw28 commented May 7, 2017

Yes, this is on our list of follow-up work for variable speed playback.

@robin2046
Copy link
Author

Before the enhancement is ready, how can I detect this frozen and take action?

@KirillMakarov
Copy link

Same issue. Tested on Nexus 5 with API 23, Samsung Galaxy Tab A (2016) SM-T280 API 21.
But on Samsung SM-T580 API 23 HD video with 2x is working.

@ojw28
Copy link
Contributor

ojw28 commented Jan 2, 2018

I think this is fixed in 2.6.0. @andrewlewis - Can this be closed? Thanks!

@jinminghe
Copy link
Contributor

I can still reproduce this bug on latest dev-v2 branch:

In PlayerActivity::initializePlayer(), add
player.setPlaybackParameters(new PlaybackParameters(2.0f, 1.0f));
Then build and install the demo app on a Google Pixel Phone with Android 7.1, run the demo app, and play a 1080p video, for example, Misc -> Screens 1080p (FMP4, H264, No Audio)

Can you see if the above steps reproduce the bug for you? Thanks.

@andrewlewis
Copy link
Collaborator

Yes, I think this can be closed: video renderers now skip to keyframes if their decoders can't keep up.

@jinminghe That sample plays as expected at high playback speeds for me: video is not smooth but keyframes are now shown (the old behavior was that one video frame was shown then video was frozen for the duration of playback). In the demo app you should see that a frame is rendered occasionally and the "dropped to keyframe" counter labeled dk: gets incremented each time a frame is shown when the decoder can't keep up.

@jinminghe
Copy link
Contributor

@andrewlewis Thanks. Thought the frame drops were same as 'frozen'.

@vishal105
Copy link

I can still reproduce this bug on version 2.7.2:

In PlayerActivity::initializePlayer(), add
player.setPlaybackParameters(new PlaybackParameters(2.0f, 1.0f));
Then build and install the demo app on a Google Pixel Phone with Android 7.1, run the demo app, and play a 1080p video, for example, Misc -> Screens 1080p (FMP4, H264, No Audio)

please help.

@andrewlewis
Copy link
Collaborator

Addressed in #4061.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants