TXVideoEditerTypeDef.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. #ifndef TXVideoEditerTypeDef_H
  2. #define TXVideoEditerTypeDef_H
  3. #import <Foundation/Foundation.h>
  4. #import <UIKit/UIKit.h>
  5. /// @defgroup TXVideoEditerTypeDef_ios TXVideoEditerTypeDef
  6. /// 视频编辑关键类型定义
  7. /// @{
  8. /// 视频信息
  9. @interface TXVideoInfo : NSObject
  10. /// 视频首帧图片
  11. @property (nonatomic, strong) UIImage* coverImage;
  12. /// 视频时长(s)
  13. @property (nonatomic, assign) CGFloat duration;
  14. /// 视频大小(byte)
  15. @property (nonatomic, assign) unsigned long long fileSize;
  16. /// 视频fps
  17. @property (nonatomic, assign) float fps;
  18. /// 视频码率 (kbps)
  19. @property (nonatomic, assign) int bitrate;
  20. /// 音频采样率
  21. @property (nonatomic, assign) int audioSampleRate;
  22. /// 视频宽度
  23. @property (nonatomic, assign) int width;
  24. /// 视频高度
  25. @property (nonatomic, assign) int height;
  26. /// 视频旋转角度
  27. @property (nonatomic, assign) int angle;
  28. @end
  29. /// 短视频预览参数
  30. typedef NS_ENUM(NSInteger, TXPreviewRenderMode)
  31. {
  32. /// 填充模式,尽可能充满屏幕不留黑边,所以可能会裁剪掉一部分画面
  33. PREVIEW_RENDER_MODE_FILL_SCREEN = 0,
  34. /// 黑边模式,尽可能保持画面完整,但当宽高比不合适时会有黑边出现
  35. PREVIEW_RENDER_MODE_FILL_EDGE = 1,
  36. };
  37. /// 短视频预览参数
  38. @interface TXPreviewParam : NSObject
  39. /// 视频预览View
  40. @property (nonatomic, strong) UIView* videoView;
  41. /// 填充模式
  42. /// @see TXPreviewRenderMode
  43. @property (nonatomic, assign) TXPreviewRenderMode renderMode;
  44. @end
  45. /// 字幕
  46. @interface TXSubtitle: NSObject
  47. /// 字幕图片 (这里需要客户把承载文字的控件转成image图片)
  48. @property (nonatomic, strong) UIImage* titleImage;
  49. /// 字幕的frame(注意这里的frame坐标是相对于渲染view的坐标)
  50. @property (nonatomic, assign) CGRect frame;
  51. /// 字幕起始时间(s)
  52. @property (nonatomic, assign) CGFloat startTime;
  53. /// 字幕结束时间(s)
  54. @property (nonatomic, assign) CGFloat endTime;
  55. @end
  56. /// 贴纸
  57. @interface TXPaster: NSObject
  58. /// 贴纸图片
  59. @property (nonatomic, strong) UIImage* pasterImage;
  60. /// 贴纸frame(注意这里的frame坐标是相对于渲染view的坐标)
  61. @property (nonatomic, assign) CGRect frame;
  62. /// 贴纸起始时间(s)
  63. @property (nonatomic, assign) CGFloat startTime;
  64. /// 贴纸结束时间(s)
  65. @property (nonatomic, assign) CGFloat endTime;
  66. @end
  67. /// 动图
  68. @interface TXAnimatedPaster: NSObject
  69. /// 动图文件路径
  70. @property (nonatomic, strong) NSString* animatedPasterpath;
  71. /// 动图的frame(注意这里的frame坐标是相对于渲染view的坐标)
  72. @property (nonatomic, assign) CGRect frame;
  73. /// 动图旋转角度 (0 ~ 360)
  74. @property (nonatomic, assign) CGFloat rotateAngle;
  75. /// 动图起始时间(s)
  76. @property (nonatomic, assign) CGFloat startTime;
  77. /// 动图结束时间(s)
  78. @property (nonatomic, assign) CGFloat endTime;
  79. @end
  80. /// 重复播放
  81. @interface TXRepeat: NSObject
  82. /// 重复播放起始时间(s)
  83. @property (nonatomic, assign) CGFloat startTime;
  84. /// 重复播放结束时间(s)
  85. @property (nonatomic, assign) CGFloat endTime;
  86. /// 重复播放次数
  87. @property (nonatomic, assign) int repeatTimes;
  88. @end
  89. /// 快慢速播放类型
  90. typedef NS_ENUM(NSInteger, TXSpeedLevel) {
  91. /// 极慢速
  92. SPEED_LEVEL_SLOWEST,
  93. /// 慢速
  94. SPEED_LEVEL_SLOW,
  95. /// 正常速
  96. SPEED_LEVEL_NOMAL,
  97. /// 快速
  98. SPEED_LEVEL_FAST,
  99. /// 极快速
  100. SPEED_LEVEL_FASTEST,
  101. };
  102. /// 加速播放参数
  103. @interface TXSpeed: NSObject
  104. /// 加速播放起始时间(s)
  105. @property (nonatomic, assign) CGFloat startTime;
  106. /// 加速播放结束时间(s)
  107. @property (nonatomic, assign) CGFloat endTime;
  108. /// 加速级别
  109. @property (nonatomic, assign) TXSpeedLevel speedLevel;
  110. @end
  111. /// 视频特效类型
  112. typedef NS_ENUM(NSInteger,TXEffectType)
  113. {
  114. /// 动感光波
  115. TXEffectType_ROCK_LIGHT,
  116. /// 暗黑幻境
  117. TXEffectType_DARK_DRAEM,
  118. /// 灵魂出窍
  119. TXEffectType_SOUL_OUT,
  120. /// 视频分裂
  121. TXEffectType_SCREEN_SPLIT,
  122. /// 百叶窗
  123. TXEffectType_WIN_SHADOW,
  124. /// 鬼影
  125. TXEffectType_GHOST_SHADOW,
  126. /// 幻影
  127. TXEffectType_PHANTOM,
  128. /// 幽灵
  129. TXEffectType_GHOST,
  130. /// 闪电
  131. TXEffectType_LIGHTNING,
  132. /// 镜像
  133. TXEffectType_MIRROR,
  134. /// 幻觉
  135. TXEffectType_ILLUSION,
  136. TXEffectType_Count
  137. };
  138. /**
  139. * 转场特效
  140. */
  141. typedef NS_ENUM(NSInteger,TXTransitionType)
  142. {
  143. /// 左右滑动
  144. TXTransitionType_LefRightSlipping,
  145. /// 上下滑动
  146. TXTransitionType_UpDownSlipping,
  147. /// 放大
  148. TXTransitionType_Enlarge,
  149. /// 缩小
  150. TXTransitionType_Narrow,
  151. /// 旋转缩放
  152. TXTransitionType_RotationalScaling,
  153. /// 淡入淡出
  154. TXTransitionType_FadeinFadeout,
  155. };
  156. /// 生成视频结果错误码定义
  157. typedef NS_ENUM(NSInteger, TXGenerateResultCode)
  158. {
  159. /// 生成视频成功
  160. GENERATE_RESULT_OK = 0,
  161. /// 生成视频失败
  162. GENERATE_RESULT_FAILED = -1,
  163. /// 生成视频取消
  164. GENERATE_RESULT_CANCEL = -2,
  165. /// licence 验证失败
  166. GENERATE_RESULT_LICENCE_VERIFICATION_FAILED = -5,
  167. };
  168. /// 生成视频结果
  169. @interface TXGenerateResult : NSObject
  170. /// 错误码
  171. /// @see TXGenerateResultCode
  172. @property (nonatomic, assign) TXGenerateResultCode retCode;
  173. /// 错误描述信息
  174. @property (nonatomic, strong) NSString* descMsg;
  175. @end
  176. /// 视频合成结果错误码定义
  177. typedef NS_ENUM(NSInteger, TXJoinerResultCode)
  178. {
  179. /// 合成成功
  180. JOINER_RESULT_OK = 0,
  181. /// 合成失败
  182. JOINER_RESULT_FAILED = -1,
  183. /// licence 验证失败
  184. JOINER_RESULT_LICENCE_VERIFICATION_FAILED = -5,
  185. };
  186. /// 短视频合成结果
  187. @interface TXJoinerResult : NSObject
  188. /// 错误码
  189. /// @see TXJoinerResultCode
  190. @property (nonatomic, assign) TXJoinerResultCode retCode;
  191. /// 错误描述信息
  192. @property (nonatomic, strong) NSString* descMsg;
  193. /**
  194. * 短视频压缩质量
  195. * 注意如果视频的分辨率小于压缩到的目标分辨率,视频不会被压缩,会保留原画
  196. */
  197. typedef NS_ENUM(NSInteger, TXVideoCompressed)
  198. {
  199. /// 压缩至360P分辨率
  200. VIDEO_COMPRESSED_360P = 0,
  201. /// 压缩至480P分辨率
  202. VIDEO_COMPRESSED_480P = 1,
  203. /// 压缩至540P分辨率
  204. VIDEO_COMPRESSED_540P = 2,
  205. /// 压缩至720P分辨率
  206. VIDEO_COMPRESSED_720P = 3,
  207. };
  208. @end
  209. /// @}
  210. #endif