10 Star 151 Fork 22

Vinlic / WebVideoCreator

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
api-reference-high-level.md 26.24 KB
一键复制 编辑 原始数据 按行查看 历史

高级别API

WebVideoCreator

WebVideoCreator.config([options: Object])

配置 WVC 的全局开关和属性,在任何操作之前都必须运行它。

options 参数

参数 类型 说明
debug boolean WebVideoCreator调试日志,开启后将输出一些内部的调试日志
browserVersion string 指定WVC使用的Chrome浏览器版本
browserHeadless boolean 浏览器无头开关,建议保持开启,如果关闭请确保开启兼容渲染模式否则无法渲染,仅用于调试画面
browserFrameRateLimit boolean 浏览器帧率限制开关,默认开启,关闭帧率限制可以提高渲染效率并支持高于60fps的动画,但这会关闭GPU垂直同步可能导致画面撕裂或其它问题
browserDebug boolean 浏览器Debug开关,开启后将输出浏览器的运行日志,如果你想看页面的日志,请设置consoleLog为true,而不是这个
ffmpegDebug boolean 开启后将输出每一条执行的ffmpeg命令
ffmpegExecutablePath string ffmpeg可执行文件路径,设置后将禁用内部的ffmpeg-static,建议您默认使用内部的FFmpeg以确保功能完整性
ffprobeExecutablePath string ffprobe可执行文件路径,设置后将禁用内部的ffprobe-static,建议您默认使用内部的ffprobe以确保功能完整性
browserUseGPU boolean 浏览器GPU加速开关,建议开启提高渲染性能,如果您没有GPU设备或遭遇了诡异的渲染问题则可以关闭它
browserUseAngle boolean 浏览器是否使用Angle作为渲染后端,默认开启增强渲染跨平台兼容性和性能
browserDisableDevShm boolean 是否禁用浏览器使用共享内存,当/dev/shm较小时建议开启此选项
browserExecutablePath string 浏览器可执行文件路径,设置后将禁用内部的浏览器,建议您默认使用内部的浏览器以确保功能完整性
browserLaunchTimeout number 浏览器启动超时时间(毫秒),设置等待浏览器启动超时时间
browserProtocolTimeout number 浏览器协议通信超时时间(毫秒),设置CDP协议通信超时时间
allowUnsafeContext boolean 默认禁用,开启后能够导航到不安全的URL,但由于不安全上下文限制,将无法在页面中使用动态图像和内嵌视频
compatibleRenderingMode boolean 兼容渲染模式,不建议启用,启用后将禁用HeadlessExperimental.beginFrame API调用改为普通的Page.screenshot,这会导致渲染性能下降,且部分动画可能帧率无法同步,当你遭遇下面错误的时候可以尝试开启它:TargetCloseError: Protocol error (HeadlessExperimental.beginFrame): Target closed
numBrowserMin number 资源池最小浏览器实例数量
numBrowserMax number 资源池最大浏览器实例数量
numPageMin number 浏览器实例最小页面实例数量
numPageMax number 浏览器实例最大页面实例数量
userAgent string 访问页面时的用户UA
frameQuality number 捕获帧图质量(0-100)仅jpeg有效
frameFormat string 帧图格式(jpeg/png)建议使用jpeg,png捕获较为耗时
beginFrameTimeout number BeginFrame捕获图像超时时间(毫秒)
mp4Encoder string 全局MP4格式的视频编码器,默认使用libx264软编码器,建议根据您的硬件选用合适的硬编码器加速合成
webmEncoder string 全局WEBM格式的视频编码器,默认使用libvpx软编码器,建议根据您的硬件选用合适的硬编码器加速合成
audioEncoder string 全局音频编码器,建议采用默认的aac编码器

WebVideoCreator.createSingleVideo(options: Object): SingleVideo

创建单幕视频实例

options 参数

参考 SingleVideo 构造函数的options参数。


WebVideoCreator.createMultiVideo(options: Object): MultiVideo

创建多幕视频实例

options 参数

参考 MultiVideo 构造函数的options参数。


WebVideoCreator.createChunkVideo(options: Object): ChunkVideo

创建分块视频实例

options 参数

参考 ChunkVideo 构造函数的options参数。


SingleVideo

单幕视频

构造函数

new SingleVideo(options: Object)

options 参数

