Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support wider range of DASH manifests #2

Closed
ojw28 opened this issue Jun 23, 2014 · 10 comments
Closed

Support wider range of DASH manifests #2

ojw28 opened this issue Jun 23, 2014 · 10 comments
Assignees

Comments

@ojw28
Copy link
Contributor

ojw28 commented Jun 23, 2014

Currently ExoPlayer only supports a narrow subset of possible DASH manifests. Support should be added for manifests containing segment lists and segment templates.

Note: As a workaround, application developers can already support arbitrary DASH manifests through implementing their own parser and ChunkSource (it's probably useful to use DashMp4ChunkSource as a starting point).

@ojw28 ojw28 self-assigned this Jun 23, 2014
ojw28 pushed a commit that referenced this issue Jun 24, 2014
@ojw28
Copy link
Contributor Author

ojw28 commented Jul 9, 2014

There are a whole bunch of test mpds here:
https://github.com/Dash-Industry-Forum/dash.js/blob/master/app/sources.json

ojw28 added a commit that referenced this issue Jul 9, 2014
ojw28 added a commit that referenced this issue Jul 10, 2014
- Allow the content type of an adaptation set to be inferred
from the mimeTypes of the contained representations.
- Ensure the contained mimeTypes are consistent with one
another, and with the adaptation set.

Ref: Issue #2
@droidmax
Copy link

Any recommendation for supporting multiple periods in MPD? Would be helpful for implementing Ad insertion using only one instance of player. Is it possible to add multiple DASH video chunk sources to the renderer and seek between the chunk sources?

@rogerjstringer
Copy link

Is there a MPD file which current works with ExoPlayer, even the 'dev' branch?

I've tested a number of the sample MPD files provided by the sources.json file in dash.js, files which play with dash.js but all fail with ExoPlayer. The current problem appears to be in the processing of the XML-format MPD file.

Example MPD files which should play are:
http://dash.edgesuite.net/digitalprimates/fraunhofer/480p_video/heaac_5_1_with_video/Sintel/sintel_480p_heaac5_1.mpd
http://www.digitalprimates.net/dash/streams/mp4-live-template/mp4-live-mpd-AV-BS.mpd
http://dash.edgesuite.net/digitalprimates/fraunhofer/480p_video/heaac_2_0_with_video/ElephantsDream/elephants_dream_480p_heaac2_0.mpd
http://yt-dash-mse-test.commondatastorage.googleapis.com/cenc_samples/oops-20131021-DASH_FMP4_H264_1080P_CENC.mp4
http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd

NB: I'm testing on KitKat

@ojw28
Copy link
Contributor Author

ojw28 commented Jul 16, 2014

  • The first and third of those mpd links already play for me on the dev branch.
  • The second one requires SegmentTemplate support. I have this working locally, and it will be pushed next week. Stay tuned. Ditto for any mpds that contain SegmentList elements.
  • The fourth link isn't an mpd.
  • I'm not sure what to do about the fifth one yet. That style of mpd neglects to define a segment index (either by specifying where the sidx is located in the stream, or by defining an index in the manifest itself). You end up having to make an unbounded request from the head of each stream until you find the index. That doesn't seem ideal, and I'm not sure we'll be supporting that case.

Thanks!

@rogerjstringer
Copy link

OK, I concur on #1 once I fiddled with the parameters:
new Sample("DASH-Sintel 480p", "uid:misc:sintel480",
"http://dash.edgesuite.net/digitalprimates/fraunhofer/480p_video/heaac_5_1_with_video/Sintel/sintel_480p_heaac5_1.mpd",
DemoUtil.TYPE_DASH_VOD, false, true),

Sorry for the misleading comment

@ojw28
Copy link
Contributor Author

ojw28 commented Jul 16, 2014

Np. The big missing piece here at the moment is support for SegmentTemplate and SegmentList, both of which are fairly commonly used (as in the second mpd). This will be fixed very soon.

@ojw28
Copy link
Contributor Author

ojw28 commented Jul 18, 2014

Support for SegmentTemplate and SegmentList have been merged into both dev and master.

@IanDBird
Copy link
Contributor

Thanks for the update to include support for SegmentTemplate and SegmentList. I've been testing it out over the last day or two and it works beautifully!

@hafidben
Copy link

hafidben commented Feb 4, 2015

Do you have an example of an MPD file with segmentList ?

@ojw28
Copy link
Contributor Author

ojw28 commented Feb 4, 2015

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants