我要求按帧修剪录制的视频/预先录制的视频。我得到了AVCatureSession
的东西来获得它。但我无法确定如何从第一时间帧和第二时间帧中获取选择的视频。这样我就可以在第一和第二时间帧之间获得修剪过的视频。
请指导我如何实现它。
运行代码将受到高度赞赏。
答案 0 :(得分:3)
你可以使用 AVMutableComposition 来完成这个任务 代码兼容 Swift 5
extension AVAsset {
func assetByTrimming(startTime: CMTime, endTime: CMTime) throws -> AVAsset {
let duration = CMTimeSubtract(endTime, startTime)
let timeRange = CMTimeRange(start: startTime, duration: duration)
let composition = AVMutableComposition()
do {
for track in tracks {
let compositionTrack = composition.addMutableTrack(withMediaType: track.mediaType, preferredTrackID: track.trackID)
compositionTrack?.preferredTransform = track.preferredTransform
try compositionTrack?.insertTimeRange(timeRange, of: track, at: CMTime.zero)
}
} catch let error {
throw TrimError("error during composition", underlyingError: error)
}
return composition
}
}