how to play mpd file

58,942

Solution 1

MPD file is just a index of streams with various formats in order to adapt to your bandwidth, to get more information follow the links of the other answers here.

It's possible to download all streams and merge them into a single file, you could achieve this by using youtube-dl:

youtube-dl http://URL/TO/manifest.mpd

You can get more information in https://stackoverflow.com/a/39931712/1522342.

Also, VLC 3.0.0+ can play that kind of file from a url, just open VLC, use the shortcut CTRL+N, paste the url and enjoy.

Solution 2

A DASH player plays an MPD by selecting a Period, and in the Period one or more AdaptationSet, and then one Representation per AdaptationSet. For the chosen Representation, it downloads and passes the intialization segment and some media segments to the media engine. As indicated by others you can simulate that by concatenating (simply using caton Linux).

The MPEG-DASH standard requires that initialization segments (in your case the mp4 file) contain no data. This is because when switching the player might use several times the initialization segment. You can open it in a player but it does not contain any media.

For m4s files, they contain media data but they cannot be interpreted without the associated initialization segment.

Solution 3

you can download init segment (SegmentBase/Initialization@sourceURL) and all media segments (SegmentList/SegmentURL@media) and concatenate everything (e.g. with the copy command on windows). The result should be playable on VLC. This has to be done for audio and video separately. In the next step you can then use MP4Box or similar tools to mux audio and video.

Alternatively you can use www.dash-downloader.com to download everything in one step. The page will display some log explaining what it's doing. That might be helpfull.

(full disclosure: that's my website).

Solution 4

I dont think it is possible to play any of the files in a standalone player. The mp4 is the init segment which is required to decode the .m4s media segments. I dont think there is an option in the vlc player to map an init segment to multiple media segments. Nevertheless you can try a Dash player to play the manifest file. For instance dash.js

Initialization segment: A sequence of bytes that contain all of the initialization information required to decode a sequence of media segments. This includes codec initialization data, Track ID mappings for multiplexed segments, and timestamp offsets (e.g. edit lists).

Media segment: A sequence of bytes that contain packetized & timestamped media data for a portion of the media timeline. Media segments are always associated with the most recently appended initialization segment.

Source: http://www.w3.org/TR/media-source/#init-segment

Share:
58,942
Mayank Agarwal
Author by

Mayank Agarwal

Updated on January 03, 2020

Comments