Xcode
avfoundation
Swift
Swift3.0

動画を回転させて保存 Swift3.0 AVfoundation

動画をアプリから端末に保存した時、こういう風に回転させた状態で保存したかったのですが、Swiftは言語がまだまだ新しい上に言語仕様の変更が一々早いのでインターネットによい情報が少なくて中々辛いものがあります。phpやffmpegを使えば簡単に実装できるのに...orz 小视频拍摄swift3.0さんマジありがとうございました、助かりました。

on.gif

実装

compositionの中でpreferredTransformというメソッドを使えば動画を回転させることができました。

let videoCompositionTrack = comp.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: kCMPersistentTrackID_Invalid)

do {

                try videoCompositionTrack.insertTimeRange(
                    CMTimeRangeMake(CMTimeMakeWithSeconds(Float64(videoStartPoint), 10), CMTimeMakeWithSeconds(Float64(videoEnddPoint), 10)),
                    of: videoAssetSourceTrack,
                    at: kCMTimeZero)

                //これ
                videoCompositionTrack.preferredTransform = CGAffineTransform(rotationAngle: CGFloat(M_PI_2))

ソース

動くソースをGitHubに上げておきます。
GitHub

参照

小视频拍摄swift3.0