import { core } from "web-video-creator"
// 低级API在core暴露
const { ... } = core;
资源池
参数 | 类型 | 说明 |
---|---|---|
numBrowserMin | number | 资源池最小浏览器实例数量 |
numBrowserMax | number | 资源池最大浏览器实例数量 |
browserOptions | Object | 浏览器选项,参考 <Browser 构造函数的options参数 |
browserOptions.pageOptions | Object | 浏览器页面选项,参考 Page 构造函数的options参数 |
预热资源池,当渲染任务产生时可以快速启动渲染。
ResourcePool.acquirePage(): Promise<Page>
从资源池获取一个页面封装实例,请记得 page 对象使用完毕后调用 page.release() 释放它。
ResourcePool.acquireBrowser(): Promise<Browser>
从资源池获取一个浏览器封装实例,请记得 browser 对象使用完毕后调用 browser.release() 释放它。
判断浏览器资源池是否饱和
浏览器封装
参数 | 类型 | 说明 |
---|---|---|
numPageMin | number | 页面资源最小数量 |
numPageMax | number | 页面资源最大数量 |
executablePath | string | 浏览器可执行文件路径 |
useGPU | boolean | 是否使用GPU加速渲染,建议开启 |
useAngle | boolean | 渲染后端是否使用Angle,建议开启 |
disableDevShm | boolean | 是否禁用共享内存,当/dev/shm较小时建议开启此选项,默认关闭 |
args | string[] | 浏览器flags参数列表 |
pageOptions | Object | 页面选项,参考 Page 构造函数的options参数 |
初始化浏览器
Browser.acquirePage(): Promise<Page>
从浏览器封装获取一个页面封装实例,请记得 page 对象使用完毕后调用 page.release() 释放它。
释放浏览器封装自身,将被回收到资源池进行下一次分配。
关闭浏览器,将通知资源池销毁浏览器资源
获取浏览器已开启的页面数量
判断浏览器是否未初始化
判断浏览器是否已就绪
判断浏览器是否不可用
判断浏览器是否已关闭
判断浏览器页面池是否饱和
页面封装
参数 | 类型 | 说明 |
---|---|---|
width | number | 页面初始化视窗宽度,可通过setViewport调整 |
height | number | 页面初始化视窗高度,可通过setViewport调整 |
userAgent | string | 访问页面时的用户UA |
beginFrameTimeout | number | BeginFrame超时时间(毫秒),默认5000毫秒 |
frameFormat | string | 帧图格式(jpeg/png),建议使用jpeg提高性能 |
frameQuality | number | 帧图质量(0-100),默认80 |
初始化页面
设置视窗参数
与Puppeteer的Viewport保持一致。
导航到待渲染页面。
本地 URL 或远端 HTTPS URL,受制于浏览器的安全上下文限制,只能访问 localhost / 127.0.0.1 或者使用 HTTPS 协议且证书有效的域
与Puppeteer的WaitForOptions保持一致。
设置待渲染页面内容。
可见的HTML内容。
与Puppeteer的WaitForOptions保持一致。
注册字体
参考 Font 字体参数。
注册多个字体
参考 Font 字体参数。
注册动作序列
动作序列对象
等待字体加载完成。
超时时间(毫秒),默认 30000 毫秒
开始帧图流捕获
参数 | 类型 | 说明 |
---|---|---|
fps | number | 渲染帧率 |
duration | number | 渲染时长(毫秒) |
frameCount | number | 渲染总帧数 |
autostart | boolean | 是否自动启动渲染,默认true |
videoDecoderHardwareAcceleration | string | VideoDecoder硬件加速指示,默认值 prefer-hardware |
暂停帧图流捕获
恢复帧图流捕获
停止帧图流捕获
获取页面中全局的 captureCtx.config
配置内容。
重置页面封装,重置后可开始新的捕获。
释放页面封装自身,将被回收到页面池进行下一次分配。
关闭页面,将通知浏览器封装销毁页面资源
判断页面是否未初始化
判断页面是否已就绪
判断页面是否不可用
判断页面是否已关闭
合成器
参数 | 类型 | 说明 |
---|---|---|
outputPath | string | 导出视频路径 |
width | number | 视频宽度 |
height | number | 视频高度 |
duration | number | 视频时长 |
fps | number | 视频合成帧率,默认30 |
format | string | 导出视频格式(mp4/webm),默认通过输出文件路径后缀判断 |
attachCoverPath | string | 附加到视频首帧的封面路径 |
coverCapture | boolean | 是否捕获封面并输出,默认false |
coverCaptureTime | number | 封面捕获时间点(毫秒),默认捕获时间点是视频的20%位置 |
coverCaptureFormat | string | 封面捕获格式(jpg/png/bmp),默认jpg |
videoEncoder | string | 视频编码器,编码器选择请参考 视频编码器列表 |
videoQuality | number | 视频质量(0-100),默认100 |
videoBitrate | string | 视频码率(设置码率将忽略videoQuality) |
pixelFormat | string | 像素格式(yuv420p/yuv444p/rgb24),默认yuv420p |
audioEncoder | string | 音频编码器,默认aac |
audioBitrate | string | 音频码率 |
volume | number | 视频音量(0-100),默认100 |
parallelWriteFrames | number | 并行写入帧数,默认10 |
showProgress | boolean | 是否在命令行展示进度,默认false |
启动合成。
终止合成,非特殊情况一般不要中断渲染。
输入帧数据。
使用 Buffer 对象存储的帧图二进制数据,输入后将流式传输到 FFmpeg。
结束帧图流的输入,通知 FFmpeg 所有帧已经输入完成等待合成完成。
添加音频。
参考 Audio 音频参数。
添加多个音频
参考 Audio 音频参数。
移除输出文件。
重置合成器,重置后可以重新输入帧。
合成器是否已就绪
合成器是否正在合成中
合成器是否已经合成完成
视频块
参数 | 类型 | 说明 |
---|---|---|
width | number | 视频宽度 |
height | number | 视频高度 |
duration | number | 视频时长 |
fps | number | 视频合成帧率,默认30 |
outputPath | string | 导出视频分块路径,默认存储在临时目录,路径必须使用.ts后缀 |
transition | string | Transition | 进入下一视频分块的转场 |
autoremove | boolean | 分块被合并后是否自动删除分块文件,默认true |
videoEncoder | string | 视频编码器,编码器选择请参考 视频编码器列表 |
videoQuality | number | 视频质量(0-100),默认100 |
videoBitrate | string | 视频码率(设置码率将忽略videoQuality) |
pixelFormat | string | 像素格式(yuv420p/yuv444p/rgb24),默认yuv420p |
parallelWriteFrames | number | 并行写入帧数,默认10 |
showProgress | boolean | 是否在命令行展示进度,默认false |
启动合成。
终止合成,非特殊情况一般不要中断渲染。
输入帧数据。
使用 Buffer 对象存储的帧图二进制数据,输入后将流式传输到 FFmpeg。
结束帧图流的输入,通知 FFmpeg 所有帧已经输入完成等待合成完成。
添加音频。
参考 Audio 音频参数。
添加多个音频
设置转场效果
参考 Transition 转场参数。
重置视频分块,重置后可以重新输入帧。
视频分块是否已就绪
视频分块是否正在合成中
视频分块是否已经合成完成
视频分块合成器
参数 | 类型 | 说明 |
---|---|---|
outputPath | string | 导出视频路径 |
width | number | 视频宽度 |
height | number | 视频高度 |
chunks | VideoChunk[] | 未渲染或已渲染的VideoChunk列表,可以是VideoChunk实例也可以是普通对象 |
duration | number | 视频时长 |
fps | number | 视频合成帧率,默认30 |
attachCoverPath | string | 附加到视频首帧的封面路径 |
coverCapture | boolean | 是否捕获封面并输出,默认false |
coverCaptureTime | number | 封面捕获时间点(毫秒),默认捕获时间点是视频的20%位置 |
coverCaptureFormat | string | 封面捕获格式(jpg/png/bmp),默认jpg |
videoEncoder | string | 视频编码器,编码器选择请参考 视频编码器列表 |
videoQuality | number | 视频质量(0-100),默认100 |
videoBitrate | string | 视频码率(设置码率将忽略videoQuality) |
pixelFormat | string | 像素格式(yuv420p/yuv444p/rgb24),默认yuv420p |
audioEncoder | string | 音频编码器,默认aac |
audioBitrate | string | 音频码率 |
volume | number | 视频音量(0-100),默认100 |
parallelWriteFrames | number | 并行写入帧数,默认10 |
showProgress | boolean | 是否在命令行展示进度,默认false |
启动合成。
终止合成,非特殊情况一般不要中断渲染。
ChunkSynthesizer.input(chunk: VideoChunk, transition: Transition)
输入视频分块。
请参考 VideoChunk 。
请参考 Transition 。
添加音频。
参考 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 | 是否忽略本地缓存 |
转场参数,请参考 转场效果 。
参数 | 类型 | 说明 |
---|---|---|
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 | 是否忽略本地缓存 |