TXVideoEditer Class Reference

Inherits from NSObject
Declared in TXVideoEditer.h

Overview

视频编辑类

Other Methods

  generateDelegate

生成视频回调的委托对象, 可以获取生成进度与完成时间等

@property (nonatomic, weak) id<TXVideoGenerateListener> generateDelegate

Declared In

TXVideoEditer.h

  previewDelegate

视频预览回调的委托对象,可以获取视频的播放进度等

@property (nonatomic, weak) id<TXVideoPreviewListener> previewDelegate

Declared In

TXVideoEditer.h

  videoProcessDelegate

视频画面处理的委托对象,可以获取视频画面的OpenGL纹理ID [精简版不支持]

@property (nonatomic, weak) id<TXVideoCustomProcessListener> videoProcessDelegate

Declared In

TXVideoEditer.h

  supportsTwoPassEncoding

判断是否支持TwoPass-Encoding [精简版不支持]

@property (nonatomic, readonly) BOOL supportsTwoPassEncoding

Declared In

TXVideoEditer.h

– initWithPreview:

默认初始化方法

- (instancetype)initWithPreview:(TXPreviewParam *)param

Parameters

param

编辑器画面预览参数

See Also

Declared In

TXVideoEditer.h

– setVideoPath:

设置视频文件路径

- (int)setVideoPath:(NSString *)videoPath

Parameters

videoPath

视频文件路径

Return Value

0 成功; -1 视频文件不存在; -2 视频不支持:暂不支持2个声道以上的视频编辑

Declared In

TXVideoEditer.h

– setVideoAsset:

设置视频 AVAsset

- (int)setVideoAsset:(AVAsset *)videoAsset

Parameters

videoAsset

视频AVAsset对象,从本地相册loading出来的视频,可以直接传入对应的视频属性,会极大的降低视频从相册loading的时间,具体请参考demo用法

Return Value

0 成功; -1 视频属性asset 为nil; -2 视频不支持:暂不支持2个声道以上的视频编辑

Declared In

TXVideoEditer.h

– setPictureList:fps:

设置转场图片列表 [精简版不支持]

- (int)setPictureList:(NSArray<UIImage*> *)pitureList fps:(int)fps

Parameters

pitureList

转场图片列表,至少设置三张图片 (tips :图片最好压缩到720P以下(参考demo用法),否则内存占用可能过大,导致编辑过程异常)

fps

转场图片生成视频后的fps (15 ~ 30)

Return Value

0 设置成功; -1 设置失败,请检查图片列表是否存在,图片数量是否大于等于3张,fps是否正常;

Declared In

TXVideoEditer.h

– setPictureTransition:duration:

设置图片转场类型 [精简版不支持]

- (void)setPictureTransition:(TXTransitionType)transitionType duration:(void ( ^ ) ( CGFloat ))duration

Parameters

transitionType

转场类型,详情见 TXTransitionType

duration

转场视频时长(tips:同一个图片列表,每种转场动画的持续时间可能不一样,这里可以获取转场图片的持续时长);

Declared In

TXVideoEditer.h

预览逻辑相关方法

– previewAtTime:

渲染某一时刻的视频画面

- (void)previewAtTime:(CGFloat)time

Parameters

time

预览帧时间(s)

Declared In

TXVideoEditer.h

– startPlayFromTime:toTime:

播放某一时间段的视频

- (void)startPlayFromTime:(CGFloat)startTime toTime:(CGFloat)endTime

Parameters

startTime

播放起始时间(s)

endTime

播放结束时间(s)

Declared In

TXVideoEditer.h

– pausePlay

暂停播放

- (void)pausePlay

Declared In

TXVideoEditer.h

– resumePlay

继续播放

- (void)resumePlay

Declared In

TXVideoEditer.h

– stopPlay

停止播放

- (void)stopPlay

Declared In

TXVideoEditer.h

– setBeautyFilter:setWhiteningLevel:

设置美颜,美白级别 0~9

- (void)setBeautyFilter:(float)beautyLevel setWhiteningLevel:(float)whiteningLevel

Parameters

beautyLevel

磨皮级别 0~9

whiteningLevel

美白级别 0~9

Declared In

TXVideoEditer.h

– setFilter:

设置特效滤镜

- (void)setFilter:(UIImage *)image

Parameters

image

滤镜图片

Declared In

TXVideoEditer.h

– setFilter:leftIntensity:rightFilter:rightIntensity:leftRatio:

设置两个滤镜效果

- (void)setFilter:(UIImage *)leftFilter leftIntensity:(CGFloat)leftIntensity rightFilter:(UIImage *)rightFilter rightIntensity:(CGFloat)rightIntensity leftRatio:(CGFloat)leftRatio

Parameters

leftFilter

左滤镜图片(nil代表无左滤镜)

leftIntensity

左滤镜浓度

rightFilter

右滤镜图片(nil代表无右滤镜)

rightIntensity

右滤镜浓度

leftRatio

左滤镜所占比例

Declared In

TXVideoEditer.h

– setSpecialRatio:

设置滤镜效果程度

