如何播放mpd文件

时间:2015-08-11 12:49:00

标签: mpeg-dash adaptive-bitrate

。 我想了解mpd文件是如何播放的,我指的是以下数据集: http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/Valkaama/MPDs/Valkaama_1s_act_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd

在mpd文件格式中,段基础由mp4块组成,其中包含扩展名为.m4s.的块列表。我使用以下命令下载了mpd文件:

http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/Valkaama/valkaama_1s/valkaama_1s_50kbit/valkaama_50kbit_dash.mp4

和m4s chunk通过以下链接:

http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/Valkaama/valkaama_1s/valkaama_1s_50kbit/valkaama_1s1.m4s

我试图在vlc播放器中同时播放mp4和m4s,但是无法播放这两个中的任何一个,所以我想问一下mpd文件格式中的哪个块链接我可以在vlc播放器中独立播放。 / p>

如果我的任何观察结果有误,请纠正我:

此致 Mayank

4 个答案:

答案 0 :(得分:7)

DASH播放器通过选择Period,并在Period中选择一个或多个AdaptationSet,然后每个AdaptationSet一个Representation来播放MPD。对于所选的表示,它下载并将初始化段和一些媒体段传递给媒体引擎。如其他人所示,您可以通过连接(在Linux上简单地使用cat)来模拟它。

MPEG-DASH standard要求初始化段(在您的情况下为mp4文件)不包含任何数据。这是因为切换播放器时可能会使用几次初始化段。您可以在播放器中打开它,但它不包含任何媒体。

对于m4s文件,它们包含媒体数据,但如果没有关联的初始化段,则无法解释它们。

答案 1 :(得分:4)

您可以下载init段(SegmentBase / Initialization @ sourceURL)和所有媒体段(SegmentList / SegmentURL @media)并连接所有内容(例如,在Windows上使用copy命令)。结果应该可以在VLC上播放。必须分别对音频和视频进行此操作。在下一步中,您可以使用MP4Box或类似工具来复用音频和视频。

或者,您可以使用www.dash-downloader.com一步下载所有内容。该页面将显示一些日志,说明它正在做什么。这可能会有所帮助。

(完全披露:这是我的网站)。

答案 2 :(得分:2)

我认为不可能在独立播放器中播放任何文件。 mp4是解码.m4s媒体段所需的init段。我不认为vlc播放器中有一个选项可以将init段映射到多个媒体段。不过,您可以尝试使用Dash播放器播放清单文件。例如dash.js

  

初始化段:一个字节序列,包含解码一系列媒体段所需的所有初始化信息。这包括编解码器初始化数据,多路复用段的磁道ID映射以及时间戳偏移(例如编辑列表)。

     

媒体片段:包含打包和&节点的字节序列时间戳媒体时间线的一部分的媒体数据。媒体段始终与最近附加的初始化段相关联。

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

答案 3 :(得分:0)

MPD文件只是各种格式的流的索引,以适应您的带宽,以获取更多信息,请点击此处其他答案的链接。

可以下载所有流并将其合并为一个文件,您可以使用youtube-dl来实现:

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

您可以在https://stackoverflow.com/a/39931712/1522342中获得更多信息。

此外,VLC 3.0.0+可以从URL播放此类文件,只需打开VLC,使用快捷键CTRL + N,粘贴URL即可享用。