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!
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 !
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.