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

{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 下载
用户常见问题
首页 > 服务端 SDK > Java SDK > 快速入门

快速入门

更新时间 : 2021-12-28 11:20:18

应用场景

基于 Java SDK 开发并自建渲染服务. 需购买按授权期限 license 使用.

渲染流程

设置license, 模板路径  ->  替换素材路径 -> 设置相关功能 ->  提交渲染  ->  等待渲染结果

快速集成

配置依赖环境参考:

下载 sdk 包后, 解压后导入项目.

基于 VeProcessRenderTask 的渲染示例代码

String license  = "license str";                          // 证书
String tplFolder = "/path/to/template/";                  // 模板目录
String outputPath ="/path/to/output.mp4";                 // 视频输出必须为 mp4 格式
String fontPath = "/path/fonts/Alibaba-PuHuiTi-Bold.otf"; // 字体路径
String musicPath = "/path/workspace/music.mp3";           // 设置音乐路径
String watermarkPath = "/path/workspace/watermark.png";   // 水印路径

// 替换素材, 确保路径不重复
String[] paths = {
    "/path/to/image1.png",
    "/path/to/image2.png"
};

// 创建渲染对象
VeProcessRenderTask task = new VeProcessRenderTask(license, tplFolder, outputPath);

// 替换素材
task.setAssetPaths(paths);

// 设置默认字体 
task.setDefaultFontPath(fontPath);

// 音乐相关功能
task.setMusicPath(musicPath, true);     // 设置音乐路径
task.setMusicFadeoutDuration(5);       // 设置音乐淡出时间
task.setMusicVolume(1.0f);              // 设置音乐音量大小
task.setMusicEnable(false);             // 设置是否开启背景音乐

// 开启保留视频素材中的音频
task.setRetainAudioOfVideo(true);       // 设置是否保留替换素材中的音频

// 设置水印相关功能
List<Watermark> list = new ArrayList<>();
Watermark mark = new Watermark();
List<String> watermarkPaths = new ArrayList<>();
watermarkPaths.add(watermarkPath);
mark.setPaths(watermarkPaths);

Watermark mark2 = new Watermark();
List<String> watermarkPaths2 = new ArrayList<>();
watermarkPaths2.add(watermarkPath);
mark2.setPaths(watermarkPaths2);
mark2.setPosX(400);

list.add(mark);
list.add(mark2);

task.setWatermarkList(list);


// 启动渲染, 等待渲染结果
try {
    boolean ret = task.render();                  // 启动渲染, 获取结果
    String info = task.getTaskRenderedInfo();    // 获取渲染信息


} catch (Exception e) {
    e.printStack();
} finally {
    task.destroy(); // 销毁渲染对象
}

ConfigUtils 模板解析详解

sdk 提供了 ConfigUtils 类进行模板的解析,获取模板的各种具体数据


String cPath = "/path/template/config.json";
// 读取 config.json 文件到字符串
StringBuilder sb = readFileByLines(cPath);
// 创建 ConfigUtils 对象
ConfigUtils configUtils = new ConfigUtils(sb.toString(), 0);

// 获取模板渲染出视频的时长
float duration = configUtils.getDuration();

// 模板是否有效
boolean isValid = configUtils.isValid();
// 获取模板的帧率
float fps = configUtils.getFps();
// 获取模板总共的帧数量
long frameCount = configUtils.getFrameCount();
// 获取模板的宽度
int width = configUtils.getWidth();
// 获取模板的高度
int height = configUtils.getHeight();
// 获取模板的类型
int templateType = configUtils.getTemplateType();

// 获取模板使用引擎的版本
String version = configUtils.getVersion();
// 获取模板使用的 UI 版本
String uiVersion = configUtils.getUIVersion();
// 获取模板的基本描述
String des = configUtils.getDescription();
// 获取模板的 id
String uuid = configUtils.getUUid();

// 获取模板可替换素材的基本信息,保存在 TemplateAsset 类中
ArrayList<TemplateAsset> assets = configUtils.getReplaceableAsset();
// 获取模板可替换素材的时间段
ArrayList<TemplateAssetTimeRange> assetTimeRanges = configUtils.getReplaceableAssetTimeRange();

// 释放 ConfigUtils 对象
configUtils.destroy();

基于 VideoEngine 的渲染示例代码

String license  = "license str";                  // 证书
String tplFolder = "/path/to/template/";     // 模板目录
String outputPath ="/path/to/output.mp4"; // 视频输出必须为 mp4 格式

// 替换素材, 确保路径不重复
String[] paths = {
    "/path/to/image1.png",
    "/path/to/image2.png"
};

// 创建引擎对象
VideoEngine engine = new VideoEngine();
Random r = new Random();
Sting renderId = engine.createRenderProcess(tplFolder, outputPath, r.nextInt(Integer.MAX_VALUE));

// 注册 license
engine.registerRenderProcessLicense(renderId, license);

// 替换素材
engine.setAssetPaths(renderId, paths);

// 启动渲染
try {
    boolean ret = engine.startRenderProcess(renderId);
} catch(Exception e) {
    // error handle
} finally {
    // 销毁渲染对象
    engine.destroyRenderProcess(renderId);
}
首页 > 服务端 SDK > Java SDK > 快速入门
快速入门
更新时间 : 2021-12-28 11:20:18
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

应用场景

基于 Java SDK 开发并自建渲染服务. 需购买按授权期限 license 使用.

渲染流程

设置license, 模板路径  ->  替换素材路径 -> 设置相关功能 ->  提交渲染  ->  等待渲染结果

快速集成

配置依赖环境参考:

下载 sdk 包后, 解压后导入项目.

基于 VeProcessRenderTask 的渲染示例代码

String license  = "license str";                          // 证书
String tplFolder = "/path/to/template/";                  // 模板目录
String outputPath ="/path/to/output.mp4";                 // 视频输出必须为 mp4 格式
String fontPath = "/path/fonts/Alibaba-PuHuiTi-Bold.otf"; // 字体路径
String musicPath = "/path/workspace/music.mp3";           // 设置音乐路径
String watermarkPath = "/path/workspace/watermark.png";   // 水印路径

// 替换素材, 确保路径不重复
String[] paths = {
    "/path/to/image1.png",
    "/path/to/image2.png"
};

// 创建渲染对象
VeProcessRenderTask task = new VeProcessRenderTask(license, tplFolder, outputPath);

// 替换素材
task.setAssetPaths(paths);

// 设置默认字体 
task.setDefaultFontPath(fontPath);

// 音乐相关功能
task.setMusicPath(musicPath, true);     // 设置音乐路径
task.setMusicFadeoutDuration(5);       // 设置音乐淡出时间
task.setMusicVolume(1.0f);              // 设置音乐音量大小
task.setMusicEnable(false);             // 设置是否开启背景音乐

// 开启保留视频素材中的音频
task.setRetainAudioOfVideo(true);       // 设置是否保留替换素材中的音频

// 设置水印相关功能
List<Watermark> list = new ArrayList<>();
Watermark mark = new Watermark();
List<String> watermarkPaths = new ArrayList<>();
watermarkPaths.add(watermarkPath);
mark.setPaths(watermarkPaths);

Watermark mark2 = new Watermark();
List<String> watermarkPaths2 = new ArrayList<>();
watermarkPaths2.add(watermarkPath);
mark2.setPaths(watermarkPaths2);
mark2.setPosX(400);

list.add(mark);
list.add(mark2);

task.setWatermarkList(list);


// 启动渲染, 等待渲染结果
try {
    boolean ret = task.render();                  // 启动渲染, 获取结果
    String info = task.getTaskRenderedInfo();    // 获取渲染信息


} catch (Exception e) {
    e.printStack();
} finally {
    task.destroy(); // 销毁渲染对象
}

ConfigUtils 模板解析详解

sdk 提供了 ConfigUtils 类进行模板的解析,获取模板的各种具体数据


String cPath = "/path/template/config.json";
// 读取 config.json 文件到字符串
StringBuilder sb = readFileByLines(cPath);
// 创建 ConfigUtils 对象
ConfigUtils configUtils = new ConfigUtils(sb.toString(), 0);

// 获取模板渲染出视频的时长
float duration = configUtils.getDuration();

// 模板是否有效
boolean isValid = configUtils.isValid();
// 获取模板的帧率
float fps = configUtils.getFps();
// 获取模板总共的帧数量
long frameCount = configUtils.getFrameCount();
// 获取模板的宽度
int width = configUtils.getWidth();
// 获取模板的高度
int height = configUtils.getHeight();
// 获取模板的类型
int templateType = configUtils.getTemplateType();

// 获取模板使用引擎的版本
String version = configUtils.getVersion();
// 获取模板使用的 UI 版本
String uiVersion = configUtils.getUIVersion();
// 获取模板的基本描述
String des = configUtils.getDescription();
// 获取模板的 id
String uuid = configUtils.getUUid();

// 获取模板可替换素材的基本信息,保存在 TemplateAsset 类中
ArrayList<TemplateAsset> assets = configUtils.getReplaceableAsset();
// 获取模板可替换素材的时间段
ArrayList<TemplateAssetTimeRange> assetTimeRanges = configUtils.getReplaceableAssetTimeRange();

// 释放 ConfigUtils 对象
configUtils.destroy();

基于 VideoEngine 的渲染示例代码

String license  = "license str";                  // 证书
String tplFolder = "/path/to/template/";     // 模板目录
String outputPath ="/path/to/output.mp4"; // 视频输出必须为 mp4 格式

// 替换素材, 确保路径不重复
String[] paths = {
    "/path/to/image1.png",
    "/path/to/image2.png"
};

// 创建引擎对象
VideoEngine engine = new VideoEngine();
Random r = new Random();
Sting renderId = engine.createRenderProcess(tplFolder, outputPath, r.nextInt(Integer.MAX_VALUE));

// 注册 license
engine.registerRenderProcessLicense(renderId, license);

// 替换素材
engine.setAssetPaths(renderId, paths);

// 启动渲染
try {
    boolean ret = engine.startRenderProcess(renderId);
} catch(Exception e) {
    // error handle
} finally {
    // 销毁渲染对象
    engine.destroyRenderProcess(renderId);
}