扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > Go SDK > 动态模板高级素材替换

动态模板高级素材替换

更新时间 : 2019-06-20 21:27:23

请先点击以下链接, 了解动态模板高级素材替换.

动态模板高级素材替换规范

高级素材类型

动态模板高级图片素材替换

高级图片素材替换示例:

func testDynamicSubImg() {

    basedir := "."
    tplPath := basedir + "/workspace/template/dynamic_text/"
    output := basedir + "/workspace/output/dynamic_text.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)

    // 设置附加素材
    subfiles := "["
    subfiles += " {\"img_path\":\"" + basedir + "/workspace/assets/1.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text1.png\"]}"
    subfiles += ",{\"img_path\":\"" + basedir + "/workspace/assets/2.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text2.png\",\"" + basedir + "/workspace/assets/235_41_text3.png\"]}"
    subfiles += ",{\"img_path\":\"" + basedir + "/workspace/assets/3.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text4.png\"]}"
    subfiles += ",{\"img_path\":\"" + basedir + "/workspace/assets/4.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text9.png\"]}"
    subfiles += ",{\"img_path\":\"\",\"d_key_prefix\":\"dheadimg\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text8.png\"]}"
    subfiles += "]"

    //vesdk.RenderProcessSetDynamicSubFiles(renderId, subfiles)

    // 开始渲染
    ret, err := vesdk.RenderProcessStart(renderId)

    fmt.Println("start render ret : ", ret)
    fmt.Println(err)

    // 获取状态值
    status := vesdk.RenderProcessStatus(renderId)
    fmt.Println("render status : ", status)

    // 获取渲染信息
    info := vesdk.RenderProcessRenderedInfo(renderId)
    fmt.Println("render info : ", info)

    // 释放资源
    vesdk.RenderProcessRelease(renderId)
}

动态模板高级文字素材替换

高级文字替换, 需要依赖 TextPainter 工具, 需要先安装设置好 TextPainter.

高级文字素材替换示例:

func testDynamicSubText() {

    basedir := "."
    tplPath := basedir + "/workspace/template/kenbentuya/"
    output := basedir + "/workspace/output/kenbentuya.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)

    // 设置文字素材
    subTexts := "["
    subTexts += "{\"img_path\":\"\",\"d_key_prefix\":\"title\",\"d_texts\":[\"自定义标题\"]}"
    subTexts += ",{\"img_path\":\"" + basedir + "/workspace/assets/1.jpeg\",\"d_key_prefix\":\"dtext\",\"d_texts\":[\"自定义描述1\"]}"
    subTexts += ",{\"img_path\":\"" + basedir + "/workspace/assets/2.jpeg\",\"d_key_prefix\":\"dtext\",\"d_texts\":[\"自定义描述2\"]}"
    subTexts += ",{\"img_path\":\"" + basedir + "/workspace/assets/3.jpeg\",\"d_key_prefix\":\"dtext\",\"d_texts\":[\"\"]}"
    subTexts += "]"

    // 设置素材保存目录, 必须设置, 以 / 结尾
    vesdk.RenderProcessSetAssetPath(renderId, basedir+"/workspace/assets/")
    // 设置文字绘制工具目录, 必须设置, 以 / 结尾
    vesdk.RenderProcessSetTextPainterPath(renderId, "/home/slayer/workspace/ve-textpainter/textpainter/")
    vesdk.RenderProcessSetDynamicSubTexts(renderId, subTexts)

    // 开始渲染
    ret, err := vesdk.RenderProcessStart(renderId)

    fmt.Println("start render ret : ", ret)
    fmt.Println(err)

    // 获取状态值
    status := vesdk.RenderProcessStatus(renderId)
    fmt.Println("render status : ", status)

    // 获取渲染信息
    info := vesdk.RenderProcessRenderedInfo(renderId)
    fmt.Println("render info : ", info)

    // 释放资源
    vesdk.RenderProcessRelease(renderId)
}
首页 > Go SDK > 动态模板高级素材替换
动态模板高级素材替换
更新时间 : 2019-06-20 21:27:23
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

