在 html5 视频的元数据中保存 fps 的位置

Where in metadata of a video in html5 is the fps saved?

本文关键字:保存 fps 位置 元数据 html5 视频      更新时间:2023-09-26

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

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

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

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

它仅适用于 UI,无需后端

我刚刚实现了它,看起来它工作得很好(至少在 Chrome v 70.0.3538.77 中(以获取广泛的媒体信息

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

我 95% 确定标准的 html5 视频 API 不会暴露 fps 信息,从我过去几个月阅读的内容来看 - 其他 API 如 MPEG-DASHjwplayer 确实提供了更多/不同的数据。

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

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

fps = video.time / PresentedFrames

在此处查看有关 PresentFrame 的更多信息(当前提案(和同一链接中的类似属性。

mediainfo.js工作得很好 - 即使在浏览器中使用"http(s(://"在本地使用。

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

或者,您可以使用npm安装媒体信息。

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