1

嘿 StackOverflow 研究员。目前我遇到了一个 MPEG-DASH 播放器不想播放 DASH 内容的问题。基本上,我有一个 MP4 源,我在 2 个通道中输入它,1 个通过 RTMP,另一个通过 RTSP。然后我连接到两个通道并从中创建一个 MPEG-DASH 内容。两者的输出 DASH 基本相同,清单内容相同,片段数量相同。在使用业界的 DASH 播放器(即 GPAC Osmo4、digital primates、castlabs dashas)播放时,从 RTMP 源生成的 DASH 内容运行良好,但是从 RTSP 源生成的 DASH 内容存在问题(即很多视频卡顿, a/v 不同步等...)。将 RTMP 生成的 DASH 片段与 RTSP 进行比较时,唯一的区别是 Trun 框中的 samplingOffsets 和 samplingSizes。但是它们具有相同的 sampleCounts。MSS 中使用了相同的片段,并且无论 samplingOffsets 和 samplingSize 的差异如何,MSS 播放器都可以正常播放。

有谁知道 MPEG DASH 是否对 Trun 中每个样本的大小以及偏移量有要求?或者什么可能导致这个问题?

我欢迎任何意见,建议。就拍吧...

4

2 回答 2

1

根据您的描述,问题很可能是由于内容生成过程中的错误参数引起的。请查看“使用 MP4BOX 和 X264 生成 MPEG-DASH 内容”,因为它们描述了获取有效内容的有用工具和步骤。

您是否已经检查过 baseMediaDecodeTime- 时间戳(可以在媒体片段的 tfdt 框中找到)是否对音频和视频都有效?

最好的,亚历克斯

于 2014-11-15T17:44:57.643 回答
1

经过几个小时的脑力研发,我发现音视频不同步、快进播放、缓冲时间过长都是由段初始化文件中的“时间刻度”值错误造成的。清单和分段 mp4 (.m4s) 使用 1000 时间刻度进行编码,但是段初始化在其“tfhd”框中的时间刻度值为 90000。将其更改为 1000 可解决上述问题。另一个问题是视频偶尔卡顿,我发现这个问题的原因是无效样本。有大小 == 0 字节但持续时间 > 0 的样本,在 MSS 中这没关系,播放器仍会播放它,但在 MPEG-DASH 中播放器将冻结。不在碎片化的 mp4 中写入 size == 0 的样本解决了这个问题。

干杯:)

于 2014-11-17T04:41:17.037 回答