- (void)setSpecialRatio:(float)specialRatio

Parameters

specialRatio

从0到1,越大滤镜效果越明显,默认取值0.5

Declared In

TXVideoEditer.h

– setReverse:

设置倒放 [精简版不支持]

- (void)setReverse:(BOOL)isReverse

Parameters

isReverse

是否倒放

Declared In

TXVideoEditer.h

– setRepeatPlay:

设置重复播放 [精简版不支持]

- (void)setRepeatPlay:(NSArray<TXRepeat*> *)repeatList

Parameters

repeatList

重复播放的范围列表

See Also

Declared In

TXVideoEditer.h

– setRenderRotation:

设置画面渲染角度 [精简版不支持]

- (void)setRenderRotation:(int)rotation

Parameters

rotation

画面渲染角度, 必须是90的倍数

Discussion

Warning: 只支持视频旋转

Declared In

TXVideoEditer.h

– setSpeedList:

设置视频加速播级别 [精简版不支持]

- (void)setSpeedList:(NSArray<TXSpeed*> *)speedList

Parameters

speedList

加速范围列表

Declared In

TXVideoEditer.h

– startEffect:startTime:

开始特效 [精简版不支持]

- (void)startEffect:(TXEffectType)type startTime:(float)startTime

Parameters

type

特效类型

startTime

特效开始时间

Declared In

TXVideoEditer.h

– stopEffect:endTime:

结束特效 [精简版不支持]

- (void)stopEffect:(TXEffectType)type endTime:(float)endTime

Parameters

type

特效类型

endTime

特效结束时间

Declared In

TXVideoEditer.h

– deleteLastEffect

删除最后一个添加的特效 [精简版不支持]

- (void)deleteLastEffect

Declared In

TXVideoEditer.h

– deleteAllEffect

删除所有特效 [精简版不支持]

- (void)deleteAllEffect

Declared In

TXVideoEditer.h

贴纸相关方法 [精简版不支持]

– setSubtitleList:

设置字幕(气泡)列表 [精简版不支持]

- (void)setSubtitleList:(NSArray<TXSubtitle*> *)subtitleList

Parameters

subtitleList

字幕列表

Declared In

TXVideoEditer.h

– setPasterList:

设置静态贴纸 [精简版不支持]

- (void)setPasterList:(NSArray<TXPaster*> *)pasterList

Parameters

pasterList

静态贴纸列表

Declared In

TXVideoEditer.h

– setAnimatedPasterList:

设置动图列表 [精简版不支持]

- (void)setAnimatedPasterList:(NSArray<TXAnimatedPaster*> *)animatedPasterList

Parameters

animatedPasterList

动态贴纸列表

Declared In

TXVideoEditer.h

BGM相关方法

– setBGM:result:

设置背景音乐 [精简版不支持]

- (void)setBGM:(NSString *)path result:(void ( ^ ) ( int ))result

Parameters

path

音乐文件路径

result

0:成功, -1:音乐文件格式不支持

Declared In

TXVideoEditer.h

– setBGMAsset:result:

设置背景音乐 [精简版不支持]

- (void)setBGMAsset:(AVAsset *)asset result:(void ( ^ ) ( int ))result

Parameters

asset

音乐AVAsset对象, 从系统媒体库loading出来的音乐,可以直接传入对应的音乐属性,会极大的降低音乐从系统媒体库loading的时间,具体请参考demo用法

result

0:成功, -1:音乐文件格式不支持

Declared In

TXVideoEditer.h

– setBGMStartTime:endTime:

设置背景音乐的起始时间和结束时间 [精简版不支持]

- (void)setBGMStartTime:(float)startTime endTime:(float)endTime

Parameters

startTime

音乐起始时间

endTime

音乐结束时间

Declared In

TXVideoEditer.h

– setBGMLoop:

设置背景音乐是否循环播放 [精简版不支持]

- (void)setBGMLoop:(BOOL)isLoop

Parameters

isLoop

是否循环播放

Declared In

TXVideoEditer.h

– setBGMAtVideoTime:

设置背景音乐在视频的添加的起始位置 [精简版不支持]

- (void)setBGMAtVideoTime:(float)time

Parameters

time

背景音乐在视频的添加的起始时间

Declared In

TXVideoEditer.h

– setVideoVolume:

设置视频声音大小 [精简版不支持]

- (void)setVideoVolume:(float)volume

Parameters

volume

音量, 取值范围 0.0 ~ 1.0

Declared In

TXVideoEditer.h

– setBGMVolume:

设置背景音乐声音大小 [精简版不支持]

- (void)setBGMVolume:(float)volume

Parameters

volume

背景音量, 取值范围 0.0 ~ 1.0

Declared In

TXVideoEditer.h

– setBGMFadeInDuration:fadeOutDuration:

设置背景音淡入淡出

- (void)setBGMFadeInDuration:(float)fadeInDuration fadeOutDuration:(float)fadeOutDuration

Parameters

fadeInDuration

淡入持续时长 (s)

fadeOutDuration

淡出持续时长 (s)

Declared In

TXVideoEditer.h

水印相关方法

