!Imgurl

動画の逆再生処理を実装するために、AVUtilitiesというObjCで書かれたものがあったので、それをSwiftで置き換えてみました。

やっていることは大まかに下記になります。

  1. AVAssetReaderを利用して、CMSampleBufferRefの配列を読み込み
  2. 画像データを抜き出し、反転する
  3. AVAssetWriterを使ってoutputURLのファイルに書き出し
  4. 書き出しが完了したらcompletionHandlerを実行

実際にコードを見たほうが早いと思うので、こちらに。

こんな感じで実行できます。

AVUtilities.reverse(originalAsset, outputURL: output, completion: { [unowned self] (reversedAsset: AVAsset) in
   // do something.
})

参考資料