我正在使用 AVAssetExportSession 导出保存在我的文档目录中的视频。我希望将 CALayer 应用于视频,因此我正在使用 AVMutableVideoComposition 并设置必要的 AVMutableVideoCompositionInstruction 和视频导出正常。
我的问题是,假设现在原始视频的分辨率为 1920x1080,当我通过将视频合成的渲染大小设置为 1920x640 来导出此视频时,它给了我一个大小为 640x360 的视频。
我尝试将渲染大小设置为较小的值,例如 300x300,当然通过裁剪额外的内容,我得到了大小为 300x300 的导出视频。然后我尝试将 rendersixe 设置为 700x700,结果是 640x640 视频。
我能理解的是,它根据我们设置的渲染大小保持纵横比,因此当我将大小设置为 1920x1080 时,它会提供 630x360 的视频,保持 16:9 的比例。同样,当我将大小设置为 700x700 时,它会生成一个大小为 640x640 且纵横比为 1:1 的视频。
问题
我希望视频大小与其原始大小相同。但是,当我将 mutablevideoComposition 的大小设置为原始视频轨道的 naturalSize 时,它会将我的大小限制在 640x640 以下(如果大小超过 640x640)。
这是一种已知的行为吗?还是我错过了什么。如果这是一种已知行为,是否有另一种方法可以以原始大小或大于 640x640 的大小导出视频。
我们将非常感谢您的帮助。感谢期待。
Best Answer-推荐答案 strong>
我想通了。这是一个简单的错误。我正在使用 AVAssetExportPreset640x480 而不是 AVAssetExportPreset1920x1080 初始化导出 session 。
关于ios - 无法渲染尺寸大于 640x640 的视频,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28578476/
|