Skip to main content

getVideoMetadata()v4.0.6

note

此函数仅适用于 Node.js 应用程序。对于浏览器,请改用 @remotion/media-utils 中的 getVideoMetadata()

获取有关 Node.js 中视频文件的元数据。用于在服务器上计算元数据。

示例

ts
import { getVideoMetadata, VideoMetadata } from "@remotion/renderer";
 
const videoMetadata: VideoMetadata = await getVideoMetadata(
"/Users/john/Documents/bunny.mp4",
);
 
const {
width,
height,
fps,
durationInSeconds,
codec,
supportsSeeking,
colorSpace,
audioCodec,
audioFileExtension,
pixelFormat,
} = videoMetadata;
ts
import { getVideoMetadata, VideoMetadata } from "@remotion/renderer";
 
const videoMetadata: VideoMetadata = await getVideoMetadata(
"/Users/john/Documents/bunny.mp4",
);
 
const {
width,
height,
fps,
durationInSeconds,
codec,
supportsSeeking,
colorSpace,
audioCodec,
audioFileExtension,
pixelFormat,
} = videoMetadata;
info

将绝对路径传递给 getVideoMetadata()。不支持 URL。

参数

videoSource

string

本地视频文件路径。

options?

logLevel?

One of verbose, info, warn, error.
Determines how much is being logged to the console.
verbose will also log console.log's from the browser.
Default info.

binariesDirectory?v4.0.120

The directory where the platform-specific binaries and libraries that Remotion needs are located. Those include an ffmpeg and ffprobe binary, a Rust binary for various tasks, and various shared libraries. If the value is set to null, which is the default, then the path of a platform-specific package located at node_modules/@remotion/compositor-* is selected.
This option is useful in environments where Remotion is not officially supported to run like bundled serverless functions or Electron.

返回值

返回值是一个具有以下属性的对象:

fps

number

视频的每秒帧数(帧速率)

width

number

视频的宽度(以像素为单位)。

height

number

视频的高度(以像素为单位)。

durationInSeconds

number

视频的时长(以秒为单位)。

codecv4.0.8

string

其中之一 'h264' | 'h265' | 'vp8' | 'vp9' | 'av1' | 'prores' 或如果编解码器未得到 Remotion 官方支持,则为 'unknown'

supportsSeekingv4.0.8

boolean

预测视频在浏览器中是否可寻址。算法如下:

  1. 如果编解码器为 unknown,则视频不可寻址(false)。
  2. 如果视频长度小于 5 秒,则可寻址(true)。
  3. 如果编解码器不是 h264,则可寻址(true)。
  4. 现在编解码器为 h264。如果支持 Faststart(moov 原子位于 mdat 原子之前),则可寻址(true)。
  5. 否则,不可寻址(false)。

如果视频不可寻址,可能会遇到 "Non-seekable media" 错误。
这意味着如果嵌入到 <Video> 标签中,则视频可能无法渲染,并且如果嵌入到 <OffthreadVideo> 标签中,则可能会变慢。

你可以考虑使用FFmpeg重新编码视频,使其可搜索。

colorSpacev4.0.28

其中之一为rgbbt601bt709bt2020-nclbt2020-clfccbt470bgsmpte170msmpte240mycgcosmpte2085chroma-derived-nclchroma-derived-clictcpunknown

audioCodecv4.0.49

如果视频没有音轨,则为null。 如果音频编解码器对Remotion来说是未知的,则为"unknown"

否则,它是"opus" | "aac" | "mp3" | "pcm-f16le" | "pcm-f24le" | "pcm-f32be" | "pcm-s16be" | "pcm-s16le" | "pcm-f32le" | "pcm-s32be" | "pcm-s32le" | "pcm-s64be" | "pcm-s64le" | "pcm-u16be" | "pcm-u16le" | "pcm-u24be" | "pcm-u24le" | "pcm-u32be" | "pcm-u32le" | "pcm-u8" | "pcm-f64be" | "pcm-s24be" | "pcm-s24le" | "pcm-s8" | "pcm-s16be-planar" | "pcm-s8-planar" | "pcm-s24le-planar" | "pcm-s32le-planar" | "unknown"之一。

audioFileExtensionv4.0.49

如果视频没有音轨或对Remotion来说是未知的,则为null。否则,它是音频编解码器的适当文件扩展名,例如"mp3"。不包括.

pixelFormatv4.0.78

其中之一为yuv420pyuyv422rgb24bgr24yuv422pyuv444pyuv410pyuv411pyuvj420pyuvj422pyuvj444pargbrgbaabgrbgrayuv440pyuvj440pyuva420pyuv420p16leyuv420p16beyuv422p16leyuv422p16beyuv444p16leyuv444p16beyuv420p9beyuv420p9leyuv420p10beyuv420p10leyuv422p10beyuv422p10leyuv444p9beyuv444p9leyuv444p10beyuv444p10leyuv422p9beyuv422p9leyuva420p9beyuva420p9leyuva422p9beyuva422p9leyuva444p9beyuva444p9leyuva420p10beyuva420p10leyuva422p10beyuva422p10leyuva444p10beyuva444p10leyuva420p16beyuva420p16leyuva422p16beyuva422p16leyuva444p16beyuva444p16leyuva444pyuva422pyuv420p12beyuv420p12leyuv420p14beyuv420p14leyuv422p12beyuv422p12leyuv422p14beyuv422p14leyuv444p12beyuv444p12leyuv444p14beyuv444p14leyuvj411pyuv440p10leyuv440p10beyuv440p12leyuv440p12beyuv420p9yuv422p9yuv444p9yuv420p10yuv422p10yuv440p10yuv444p10yuv420p12yuv422p12yuv440p12yuv444p12yuv420p14yuv422p14yuv444p14yuv420p16yuv422p16yuv444p16yuva420p9yuva422p9yuva444p9yuva420p10yuva422p10yuva444p10yuva420p16yuva422p16yuva444p16yuva422p12beyuva422p12leyuva444p12beyuva444p12leunknown

参见