配置 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 | 是否忽略本地缓存 |