You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello! There is a dump that cannot be played by ExoPlayer (even with demo application). But VLC for Android, VLC for Linux and ffplay are able to play it. MediaPlayer can play at least video track.
ExoPlayer stops with following exception:
2022-01-13 16:07:38.397 4276-4276/com.google.android.exoplayer2.demo E/EventLogger: playerFailed [eventTime=281.36, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_FAILED_RUNTIME_CHECK
com.google.android.exoplayer2.ExoPlaybackException: Unexpected runtime error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:612)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: java.lang.IllegalStateException: Playback stuck buffering and not loading
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1050)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:486)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
]
I know for sure that after transmuxing via ffmpeg, ExoPlayer starts playing the dump normally.
Additional: http://stand.netup.tv/downloads/T7609.aux aux file for 'multicat' utility if you wish to test it via UDP
for example: > ls -l dump.ts dump.aux <-- In the same folder > multicat -uU dump.ts 239.0.0.1:1234
Tested on:
Google Pixel 4
Samsung Galaxy S21+
Huwaei Honor 9
Samsung Galaxy S8+
Can you, please, help me with this dump?
I will provide any information you need.
I can reproduce the problem using the provided TS file. I also see this logged repeatedly before the failure exception:
2022-01-13 16:19:25.282 11206-12000/androidx.media3.demo.main W/DefaultLoadControl: Target buffer size reached with less than 500ms of buffered media data.
@kim-vde could you take a look at this TS file to understand why ExoPlayer is not able to start playback?
We have an improvement tracked by #7560 to avoid the need for this flag.
Sir, please help i have zero knowledge but I'm trying to understand, sir can you give step by step tutorial to understand where I have to set FLAG_DETECT_ACCESS_UNITS and FLAG_ALLOW_NON_IDR_KEYFRAMES
set on a DefaultExtractorsFactory (where I can find).
val extractorsFactory = DefaultExtractorsFactory()
extractorsFactory.setTsExtractorFlags(DefaultTsPayloadReaderFactory.FLAG_ALLOW_NON_IDR_KEYFRAMES or DefaultTsPayloadReaderFactory.FLAG_DETECT_ACCESS_UNITS)
val mediaSourceFactory = DefaultMediaSourceFactory(this, extractorsFactory)
val player = ExoPlayer.Builder(this)
.setMediaSourceFactory(mediaSourceFactory)
.build()
Activity
icbaker commentedon Jan 13, 2022
I can reproduce the problem using the provided TS file. I also see this logged repeatedly before the failure exception:
@kim-vde could you take a look at this TS file to understand why ExoPlayer is not able to start playback?
kim-vde commentedon Jan 14, 2022
You need to set Flag
FLAG_DETECT_ACCESS_UNITSin the extractors factory. See https://exoplayer.dev/troubleshooting.html#why-do-some-mpeg-ts-files-fail-to-play for details.We have an improvement tracked by #7560 to avoid the need for this flag.
apptrash commentedon Jan 17, 2022
Thank you!
Qhashan commentedon Jan 20, 2022
Sir, please help i have zero knowledge but I'm trying to understand, sir can you give step by step tutorial to understand where I have to set FLAG_DETECT_ACCESS_UNITS and FLAG_ALLOW_NON_IDR_KEYFRAMES
set on a DefaultExtractorsFactory (where I can find).
apptrash commentedon Jan 21, 2022
@Qhashan, for example