当前位置: 首页 > 知识库问答 >
问题:

如何实现mpeg-dash实时播放列表?

陆展
2023-03-14

我正在为实时流实现mpeg dash视频服务器,

分块流并将块添加到mpd-工程,参见示例

<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="Live" availabilityStartTime="2015-07-09T15:10:46.775640Z" minimumUpdatePeriod="PT10.0S" timeShiftBufferDepth="PT1.0M" maxSegmentDuration="PT20.0S" minBufferTime="PT1.0S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264,urn:hbbtv:dash:profile:isoff-live:2012">
<Period id="1" start="PT0S">
<AdaptationSet group="1" mimeType="video/mp4" segmentAlignment="true" maxWidth="640" maxHeight="480" startWithSAP="1">
<SegmentTemplate timescale="1000" media="$RepresentationID$/$Time$.m4v" initialization="$RepresentationID$/init.vmoov">
<SegmentTimeline>
<S t="625" d="11000"/>
<S t="11625" d="12000"/>
<S t="23625" d="7200"/>
<S t="30825" d="9800"/>
<S t="40625" d="10760"/>
<S t="51385" d="10520"/>
<S t="61905" d="11640"/>
<S t="73545" d="9160"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="ad/a" codecs="avc1.4D401E" width="640" height="480" frameRate="25" bandwidth="1000000"></Representation>
</AdaptationSet>
<AdaptationSet group="2" mimeType="audio/mp4" segmentAlignment="true">
<SegmentTemplate timescale="1000" media="$RepresentationID$/$Time$.m4a" initialization="$RepresentationID$/init.amoov">
<SegmentTimeline>
<S t="721" d="10922"/>
<S t="11643" d="11990"/>
<S t="23633" d="7210"/>
<S t="30843" d="9792"/>
<S t="40635" d="10752"/>
<S t="51387" d="10539"/>
<S t="61926" d="11627"/>
<S t="73553" d="9173"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="ad/a" codecs="mp4a.40.02" audioSamplingRate="48000" bandwidth="66750"></Representation>
</AdaptationSet>
</Period>
</MPD>

但当我尝试实现滑动播放列表时

(例如,将有5个区块,新区块将替换旧区块。目前我只打印更新的时间线,不更改任何其他值。)

比赛结束后,球员停止比赛。mpd刷新。

段时间-是流的实际时间线。(即与. m4*文件中相同)

对于带有滑动播放列表的实时视频,我需要实现哪些属性/元素?

共有1个答案

张积厚
2023-03-14

更新时间表没问题,没有其他必要。

根据MPEG-DASH标准,MPD元素中的属性“type”只能设置为“static”(即VoD内容)或“dynamic”(对于实时流)。将其设置为“Live”会导致无效的清单文件和播放器,例如Bitmovin播放器或dash。js要么使用“static”(因为这是默认值),要么根本无法识别它。

音频编解码器不应该有前导零,也就是说,你应该使用“mp4a.40.2”而不是“mp4a.40.02”。

已经有DASH直播服务器可用,例如使用NGINX和NGINX rtmp模块,因此您也可以查看它们在做什么。

 类似资料:
  • 我想在不断从客户端接收实时视频流的情况下使用MPEG-DASH技术。Web服务器获取实时视频流,不断生成m4s文件,并在mpd中声明它。因此可以不断播放新片段。(我使用的是FFMPEG的ffserver。因此视频流继续累积在 /tmp/feed1.ffm文件中。) 使用MP4Box似乎能够生成mpd,init。mp4,M4用于现有文件。但它似乎不支持直播。 我想要片段格式的MP4而不是mpeg-t

  • 所以我正在为我的MPEG-DASH视频生成一个非常简单的MPD清单文件,但我无法找出问题所在。这是我当前的清单文件 这个MPD文件使用我能找到的每个验证器进行验证。出于安全原因,这些段的URL被隐藏,但它们都是开放的、公开的,并且可以单独查看。但当我试图运行清单文件时,这取决于我得到的玩家。“在清单中找不到支持的源”,或者干脆什么都没发生。 你知道这怎么可能是错的吗?我目前正在使用媒体url作为绝

  • 需要调试段划线文件的帮助吗 输入是带有这些细节的MP4。这是从摄像机录制的,摄像机的输出是mkv,我们通过adobe编辑音频后转换为MP4 大小:7.51 GB帧率:25帧/秒 数据速率:25326kbps 总比特率:25525kbps 使用此命令将其转换为另一个mp4 输出视频已被删除 fps:25 数据速率:761kbps 比特率:761kbps 然后,通过MP4Box创建了分段破折号 生成的

  • 我正在寻找一个开源媒体播放器或Android应用编程接口,可以支持MPEG-DASH及其修正案,如平铺视频的空间关系描述(SRD)功能。有什么建议吗? 我以为Android的API支持DASH,但显然它不支持。他们提倡一种叫做ExoPlayer(http://google.github.io/ExoPlayer/)的播放器,它支持DASH、平滑流等等。我想知道它是否支持DASH的所有功能,如SRD

  • 下面是一个使用mediaSource API和MPEG DASH标准播放视频的演示。webm视频。这是使用的MPD文件: 有人知道如何获取/计算任何视频的“SegmentBase indexRange”和“Initialization range”数字吗?

  • 我用rtmp plagin有nginx,我用Dash.js播放器有测试页。我需要流MPEG-Dash。我用ffmpeg流,nginx处理流,dash播放器尝试播放流,但dash.js开始循环,每5秒请求一次。MPD文件,什么也不显示。 我是用VLC播放器进行测试,它的工作很完美,这意味着Dash.js中的问题 这是来自破折号流目录的文件: 这是test.mpd: