KSYTranscoder Class Reference

Inherits from NSObject
Declared in KSYTranscoder.h

Overview

不同音视频文件格式间的转码

 1. 输入可以是本地文件/HTTP/RTMP/HLS
 2. 输出只能是本地文件
 3. 只提供不同封装格式间转换的功能,不涉及音视频编码格式的转换
 4. 目前只支持单路音视频流的转换
 5. 输出格式目前只支持FLV和MOV

– startTranscode:outputFilePath:

开始转换

- (void)startTranscode:(NSURL *)inputFilePath outputFilePath:(NSURL *)outputFilePath

Parameters

inputFilePath

输入文件路径

outputFilePath

输出文件路径

Declared In

KSYTranscoder.h

– stopTranscode

停止转换

- (void)stopTranscode

Discussion

与startTransform配对调用,除Idle状态外,其他状态下结束转码时都需要调用,否则可能会造成内存泄露

Declared In

KSYTranscoder.h

  duration

转换文件的总时长,单位是秒

@property (nonatomic, readonly) float duration

Declared In

KSYTranscoder.h

  position

当前转换位置,单位是秒

@property (nonatomic, readonly) float position

Declared In

KSYTranscoder.h

  progress

转换进度

@property (nonatomic, readonly) float progress

Discussion

取值从0.0~1.0,大小为position/duration;

Declared In

KSYTranscoder.h

  transcodeState

当前转码状况

@property (nonatomic, readonly) KSYTranscodeState transcodeState

Discussion

可以通过该属性获取转码器的工作状况

通知: * KSYTranscodeStateDidChangeNotification 当转码器状态发生变化时提供通知 * 可通过userInfo获取转换后的状态,关键字为KSYTranscodeStateUserInfoKey * 也可以收到通知后,通过本属性查询新的状态,并作出相应的动作

状态机转换: * 创建转码对象后状态为KSYTranscodeState_Idle * 只能在KSYTranscodeStateIdle状态下调用 startTranscode 方法, - 成功状态转为KSYTranscodeStateTranscoding - 失败则转为KSYTranscodeStateError * 开始转码后 - 转码完成状态转为KSYTranscodeStateCompleted - 转码过程中出现问题状态转为KSYTranscodeStateError * 调用 stopTranscode 可将状态转为KSYTranscodeStateIdle

Declared In

KSYTranscoder.h

  transcodeErrorCode

转码器的错误码

@property (nonatomic, readonly) KSYTranscodeErrorCode transcodeErrorCode

Discussion

可以通过该属性获取转码失败的原因 @discussion * 当transcoderStatus为KSYTranscodeState_Error时可查询 * 当transcoderStatus为其他值时,错误码为KSYTranscodingErrorCode_NONE

通知: * KSYTranscodeStateDidChangeNotification 当转码器状态发生变化时提供通知 * 可通过userInfo获取当前错误码,关键字为KSYTranscodeErrorCodeInfoKey

Declared In

KSYTranscoder.h