Skip to main content

获取视频元数据()v4.0.6

🌐 getVideoMetadata()v4.0.6

note

已弃用。 更好的解决方案:使用 Mediabunny 获取元数据

note

仅适用于 Node.js 和 Bun。

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

🌐 Gets metadata about a video file in Node.js. Useful for calculating metadata on a server.

示例

🌐 Example

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。

参数

🌐 Arguments

videoSource

string

本地视频文件路径。

🌐 A local video file path.

options?

logLevel?

One of trace, verbose, info, warn, error.
Determines how much info is being logged to the console.

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.

返回值

🌐 Return Value

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

🌐 The return value is an object with the following properties:

fps

number

视频的每秒帧数(帧率)

🌐 The amount of frames per seconds the video has (framerate)

width

number

视频的宽度(像素)。

🌐 The width of the video in px.

height

number

视频的高度(像素)。

🌐 The height of the video in px.

durationInSeconds

number

视频的时长(秒)。

🌐 The time length of the video in seconds.

codecv4.0.8

string

如果 Remotion 不正式支持该编解码器,则为 'h264' | 'h265' | 'vp8' | 'vp9' | 'av1' | 'prores' 'unknown' 之一。

🌐 One of 'h264' | 'h265' | 'vp8' | 'vp9' | 'av1' | 'prores' or 'unknown' if the codec is not officially supported by Remotion.

supportsSeekingv4.0.8

boolean

预测视频在浏览器中是否可以被跳转。算法如下:

🌐 A prediction whether the video will be seekable in the browser. The algorithm is:

  1. 如果编解码器是 unknown,那么视频不可寻址(false)。
  2. 如果视频少于5秒,则可以进行寻址(true)。
  3. 如果编解码器不是 h264,那么它是可寻址的 (true)。
  4. 编解码器现在是 h264。如果它支持 Faststart(moov 原子在 mdat 原子前面),那么它是可寻址的(true
  5. 否则,它不可寻址(false)。

如果视频不可搜索,你可能会遇到“不可搜索的媒体” 错误。 这意味着如果嵌入在 <Html5Video> 标签中,视频可能无法呈现;如果嵌入在 <OffthreadVideo> 标签中,视频加载可能会很慢。

🌐 If a video is not seekable, you might run into the "Non-seekable media" error.
This means that the video might fail to render if embedded in a <Html5Video> tag and be slow if embedded in a <OffthreadVideo> tag.

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

🌐 You may consider re-encoding the video using FFmpeg to make it seekable.

colorSpacev4.0.28

rgbbt601bt709bt2020-nclbt2020-clfccbt470bgsmpte170msmpte240mycgcosmpte2085chroma-derived-nclchroma-derived-clictcpunknown 中的一个。

🌐 One of rgb, bt601, bt709, bt2020-ncl, bt2020-cl, fcc, bt470bg, smpte170m, smpte240m, ycgco, smpte2085, chroma-derived-ncl, chroma-derived-cl, ictcp or unknown.

audioCodecv4.0.49

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

🌐 If the video has no audio track, it is null. If the audio codec is unknown to Remotion, it is "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" 之一

🌐 Otherwise, it is one of "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". 不包含在内。

🌐 If the video has no audio track or is unknown to Remotion, it is null. Otherwise it is the appropriate file extension for the audio codec, e.g. "mp3". The . is not included.

pixelFormatv4.0.78

yuv420pyuyv422rgb24bgr24yuv422pyuv444pyuv410pyuv411pyuvj420pyuvj422pyuvj444pargbrgbaabgrbgrayuv440pyuvj440pyuva420pyuv420p16leyuv420p16beyuv422p16leyuv422p16beyuv444p16leyuv444p16beyuv420p9beyuv420p9leyuv420p10beyuv420p10leyuv422p10beyuv422p10leyuv444p9beyuv444p9leyuv444p10beyuv444p10leyuv422p9beyuv422p9leyuva420p9beyuva420p9leyuva422p9beyuva422p9leyuva444p9beyuva444p9leyuva420p10beyuva420p10leyuva422p10beyuva422p10leyuva444p10beyuva444p10leyuva420p16beyuva420p16leyuva422p16beyuva422p16leyuva444p16beyuva444p16leyuva444pyuva422pyuv420p12beyuv420p12leyuv420p14beyuv420p14leyuv422p12beyuv422p12leyuv422p14beyuv422p14leyuv444p12beyuv444p12leyuv444p14beyuv444p14leyuvj411pyuv440p10leyuv440p10beyuv440p12leyuv440p12beyuv420p9yuv422p9yuv444p9yuv420p10yuv422p10yuv440p10yuv444p10yuv420p12yuv422p12yuv440p12yuv444p12yuv420p14yuv422p14yuv444p14yuv420p16yuv422p16yuv444p16yuva420p9yuva422p9yuva444p9yuva420p10yuva422p10yuva444p10yuva420p16yuva422p16yuva444p16yuva422p12beyuva422p12leyuva444p12beyuva444p12leunknown之一。

🌐 One of yuv420p, yuyv422, rgb24, bgr24, yuv422p, yuv444p, yuv410p, yuv411p, yuvj420p, yuvj422p, yuvj444p, argb, rgba, abgr, bgra, yuv440p, yuvj440p, yuva420p, yuv420p16le, yuv420p16be, yuv422p16le, yuv422p16be, yuv444p16le, yuv444p16be, yuv420p9be, yuv420p9le, yuv420p10be, yuv420p10le, yuv422p10be, yuv422p10le, yuv444p9be, yuv444p9le, yuv444p10be, yuv444p10le, yuv422p9be, yuv422p9le, yuva420p9be, yuva420p9le, yuva422p9be, yuva422p9le, yuva444p9be, yuva444p9le, yuva420p10be, yuva420p10le, yuva422p10be, yuva422p10le, yuva444p10be, yuva444p10le, yuva420p16be, yuva420p16le, yuva422p16be, yuva422p16le, yuva444p16be, yuva444p16le, yuva444p, yuva422p, yuv420p12be, yuv420p12le, yuv420p14be, yuv420p14le, yuv422p12be, yuv422p12le, yuv422p14be, yuv422p14le, yuv444p12be, yuv444p12le, yuv444p14be, yuv444p14le, yuvj411p, yuv440p10le, yuv440p10be, yuv440p12le, yuv440p12be, yuv420p9, yuv422p9, yuv444p9, yuv420p10, yuv422p10, yuv440p10, yuv444p10, yuv420p12, yuv422p12, yuv440p12, yuv444p12, yuv420p14, yuv422p14, yuv444p14, yuv420p16, yuv422p16, yuv444p16, yuva420p9, yuva422p9, yuva444p9, yuva420p10, yuva422p10, yuva444p10, yuva420p16, yuva422p16, yuva444p16, yuva422p12be, yuva422p12le, yuva444p12be, yuva444p12le, unknown.

兼容性

🌐 Compatibility

BrowsersServersEnvironments
Chrome
Firefox
Safari
Node.js
Bun
Serverless Functions

另请参阅

🌐 See also