更新时间 : 2021-12-28 13:38:06
基于 Go SDK 开发并自建渲染服务. 需购买按授权期限 license 使用.
设置license, 模板路径 --> 替换素材路径 --> 提交渲染 --> 等待渲染结果
配置依赖环境参考:
下载 sdk 包后, 解压后导入项目.
func testNormal() {
basedir := "."
license := ""
tplPath := basedir + "/workspace/template/Calorie/"
output := basedir + "/workspace/output/Calorie.mp4"
// 渲染需要的随机数, 同一时刻保证唯一
key := rand.Int()
// 创建渲染进程
renderId, success := vesdk.CreateRenderProcess(tplPath, output, key)
fmt.Println("renderId : ", renderId, " success : ", success)
if !success {
return
}
// 注册 license
vesdk.RegisterRenderProcessLicense(renderId, license)
// 获取 profile
profile := vesdk.RenderProcessLicenseProfile(renderId)
fmt.Println("license profile : ", profile)
// license valid
valid := vesdk.RenderProcessLicenseIsValid(renderId)
fmt.Println("license valid : ", valid)
assetPaths := [5]string{
basedir + "/workspace/assets/1.jpeg",
basedir + "/workspace/assets/2.jpeg",
basedir + "/workspace/assets/3.jpeg",
basedir + "/workspace/assets/4.jpeg",
basedir + "/workspace/assets/6.jpeg",
}
jsonArr, _ := json.Marshal(assetPaths)
jsonStr := string(jsonArr)
// 设置替换素材
vesdk.RenderProcessSetReplaceableFiles(renderId, jsonStr)
// 开始渲染
ret, err := vesdk.RenderProcessStart(renderId)
fmt.Println("start render ret : ", ret)
fmt.Println(err)
// 获取状态值
status := vesdk.RenderProcessStatus(renderId)
fmt.Println("render status : ", status)
// 释放资源
vesdk.RenderProcessRelease(renderId)
}
func testConfigUtils() {
basedir := "."
tplPath := basedir + "/workspace/template/old/config.json"
// 读取 config.json 文件到字符串
content, err := ioutil.ReadFile(tplPath)
if err != nil {
fmt.Println("error")
}
// 创建 configUtils 句柄
configJson := string(content)
nativeUtils := vesdk.CreateConfigUtils(configJson, 0)
// 获取模板的帧率
fps := vesdk.ConfigUtilsGetFps(nativeUtils)
fmt.Println("fps: ", fps)
// 模板是否有效
isValid := vesdk.ConfigUtilsIsValid(nativeUtils)
fmt.Println("isValid: ", isValid)
// 获取模板渲染出视频的时长
duration := vesdk.ConfigUtilsGetDuration(nativeUtils)
fmt.Println("duration: ", duration)
// 获取模板总共的帧数量
frameCount := vesdk.ConfigUtilsGetFrameCount(nativeUtils)
fmt.Println("frameCount: ", frameCount)
// 获取模板的宽度
width := vesdk.ConfigUtilsGetWidth(nativeUtils)
fmt.Println("width: ", width)
// 获取模板的高度
height := vesdk.ConfigUtilsGetHeight(nativeUtils)
fmt.Println("height: ", height)
// 获取模板的类型
templateType := vesdk.ConfigUtilsGetTemplateType(nativeUtils)
fmt.Println("templateType: ", templateType)
// 获取模板使用引擎的版本
version := vesdk.ConfigUtilsGetVersion(nativeUtils)
fmt.Println("version: ", version)
// 获取模板使用的 UI 版本
uiVersion := vesdk.ConfigUtilsGetUIVersion(nativeUtils)
fmt.Println("uiVersion: ", uiVersion)
// 获取模板的基本描述
des := vesdk.ConfigUtilsGetDescription(nativeUtils)
fmt.Println("des: ", des)
// 获取模板的 id
uuid := vesdk.ConfigUtilsGetUUid(nativeUtils)
fmt.Println("uuid: ", uuid)
// 获取模板可替换素材的时间段
vesdk.ConfigUtilsGetReplaceableAssetTimeRange(nativeUtils)
// 释放 ConfigUtils 资源
vesdk.ConfigUtilsRelease(nativeUtils)
基于 Go SDK 开发并自建渲染服务. 需购买按授权期限 license 使用.
设置license, 模板路径 --> 替换素材路径 --> 提交渲染 --> 等待渲染结果
配置依赖环境参考:
下载 sdk 包后, 解压后导入项目.
func testNormal() {
basedir := "."
license := ""
tplPath := basedir + "/workspace/template/Calorie/"
output := basedir + "/workspace/output/Calorie.mp4"
// 渲染需要的随机数, 同一时刻保证唯一
key := rand.Int()
// 创建渲染进程
renderId, success := vesdk.CreateRenderProcess(tplPath, output, key)
fmt.Println("renderId : ", renderId, " success : ", success)
if !success {
return
}
// 注册 license
vesdk.RegisterRenderProcessLicense(renderId, license)
// 获取 profile
profile := vesdk.RenderProcessLicenseProfile(renderId)
fmt.Println("license profile : ", profile)
// license valid
valid := vesdk.RenderProcessLicenseIsValid(renderId)
fmt.Println("license valid : ", valid)
assetPaths := [5]string{
basedir + "/workspace/assets/1.jpeg",
basedir + "/workspace/assets/2.jpeg",
basedir + "/workspace/assets/3.jpeg",
basedir + "/workspace/assets/4.jpeg",
basedir + "/workspace/assets/6.jpeg",
}
jsonArr, _ := json.Marshal(assetPaths)
jsonStr := string(jsonArr)
// 设置替换素材
vesdk.RenderProcessSetReplaceableFiles(renderId, jsonStr)
// 开始渲染
ret, err := vesdk.RenderProcessStart(renderId)
fmt.Println("start render ret : ", ret)
fmt.Println(err)
// 获取状态值
status := vesdk.RenderProcessStatus(renderId)
fmt.Println("render status : ", status)
// 释放资源
vesdk.RenderProcessRelease(renderId)
}
func testConfigUtils() {
basedir := "."
tplPath := basedir + "/workspace/template/old/config.json"
// 读取 config.json 文件到字符串
content, err := ioutil.ReadFile(tplPath)
if err != nil {
fmt.Println("error")
}
// 创建 configUtils 句柄
configJson := string(content)
nativeUtils := vesdk.CreateConfigUtils(configJson, 0)
// 获取模板的帧率
fps := vesdk.ConfigUtilsGetFps(nativeUtils)
fmt.Println("fps: ", fps)
// 模板是否有效
isValid := vesdk.ConfigUtilsIsValid(nativeUtils)
fmt.Println("isValid: ", isValid)
// 获取模板渲染出视频的时长
duration := vesdk.ConfigUtilsGetDuration(nativeUtils)
fmt.Println("duration: ", duration)
// 获取模板总共的帧数量
frameCount := vesdk.ConfigUtilsGetFrameCount(nativeUtils)
fmt.Println("frameCount: ", frameCount)
// 获取模板的宽度
width := vesdk.ConfigUtilsGetWidth(nativeUtils)
fmt.Println("width: ", width)
// 获取模板的高度
height := vesdk.ConfigUtilsGetHeight(nativeUtils)
fmt.Println("height: ", height)
// 获取模板的类型
templateType := vesdk.ConfigUtilsGetTemplateType(nativeUtils)
fmt.Println("templateType: ", templateType)
// 获取模板使用引擎的版本
version := vesdk.ConfigUtilsGetVersion(nativeUtils)
fmt.Println("version: ", version)
// 获取模板使用的 UI 版本
uiVersion := vesdk.ConfigUtilsGetUIVersion(nativeUtils)
fmt.Println("uiVersion: ", uiVersion)
// 获取模板的基本描述
des := vesdk.ConfigUtilsGetDescription(nativeUtils)
fmt.Println("des: ", des)
// 获取模板的 id
uuid := vesdk.ConfigUtilsGetUUid(nativeUtils)
fmt.Println("uuid: ", uuid)
// 获取模板可替换素材的时间段
vesdk.ConfigUtilsGetReplaceableAssetTimeRange(nativeUtils)
// 释放 ConfigUtils 资源
vesdk.ConfigUtilsRelease(nativeUtils)