参数 类型 说明
url string 待渲染的页面URL
outputPath string 视频输出路径
width number 视频宽度
height number 视频高度
duration number 视频时长
startTime number 视频开始捕获时间点
fps number 视频帧率
format string 导出视频格式(mp4/webm)
attachCoverPath string 附加到视频首帧的封面文件路径
coverCapture boolean 是否捕获封面并输出
coverCaptureTime number 封面捕获时间点(毫秒)
coverCaptureFormat string 封面捕获格式(jpg/png/bmp)
videoEncoder string 视频编码器,详见 视频编码器说明
videoQuality number 视频质量(0-100)
videoBitrate string 视频码率(设置码率将忽略videoQuality)
pixelFormat string 像素格式(yuv420p/yuv444p/rgb24)
audioEncoder string 音频编码器,建议默认aac
audioBitrate string 音频码率
volume number 视频音量(0-100)
pageWaitForOptions WaitForOptions 页面等待选项
pageViewport Viewport 页面视窗参数
pagePrepareFn Function 页面预处理函数,可以在渲染之前对Page对象操作
timeActions Object{[key: Number]: Function} 事件序列,可以在渲染过程中对Page对象操作,key 为 Number 指定某个渲染时刻触发
showProgress boolean 是否在命令行展示进度
autostartRender boolean 是否自动启动渲染,如果为false请务必在页面中执行 captureCtx.start()
consoleLog boolean 是否开启控制台日志输出
videoPreprocessLog boolean 是否开启视频预处理日志输出
videoDecoderHardwareAcceleration string VideoDecoder硬件加速指示,默认值 prefer-hardware
parallelWriteFrames number 并行写入流的帧数

事件

progress

合成进度事件,回调参数:(progress, processedFrameCount, totalFrameCount)

completed

已完成合成事件,回调参数:(result)

error

错误事件,回调参数:(err)

成员

SingleVideo.registerFont(options: Object)

注册字体

options 参数

参考 Font 字体参数。

SingleVideo.registerFonts([options: Object, ...])

注册多个字体

options 参数

参考 Font 字体参数。

SingleVideo.addAudio(options: Object)

添加音频

options 参数

参考 Audio 音频参数。

SingleVideo.addAudios([options: Object, ...])

添加多个音频

options 参数

参考 Audio 音频参数。

SingleVideo.start()

启动单幕渲染合成

SingleVideo.startAndWait(): Promise

启动单幕渲染合成并等待完成


MultiVideo

多幕视频

构造函数

new MultiVideo(options: Object)

options 参数

参数 类型 说明
width number 视频宽度
height number 视频高度
outputPath string 视频输出路径
chunks ChunkVideo[] 未渲染或已渲染的ChunkVideo列表,可以是ChunkVideo实例也可以是普通对象
startTime number 视频开始捕获时间点
fps number 视频帧率
format string 导出视频格式(mp4/webm)
attachCoverPath string 附加到视频首帧的封面文件路径
coverCapture boolean 是否捕获封面并输出
coverCaptureTime number 封面捕获时间点(毫秒)
coverCaptureFormat string 封面捕获格式(jpg/png/bmp)
videoEncoder string 视频编码器,详见 [视频编码器说明](./video-encoder.md)
videoQuality number 视频质量(0-100)
videoBitrate string 视频码率(设置码率将忽略videoQuality)
pixelFormat string 像素格式(yuv420p/yuv444p/rgb24)
audioEncoder string 音频编码器,建议默认aac
audioBitrate string 音频码率
volume number 视频音量(0-100)
pagePrepareFn Function 页面预处理函数,可以在渲染之前对Page对象操作
timeActions Object{[key: Number]: Function} 事件序列,可以在渲染过程中对Page对象操作,key 为 Number 指定某个渲染时刻触发
showProgress boolean 是否在命令行展示进度
parallelWriteFrames number 并行写入流的帧数

事件

progress

合成进度事件,回调参数:(progress: number, processedFrameCount: number, totalFrameCount: number)

completed

已完成合成事件,回调参数:(result)

error

错误事件,回调参数:(err)

成员

MultiVideo.registerFont(options: Object)

注册字体

options 参数

参考 Font 字体参数。

MultiVideo.registerFonts([options: Object, ...])

注册多个字体

options 参数

参考 Font 字体参数。

MultiVideo.addAudio(options: Object)

添加音频

options 参数

参考 Audio 音频参数。

MultiVideo.addAudios([options: Object, ...])

添加多个音频

options 参数

参考 Audio 音频参数。