请先点击以下链接, 了解动态模板高级素材替换.

动态模板高级素材替换规范

高级素材类型

  • 普通图片

    常用于替换动态模板中某个指定位置的用户头像

  • 文字

    常用于给动态模板每张图片绑定字幕

动态模板高级图片素材替换

高级图片素材替换示例:

func testDynamicSubImg() {

    basedir := "."
    tplPath := basedir + "/workspace/template/dynamic_text/"
    output := basedir + "/workspace/output/dynamic_text.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)

    // 设置附加素材
    subfiles := "["
    subfiles += " {\"img_path\":\"" + basedir + "/workspace/assets/1.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text1.png\"]}"
    subfiles += ",{\"img_path\":\"" + basedir + "/workspace/assets/2.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text2.png\",\"" + basedir + "/workspace/assets/235_41_text3.png\"]}"
    subfiles += ",{\"img_path\":\"" + basedir + "/workspace/assets/3.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text4.png\"]}"
    subfiles += ",{\"img_path\":\"" + basedir + "/workspace/assets/4.jpeg\",\"d_key_prefix\":\"dtext\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text9.png\"]}"
    subfiles += ",{\"img_path\":\"\",\"d_key_prefix\":\"dheadimg\",\"d_img_paths\":[\"" + basedir + "/workspace/assets/235_41_text8.png\"]}"
    subfiles += "]"

    //vesdk.RenderProcessSetDynamicSubFiles(renderId, subfiles)

    // 开始渲染
    ret, err := vesdk.RenderProcessStart(renderId)

    fmt.Println("start render ret : ", ret)
    fmt.Println(err)

    // 获取状态值
    status := vesdk.RenderProcessStatus(renderId)
    fmt.Println("render status : ", status)

    // 获取渲染信息
    info := vesdk.RenderProcessRenderedInfo(renderId)
    fmt.Println("render info : ", info)

    // 释放资源
    vesdk.RenderProcessRelease(renderId)
}

动态模板高级文字素材替换

高级文字替换, 需要依赖 TextPainter 工具, 需要先安装设置好 TextPainter.

高级文字素材替换示例:

func testDynamicSubText() {

    basedir := "."
    tplPath := basedir + "/workspace/template/kenbentuya/"
    output := basedir + "/workspace/output/kenbentuya.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)

    // 设置文字素材
    subTexts := "["
    subTexts += "{\"img_path\":\"\",\"d_key_prefix\":\"title\",\"d_texts\":[\"自定义标题\"]}"
    subTexts += ",{\"img_path\":\"" + basedir + "/workspace/assets/1.jpeg\",\"d_key_prefix\":\"dtext\",\"d_texts\":[\"自定义描述1\"]}"
    subTexts += ",{\"img_path\":\"" + basedir + "/workspace/assets/2.jpeg\",\"d_key_prefix\":\"dtext\",\"d_texts\":[\"自定义描述2\"]}"
    subTexts += ",{\"img_path\":\"" + basedir + "/workspace/assets/3.jpeg\",\"d_key_prefix\":\"dtext\",\"d_texts\":[\"\"]}"
    subTexts += "]"

    // 设置素材保存目录, 必须设置, 以 / 结尾
    vesdk.RenderProcessSetAssetPath(renderId, basedir+"/workspace/assets/")
    // 设置文字绘制工具目录, 必须设置, 以 / 结尾
    vesdk.RenderProcessSetTextPainterPath(renderId, "/home/slayer/workspace/ve-textpainter/textpainter/")
    vesdk.RenderProcessSetDynamicSubTexts(renderId, subTexts)

    // 开始渲染
    ret, err := vesdk.RenderProcessStart(renderId)

    fmt.Println("start render ret : ", ret)
    fmt.Println(err)

    // 获取状态值
    status := vesdk.RenderProcessStatus(renderId)
    fmt.Println("render status : ", status)

    // 获取渲染信息
    info := vesdk.RenderProcessRenderedInfo(renderId)
    fmt.Println("render info : ", info)

    // 释放资源
    vesdk.RenderProcessRelease(renderId)
}