如何在不下载整个片段的情况下使用媒体源缓冲区和分段 mp4 在特定时间启动视频?
Posted
技术标签:
【中文标题】如何在不下载整个片段的情况下使用媒体源缓冲区和分段 mp4 在特定时间启动视频?【英文标题】:How to start video at a specific time using media source buffer and fragmented mp4 without downloading entire segments? 【发布时间】:2022-01-01 00:18:00 【问题描述】:我正在尝试在片段的 mp4 文件上使用带有源缓冲区的媒体源,我想在特定时间开始播放视频,比如 10 秒。我找不到任何使用 sourcebuffer 和媒体源的示例。 我能够将视频从第 0 秒流式传输到完整,我需要帮助才能从所需的时间戳开始视频播放 我尝试了 sourceBuffer.appendWindowStart, / sourceBuffer.timestampOffset 没有按预期工作,或者我对它的理解不正确。 我正在尝试关注这个example,在这个codesandbox
【问题讨论】:
【参考方案1】:您始终可以在您引用的示例的第 46 行更改 video.currentTime
(在执行 video.play()
之前)。
一旦您添加了引用该时间戳的片段,系统就会开始播放视频。
【讨论】:
这里我还是要下载所有片段,假设每个片段是2秒,我想在12秒播放视频,我仍然要下载所有片段直到12日第二,我不想那样做。 video.currentTime 只会将视频时间线移动到那里 您不必这样做。你只需要 1. 下载初始化段, 2. 下载最接近你 12s 的段。您控制编码的参数,很可能是从头到尾的编码,您生成的每个片段都包含视频的一部分。您只需附加您需要的部分并将currentTime
设置到您需要的位置。以上是关于如何在不下载整个片段的情况下使用媒体源缓冲区和分段 mp4 在特定时间启动视频?的主要内容,如果未能解决你的问题,请参考以下文章