HLS: Black screen (audio only) despite supported video track
@rohitjoins is already working on this.
Since Jun 20, 2025.
- Dominant language
- Java
- Stars
- 3k
- Forks
- 955
- Avg merge
- 12d 14h
- Merged PRs (30d)
- 2
Description
Version
Media3 1.7.1 (same as 1.6.1)
More version details
No response
Devices that reproduce the issue
onn Google TV 4K Streaming Device running its latest Android TV OS version (14)
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
player = ExoPlayer.Builder(this).setRenderersFactory(DefaultRenderersFactory(this).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON)).build()
findViewById<PlayerView>(R.id.playerView).player = player
player.addAnalyticsListener(EventLogger())
val mediaItem = MediaItem.fromUri("https://raw.githubusercontent.com/every-time/samples/refs/heads/main/sample1/master.m3u8")
player.playWhenReady = true
player.setMediaItem(mediaItem)
player.prepare()
I'm using the pre-built FFmpeg decoder module from here, which was compiled with ENABLED_DECODERS=(vorbis opus flac alac pcm_mulaw pcm_alaw mp3 amrnb amrwb aac ac3 eac3 dca mlp truehd)
Otherwise, it plays with no video (black screen) AND no audio due to audio/mpeg-L2 being unsupported on my device:
tracks [eventTime=2.38, mediaPos=0.00, window=0, period=0
group [
[X] Track:0, id=0, mimeType=video/avc, container=video/mp2t, codecs=avc1.4D001E, res=720x576, par=1.455, color=NA/NA/NA/8/8, supported=YES
]
group [
[ ] Track:0, id=769/4, mimeType=audio/mpeg-L2, container=video/mp2t, channels=2, sample_rate=48000, supported=NO_UNSUPPORTED_TYPE
]
group [
[ ] Track:0, id=769/8219, mimeType=application/cea-608, container=video/mp2t, supported=YES
]
group [
[X] Track:0, id=null, mimeType=application/id3, supported=YES
]
]
Expected result
Since the video track should be natively supported by my device, and the audio track is supported through the FFmpeg decoder module, I'd expect ExoPlayer to play both video and audio normally.
Actual result
ExoPlayer plays audio only with a black screen despite logs indicating my device supports all tracks, including video.
ExoPlayerImpl I Init e51e02 [AndroidXMedia3/1.7.1] [YOC, onn. 4K Streaming Box, onn, 34]
DefaultRenderersFactory I Loaded FfmpegVideoRenderer.
DefaultRenderersFactory I Loaded FfmpegAudioRenderer.
EventLogger D playWhenReady [eventTime=0.02, mediaPos=0.00, window=0, true, USER_REQUEST]
EventLogger D timeline [eventTime=0.07, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
EventLogger D period [?]
EventLogger D window [?, seekable=false, dynamic=true]
EventLogger D ]
EventLogger D mediaItem [eventTime=0.08, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
EventLogger D state [eventTime=0.09, mediaPos=0.00, window=0, BUFFERING]
EventLogger D surfaceSize [eventTime=0.29, mediaPos=0.00, window=0, 1280, 720]
EventLogger D audioSessionId [eventTime=0.40, mediaPos=0.00, window=0, 513]
EventLogger D loading [eventTime=0.47, mediaPos=0.00, window=0, period=0, true]
EventLogger D timeline [eventTime=1.19, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
EventLogger D period [20.00]
EventLogger D window [20.00, seekable=true, dynamic=false]
EventLogger D ]
EventLogger D videoEnabled [eventTime=2.32, mediaPos=0.00, window=0, period=0]
EventLogger D audioEnabled [eventTime=2.32, mediaPos=0.00, window=0, period=0]
EventLogger D tracks [eventTime=2.33, mediaPos=0.00, window=0, period=0
EventLogger D group [
EventLogger D [X] Track:0, id=0, mimeType=video/avc, container=video/mp2t, codecs=avc1.4D001E, res=720x576, par=1.455, color=NA/NA/NA/8/8, supported=YES
EventLogger D ]
EventLogger D group [
EventLogger D [X] Track:0, id=769/4, mimeType=audio/mpeg-L2, container=video/mp2t, channels=2, sample_rate=48000, supported=YES
EventLogger D ]
EventLogger D group [
EventLogger D [ ] Track:0, id=769/8219, mimeType=application/cea-608, container=video/mp2t, supported=YES
EventLogger D ]
EventLogger D group [
EventLogger D [X] Track:0, id=null, mimeType=application/id3, supported=YES
EventLogger D ]
EventLogger D ]
EventLogger D downstreamFormat [eventTime=2.37, mediaPos=0.00, window=0, period=0, id=0, mimeType=null, container=application/x-mpegURL]
EventLogger D videoDecoderInitialized [eventTime=2.47, mediaPos=0.00, window=0, period=0, c2.amlogic.avc.decoder]
EventLogger D videoInputFormat [eventTime=2.48, mediaPos=0.00, window=0, period=0, id=0, mimeType=video/avc, container=video/mp2t, codecs=avc1.4D001E, res=720x576, par=1.455, color=NA/NA/NA/8/8]
EventLogger D audioDecoderInitialized [eventTime=2.49, mediaPos=0.00, window=0, period=0, ffmpegLavc60.3.100-mp3]
EventLogger D audioInputFormat [eventTime=2.49, mediaPos=0.00, window=0, period=0, id=769/4, mimeType=audio/mpeg-L2, container=video/mp2t, channels=2, sample_rate=48000]
EventLogger D rendererReady [eventTime=2.50, mediaPos=0.00, window=0, period=0, rendererIndex=3, audio, true]
EventLogger D rendererReady [eventTime=2.51, mediaPos=0.00, window=0, period=0, rendererIndex=5, metadata, true]
EventLogger D audioTrackInit [eventTime=2.56, mediaPos=0.00, window=0, period=0, 2,12,48000,false,false,65600]
EventLogger D rendererReady [eventTime=3.95, mediaPos=0.00, window=0, period=0, rendererIndex=0, video, true]
EventLogger D loading [eventTime=3.97, mediaPos=0.02, window=0, period=0, false]
EventLogger D state [eventTime=3.98, mediaPos=0.02, window=0, period=0, READY]
EventLogger D isPlaying [eventTime=3.98, mediaPos=0.02, window=0, period=0, true]
EventLogger D state [eventTime=24.64, mediaPos=20.55, window=0, period=0, ENDED]
EventLogger D isPlaying [eventTime=24.85, mediaPos=20.55, window=0, period=0, false]
Media
https://raw.githubusercontent.com/every-time/samples/refs/heads/main/sample1/master.m3u8
Bug Report
- You will email the zip file produced by
adb bugreportto android-media-github@google.com after filing this issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.