– setWaterMark:normalizationFrame:

设置全局水印 [精简版不支持]

- (void)setWaterMark:(UIImage *)waterMark normalizationFrame:(CGRect)normalizationFrame

Parameters

waterMark

全局水印图片

normalizationFrame

水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1; height不用设置,sdk内部会根据水印宽高比自动计算height; 比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0), 水印的实际像素坐标为(540 * 0.1,960 * 0.1,540 * 0.1 ,540 * 0.1 * waterMark.size.height / waterMark.size.width)

Declared In

TXVideoEditer.h

– setTailWaterMark:normalizationFrame:duration:

设置片尾水印 [精简版不支持]

- (void)setTailWaterMark:(UIImage *)tailWaterMark normalizationFrame:(CGRect)normalizationFrame duration:(CGFloat)duration

Parameters

tailWaterMark

片尾水印图片

normalizationFrame

水印相对于视频图像的归一化frame,x,y,width,height 取值范围 0~1; height不用设置,sdk内部会根据水印宽高比自动计算height; 比如视频图像大小为(540,960) frame设置为(0.1,0.1,0.1,0), 水印的实际像素坐标为(540 * 0.1,960 * 0.1,540 * 0.1 ,540 * 0.1 * waterMark.size.height / waterMark.size.width)

duration

水印的持续时长

Declared In

TXVideoEditer.h

视频生成相关方法

– setCutFromTime:toTime:

设置视频剪裁

- (void)setCutFromTime:(float)startTime toTime:(float)endTime

Parameters

startTime

视频起始时间

endTime

视频结束时间

Declared In

TXVideoEditer.h

– setVideoBitrate:

设置视频码率

- (void)setVideoBitrate:(int)bitrate

Parameters

bitrate

视频码率 单位:kbps 如果设置了码率,SDK生成视频会优先使用这个码率,注意码率不要太大或则太小,码率太小视频会模糊不清,码率太大,生成视频体积会很大 这里建议设置范围为:600~12000,如果没有调用这个接口,SDK内部会根据压缩质量自动计算码率

Declared In

TXVideoEditer.h

– generateVideo:videoOutputPath:

生成视频 优点:兼容性好,支持各种操作类型的视频生成,生成的视频文件在各个平台播放的兼容性好 缺点:生成视频速度稍慢 调用之后在TXVideoGenerateListener里面监听结果回调

- (void)generateVideo:(TXVideoCompressed)videoCompressed videoOutputPath:(NSString *)videoOutputPath

Parameters

videoCompressed

视频压缩质量

videoOutputPath

视频操作之后存储路径

Declared In

TXVideoEditer.h

– quickGenerateVideo:videoOutputPath:

使用系统函数快速生成视频 优点:生成视频速度快 缺点:1,剪切出来的视频在各个平台播放的兼容性稍差 2,只有剪切和压缩操作才会使用系统函数,其他情况系统不支持,SDK内部会自动走正常视频生成的逻辑 调用之后在 TXVideoGenerateListener 里面监听结果回调

- (void)quickGenerateVideo:(TXVideoCompressed)videoCompressed videoOutputPath:(NSString *)videoOutputPath

Parameters

videoCompressed

视频压缩质量

videoOutputPath

视频操作之后存储路径

Declared In

TXVideoEditer.h

– generateVideoWithTwoPass:videoOutputPath:

两次扫描生成视频(Two-Pass Encoding) [精简版不支持] 优点:兼容性好,在同等码率下视频更加清晰,可以在较低码率下保持视频质量,支持各种操作类型的视频生成,生成的视频文件在各个平台播放的兼容性好 缺点:生成视频慢 调用之后在TXVideoGenerateListener里面监听结果回调

- (void)generateVideoWithTwoPass:(TXVideoCompressed)videoCompressed videoOutputPath:(NSString *)videoOutputPath

Parameters

videoCompressed

视频压缩质量

videoOutputPath

视频操作之后存储路径

Declared In

TXVideoEditer.h

– pauseGenerate

暂停视频生成,仅适用于generateVideo,quickGenerateVideo调用无效

- (void)pauseGenerate

Discussion

SDK生成视频默认采用的是硬编码(编码效率高,编码出来的图像效果好),硬编码器在程序进后台后会停止工作,从而导致视频生成失败, 这里新增了两个接口pauseGenerate,resumeGenerate,程序进后台后您可以调用pauseGenerate暂停视频生成,程序重新进前台后, 您可以调用resumeGenerate 继续视频生成,这里需要注意的是,调用resumeGenerate,sdk会重启硬编码器,会有一定的概率重启失败, 或则重启后前几帧数据编码失败,这个时候SDK内部会在 TXVideoGenerateListener 抛出编码错误事件,收到错误事件后您需要重新生成视频。

See Also

Declared In

TXVideoEditer.h

– resumeGenerate

继续视频生成,仅适用于generateVideo,quickGenerateVideo调用无效

- (void)resumeGenerate

See Also

Declared In

TXVideoEditer.h

– cancelGenerate

停止视频文件生成

- (void)cancelGenerate

Declared In

TXVideoEditer.h