我使用 Mp4Box 为长 MP4 视频创建了固定长度的片段。Mp4Box 创建一个元信息文件mv_init.mp4
和片段,如mv_1.m4s
, mv_2.m4s
, ... 我使用 HTML5 Media Source Extensions 流式传输视频并且流式传输工作正常。
问题是我无法利用 HTML5 播放器的时间搜索功能。当用户使用搜索栏寻找另一个时间点时,我需要为此获取正确的段文件 ( mv_{number}.m4s
) currentTime
。
例如:
- 视频时长:2小时
- 分段大小:10 秒
- 用户寻求时间:25分钟
25 分钟 = 25 × 60 秒 = 1500 秒。由于每个段为 10 秒,我需要段号 1500 / 10 = 150。所需的段文件是mv_150.m4s
.
计算显然看起来是正确的,但是 HTML5 播放器在继续流式传输之前会下载更多文件mv_150.m4s
。
如何正确计算段文件数,使查找后流式传输流畅,无需下载任何额外文件?
为了创建 MP4 视频的片段,我使用了以下命令:
MP4Box -dash 10000 -out video.mpd -dash-profile live -segment-name mv_ -rap video.mp4