<OffthreadVideo>
从 Remotion 3.0.11 开始可用
此组件导入并显示视频,类似于 <Video/>,但在渲染期间,从视频中提取精确的帧并在 <Img> 标签中显示。此提取过程在浏览器外部使用 FFmpeg 进行。
此组件旨在解决默认 <Video> 元素的限制。请参见:<Video> vs <OffthreadVideo>.
示例
tsximport {AbsoluteFill ,OffthreadVideo ,staticFile } from "remotion";export constMyVideo = () => {return (<AbsoluteFill ><OffthreadVideo src ={staticFile ("video.webm")} /></AbsoluteFill >);};
tsximport {AbsoluteFill ,OffthreadVideo ,staticFile } from "remotion";export constMyVideo = () => {return (<AbsoluteFill ><OffthreadVideo src ={staticFile ("video.webm")} /></AbsoluteFill >);};
您也可以从 URL 加载视频:
tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo src ="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" /></AbsoluteFill >);};
tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo src ="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" /></AbsoluteFill >);};
属性
src
要渲染的视频的 URL。可以是远程 URL 或使用 staticFile() 引用的本地文件。
startFrom?
将在视频开头删除一部分。
在以下示例中,我们假设合成的 fps 为 30。
通过传递 startFrom={60},播放立即开始,但视频的前 2 秒将被裁剪掉。
通过传递 endAt={120},文件中 4 秒标记后的任何视频将被裁剪掉。
视频将播放从 00:02:00 到 00:04:00 的范围,意味着视频将播放 2 秒。
tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo src ={staticFile ("video.webm")}startFrom ={60}endAt ={120}/></AbsoluteFill >);};
tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo src ={staticFile ("video.webm")}startFrom ={60}endAt ={120}/></AbsoluteFill >);};
endAt?
在视频结尾删除一部分。请参见 startAt 以获取解释。
transparent?v4.0.0
如果设置为 true,帧将被提取为 PNG,从而实现透明度,但也会减慢渲染速度。
如果设置为 false(默认),帧将被提取为位图(BMP),这更快。
volume?
允许您控制整个轨道的音量或根据每帧更改音量。请参阅 使用音频 指南以了解如何使用。
使用静态音量的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo volume ={0.5}src ={staticFile ("video.webm")} /></AbsoluteFill >);};
使用静态音量的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo volume ={0.5}src ={staticFile ("video.webm")} /></AbsoluteFill >);};
在 100 帧内逐渐增加音量的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo volume ={(f ) =>interpolate (f , [0, 100], [0, 1], {extrapolateLeft : "clamp" })}src ={staticFile ("video.webm")}/></AbsoluteFill >);};
在 100 帧内逐渐增加音量的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo volume ={(f ) =>interpolate (f , [0, 100], [0, 1], {extrapolateLeft : "clamp" })}src ={staticFile ("video.webm")}/></AbsoluteFill >);};
在 iOS Safari 上,无法精确地更改媒体标签的音量。
浏览器只会尊重值 0 和 1。
loopVolumeCurveBehavior?v4.0.142
控制在使用 volume 回调函数并将 OffthreadVideo 包装在 <Loop> 中时返回的 frame。
可以是 "repeat"(默认值,在每次迭代时从 0 开始)或 "extend"(保持 增加帧)。
style?
您可以传递任何您可以传递给本机 HTML 元素的样式。请记住,在渲染期间,<OffthreadVideo> 渲染一个 <Img> 标签,但在预览期间使用 <video> 标签。
tsxexport constMyComposition = () => {return (<AbsoluteFill ><Img src ={staticFile ("video.webm")}style ={{height : 720,width : 1280 }}/></AbsoluteFill >);};
tsxexport constMyComposition = () => {return (<AbsoluteFill ><Img src ={staticFile ("video.webm")}style ={{height : 720,width : 1280 }}/></AbsoluteFill >);};
allowAmplificationDuringRender?v3.3.17
使 volume 大于 1 的值在渲染期间产生放大效果。
在预览期间,音量将被限制为 1,因为浏览器无法放大音频。
name?v4.0.71
在 Remotion Studio 时间轴中显示为序列标签的名称。此属性仅用于帮助您在时间轴中跟踪项目。
toneFrequency?v4.0.47
调整音频的音调 - 仅在渲染期间应用。
接受介于 0.01 和 2 之间的数字,其中 1 代表原始音调。小于 1 的值会降低音调,而大于 1 的值会增加音调。
toneFrequency 为 0.5 会将音调降低一半,而 1.5 会将音调增加 50%。
onError?
处理播放视频时出现的错误。从 v3.3.89 开始,如果传递了一个 onError 回调,则不会抛出异常。以前,无法捕获错误。
playbackRate?v2.2.0
控制视频的播放速度。1 是默认值,表示正常速度,0.5 会减慢视频速度,使其变为原来的两倍长,2 会加快视频速度,使其变为原来的两倍快。```
虽然 Remotion 不限制可能的播放速度范围,在开发模式下使用 HTMLMediaElement.playbackRate API,对极端值会抛出错误。在撰写本文时,Google Chrome 如果播放速度低于 0.0625 或高于 16 会抛出异常。
视频以两倍速播放的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo playbackRate ={2}src ={staticFile ("video.webm")} /></AbsoluteFill >);};
视频以两倍速播放的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo playbackRate ={2}src ={staticFile ("video.webm")} /></AbsoluteFill >);};
muted?
您可以通过添加 muted 属性来消除视频的音频:
静音视频的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo muted src ="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"/></AbsoluteFill >);};
静音视频的示例tsxexport constMyComposition = () => {return (<AbsoluteFill ><OffthreadVideo muted src ="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"/></AbsoluteFill >);};
acceptableTimeShiftInSeconds?v3.2.42
在 Studio 或 Remotion Player 中,如果视频与 Remotion 的内部时间差异过大 - 无论是由于视频加载还是页面无法实时跟上,Remotion 将会寻找视频。默认情况下,如果遇到 0.45 秒的时间差,将触发一次搜索。使用此属性,您可以自定义阈值。
allowAmplificationDuringRender?v3.3.17
使 volume 大于 1 的值在渲染过程中产生放大效果。