配置 WVC 的全局开关和属性,在任何操作之前都必须运行它。
参数 | 类型 | 说明 |
---|---|---|
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
创建单幕视频实例
参考 SingleVideo 构造函数的options参数。
WebVideoCreator.createMultiVideo(options: Object): MultiVideo
创建多幕视频实例
参考 MultiVideo 构造函数的options参数。
WebVideoCreator.createChunkVideo(options: Object): ChunkVideo
创建分块视频实例
参考 ChunkVideo 构造函数的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, processedFrameCount, totalFrameCount)
已完成合成事件,回调参数:(result)
错误事件,回调参数:(err)
注册字体
参考 Font 字体参数。
注册多个字体
参考 Font 字体参数。
添加音频
参考 Audio 音频参数。
添加多个音频
参考 Audio 音频参数。
启动单幕渲染合成
启动单幕渲染合成并等待完成
多幕视频
参数 | 类型 | 说明 |
---|---|---|
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: number, processedFrameCount: number, totalFrameCount: number)
已完成合成事件,回调参数:(result)
错误事件,回调参数:(err)
注册字体
参考 Font 字体参数。
注册多个字体
参考 Font 字体参数。
添加音频
参考 Audio 音频参数。
添加多个音频
参考 Audio 音频参数。
MultiVideo.input(chunk: ChunkVideo, [transtion])
输入分块视频,可以选择加入转场效果
参考 ChunkVideo 。
参考 transtion 。
启动多幕视频渲染合成,如果输入的分块视频已经合成完毕则会跳过渲染进入合成阶段
启动多幕视频渲染合成并等待完成
分块视频
参数 | 类型 | 说明 |
---|---|---|
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: number, processedFrameCount: number, totalFrameCount: number)
已完成合成事件,回调参数:(result)
错误事件,回调参数:(err)
注册字体
参考 Font 字体参数。
注册多个字体
参考 Font 字体参数。
添加音频
参考 Audio 音频参数。
添加多个音频
参考 Audio 音频参数。
设置转场效果
参考 Transition 转场参数。
启动分块视频渲染合成,分块视频渲染后还需要输入到 MultiVideo 进行最终视频合成
启动分块视频渲染合成并等待完成
音频参数
参数 | 类型 | 说明 |
---|---|---|
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 | 是否忽略本地缓存 |
转场参数,请参考 转场效果 。
参数 | 类型 | 说明 |
---|---|---|
id | string | 转场ID(与滤镜名称一致) |
duration | string | 转场时长(毫秒) |
字体参数
参数 | 类型 | 说明 |
---|---|---|
url | string | 字体URL,与path二选一 |
path | string | 字体本地路径,与url二选一 |
family | string | 字体集名称 |
style | string | 字体样式 |
weight | number | string | 字体粗细 |
format | string | 字体格式 |
retryFetchs | number | 重试拉取次数 |
ignoreCache | boolean | 是否忽略本地缓存 |