AWS KVS在Angular9中ON_DEMAND模式返回流时长与请求时间范围不符问题
AWS KVS ON_DEMAND模式返回流时长与TimestampRange不匹配的常见原因
- 参数
MaxMediaPlaylistFragmentResults默认限制
ON_DEMAND模式下调用GetHLSStreamingSessionURL/GetDASHStreamingSessionURL接口时,MaxMediaPlaylistFragmentResults参数默认值为1000,代表单次返回最多1000个流片段。如果你的流片段单段时长为0.71秒左右,1000个片段总时长刚好为1216分钟,符合你遇到的现象。你可以手动将该参数调至最大允许值5000,或处理分页请求拉取多段会话的流数据。 - 时间区间内无连续有效片段
AWS KVS以独立片段(Fragment)为单位存储流数据,仅已成功上传、未过期的完整片段可被查询。如果指定的1小时区间内存在设备断流、推流失败、片段丢包的情况,实际可拉取的有效片段总时长会远小于请求的时间区间长度。你可以先调用ListFragments接口查询对应时间范围内的所有片段元数据,统计有效片段总时长确认是否属于该情况。 - 时间戳时区/格式错误
TimestampRange传入的StartTimestamp和EndTimestamp必须为UTC时区的Unix秒级时间戳,如果你传入的是本地时区的时间戳,会导致实际查询的时间区间小于你预期的1小时,最终返回的流时长不符。 - 流数据保留期限制
每个KVS流都有配置的RetentionPeriod(数据保留期),如果你请求的时间范围内的部分片段已经超过保留期被自动删除,最终返回的流总时长也会小于指定的时间范围。
内容的提问来源于stack exchange,提问作者Shubham Bhavsar
相关产品推荐
相关产品推荐

