androidx / androidx/media

Resuming from playback, 4K videos takes longer than 5 seconds to render Exoplayer V2.11

Open
#683 2 comments 0 reactions 1 assignee View on GitHub

@marcbaechinger is already working on this.

Since Oct 2, 2023.

question
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

ExoPlayer Version
2.11.0

Devices that reproduce the issue
Tablet with Android 10

Expected result
Video should render within 1-2 seconds.

Actual result
Video can take up 4-6 seconds to render first frame

Implemented a customized Exoplayer with caching. When the 4k video plays, the cache is downloaded to a directory. An activity is started and ends and the exoplayer resumes. The player loads the 10s chunk from cache and starts playing the video. However, due to the seek position being at the end of the 10s chunk (ie 9.3s), the video takes a long time to feed and drain the buffer till that position to render the first frame.
Are we able to decode/display the video faster for video with high bitrate?

Logs:

09-22 15:40:47.678 D/TestPlayerExoPlayerManager(23153): Initializing new player.

09-22 15:40:47.766 D/EventLogger(23153): positionDiscontinuity [eventTime=0.03, mediaPos=19.76, window=0, SEEK]
09-22 15:40:47.767 D/EventLogger(23153): state [eventTime=0.03, mediaPos=19.76, window=0, true, BUFFERING]
09-22 15:40:47.739 D/EventLogger(23153): state [eventTime=0.00, mediaPos=0.00, window=0, true, IDLE]
09-22 15:40:47.814 D/EventLogger(23153): timeline [eventTime=0.08, mediaPos=19.76, window=0, periodCount=1, windowCount=1, reason=PREPARED
09-22 15:40:47.814 D/EventLogger(23153):   period [?]
09-22 15:40:47.814 D/EventLogger(23153):   window [?, false, true]
09-22 15:40:47.814 D/EventLogger(23153): ]
09-22 15:40:47.818 D/EventLogger(23153): seekProcessed [eventTime=0.08, mediaPos=19.76, window=0]
09-22 15:40:47.818 D/EventLogger(23153): mediaPeriodCreated [eventTime=0.08, mediaPos=19.76, window=0, period=0]
09-22 15:40:47.818 D/EventLogger(23153): loading [eventTime=0.08, mediaPos=19.76, window=0, period=0, true]
09-22 15:40:47.819 D/EventLogger(23153): decoderEnabled [eventTime=0.08, mediaPos=19.76, window=0, period=0, video]
09-22 15:40:47.819 D/EventLogger(23153): decoderEnabled [eventTime=0.08, mediaPos=19.76, window=0, period=0, audio]
09-22 15:40:47.820 D/EventLogger(23153): tracks [eventTime=0.08, mediaPos=19.76, window=0, period=0, 
09-22 15:40:47.820 D/EventLogger(23153):   Renderer:0 [
09-22 15:40:47.820 D/EventLogger(23153):     Group:0, adaptive_supported=N/A [
09-22 15:40:47.820 D/EventLogger(23153):       [X] Track:0, id=0, mimeType=video/hevc, bitrate=12707948, codecs=hev1.2.4.L150.A0, res=3840x2160, fps=23.976025, supported=YES
09-22 15:40:47.820 D/EventLogger(23153):     ]
09-22 15:40:47.820 D/EventLogger(23153):   ]
09-22 15:40:47.820 D/EventLogger(23153):   Renderer:1 [
09-22 15:40:47.820 D/EventLogger(23153):     Group:0, adaptive_supported=N/A [
09-22 15:40:47.820 D/EventLogger(23153):       [X] Track:0, id=1, mimeType=audio/mp4a-latm, bitrate=130667, codecs=mp4a.40.2, channels=2, sample_rate=44100, language=en, supported=YES
09-22 15:40:47.820 D/EventLogger(23153):     ]
09-22 15:40:47.820 D/EventLogger(23153):     Group:1, adaptive_supported=N/A [
09-22 15:40:47.820 D/EventLogger(23153):       [ ] Track:0, id=2, mimeType=audio/mp4a-latm, bitrate=130651, codecs=mp4a.40.2, channels=2, sample_rate=44100, language=fr, supported=YES
09-22 15:40:47.820 D/EventLogger(23153):     ]
09-22 15:40:47.820 D/EventLogger(23153):     Group:2, adaptive_supported=N/A [
09-22 15:40:47.820 D/EventLogger(23153):       [ ] Track:0, id=3, mimeType=audio/mp4a-latm, bitrate=130649, codecs=mp4a.40.2, channels=2, sample_rate=44100, language=es, supported=YES
09-22 15:40:47.820 D/EventLogger(23153):     ]
09-22 15:40:47.820 D/EventLogger(23153):     Group:3, adaptive_supported=N/A [
09-22 15:40:47.820 D/EventLogger(23153):       [ ] Track:0, id=4, mimeType=audio/mp4a-latm, bitrate=130649, codecs=mp4a.40.2, channels=2, sample_rate=44100, language=ar, supported=YES
09-22 15:40:47.820 D/EventLogger(23153):     ]
09-22 15:40:47.820 D/EventLogger(23153):   ]
09-22 15:40:47.820 D/EventLogger(23153): ]
09-22 15:40:47.821 D/EventLogger(23153): mediaPeriodReadingStarted [eventTime=0.08, mediaPos=19.76, window=0, period=0]
09-22 15:40:47.821 D/EventLogger(23153): timeline [eventTime=0.08, mediaPos=19.76, window=0, period=0, periodCount=1, windowCount=1, reason=DYNAMIC
09-22 15:40:47.821 D/EventLogger(23153):   period [8648.97]
09-22 15:40:47.821 D/EventLogger(23153):   window [8648.97, true, false]
09-22 15:40:47.821 D/EventLogger(23153): ]
09-22 15:40:47.828 D/EventLogger(23153): downstreamFormat [eventTime=0.09, mediaPos=19.76, window=0, period=0, id=0, mimeType=video/hevc, bitrate=12707948, codecs=hev1.2.4.L150.A0, res=3840x2160, fps=23.976025]
09-22 15:40:48.190 D/EventLogger(23153): decoderInitialized [eventTime=0.45, mediaPos=19.76, window=0, period=0, video, OMX.qcom.video.decoder.hevc.secure]
09-22 15:40:48.190 D/EventLogger(23153): decoderInputFormat [eventTime=0.45, mediaPos=19.76, window=0, period=0, video, id=0, mimeType=video/hevc, bitrate=12707948, codecs=hev1.2.4.L150.A0, res=3840x2160, fps=23.976025]

09-22 15:40:51.736 D/EventLogger(23153): renderedFirstFrame [eventTime=4.00, mediaPos=19.76, window=0, period=0, Surface(name=null)/@0xbae5576]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.