使用dash.js设置video.currentTime时请求不存在的.m4s文件报404错误
解决dash.js跳转指定时间时请求不存在.m4s文件的问题
直接修改video.currentTime会导致dash.js无法正确映射媒体时间到对应的片段文件——此时播放器可能还未完成媒体片段索引的初始化,进而计算出错误的片段编号,请求不存在的文件。
正确实现方式
使用dash.js播放器实例自带的seek()方法完成时间跳转,该方法会自动处理时间到片段的映射逻辑:
var video = document.getElementById('video-' + layerId); var player = dashjs.MediaPlayer().create(); player.initialize(video, videoUrl, true); player.on(dashjs.MediaPlayer.events.STREAM_INITIALIZED, function() { player.seek(88); // 改用dash.js的seek方法替代直接修改video.currentTime });
额外排查点
若使用seek()仍出现404错误,需检查以下内容:
- 确认MPD文件中
SegmentTemplate定义的duration与实际生成的.m4s片段时长一致,且片段索引规则(如是否从0开始)与文件命名完全匹配 - 检查dash打包工具(如ffmpeg、Bento4)的参数配置,确保片段生成完整、索引连续
内容的提问来源于stack exchange,提问作者YadneshD
相关产品推荐
相关产品推荐

