parseMedia()
属于@remotion/media-parser包。
从v4.0.190版本开始提供
不稳定的API:此包是实验性的。我们可能随时更改API,直到删除此通知。
示例
解析托管视频tsximport {parseMedia } from '@remotion/media-parser';constresult = awaitparseMedia ({src : 'https://example.com/my-video.mp4',fields : {durationInSeconds : true,dimensions : true,},});console .log (result .durationInSeconds ); // 10console .log (result .dimensions ); // {width: 1920, height: 1080}
解析托管视频tsximport {parseMedia } from '@remotion/media-parser';constresult = awaitparseMedia ({src : 'https://example.com/my-video.mp4',fields : {durationInSeconds : true,dimensions : true,},});console .log (result .durationInSeconds ); // 10console .log (result .dimensions ); // {width: 1920, height: 1080}
解析本地文件tsximport {parseMedia } from '@remotion/media-parser';import {nodeReader } from '@remotion/media-parser/node';constresult = awaitparseMedia ({src : '/Users/jonnyburger/Downloads/my-video.mp4',fields : {durationInSeconds : true,dimensions : true,},reader :nodeReader ,});
解析本地文件tsximport {parseMedia } from '@remotion/media-parser';import {nodeReader } from '@remotion/media-parser/node';constresult = awaitparseMedia ({src : '/Users/jonnyburger/Downloads/my-video.mp4',fields : {durationInSeconds : true,dimensions : true,},reader :nodeReader ,});
API
不稳定的API:此包是实验性的。我们可能随时更改API,直到删除此通知。
src
可以是本地文件路径、URL或File对象。
如果传递本地文件路径,则还必须将nodeReader作为reader参数传递。
如果传递File对象,则还必须将webFileReader作为reader参数传递。
fields?
指定要接收的字段的对象。
可能的字段包括:
dimensions
{width: number, height: number}
视频的尺寸。
任 何旋转已应用 - 尺寸类似于媒体播放器显示的方式。
使用unrotatedDimensions获取旋转之前的尺寸。
durationInSeconds
number | null
视频的持续时间(秒)。
boxes
视频的内部结构。不稳定的内部数据结构,请参考TypeScript类型以查看其中包含的内容。
fps
number | null
视频的帧速率。
videoCodec
文件的视频编解码器。
如果存在多个视频轨道,则这将是第一个视频轨道。
其中之一是"h264"、"h265"、"vp8"、"vp9"、"av1"、"prores"或null(如果是未知编解码器)。
audioCodec
文件的音频编解码器。
如果存在 多个音频轨道,则这将是第一个音频轨道。
其中之一是'aac'、'mp3'、'aiff'、'opus'、'pcm'、'unknown'(音频存在但未识别)或null(如果未检测到音频)。
tracks
返回两个数组 videoTracks 和 audioTracks。
它们的数据结构尚不稳定。
unrotatedDimensions
{width: number, height: number}
视频在旋转之前的尺寸。
rotation
number
视频的旋转角度(例如,-90 表示逆时针旋转 90°)。
reader?
一个读取器接口。
默认值为 fetchReader,使用 fetch() 来读取视频。
如果你传入 nodeReader,你还必须传入一个本地文件路径作为 src 参数。
如果你传入 webFileReader,你还必须传入一个 File 作为 src 参数。
onVideoTrack?
当检测到视频轨道时调用的回调函数。
它接收一个 VideoTrack 对象(API 尚不稳定)。
你必须返回 null 或一个回调函数,该函数对应于视频轨道的每个样本。
sample 的类型为 VideoSample,虽然并非所有字段都是稳定的,但它具有 EncodedVideoChunk 构造函数的所有必填字段。
读取视频帧tsximport {parseMedia ,OnVideoTrack } from '@remotion/media-parser';constonVideoTrack :OnVideoTrack = (track ) => {console .log (track );return (sample ) => {console .log (newEncodedVideoChunk (sample ))};};
读取视频帧tsximport {parseMedia ,OnVideoTrack } from '@remotion/media-parser';constonVideoTrack :OnVideoTrack = (track ) => {console .log (track );return (sample ) => {console .log (newEncodedVideoChunk (sample ))};};
onAudioTrack?
当检测到音频轨道时调用的回调函数。
它接收一个 AudioTrack 对象(API 尚不稳定)。
你必须返回 null 或一个回调函数,该函数对应于音频轨道的每个样本。
sample 的类型为 AudioSample,虽然并非所有字段都是稳定的,但它具有 EncodedAudioChunk 构造函数的所有必填字段。
读取音频帧tsximport {parseMedia ,OnAudioTrack } from '@remotion/media-parser';constonAudioTrack :OnAudioTrack = (track ) => {console .log (track );return (sample ) => {console .log (newEncodedAudioChunk (sample ))};};
读取音频帧tsximport {parseMedia ,OnAudioTrack } from '@remotion/media-parser';constonAudioTrack :OnAudioTrack = (track ) => {console .log (track );return (sample ) => {console .log (newEncodedAudioChunk (sample ))};};
signal?
一个 AbortSignal 实例。
如果信号被中止,解析器将停止读取媒体并停止解码过程,并抛出错误。
参见
I'm ready to translate the Markdown content into Chinese. Please go ahead and paste the content for translation.