JavaScript - 读取视频文件的元数据

2022-01-10 00:00:00 electron javascript html video

我已经在这工作了好几个小时了,是时候寻求一点帮助了.

I've been at this for hours, it's time to ask for a little help.

我需要知道在 JavaScript/HTML 中加载视频的帧速率,并且我试图避免使用 VLC 插件或 ffmpeg.

I need to know the frame rate of a video on load in JavaScript/HTML and I'm trying to avoid VLC plug-in or ffmpeg.

浏览器读取视频元数据以检查预期的帧速率,那么我该怎么做呢?我在网上看了很多东西,没有发现任何有用的东西,但我不敢相信这是不可行的.

The browser reads the video metadata to check the intended frame rate, so how can I do this as well? I read a lot of online things and didn't find anything useful but I can't believe that this is unfeasible.

我正在寻找 这个 但对于视频.应该很简单吧?

I'm looking for this but for videos. Should be simple, right?

注意:我正在使用 Electron 构建桌面应用程序,因此文件访问不是问题.

Note: I'm building a desktop app with Electron so file access isn't a problem.

推荐答案

您可以创建一个视频元素,其 src 属性指向链接或本地文件/blob

You can create a video element with src attribute pointing to a link or local file/blob

let video = document.createElement('video')
video.setAttribute('src', window.URL.createObjectURL(file))

为元素添加 onloadeddata 事件监听器,在回调中您将可以访问视频元数据.

Add onloadeddata event listener to the element and in the callback you'll have access to the video metadata.

video.onloadeddata = function(event) {
  const {
    videoHeight,
    videoWidth,
    duration
  } = event.srcElement
  console.log(videoHeight)
})

相关文章