更新时间 : 2021-07-15 09:39:19
SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成(SXComposite)中的所有资源,包括组,轨道,特效等。
每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。
SXEditManager需要用SXEditOptions对象来初始化,options中需要设置相应的参数。
// 所需验证的license,license无效时所有操作都不会生效,请检查控制台打印
String license = "";
//定义渲染宽度
int width = 1920;
//定义渲染高度
int height = 1080;
// 视频帧率
int fps = 25;
// 初始化参数
SXEditOptions options = new SXEditOptions(license, width, height, fps);
/**
* 初始化编辑管理类
* @param options 初始化参数,初始化时生效,后期修改无效
*/
SXEditManager editManager = new SXEditManager(options);
SXTrackGroup 轨道组, 是一个容器, 可以添加不同的轨道.
组在 SXEditManager 中顺序决定了轨道的画面覆盖, 序号高的 group 画面将会覆盖序号小的 group 画面
// 创建一个轨道组
SXTrackGroup group = editManager.addNewGroup();
//创建一个媒体轨道
// 也可以创建贴纸, 文字, 音频轨道
SXMediaTrack track = editManager.createMediaTrack("workspace/resources/1080p-5.mp4");
// 视频到合成
track.fitToComposite(true, 0);
// 设置时长为 5 秒
track.setDuration(5);
// 在轨道组第 0 秒添加 track
boolean ret = group.addTrack(track1, 0);
// 添加滤镜
SXFilterEffect filter = track.addFilter("workspace/assets/filter/f2", 10, -1);
// 设置特效时间跟随方式
filter.setEffectFollowType(SXEffectTimeFollowType.FollowEnd);
// 设置特效时间
filter.setDuration(5);
// 设置视频输出时长
double maxContentDuration = editManager.getContentMaxTime(true);
editManager.setDuration(maxContentDuration);
// 创建渲染任务
SXRenderEditTask task = new SXRenderEditTask(editManager, "workspace/output/o1.mp4");
// 设置渲染监听器
SXRenderEditTaskListener listener = new SXRenderEditTaskListener();
task.setListener(listener);
// 渲染生成视频
int retcode = task.startRender();
// 销毁
editManager.destroy();
task.destroy();
SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成(SXComposite)中的所有资源,包括组,轨道,特效等。
每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。
SXEditManager需要用SXEditOptions对象来初始化,options中需要设置相应的参数。
// 所需验证的license,license无效时所有操作都不会生效,请检查控制台打印
String license = "";
//定义渲染宽度
int width = 1920;
//定义渲染高度
int height = 1080;
// 视频帧率
int fps = 25;
// 初始化参数
SXEditOptions options = new SXEditOptions(license, width, height, fps);
/**
* 初始化编辑管理类
* @param options 初始化参数,初始化时生效,后期修改无效
*/
SXEditManager editManager = new SXEditManager(options);
SXTrackGroup 轨道组, 是一个容器, 可以添加不同的轨道.
组在 SXEditManager 中顺序决定了轨道的画面覆盖, 序号高的 group 画面将会覆盖序号小的 group 画面
// 创建一个轨道组
SXTrackGroup group = editManager.addNewGroup();
//创建一个媒体轨道
// 也可以创建贴纸, 文字, 音频轨道
SXMediaTrack track = editManager.createMediaTrack("workspace/resources/1080p-5.mp4");
// 视频到合成
track.fitToComposite(true, 0);
// 设置时长为 5 秒
track.setDuration(5);
// 在轨道组第 0 秒添加 track
boolean ret = group.addTrack(track1, 0);
// 添加滤镜
SXFilterEffect filter = track.addFilter("workspace/assets/filter/f2", 10, -1);
// 设置特效时间跟随方式
filter.setEffectFollowType(SXEffectTimeFollowType.FollowEnd);
// 设置特效时间
filter.setDuration(5);
// 设置视频输出时长
double maxContentDuration = editManager.getContentMaxTime(true);
editManager.setDuration(maxContentDuration);
// 创建渲染任务
SXRenderEditTask task = new SXRenderEditTask(editManager, "workspace/output/o1.mp4");
// 设置渲染监听器
SXRenderEditTaskListener listener = new SXRenderEditTaskListener();
task.setListener(listener);
// 渲染生成视频
int retcode = task.startRender();
// 销毁
editManager.destroy();
task.destroy();