-
Notifications
You must be signed in to change notification settings - Fork 6k
Closed
Labels
Description
Hi there,
ExoPlayer throws Invalid NAL length exception while playing a CMAF live stream (sample files attached below). The video is not encrypted and safar/quicktime/bitmovin can play it without problem.
I appreciate much if you could identify whether the issue is.
[REQUIRED] Issue description
HLS with CMAF fragments on Safari/QuickTime/Bitmovin : OK
DASH witch CMAF fragments on Bitmovin player : OK
DASH/HLS with CMAF fragments on ExoPlayer : failed with Invalid NAL length
[REQUIRED] Reproduction steps
Android Studio
Add target stream to media.exolist.json
Run Debug 'demo'
Play the target stream
Get playback failed
[REQUIRED] Link to test content
An init fragment and a video fragment are in cmaf.zip
[REQUIRED] A full bug report captured from the device
E/EventLogger: playerFailed [eventTime=1.07, mediaPos=68.00, window=0, period=0
com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.ParserException: Invalid NAL length
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:394)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.ParserException: Invalid NAL length
at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readSample(FragmentedMp4Extractor.java:1317)
at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:321)
at com.google.android.exoplayer2.source.hls.HlsMediaChunk.feedDataToExtractor(HlsMediaChunk.java:376)
at com.google.android.exoplayer2.source.hls.HlsMediaChunk.loadMedia(HlsMediaChunk.java:343)
at com.google.android.exoplayer2.source.hls.HlsMediaChunk.load(HlsMediaChunk.java:314)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
]
[REQUIRED] Version of ExoPlayer being used
r2.11.7
[REQUIRED] Device(s) and version(s) of Android being used
Virtual device: Pixel_3a_API_30_x86 (Android 10.0+)