VideoConverter
介绍
视频可以通过 x, y, width 和 height 来裁剪,可以旋转 0, 90, 180, 270 度。您还可以通过 startTime 和 endTime 或 durationTime 调整视频播放时长,也可以选择静音模式。
VideoConverter
- | - | - |
---|---|---|
![]() |
![]() |
![]() |
裁剪 | 裁剪 | 旋转 |
---|---|---|
![]() |
![]() |
![]() |
需求
安装
VideoConverter 通过 CocoaPods 提供。为了安装它,只需将以下行添加到您的 Podfile 中即可
pod 'VideoConverter'
使用
import VideoConverter
let videoConverter = VideoConverter(asset: asset)
videoConverter.convert { (url, error) in
}
转换
videoConverter.convert(<#T##option: ConverterOption?##ConverterOption?#>, progress: <#T##((Double?) -> Void)?##((Double?) -> Void)?##(Double?) -> Void#>, completion: <#T##((URL?, Error?) -> Void)##((URL?, Error?) -> Void)##(URL?, Error?) -> Void#>)
var videoConverterCrop: ConverterCrop?
if let dimFrame = self.videoView.dimFrame {
videoConverterCrop = ConverterCrop(frame: dimFrame, contrastSize: self.videoView.videoRect.size)
}
videoConverter.convert(ConverterOption(
trimRange: CMTimeRange(start: self.videoTrim.startTime, duration: self.videoTrim.durationTime),
convertCrop: videoConverterCrop,
rotate: CGFloat(.pi/2 * self.rotate),
quality: self.preset,
isMute: self.isMute), progress: { [weak self] (progress) in
self?.progressView.setProgress(Float(progress ?? 0), animated: false)
}, completion: { [weak self] (url, error) in
if let error = error {
let alertController = UIAlertController(title: nil, message: error.localizedDescription, preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Confirm", style: .default, handler: nil))
self?.present(alertController, animated: true)
} else {
self?.convertVideoView.url = url
self?.progressView.setProgress(0, animated: false)
}
})
转换选项
var trimRange: CMTimeRange // Start time and end time or start time and duration time
var convertCrop: ConverterCrop // Crop position, size
var rotate: CGFloat // radian rotation
var quality: String // Video quality
var isMute: Bool // Mute mode
转换裁剪
var frame: CGRect // Crop position, size
var contrastSize: CGSize // Crop reference size
作者
pikachu987, [email protected]
许可协议
VideoConverter遵循MIT许可协议。更多信息请参阅LICENSE文件。