Class VideoEngine


  • public class VideoEngine
    extends java.lang.Object
    渲染核心库
    • Constructor Detail

      • VideoEngine

        public VideoEngine()
    • Method Detail

      • createRenderProcess

        public java.lang.String createRenderProcess​(java.lang.String tplFolder,
                                                    java.lang.String outputFile,
                                                    int key)
        创建进程模式渲染对象
        Parameters:
        tplFolder - , 模板目录
        outputFile - , 输出路径
        key - 随机数,同一时间保持唯一
        Returns:
        string render id
      • setRenderProcessLoggerLevel

        public static void setRenderProcessLoggerLevel​(LogLevel level)
        设置全局日志打印级别
        Parameters:
        level - , see LogLevel
      • registerRenderProcessLicense

        public boolean registerRenderProcessLicense​(java.lang.String id,
                                                    java.lang.String licenseStr)
        注册 license
        Parameters:
        id - , render id
        licenseStr - , 证书字符串
        Returns:
        boolean
      • getRenderProcessLicenseProfile

        public java.lang.String getRenderProcessLicenseProfile​(java.lang.String id)
        获取 License profile
        Parameters:
        id - render id
        Returns:
        String
      • isRenderProcessLicenseValid

        public boolean isRenderProcessLicenseValid​(java.lang.String id)
        检测注册的 License 是否有效
        Parameters:
        id - , render id
        Returns:
        boolean
      • setRenderProcessReplaceableFiles

        public boolean setRenderProcessReplaceableFiles​(java.lang.String id,
                                                        java.lang.String[] paths)
        设置主替换素材
        Parameters:
        id - , render id
        paths - , 素材数组
        Returns:
        boolean
      • setRenderProcessReplaceableJson

        public boolean setRenderProcessReplaceableJson​(java.lang.String id,
                                                       java.lang.String json)
        设置替换素材信息 参考 http://www.seeshiontech.com/docs/page_103.html
        Parameters:
        id - , render id
        json - , 素材信息
        Returns:
        boolean
      • setRenderProcessDynamicSubFiles

        public boolean setRenderProcessDynamicSubFiles​(java.lang.String id,
                                                       java.lang.String json)
        为动态模板设置关联的附加素材

        非动态模板设置无效

        Parameters:
        id - , render id
        json - , 素材数组
        Returns:
        boolean
      • setRenderProcessDynamicSubTexts

        public boolean setRenderProcessDynamicSubTexts​(java.lang.String id,
                                                       java.lang.String json)
        为动态模板设置关联的附加文字

        1. 当前文字是由 TextPainter 绘制,使用这个接口, 必须先设置好 assetPath 和 textpainter path
        2. 非动态模板设置无效

        Parameters:
        id - , render id
        json - , 文字素材数组
        Returns:
        boolean
      • setRenderProcessAssetPath

        public boolean setRenderProcessAssetPath​(java.lang.String id,
                                                 java.lang.String path)
        设置引擎生成的素材存放目录

        1. TextPainter 绘制的文字图片会被放到设置 AssetPath目录, 引擎不会对该目录执行清理动作, 需要调用方在渲染完成后,删除该目录进行清理
        2. 由于生成的素材可能与其他任务的图片重名, 确保每个任务使用单独的素材目录

        Parameters:
        id - , render id
        path - , 素材存放目录
        Returns:
        boolean
      • setRenderProcessTextPainterPath

        public boolean setRenderProcessTextPainterPath​(java.lang.String id,
                                                       java.lang.String path)
        设置文字绘制工具目录

        引擎会使用该目录的 TextPainter 和 font_list.json 进行文字绘制

        Parameters:
        id - , render id
        path - , 文字绘制工具目录
        Returns:
        boolean
      • setRenderProcessSnapShotPath

        public boolean setRenderProcessSnapShotPath​(java.lang.String id,
                                                    java.lang.String path)
        设置快照存储目录,确保一个目录同一时间只有一个任务使用

        引擎将使用该目录保存快照

        Parameters:
        id - , render id
        path - , 快照目录
        Returns:
        boolean
      • setRenderProcessSnapShotFrames

        public boolean setRenderProcessSnapShotFrames​(java.lang.String id,
                                                      int[] frames)
        设置快照帧索引

        [1, 100] 表示第1, 100 帧会被生成 1.png , 100.png 到 snapshot path 目录中

        Parameters:
        id - , render id
        frames -
        Returns:
        boolean
      • setRenderProcessMusicFile

        public boolean setRenderProcessMusicFile​(java.lang.String id,
                                                 java.lang.String musicPath,
                                                 boolean loop)
        设置音乐
        Parameters:
        id - , render id
        musicPath - , 音乐文件路径
        loop - 是否循环音乐
        Returns:
        boolean
      • setRenderProcessMusicLoop

        public boolean setRenderProcessMusicLoop​(java.lang.String id,
                                                 boolean loop)
        设置音乐是否循环
        Parameters:
        id - , render id
        loop - 是否循环音乐
        Returns:
        boolean
      • setRenderProcessMusicFadeoutDuration

        public boolean setRenderProcessMusicFadeoutDuration​(java.lang.String id,
                                                            int duration)
        设置音乐淡出时间, 单位秒
        Parameters:
        id - , render id
        duration - 淡出时间
        Returns:
        boolean
      • setRenderProcessMusicVolume

        public boolean setRenderProcessMusicVolume​(java.lang.String id,
                                                   float volume)
        设置音量控制参数
        Parameters:
        id - , render id
        volume -
        Returns:
        boolean
      • addRenderProcessAudioTrack

        public boolean addRenderProcessAudioTrack​(java.lang.String id,
                                                  java.lang.String audioPath,
                                                  float inPoint,
                                                  float duration,
                                                  float startTime,
                                                  float endTime,
                                                  boolean loop,
                                                  float volume)
        添加音轨, 此方法添加的音轨不会替换背景音乐
        Parameters:
        id -
        audioPath - , 包含音频的文件地址,比如 mp3, 带有音轨的 mp4
        inPoint - , 音频出现的时间点,单位:秒; 0: 起始点开始出现
        duration - , 音频持续时长,单位:秒; 0: 持续到视频结束
        startTime - , 音频截取开始时间点,单位:秒; 0: 从音频起始点开始截取
        endTime - , 音频截取结束时间点,单位: 秒; 0 截取到音频末尾
        loop - , 音频长度不够是否循环, 默认不循环
        volume - , 音量, 大于 0, 默认 1
      • addRenderProcessWatermark

        public boolean addRenderProcessWatermark​(java.lang.String id,
                                                 java.lang.String[] paths,
                                                 float posX,
                                                 float posY,
                                                 float timeStart,
                                                 float timeEnd,
                                                 float scaleX,
                                                 float scaleY)
        添加水印
        Parameters:
        id - , render id
        paths -
        posX - 水印 x 坐标
        posY - 水印 y 坐标
        timeStart - 开始时间,单位秒
        timeEnd - 结束时间,单位秒
        scaleX - x 轴缩放
        scaleY - y 轴缩放
        Returns:
        boolean
      • getRenderProcessProgress

        public float getRenderProcessProgress​(java.lang.String id)
        获取渲染进度 无论成功失败,最终都会返回 1.0, 范围 0.0 - 1.0
        Parameters:
        id - , render id
        Returns:
        float
      • getRenderProcessError

        public int getRenderProcessError​(java.lang.String id)
        获取渲染错误
        Parameters:
        id - , render id
        Returns:
        float
      • getRenderProcessStatus

        public java.lang.String getRenderProcessStatus​(java.lang.String id)
        获取渲染后的状态
        Parameters:
        id - , render id
        Returns:
        String
      • destroyRenderProcess

        public void destroyRenderProcess​(java.lang.String id)
        销毁渲染对象
        Parameters:
        id - , render id
      • setRenderProcessBitrateControl

        public boolean setRenderProcessBitrateControl​(java.lang.String id,
                                                      float control)
        设置比特率控制参数
        Parameters:
        id - , render id
        control - 0.0 - 1.0
        Returns:
        boolean
      • setRenderProcessScript

        public boolean setRenderProcessScript​(java.lang.String id,
                                              java.lang.String mainFile,
                                              java.lang.String scriptDir,
                                              java.lang.String data)
        设置渲染任务 Lua 脚本
        Parameters:
        id - , render id
        mainFile - lua main 函数所在文件路径
        scriptDir - lua 文件查找目录, 没有传空字符串
        data - 传给脚本的数据, 没有传空字符串
        Returns:
        boolean
      • getRenderProcessRenderedInfo

        public java.lang.String getRenderProcessRenderedInfo​(java.lang.String id)
        获取渲染后的信息

        在 startRenderProcess 后调用

        Parameters:
        id - render id
        Returns:
        String
      • setRenderProcessRetainAudioOfVideo

        public boolean setRenderProcessRetainAudioOfVideo​(java.lang.String id,
                                                          boolean retain)
        设置是否保留视频素材中的音频
        Parameters:
        id - render id
        Returns:
        boolean
      • setRenderProcessDynamicAdaptVideo

        public boolean setRenderProcessDynamicAdaptVideo​(java.lang.String id,
                                                         boolean adapt)
        设置是否对动态模板中的视频素材自适应
        Parameters:
        id - render id
        Returns:
        boolean
      • enableRenderProcessSourceManager

        public boolean enableRenderProcessSourceManager​(java.lang.String id,
                                                        boolean enable)
        开启素材缓存管理器,用于提升渲染速度,默认缓存池大小: 300, 单位: M
        Parameters:
        id - , render id
        enable - , true or false
        Returns:
        boolean
      • setRenderProcessSourceManagerCacheSize

        public boolean setRenderProcessSourceManagerCacheSize​(java.lang.String id,
                                                              int size)
        设置素材管理器缓存池大小,默认缓存池大小: 300, 单位: M
        Parameters:
        id - , render id
        size - , 大小, 单位: M
        Returns:
        boolean
      • createRenderClipProcess

        public java.lang.String createRenderClipProcess​(java.lang.String outputFile,
                                                        int key)
        创建进程模式剪辑渲染对象
        Parameters:
        outputFile - , 输出路径
        key - 随机数,同一时间保持唯一
        Returns:
        string render id
      • setRenderClipProcessParams

        public boolean setRenderClipProcessParams​(java.lang.String id,
                                                  int width,
                                                  int height,
                                                  float frameRate)
        设置剪辑的参数
        Parameters:
        id - , render id
        width - , 宽, px
        height - , 高, px
        frameRate - , 帧率, fps
        Returns:
        boolean
      • createRenderImageProcess

        public java.lang.String createRenderImageProcess​(java.lang.String[] imagePaths,
                                                         java.lang.String outputPath)
        创建图片进程模式渲染对象
        Parameters:
        imagePaths - , 图片路径数组
        outputPath - , 输出路径
        Returns:
        string render id
      • destroyRenderImageProcess

        public void destroyRenderImageProcess​(java.lang.String id)
        销毁图片渲染对象
        Parameters:
        id - , render id
      • registerRenderImageProcessLicense

        public boolean registerRenderImageProcessLicense​(java.lang.String id,
                                                         java.lang.String licenseStr)
        注册图片渲染 license
        Parameters:
        id - , render id
        licenseStr - , 证书字符串
        Returns:
        boolean
      • getRenderImageProcessLicenseProfile

        public java.lang.String getRenderImageProcessLicenseProfile​(java.lang.String id)
        获取图片渲染 License profile
        Parameters:
        id - render id
        Returns:
        String
      • isRenderImageProcessLicenseValid

        public boolean isRenderImageProcessLicenseValid​(java.lang.String id)
        检测图片渲染 License 是否有效
        Parameters:
        id - , render id
        Returns:
        boolean
      • addRenderImageProcessWatermark

        public boolean addRenderImageProcessWatermark​(java.lang.String id,
                                                      java.lang.String[] paths,
                                                      float posX,
                                                      float posY,
                                                      float timeStart,
                                                      float timeEnd,
                                                      float scaleX,
                                                      float scaleY)
        添加图片渲染水印
        Parameters:
        id - , render id
        paths -
        posX - 水印 x 坐标
        posY - 水印 y 坐标
        timeStart - 开始时间,单位秒
        timeEnd - 结束时间,单位秒
        scaleX - x 轴缩放
        scaleY - y 轴缩放
        Returns:
        boolean
      • addRenderImageProcessFilter

        public boolean addRenderImageProcessFilter​(java.lang.String id,
                                                   java.lang.String filterPath)
        添加图片渲染滤镜
        Parameters:
        id - , render id
        filterPath - , 滤镜路径
        Returns:
        boolean
      • createRenderCutProcess

        public java.lang.String createRenderCutProcess​(java.lang.String inputPath,
                                                       java.lang.String outputPath,
                                                       CutTaskType type)
        创建裁剪任务进程 裁剪任务使用 gif/视频文件 按照指定参数输出裁剪后的视频文件
        Parameters:
        inputPath - , 源文件路径,为 gif 或者视频文件
        outputPath - , 输出文件路径,以 .mp4 结尾
        type - , see CutTaskType
        Returns:
        String, renderId
      • setRenderCutProcessSize

        public boolean setRenderCutProcessSize​(java.lang.String id,
                                               int width,
                                               int height)
        设置输出尺寸, 不设置默认使用原始尺寸
        Parameters:
        id - , renderId
        width - , 宽 px
        height - , 高 px
        Returns:
        boolean
      • setRenderCutProcessTransform

        public boolean setRenderCutProcessTransform​(java.lang.String id,
                                                    int anchorX,
                                                    int anchorY,
                                                    int posX,
                                                    int posY,
                                                    float scale,
                                                    float rotation)
        设置变换参数
        Parameters:
        id - , renderId
        anchorX - , x 轴 锚点位置 px
        anchorY - , y 轴 锚点位置 px
        posX - , x 轴移动位置 px
        posY - , y 轴移动位置 px
        scale - , 缩放比例
        rotation - , 旋转角度
        Returns:
        boolean
      • setRenderCutProcessStartTime

        public boolean setRenderCutProcessStartTime​(java.lang.String id,
                                                    float startTime)
        设置裁剪开始时间, 秒
        Parameters:
        id - , renderId
        startTime - , 开始时间
        Returns:
        boolean
      • setRenderCutProcessDuration

        public boolean setRenderCutProcessDuration​(java.lang.String id,
                                                   float duration)
        设置裁剪时长 秒
        Parameters:
        id - , renderId
        duration - , 裁剪时长
        Returns:
        boolean
      • setRenderCutProcessBitrateControl

        public boolean setRenderCutProcessBitrateControl​(java.lang.String id,
                                                         float control)
        设置视频比特率参数,范围 > 0, 默认值 0.25
        Parameters:
        id - , renderId
        control - , 范围 > 0, 默认值 0.25
        Returns:
        boolean
      • startRenderCutProcess

        public boolean startRenderCutProcess​(java.lang.String id)
        开始渲染
        Parameters:
        id - , renderId
        Returns:
        boolean
      • destroyRenderCutProcess

        public void destroyRenderCutProcess​(java.lang.String id)
        释放渲染资源
        Parameters:
        id - , renderId