拆分 AVMutableComposition 并导出为多个较小的组合
Split AVMutableComposition and export as multiple smaller compositions
我正在构建一个需要以下功能的应用程序:
- 将视频组合成单个 AVMutableComposition 并将该单个视频组合呈现给用户。
- 以多个块导出视频合成。例如,如果整个作品的长度为 60 秒,则将其导出为 3 个 20 秒的视频。
拆分 AVMutableComposition 并将其导出为多个较小的组合的最有效方法是什么?
我提出了以下解决方案,但其中 none 似乎特别有效:
- 创建 x 个所需长度的作品。
- 创建整个合成的 x 个副本,并使用 removeTimeRange() 将每个副本 trim 分成更小的合成。
- 导出单个组合并使用该文件创建 x 个更短的 AVMutableCompositions。
在继续实施上述解决方案之一之前,我想确认没有我缺少的拆分 AVMutableComposition 的直接方法。
最有效的方法是根本不拆分合成。而是使用
AVAssetExportSession
的timeRange
属性,或
startSessionAtSourceTime
和 endSessionAtSourceTime
写 AVAssetWriter
我正在构建一个需要以下功能的应用程序:
- 将视频组合成单个 AVMutableComposition 并将该单个视频组合呈现给用户。
- 以多个块导出视频合成。例如,如果整个作品的长度为 60 秒,则将其导出为 3 个 20 秒的视频。
拆分 AVMutableComposition 并将其导出为多个较小的组合的最有效方法是什么?
我提出了以下解决方案,但其中 none 似乎特别有效:
- 创建 x 个所需长度的作品。
- 创建整个合成的 x 个副本,并使用 removeTimeRange() 将每个副本 trim 分成更小的合成。
- 导出单个组合并使用该文件创建 x 个更短的 AVMutableCompositions。
在继续实施上述解决方案之一之前,我想确认没有我缺少的拆分 AVMutableComposition 的直接方法。
最有效的方法是根本不拆分合成。而是使用
AVAssetExportSession
的timeRange
属性,或startSessionAtSourceTime
和endSessionAtSourceTime
写AVAssetWriter