扫一扫咨询方案
English
中文
English
登录/注册

{user.username}

ID: {user.id}

剪辑 SDK 文档

SDK > 服务端 SDK > Java SDK > 剪辑管理类

剪辑管理类

更新时间 : 2021-07-15 09:39:19

SXEditManager

SXEditManager管理一个完整剪辑过程中的合成,以及不在单独合成(SXComposite)中的所有资源,包括组,轨道,特效等。

每个实例对象只管理自己生成的资源,建议同一时间不要创建多个,会占用较多内存空间。

1. 创建 SXEditManager

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);

2. 创建 SXTrackGroup 组内可以添加不同类型的轨道。

SXTrackGroup 轨道组, 是一个容器, 可以添加不同的轨道.

组在 SXEditManager 中顺序决定了轨道的画面覆盖, 序号高的 group 画面将会覆盖序号小的 group 画面

// 创建一个轨道组
SXTrackGroup group = editManager.addNewGroup();

3. 创建轨道,轨道需要加入组中才可以看到效果。

//创建一个媒体轨道
// 也可以创建贴纸, 文字, 音频轨道
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);

4. 为轨道添加特效

// 添加滤镜
SXFilterEffect filter = track.addFilter("workspace/assets/filter/f2", 10, -1);

// 设置特效时间跟随方式
filter.setEffectFollowType(SXEffectTimeFollowType.FollowEnd);

// 设置特效时间
filter.setDuration(5);

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();