我们如何在iOS中按时间帧获取剪裁视频?

时间:2014-03-21 06:11:16

标签: ios iphone avcapturesession video-editing

我要求按帧修剪录制的视频/预先录制的视频。我得到了AVCatureSession的东西来获得它。但我无法确定如何从第一时间帧和第二时间帧中获取选择的视频。这样我就可以在第一和第二时间帧之间获得修剪过的视频。 请指导我如何实现它。 运行代码将受到高度赞赏。

1 个答案:

答案 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
    }

}