Hey StackOverflow研究员。目前我遇到了不想播放DASH内容的MPEG-DASH播放器的问题。基本上,我有一个MP4源,我在其中以2个通道馈送它,1个通过RTMP,另一个通过RTSP。然后我连接到两个通道并从中创建MPEG-DASH内容。两者的输出DASH基本相同,清单内容相同,片段数相同。当使用业界的DASH播放器(即GPAC Osmo4,数字灵长类,castlabs dashas)时,从RTMP源生成的DASH内容工作正常,但是,从RTSP源生成的DASH内容存在问题(即很多视频冻结,a / v不同步等...)。将RTMP生成的DASH片段与RTSP进行比较时,唯一的区别是Trun框中的samplingOffsets和samplingSizes。但他们有相同的sampleCounts。在MSS中使用相同的片段,无论samplingOffsets和samplingSize的差异如何,MSS播放器都可以正常播放。
有人知道MPEG DASH是否有关于Trun中每个样本的大小以及偏移的要求?或者什么可能导致这个问题?
我欢迎任何意见,建议。拍它...
答案 0 :(得分:1)
根据您的描述,问题很可能是由于内容生成期间的错误参数引起的。请查看'MPEG-DASH CONTENT GENERATION USING MP4BOX AND X264',因为它们描述了获取有效内容的有用工具和步骤。
您是否已经检查过baseMediaDecodeTime-时间戳(可以在媒体片段的tfdt框中找到)是否对音频和视频都有效?
最佳, 亚历
答案 1 :(得分:1)
经过几个小时的大脑耗费R& D,我发现a / v不同步,快进播放和太长的缓冲时间是由段初始化文件中错误的“时间刻度”值引起的。清单和碎片mp4(.m4s)以1000时间刻度编码,但段初始化在其“tfhd”框90000中具有时间刻度值。将其更改为1000可解决上述问题。另一个问题是偶尔冻结视频,我发现这个问题的原因是无效的样本。存在大小== 0字节但持续时间> 1的样本。 0,在MSS中这没关系,玩家仍然会播放它,但在MPEG-DASH中播放器会冻结。不在碎片mp4中编写大小== 0的样本解决了这个问题。
欢呼:)