Exoplayer: Unexpected exception loading stream MPEG-DASH video

Created on 4 Jan 2017  路  2Comments  路  Source: google/ExoPlayer

Hello everyone,

I'm trying to play a MPEG-DASH(http://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd) video on my app using the ExoPlayer v2 (2.1.1), and I'm getting this exceptions below.


Unexpected exception loading stream
                                                                            java.lang.IllegalArgumentException: Unsupported media rate.
                                                                                at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseEdts(AtomParsers.java:763)
                                                                                at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseTrak(AtomParsers.java:91)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.onMoovContainerAtomRead(FragmentedMp4Extractor.java:377)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.onContainerAtomRead(FragmentedMp4Extractor.java:343)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.processAtomEnded(FragmentedMp4Extractor.java:326)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:321)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:222)
                                                                                at com.google.android.exoplayer2.source.chunk.ChunkExtractorWrapper.read(ChunkExtractorWrapper.java:111)
                                                                                at com.google.android.exoplayer2.source.chunk.InitializationChunk.load(InitializationChunk.java:147)
                                                                                at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
                                                                                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                at java.lang.Thread.run(Thread.java:841)
01-04 18:23:07.444 23974-24076/com.paiva.gabriel.videostreaming I/OMXClient: Using client-side OMX mux.
01-04 18:23:07.614 23974-24040/com.paiva.gabriel.videostreaming E/LoadTask: Unexpected exception loading stream
                                                                            java.lang.ArrayIndexOutOfBoundsException: src.length=8192 srcPos=-16 dst.length=8192 dstPos=0 length=16
                                                                                at java.lang.System.arraycopy(Native Method)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.updatePeekBuffer(DefaultExtractorInput.java:221)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFromPeekBuffer(DefaultExtractorInput.java:191)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:93)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:104)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:319)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:222)
                                                                                at com.google.android.exoplayer2.source.chunk.ChunkExtractorWrapper.read(ChunkExtractorWrapper.java:111)
                                                                                at com.google.android.exoplayer2.source.chunk.InitializationChunk.load(InitializationChunk.java:147)
                                                                                at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
                                                                                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                at java.lang.Thread.run(Thread.java:841)
01-04 18:23:09.384 23974-24040/com.paiva.gabriel.videostreaming E/LoadTask: Unexpected exception loading stream
                                                                            java.lang.ArrayIndexOutOfBoundsException: src.length=8192 srcPos=-16 dst.length=8192 dstPos=0 length=16
                                                                                at java.lang.System.arraycopy(Native Method)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.updatePeekBuffer(DefaultExtractorInput.java:221)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFromPeekBuffer(DefaultExtractorInput.java:191)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:93)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:104)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:319)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:222)
                                                                                at com.google.android.exoplayer2.source.chunk.ChunkExtractorWrapper.read(ChunkExtractorWrapper.java:111)
                                                                                at com.google.android.exoplayer2.source.chunk.InitializationChunk.load(InitializationChunk.java:147)
                                                                                at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
                                                                                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                at java.lang.Thread.run(Thread.java:841)
01-04 18:23:11.644 23974-24040/com.paiva.gabriel.videostreaming E/LoadTask: Unexpected exception loading stream
                                                                            java.lang.ArrayIndexOutOfBoundsException: src.length=8192 srcPos=-16 dst.length=8192 dstPos=0 length=16
                                                                                at java.lang.System.arraycopy(Native Method)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.updatePeekBuffer(DefaultExtractorInput.java:221)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFromPeekBuffer(DefaultExtractorInput.java:191)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:93)
                                                                                at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:104)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:319)
                                                                                at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:222)
                                                                                at com.google.android.exoplayer2.source.chunk.ChunkExtractorWrapper.read(ChunkExtractorWrapper.java:111)
                                                                                at com.google.android.exoplayer2.source.chunk.InitializationChunk.load(InitializationChunk.java:147)
                                                                                at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
                                                                                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                                at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                at java.lang.Thread.run(Thread.java:841)
01-04 18:23:11.654 23974-23990/com.paiva.gabriel.videostreaming E/ExoPlayerImplInternal: Source error.
                                                                                         com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected ArrayIndexOutOfBoundsException: src.length=8192 srcPos=-16 dst.length=8192 dstPos=0 length=16
                                                                                             at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:317)
                                                                                             at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                                             at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                             at java.lang.Thread.run(Thread.java:841)
                                                                                          Caused by: java.lang.ArrayIndexOutOfBoundsException: src.length=8192 srcPos=-16 dst.length=8192 dstPos=0 length=16
                                                                                             at java.lang.System.arraycopy(Native Method)
                                                                                             at com.google.android.exoplayer2.extractor.DefaultExtractorInput.updatePeekBuffer(DefaultExtractorInput.java:221)
                                                                                             at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFromPeekBuffer(DefaultExtractorInput.java:191)
                                                                                             at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:93)
                                                                                             at com.google.android.exoplayer2.extractor.DefaultExtractorInput.skipFully(DefaultExtractorInput.java:104)
                                                                                             at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.readAtomPayload(FragmentedMp4Extractor.java:319)
                                                                                             at com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor.read(FragmentedMp4Extractor.java:222)
                                                                                             at com.google.android.exoplayer2.source.chunk.ChunkExtractorWrapper.read(ChunkExtractorWrapper.java:111)
                                                                                             at com.google.android.exoplayer2.source.chunk.InitializationChunk.load(InitializationChunk.java:147)
                                                                                             at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
                                                                                             at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)聽
                                                                                             at java.util.concurrent.FutureTask.run(FutureTask.java:237)聽
                                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)聽
                                                                                             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)聽
                                                                                             at java.lang.Thread.run(Thread.java:841)聽

And, this is my MainAcitivity class
`public class MainActivity extends AppCompatActivity {

private Handler mainHandler;
private DefaultBandwidthMeter bandwidthMeter;
private TrackSelection.Factory videoTrackSelectionFactory;
private TrackSelector trackSelector;
private LoadControl loadControl;
private SimpleExoPlayer player;
private SimpleExoPlayerView simpleExoPlayerView;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.mainHandler = new Handler();
    this.bandwidthMeter = new DefaultBandwidthMeter();
    this.videoTrackSelectionFactory = new AdaptiveVideoTrackSelection.Factory(bandwidthMeter);
    this.trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
    this.loadControl = new DefaultLoadControl();
    //player
    this.player = ExoPlayerFactory.newSimpleInstance(this,trackSelector,loadControl);
    this.simpleExoPlayerView = (SimpleExoPlayerView)findViewById(R.id.playerview);
    //set the player to view
    simpleExoPlayerView.setPlayer(player);
    DataSource.Factory dataSourceFactory =
            new DefaultDataSourceFactory(this,Util.getUserAgent(this, "VideoStreaming"));

    Uri uri = Uri.parse("http://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd");
    DashMediaSource dataMediaSource = new DashMediaSource(uri, buildDataSourceFactory(null),
            new DefaultDashChunkSource.Factory(dataSourceFactory), mainHandler, null);

    player.prepare(dataMediaSource);


}
@Override
protected void onDestroy() {
    //before destroying the app
    super.onDestroy();
    player.release();
}

public DataSource.Factory buildDataSourceFactory(DefaultBandwidthMeter bandwidthMeter) {
    return new DefaultDataSourceFactory(this, bandwidthMeter,
            buildHttpDataSourceFactory(bandwidthMeter));
}

public HttpDataSource.Factory buildHttpDataSourceFactory(DefaultBandwidthMeter bandwidthMeter) {
    return new DefaultHttpDataSourceFactory(Util.getUserAgent(this, "VideoStreaming"), bandwidthMeter);
}

}`

Can someone help me?

Thank you all!

question infeasible

Most helpful comment

The content you're trying to play is buggy. It was generated at a time when we (and everyone else) only had draft versions of the DASH and MSE specs. I've been asking for it to be deleted, since it really doesn't serve as reference media at this point.

Closing since this is a content issue.

All 2 comments

The content you're trying to play is buggy. It was generated at a time when we (and everyone else) only had draft versions of the DASH and MSE specs. I've been asking for it to be deleted, since it really doesn't serve as reference media at this point.

Closing since this is a content issue.

Thanks for your answer, the video really was generating this issue, I take another video(https://bitmovin-a.akamaihd.net/content/playhouse-vr/mpds/105560.mpd) and it works !

Was this page helpful?
0 / 5 - 0 ratings