MultiVideo.input(chunk: ChunkVideo, [transtion])

输入分块视频,可以选择加入转场效果

chunk 参数

参考 ChunkVideo

transtion 参数

参考 transtion

MultiVideo.start()

启动多幕视频渲染合成,如果输入的分块视频已经合成完毕则会跳过渲染进入合成阶段

MultiVideo.startAndWait(): Promise

启动多幕视频渲染合成并等待完成


ChunkVideo

分块视频

构造函数

new ChunkVideo(options: Object)

options 参数

参数 类型 说明
url string 待渲染的页面URL,与content二选一
content string 待渲染的页面内容,与url二选一
outputPath string 视频输出路径
width number 视频宽度
height number 视频高度
duration number 视频时长
startTime number 视频开始捕获时间点
fps number 视频帧率
transition string | Transition 进入下一视频分块的转场效果
format string 导出视频格式(mp4/webm)
attachCoverPath string 附加到视频首帧的封面文件路径
coverCapture boolean 是否捕获封面并输出
coverCaptureTime number 封面捕获时间点(毫秒)
coverCaptureFormat string 封面捕获格式(jpg/png/bmp)
videoEncoder string 视频编码器,详见 视频编码器说明
videoQuality number 视频质量(0-100)
videoBitrate string 视频码率(设置码率将忽略videoQuality)
pixelFormat string 像素格式(yuv420p/yuv444p/rgb24)
audioEncoder string 音频编码器,建议默认aac
audioBitrate string 音频码率
volume number 视频音量(0-100)
pageWaitForOptions WaitForOptions 页面等待选项
pageViewport Viewport 页面视窗参数
pagePrepareFn Function 页面预处理函数,可以在渲染之前对Page对象操作
timeActions Object{[key: Number]: Function} 事件序列,可以在渲染过程中对Page对象操作,key 为 Number 指定某个渲染时刻触发
showProgress boolean 是否在命令行展示进度
autostartRender boolean 是否自动启动渲染,如果为false请务必在页面中执行 captureCtx.start()
consoleLog boolean 是否开启控制台日志输出
videoPreprocessLog boolean 是否开启视频预处理日志输出
parallelWriteFrames number 并行写入流的帧数

事件

progress

合成进度事件,回调参数:(progress: number, processedFrameCount: number, totalFrameCount: number)

completed

已完成合成事件,回调参数:(result)

error

错误事件,回调参数:(err)

成员

ChunkVideo.registerFont(options: Object)

注册字体

options 参数

参考 Font 字体参数。

ChunkVideo.registerFonts([options: Object, ...])

注册多个字体

options 参数

参考 Font 字体参数。

ChunkVideo.addAudio(options: Object)

添加音频

options 参数

参考 Audio 音频参数。

ChunkVideo.addAudios([options: Object, ...])

添加多个音频

options 参数

参考 Audio 音频参数。

ChunkVideo.setTransition(options: Object)

设置转场效果

options 参数

参考 Transition 转场参数。

ChunkVideo.start()

启动分块视频渲染合成,分块视频渲染后还需要输入到 MultiVideo 进行最终视频合成

ChunkVideo.startAndWait(): Promise

启动分块视频渲染合成并等待完成

Audio

音频参数

参数 类型 说明
url string 音频URL,与path二选一
path string 音频本地路径,与url二选一
startTime number 起始时间点(毫秒)
endTime number 结束时间点(毫秒)
loop boolean 是否循环播放
volume number 音量(0-100)
seekStart number 裁剪起始时间点(毫秒)
seekEnd number 裁剪结束实际点(毫秒)
fadeInDuration number 淡入时长(毫秒)
fadeOutDuration number 淡出时长(毫秒)
retryFetchs number 重试拉取次数
ignoreCache boolean 是否忽略本地缓存

Transition

转场参数,请参考 转场效果

参数 类型 说明
id string 转场ID(与滤镜名称一致)
duration string 转场时长(毫秒)

Font

字体参数

参数 类型 说明
url string 字体URL,与path二选一
path string 字体本地路径,与url二选一
family string 字体集名称
style string 字体样式
weight number | string 字体粗细
format string 字体格式
retryFetchs number 重试拉取次数
ignoreCache boolean 是否忽略本地缓存
NodeJS
1
https://gitee.com/vblog/web-video-creator.git
git@gitee.com:vblog/web-video-creator.git
vblog
web-video-creator
WebVideoCreator
master

搜索帮助