AVMutableVideoCompositionを使用してiOSで複数のビデオを結合する

画像 こんにちは、Habr!

ビデオの結合の問題を解決するために必要なプロジェクトの1つでは、特に、ユーザーはビデオを一時停止してから記録を続行できました(反復回数は不明でした)。 したがって、利用可能な手段でこの問題を解決する方法を見つける必要がありました。 もちろん、一度にすべてを1つのファイルに書き込むか、別のファイルに書き込み、セッション後にそれらを接着するかの2つのオプションがありました。 私は2番目にとどまることにしました、そして、それから来たものは、カットの下で読みました。



ビデオを記録するために、私たちのお気に入りのサイトに親切に配置されたAVCamアプリケーションに基づいてAVCamCaptureManagerを使用しました 。 さて、停止ボタンを押した後、楽しみが始まりました。



ステージ1.準備。

この段階で、次を実行します。











ステージ2.ファイルを検索し、アセットを作成し、指示を生成し、必要に応じてビデオトラックを変換します。













ステージ3. MainInstructionパラメーターの設定とAVMutableVideoCompositionの形成











ステージ4. AVAssetExportSessionを介して受信したビデオを保存する

最高プリセットとプリセットの違いは非常に重要です。 したがって、ソーシャルネットワークで動画を配信する予定がある場合は、中を使用することを強くお勧めします。





可能なエクスポートステータス:

ここには何がありますか?
  switch (exporter.status) { case AVAssetExportSessionStatusCompleted: NSLog(@"Completed exporting!"); break; case AVAssetExportSessionStatusFailed: NSLog(@"Failed:%@", exporter.error.description); break; case AVAssetExportSessionStatusCancelled: NSLog(@"Canceled:%@", exporter.error); break; case AVAssetExportSessionStatusExporting: NSLog(@"Exporting!"); break; case AVAssetExportSessionStatusWaiting: NSLog(@"Waiting"); break; default: break; }
      
      







おわりに


記事では、ビデオの結合に焦点を当てようとしましたが、この投稿は、将来このようなタスクに直面するiOS開発に関与する多くのHabrovskの人々に役立つと思います。 将来、私はCMTimeについて、そしてなぜそれが単なる「時間」ではないのかについてもっと話すつもりです。 ところで、トピックに関する多くの有用な情報がサイトにあります 。 メソッド自体はリポジトリで見つけることができます。



All Articles