【问题标题】:Where in metadata of a video in html5 is the fps saved?html5中视频的元数据在哪里保存了fps?
【发布时间】:2016-02-16 01:08:37
【问题描述】:

为了完全实现我的自定义 html5 视频播放器,我需要视频的确切帧速率。但是我还没有找到它,我使用的是标准值 25。 通常,视频在元数据中具有帧速率值,因此我使用以下方式访问元数据:

var vid = document.getElementById("myVideo");
vid.onloadedmetadata = function(e) {
console.log(e);
};

但是我在这里找不到帧速率。也许我根本没有阅读元数据。 我可以使用你的帮助。 谢谢!

【问题讨论】:

    标签: javascript html html5-video frame-rate


    【解决方案1】:

    试试https://mediainfo.js.org (github)

    它只适用于 ui,不需要后端

    我刚刚实现了它,它看起来非常适合获取广泛的媒体信息(至少在 Chrome v 70.0.3538.77 中)

    看起来现代浏览器开始使用一些二进制库

    【讨论】:

    • 刚刚浪费了一上午,.js 文件很小,但它获取了一个 2.5MB 的 .wasm 文件来完成这项工作。哎哟。
    • 这个库可以用于远程文件吗?
    【解决方案2】:

    我 95% 确定标准 html5 视频 api 不会暴露 fps 信息,根据我在过去几个月中所读到的内容 - 其他 api,如 MPEG-DASHjwplayer 提供更多/不同的数据。

    最好的办法是窥探w3schools.com/tags/ref_av_dom.asp 和类似的 mdn 页面。

    您可以自己实时计算它,它应该在大多数情况下都有效,但我可以想象有一两种情况它不会。查看PresentedFrames,然后执行以下操作:

    fps = video.time / PresentedFrames
    

    查看更多关于 PresentedFrames here(当前提案)和相同link的类似属性。

    【讨论】:

    • 谢谢兄弟,我也认为 fps 不太可能是 html 视频元素的属性。我只是希望情况并非如此。我喜欢你给定的解决方案,但我如何计算 PresentFrames?因为测量帧的方法是使用fps和当前时间。还有其他方法可以找到 PresentFrames 吗?
    • @HasanWajahat 我已经用一个记录了许多不同属性的源更新了我的答案,这些属性可能对计算 fps(特别是 PresentedFrames)很有用
    • 感谢分享,遗憾的是chrome还没有实现presentedFrames。 Mozilla 已经这样做了,但我需要 chrome。
    • playbackRate怎么样
    • @MuhammadUmer playbackRate 是一个实数,表示播放是比流帧速率建议的更快(值大于1.0)还是更慢(值小于1.0)。
    【解决方案3】:

    mediainfo.js 工作得很好——即使在本地使用“http(s)://”的浏览器。

    要在本地使用它,只需确保您还下载随附的mediainfo.wasm将其放入与mediainfo.min.js 相同的目录

    您也可以使用npm 安装媒体信息。

    唯一需要注意的是,它不是从 'file://' 协议运行的。

    【讨论】:

      猜你喜欢
      • 2018-09-18
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2012-07-07
      • 2010-12-20
      • 2012-04-08
      相关资源
      最近更新 更多