【问题标题】:MediaSource API - reloading MP4 video being recordedMediaSource API - 重新加载正在录制的 MP4 视频
【发布时间】:2014-04-02 16:56:29
【问题描述】:

我有一个 MP4/H264 视频剪辑正在被捕获,因此它每 4 秒增长一次,并且它的元数据会动态刷新。由于这不是 MP4 碎片,我无法使用 MediaSource API 来操作块。

我正在寻找一种在播放期间更新/刷新视频持续时间而不需要重新加载整个剪辑的方法。

简而言之,我正在寻找一种以更用户友好的方式执行以下操作的方法。

setInterval(function() {
   video.src = video.src;
}, 4000);

我想避免使用上述方法使用 2 个视频标签并从一个切换到另一个。我也尝试过 popcorn.js 没有任何运气。

使用 Chrome,而且...只有 chrome,所以不用担心其他浏览器。

任何建议将不胜感激!

【问题讨论】:

    标签: javascript video html5-video mp4 media-source


    【解决方案1】:

    我不确定这是否可能。根据specs

    如果设置或更改了媒体元素的 src 属性,用户代理必须调用媒体元素的媒体元素加载算法。 (删除 src 属性并不会这样做,即使存在源元素。)

    因此,如果您触摸 video.src,浏览器应该会隐式调用 video.load()。在您的情况下 (setInterval) Chrome 会这样做。

    我猜你已经在更改 src 之前保存视频的 currentTime 并在 src 更改后应用它(在这种情况下等待 canplay 事件并调用 video.play() 以恢复播放)?我猜你在你的情况下会有一些口吃 4 秒的刷新。

    您似乎正在尝试将实时流模拟为按需供稿,而我不知道如何通过渐进式下载 mp4(使用未分段的 MP4 读取)来做到这一点。

    相关article

    谢谢

    【讨论】:

    • 是的,“模拟”是正确的世界。需要明确的是,我真的不希望仅从更新的元数据中重新加载视频的刷新持续时间。我知道我不能简单地设置新的持续时间(即使可能),而是一种将元数据以某种方式推送到 MediaElement 的方法。我相信 2 个视频标签并在后台重新加载整个剪辑将是唯一笨拙的方法
    猜你喜欢
    • 2012-03-08
    • 2013-12-03
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2021-05-09
    相关资源
    最近更新 更多